fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,22 @@
---
title: Code Reviews
---
## Code Reviews
Code Reviews exist in order to improve the quality of the code in a software project and are common practice for many software development teams.
Code reviews involve team members looking into each others' code submissions to check for bugs, incorrect logic or
potential improvements. A code review can be done amongst developers of the project under review, as well as developers from other teams in the same company.
To those who have not experienced the code review process before,
it can be intimidating. However, it is an invaluable process to help you
grow as a developer. Even if a review is just an explanation of the code to another programmer,
the feeling that your code is going to be read/ inspected by another programmer as well makes you write better code in many ways
(smaller methods, comments and no ["magic numbers"](https://en.wikipedia.org/wiki/Magic_number_(programming))).
As to what is reviewed and when, well there is no clear answer.
Many teams have rules that every piece of code that checks-in in the version control system has to be reviewed by another programmer,
while other teams have whole days when they dedicate to code reviews across the team.
It is important to be humble throughout the code review process. Accept your mistakes,
and be professional when pointing out improvements or errors in the code of your fellow
team members.
[How to Do Code Reviews Like a Human (Part One)](https://mtlynch.io/human-code-reviews-1/)

View File

@@ -0,0 +1,31 @@
---
title: Dunning Kruger Effect
---
## Dunning Kruger (DK) Effect
### Wikipedia's Definition
In the field of psychology, the **DunningKruger** effect is a cognitive bias wherein people of low ability suffer from illusory superiority, mistakenly assessing their cognitive ability as greater than it is. The cognitive bias of illusory superiority derives from the metacognitive inability of low-ability persons to recognize their own ineptitude.
### Why does it matter in Software Development?
DK effect is an important learning for software developers. It can be observed among developers of all age. This is more prominent among beginners and intermediate level developers. After the initial struggle they might get over confident about a language or their designs. This leads them to underestimate the complexity of system requirements or, worse, hampers them coming up with better software designs. For more experienced developers, they seem to have gained wisdom over the years. They are more humble and better at judging the system complexity. (This might not be true to all senior developers though.)
### Beware!
DK Effect is exactly opposite of [Imposter Syndrome](https://en.wikipedia.org/wiki/Impostor_syndrome). You need to strike the perfect balance between both of these for your professional growth.
### How to check if I suffer from DK effect?
*You can't!*
Sorry, but there isn't a straight answer to this question. You can ask following questions to yourself:
- Are you able to give accurate estimates?
- Are you open to learn new concepts?
- Are you open to implement or try new design paradigms?
- Are you humble?
- Are you able to take criticism and objectively evaluate feedback?
- Are you a good listener?
Readings:
- [Wikipedia](https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect)

View File

@@ -0,0 +1,46 @@
---
title: Giving a Conference Talk
---
Speaking at a tech conference or community meetup can be a great way to accelerate your career. It gives you a chance to share something you have learned and is a great way to challenge yourself technically. Speaking at a conference is also an opportunity to meet interesting people within the tech community.
## Choose a Topic
Pick a topic that interests you! Topics that you are passionate about or about which you can tell a great story work best. Brainstorming can help narrow down your ideas to the ones that are truly great.
There are a lot of conferences that like having speakers who are earlier in their career. They bring a fresh perspective and are often working on things that are exciting.
## Start Small
If you are interested in public speaking/giving a tech talk, you can start small. Many communities have meetup groups for a wide range of technologies. You could give a lightning talk (a short talk, usually 5 minutes) version of the talk you want to propose elsewhere.
## Create an Outline
Organize your thoughts in a bulleted list. This will help you when you write your talk, and when you submit an abstract to a call for proposals (CFP).
## Submit Proposal to Conferences
You can find conferences on websites such as [**PaperCall**](https://papercall.io), through social media by following profiles like [**Call Back Women**](https://twitter.com/callbackwomen) on twitter, or simply by using a search engine.
Most of the time, you can submit a proposal to multiple conferences or you can submit multiple proposals to the same conference. If you do either, you increase your chance of being accepted. You should pay attention to what the conference organizers are looking for in submittals and edit your submittal to match.
Many conferences do an initial blind review, meaning that your identity is not revealed to the reviewers. When submitting to a conference with that practice, do not include any identifiable information in your submittal. Sometimes conferences will ask whether or not you are a first time speaker, because they want to see new people at the podium.
It is not uncommon for a conference to have an acceptance rate around 20%. Do not be discouraged if you don't get accepted the first time you submit a proposal. You can edit it and submit it to another conference.
## Complete Presentation
When you are accepted to speak at a conference, it is time to finish writing your talk. Take your outline and fill in the gaps.
Create your slide deck and add speaker notes so you know what you are going to say for each slide. Be aware of any slide guidelines that the conference might have (aspect ratio, acceptable colors, font, font size, etc) and stick to them.
## Practice
Practice as much as you need to feel relaxed. You should time yourself giving the presentation a few different occassions to make sure that you are well within the time limit—you don't want to be cut off because your talk goes over time. Try your best to not be dependent on your notes/slides so that you can engage the audience by making eye contact as much as possible.
## Enjoy the Conference
You may be nervous (that's okay!) but try to enjoy the other talks and events that the conference has to offer.
Give yourself plenty of time to be at your speaking location beforehand and bring a friend to see your talk if possible. Be aware that many conferences now record talks and prepare for this ahead of time. Take several deep breaths before you go on and try to have a nice time. If people can see that you are happy to be there, they will most likely be happy to hear what you have to say.

View File

@@ -0,0 +1,46 @@
---
title: Imposter Syndrome
---
## Imposter Syndrome
Imposter Syndrome is a feeling of _being a fraud_ or _not being good enough_ to get the job done. Common among software engineers, developers and designers working in tech companies, especially those not coming from a traditional tech background. People suffering from imposter syndrome have a sense of inadequacy and insecurity concerning their ability to make a contribution at the workplace. In reality, they may be perfectly capable of and do contribute successfully to their tasks.
Imposter Syndrome is very common among software engineers or developers who are new to the role and lack the experience of some of their co-workers. Throughout various industries, imposter syndrome is very common with highly successful people. Studies have found the two out of five 'successful' people consider themselves frauds/imposters while other studies have shown that up to 70% of people experience imposter syndrome as one point in time or another.
If you suffer from imposter syndrome you may have a sense of inadequacy or insecurity about your ability to contribute. In reality, you may be perfectly capable and do contribute to your tasks.
These thoughts are fairly common if you struggle with imposter syndrome:
* "What am I doing here?"
* "I am not a developer. I am fooling myself and other people." (feels fake)
* "My colleagues are much smarter than me; I could never match up to them." (undermines own achievements)
* "My coworkers have told me I've achieved a lot, but I feel like it's never enough." (discounts praise)
* "I have no idea how I got through the interview process." (feels only luck dictates results)
* "I will be ridiculed and fired when people realize I am not as smart as I portrayed myself as being." (fears failure)
* "My IQ is not high enough to work here." (doubts inherent ability)
* "I need more training to feel like I deserve to be here."
Imposter Syndrome may prevent you from reaching out when you need help, thus slowing your progression. Please do reach out on the forum or the chatroom!
#### Overcoming Imposter Syndrome
The first step in overcoming imposter syndrome is to learn the difference between a growth mindset and a fixed mindset. People with a growth mindset believe that their skills and talents can be developed through hard work, practice, conversations with others, etc. Alternately, those with a fixed mindset tend to believe their talents are set abilities that they were born with.
When you change your outlook to a growth mindset, you allow yourself to take on challenges that may seem out of reach. If you believe that your skills can be developed over time, it will matter less if you don't know how to do something (as long as you are willing to put in the work).
[Many talented, successful people deal with Imposter Syndrome](https://www.thecut.com/2017/01/25-famous-women-on-impostor-syndrome-and-self-doubt.html). They even say that - counterintuitively - not only does success not eliminate Imposter Syndrome; many times, success makes it worse. So, it isn't something we conquer once. We conquer it every day, every time we take on a project, task, etc.
More great resources to help you know more about Imposter Syndrome and some tips to tackle it:
* [American Psychological Association - Feel Like a Fraud?](http://www.apa.org/gradpsych/2013/11/fraud.aspx)
* [TED Talks - Fighting Imposter Syndrome](https://www.ted.com/playlists/503/fighting_impostor_syndrome)
* [Quartz - Is imposter syndrome a sign of greatness?](https://qz.com/606727/is-imposter-syndrome-a-sign-of-greatness/)
* [HTTP203 - Imposter Syndrome](https://www.youtube.com/watch?v=VNr1Kb07aME)
* [Ada Initiative - Is Impostor Syndrome keeping women out of open technology and culture?](https://adainitiative.org/2013/08/28/is-impostor-syndrome-keeping-women-out-of-open-technology-and-culture/)
* [DEV - Overcoming Impostor Syndrome](https://dev.to/kathryngrayson/overcoming-impostor-syndrome-apg)
* [FastCompany - Types of imposter syndrome and how to beat them](https://www.fastcompany.com/40421352/the-five-types-of-impostor-syndrome-and-how-to-beat-them)
* [Startup Bros - 21 Proven Ways to Overcome Imposter Syndrom](https://startupbros.com/21-ways-overcome-impostor-syndrome/)
* [NY Times - Learning How to Deal with the Imposter Syndrome](https://www.nytimes.com/2015/10/26/your-money/learning-to-deal-with-the-impostor-syndrome.html)

View File

@@ -0,0 +1,52 @@
---
title: Working in Tech
---
## Working in Tech
A wide variety of technology-related fields such as web development, design, data science, and product management are often lumped into the catch-all term "tech."
This section will focus on various aspects of working in tech. We will discuss the additional career challenges that under-represented minorities and people from non-traditional education backgrounds face. This includes issues such as sexism and ageism that have been particularly prevalent in certain industries and organizations.
### Computer Security
The field of computer security is growing at a rapid rate every year, in a report done recently it is estimated that by 2021 their will be 3.5 million jobs unfilled. The demand is due to the increase in cyber attacks and with how much data is being created everyday, data is so valuable nowadays and it needs to be kept secure and safe.
### Examples of Tech related jobs
- Software Developer
- Computer Systems Analyst
- Web Developer
- IT Manager
- Computer Systems Administrator
- Network Administrator
- Support Desk Engineer
- Security Engineer
### Books
[About Face: The Essentials of Interaction Design](https://amzn.to/2uwtugk)
[Thinking in Systems: A Primer](https://amzn.to/2u6FbJF)
[Thinking, Fast and Slow](https://amzn.to/2tnnlTN)
[Learn You a Haskell for Great Good!](https://amzn.to/2veOjdv)
[Think Like a Programmer](https://www.nostarch.com/thinklikeaprogrammer)
Hooked: How to Build Habit-Forming Products: amzn.to/2bVG5AQ
"Lean In: Women, Work, and the Will to Lead" by Sheryl Sandberg http://amzn.to/2igRgoq
To see the full list, visit: https://talkpython.fm/episodes/show/130/10-books-python-developers-should-be-reading
### Articles
* [We fired our top talent. Best decision we ever made.](https://medium.freecodecamp.org/we-fired-our-top-talent-best-decision-we-ever-made-4c0a99728fde)
* [You fired your top talent. I hope youre happy.](https://medium.com/@deusexmachina667/you-fired-your-top-talent-i-hope-youre-happy-cf57c41183dd)
* [How to run a successful development process (even if youre not technical)](https://medium.freecodecamp.org/how-to-run-a-successful-development-process-even-if-youre-not-technical-185d0558c89a)
* [What is technical debt? And why does almost every startup have it?](https://medium.freecodecamp.org/what-is-technical-debt-and-why-do-most-startups-have-it-9a54458daabf)
* [How you can land a 6-figure job In tech with no connectionstips that got me job offers from Google and other tech giants](https://medium.freecodecamp.org/how-you-can-land-a-6-figure-job-in-tech-with-no-connections-6eed0de26ea4)
* [The Complete Software Developer's Career Guide](https://simpleprogrammer.com/products/careerguide/)
### Podcasts
[10 Books Python Developers should be reading - talkpython.fm](https://talkpython.fm/episodes/show/130/10-books-python-developers-should-be-reading)

View File

@@ -0,0 +1,21 @@
---
title: Open Data
---
## Open Data
Open data is data that is freely available and anyone can _access, reuse, and share_ it.
The following points are characteristic of open data:
* The data becomes usable by being available in a common understandable format.
* The data must be available under an open license. This allows anyone to use, redistribute and modify it.
Open data can help governments, businesses, and individuals. It can improve services, bring socioeconomic changes, and protect the planet.
One way that you can use open data is through Civic Hacking in your local code for America Brigade.
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
* [Open Data Wikipedia Page](https://en.wikipedia.org/wiki/Open_data)
* [Find Your Brigade](http://brigade.codeforamerica.org/brigade/)

View File

@@ -0,0 +1,33 @@
---
title: Open Source
---
## Open Source
Open source software is any type of software that is available to the public to use, modify, or download for free. Anyone is capable of creating an open source project.
Open source projects are legally made open through a creative license. They are changed, maintained, or abandoned by their creators at any time. Many open source projects have contributors that volunteer to add and edit code, and a growing number of open source projects are taking a major place among the most popular software available today.
### Advantages
Open source is not dependent on the company or author that originally created it. In a situation in which the company fails, the code continues to exist and the users will keep developing it. Also, it uses open standards accessible to everyone; thus, it does not have the problem of incompatible formats that exist in proprietary software.
Also, the companies using open-source software do not have to think about complex licensing models and do not need anti-piracy measures like a product activation or serial number.
Open source software is typically of **lower cost**, **higher security** and **better quality** when compared to proprietary software.
### Disadvantages
The main disadvantage of open-source software is that often it is not very straightforward to use. Open source operating systems like Linux cannot be learned in a day. They require continuous effort and training from your side before you are able to master them. You may need to hire a trained person to make things easier, and this may incur additional costs.
### Open source for developers
Open source software allows developers to view the source code of any software which is under creative license. Open source projects makes it easier for developers to contribute on different projects without even making changes in the actual file on the server by just downloading the file on our local machine.
There are different websites where people can find the open source projects, such as:
1. https://github.com
2. https://opensource.google.com/
One of the biggest Open Source projects is Linux.
#### More Information:
[Open Source Initiative](https://opensource.org/)
[Wikipedia Open Source Model](https://en.wikipedia.org/wiki/Open-source_model)
[Wikipedia Open Source Software](https://en.wikipedia.org/wiki/Open-source_software)

View File

@@ -0,0 +1,20 @@
---
title: The Battle of Open Source
---
As someone new to software development contributing to open source projects can seem daunting and downright terrifying.
Learning software development has been an unexpected journey that I have had the pleasure of taking. Having the support from
my family members and friends has made the journey less of a challenge even, so it has not been an easy road. I've hit many road blocks in my path but I keep challenging myself every day. Ive read many articles suggesting that as a junior software developer it is important to contribute to open sources. I've searched the innerwebs for an open source project that I felt I could tackle easily.
The harsh reality of it is that most of the open sources out there are not quite as easy as I thought it would be. GitHub in general has been a challenge to learn and I feel like I learn something new each day but looking at several "beginner friendly" open source projects I've come to the stark realization that it is going to take much more time than I had thought to be able to contribute code in an open source projects.
## Lessons Learned
Even though the above paragraph might seem a little off putting do not fret. Yes, Open Source Projects are nothing to take lightly its a serious business. Take your time, read the documentation or readme's, do research, and never ever give up or stop learning. No matter if you are a beginner or a seasoned developer there will always be something new to learn.
## Here are a couple of articles to keep you motivated:
* https://medium.freecodecamp.org/i-made-my-first-open-source-contribution-within-200-days-and-how-you-can-too-4d5bdbd63fad
* https://opensource.com/article/17/5/making-your-first-open-source-contribution
* https://medium.com/ifme/my-first-open-source-contribution-68c86de88af9

View File

@@ -0,0 +1,36 @@
---
title: Remote Versus Onsite
---
## Remote Versus Onsite
There are two main work environments: onsite and remote.
### Onsite Work
Onsite work is what you might think of when you think of a 9-5 job. When you're onsite, you may either be in your company's office or at a client's office. Either way, you're in the same physical location as the rest of the people with whom you work.
### Remote Work
Remote work occurs when team members work in separate physical locations. You can work from anywhere: your home (no commute!), a co-working space (sometimes paid for by your employer), or even a beach in Thailand. Often your only restriction is that you have internet access.
Because in-person communication occurs less frequently (if at all), remote teams often rely more on communication software like [Slack](https://slack.com/) and [Skype](https://www.skype.com/).
Remote teams may host regular company retreats so team members can meet and hang out.
### The "In-Between"
Some companies are 100% onsite, and some are 100% remote. But, it's not unusual to find companies or teams that allow you to work remotely a day or two out of the week. This allows you to experience some of the benefits of remote work, without being remote all the time.
Remote work can be a great tool for a business as a contingency plan in the event of inclement weather or a natural disaster.
Some companies also have a physical office where you can go to work if you'd like, but allow you to work wherever. Recently there has been more movement from large companies, such as IBM, toward moving employees back to onsite employment. However, many large organizations are still very flexible and willing to let you work from home, or another convenient location.
### Multiple Teams
Larger companies may have a different version of the "in-between", where they have a number of different teams working onsite, but in multiple different locations. For example, a team working onsite in New York and another team working onsite in Chicago. You can hang out with other team members in an office, but you also use remote working techniques (Slack, Skype, etc) to stay in contact and in sync with the other teams. The teams may all be working on the same project, or developing something independently against the same application or platform.
### More Information:
Quincy Larson on The Economics of Working Remotely: [Medium](https://medium.freecodecamp.org/the-economics-of-working-remotely-28d4173e16e2)

View File

@@ -0,0 +1,40 @@
---
title: Unconscious Bias
---
## Unconscious Bias
Bias is a prejudice in favor of or against one thing, person, or group compared with another usually in a way thats considered to be unfair. Biases may be held by an individual, group, or institution and can have negative or positive consequences. For that reason the benefits of prejudism can only exist at the expense of others. Therefore to be "biased for" you must be "biased against".
<p>Unconscious bias, otherwise known as "implicit bias", occurs when people favour others who look like them and/or share their values. For example a person may be drawn to someone with a similar educational background, from the same area, who shares a similar sexual orientation, or who is the same colour or ethnicity as them.</p>
Implicit or unconscious bias happens by our brains making incredibly quick judgments and assessments of people and situations without us realising. Our biases are influenced by our background, cultural environment and personal experiences. We may not even be aware of these views and opinions, or be aware of their full impact and implications.<sup>3</sup>
Unconscious bias is far more prevalent than conscious prejudice and often incompatible with ones conscious values. Certain scenarios can activate unconscious attitudes and beliefs. For example, biases may be more prevalent when multi-tasking or working under time pressure.<sup>4</sup>
If you are working in a [hybrid remote team](https://github.com/freeCodeCamp/guides/src/pages/working-in-tech/remote-versus-onsite/index.md) then there may be an unconscious bias at play depending on where someone sits. For example, people hang out with colleagues physically (the literal 'water cooler' moment) in a different way to how they do via Slack. Strong teams and leaders are aware of this and choose to [follow certain protocols](https://viewpoints.matrixpartners.com/how-to-support-remote-work-by-removing-unconscious-bias-7a974f953410) work to minimize its effects.
#### Project Implicit:
There are many factors that can give you an unconcious bias, such as:
- Our Perception how we see people and perceive reality.
- Our Attitude how we react towards certain people.
- Our Behaviours how receptive/friendly we are towards certain people.
- Our Attention which aspects of a person we pay most attention to.
- Our Listening Skills how much we actively listen to what certain people say.
- Our Micro-affirmations how much or how little we comfort certain people in certain situations.
It was also found in various studies that that even the order of questions in a test can lead to unconsious bias. There is a very good video on the topic [here](https://www.youtube.com/watch?v=75g4d5sF3xI").
Unconscious bias is far more prevalent than conscious prejudice and often incompatible with ones conscious values. Certain scenarios can activate unconscious attitudes and beliefs. For example, biases may be more prevalent when multi-tasking or working under time pressure.
Unconscious bias can influence decisions in recruitment, promotion and performance management. It could be discriminatory when the unconscious bias relates to a protected characteristic.
#### More Information:
1. [Navarro, Renee MD. "What is unconscious bias?" *University of California, San Francisco.* Accessed: October 20, 2017](https://diversity.ucsf.edu/resources/unconscious-bias)
2. ["Unconscious Bias." *Advisory, Conciliation and Arbitration Service.* Accessed: October 20, 2017](http://www.acas.org.uk/index.aspx?articleid=5433)
3. ["Unconscious Bias." *Equality Challenge Unit.* Accessed: October 20, 2017](https://www.ecu.ac.uk/guidance-resources/employment-and-careers/staff-recruitment/unconscious-bias/)
4. ["What is Unconscious Bias" University of California, San Francisco
Office of Diversity and Outreach. Accessed: October 15, 2017.](https://diversity.ucsf.edu/resources/unconscious-bias)
5. ["Unconscious Bias" acas.org.uk Accessed: October 15, 2017.](http://www.acas.org.uk/index.aspx?articleid=5433)

View File

@@ -0,0 +1,38 @@
---
title: Women in Tech
---
## Women In Tech
From an article on ["The Latest Stats on Women in Tech"](https://www.themuse.com/advice/the-latest-stats-on-women-in-tech),
> "We all know that there's a major gender gap when it comes to women in tech.
>
> Although we make up the majority of the workplace and the social media sphere, we only represent a tiny percentage of the technology world.
>
> And that's reflected in some of the stats you see. For example, according to a 2011 report from the Level Playing Field Institute, 82% of men in startups believed their companies spent the 'right amount of time' addressing diversity, while almost 40% of women believed not enough time was devoted.”
![Alt text](https://www.womenwhotech.com/wp-content/uploads/infographic_700_FINAL.png "Women in Tech")
Although women are still underrepresented in the tech world it does not mean that we are not making a difference in the tech world.
In a Women in Tech Round-up event presented by Google in Austin, the Women who spoke at these events were vice presidents (VPs) and high-level management positions from profitable companies working in the tech industry. Not all of them began their careers in the tech world many had started as secretaries and other roles that are often geared towards women. They worked hard and took risks to get where they are now. The one piece of advice that seemed to resound from all of them was that for you to succeed you must take risks.
The Google VP who spoke at this event gave us all a piece of advice: that we should take any and every opportunity afford to us and risk applying to jobs we are not qualified for. The worst that will happen is youll get rejected or you wont get an interview. Men get tech positions not because they are more experienced or better than women but because they apply to positions that they often arent qualified for while women only apply for jobs that they think they are qualified for.
The worst thing you can do is to sell yourself short if you want something take that risk and achieve the impossible.
### More Information:
- [Why are there so few women in tech? The truth behind the Google memo](https://www.theguardian.com/lifeandstyle/2017/aug/08/why-are-there-so-few-women-in-tech-the-truth-behind-the-google-memo)
- [Ellen Pao: Has Anything Really Changed for Women in Tech?](https://www.nytimes.com/2017/09/16/opinion/sunday/ellen-pao-sexism-tech.html)
### A non-exhaustive list of global women in tech initiatives:
- [PyLadies](https://www.pyladies.com/)
- [R-Ladies](https://rladies.org/)
- [Django Girls](https://djangogirls.org/)
- [Rails Girls](http://railsgirls.com/)
- [Girls Who Code](https://girlswhocode.com/)
- [1 Million Women To Tech](https://1millionwomentotech.com/)