Software development job misconceptions
Programmers are awkward introverts with poor social skills
Maybe that was somewhat true in the early days, but today this is completely false. Programers are people like everyone else. The role contains people of different personalities like you would see in any other occupation. Both introverts and extroverts have their upsides and downsides when working in this field. Movies have led people to believe that programmers necessarily need to wear thick glasses, lack a fashion sense and spend all their time learning/writing code. Lot of such stereotypes should be abandoned if they aren't already.
You can become a programer and never need to interact with other people while doing work
That's a big one. This is what a big number of introverts think when they begin a career in programming. But it's not true. In majority of cases building a web product is a coordinated effort of many people. You will work with clients to understand their needs, discuss product specification with designers, solve problems with other people on your development team etc. Whichever field you choose in programming you most likely won't end up as a one-man-show that does everything and understands everything without having to talk to other people. So yeah, if you are an extrovert and love being around and talk with people, don't worry, there will be plenty of such moments. And vice versa, if you are an introvert, don't be afraid. These social interactions can work almost as a protocol and can be learned and mastered like anything else. But keep in mind that communication is necessary, programming can be very complex and include many people. Bad planing and communication can destroy projects before they even start.
Developers work in dark basements and turn coffee into code
Some do, some don't. Most of them don't. That's pretty much it. Depending on a type of engagement in your company you may be at the office or work from home, co-working space or similar and offices are getting more and more ridiculous. We'll go through that in the following sections. Maybe you are familiar with the term "open space office". It's quite popular in software companies where there are big open spaces without walls to separate all the people. There are pros and cons to that approach, but it definitely doesn't resemble a dark basement.
There are also a co-working offices that offer you to rent a space and equipment a shared office. They are mostly used by freelancers. You share the space with people that aren't necessarily working for the same company as you are and that can be working in a completely different field and this can be exciting and dynamic environment to work from.
You have to be young to learn programming
Not really, it's a skill that is learned with practice like everything else and it can be learned at practically any age. Yes it's easier to learn when you are younger and have more free time in your hands, but it doesn't mean that it's impossible to do for someone 40 years old, it's like any other skill. Programming is for anyone with a mind for solving problems and the determination to learn skills required to solve them efficiently. Another thing related to age, is misconception that programmer's career ends much sooner than other types of career you might choose. Ageism in the programming world is real, but age is not what ends a career. Individuals who get stuck in one language, or fail to learn new platforms and technologies contribute to their own waning relevance. Many programmers move into management roles or start their own companies as they get more experienced. Others continue learning and loving developing for their entire career, it’s just a matter of staying up-to-date.
I need to be great at math to become a programmer
Math skills don’t necessarily create a good developer even though it can be very helpful for specific areas. You do not need to be a math genius to become a programmer. In fact, if you know basic operations as subtraction, addition, multiplication, and division, that is good enough to start. Knowing math is helpful in analytical thinking, logic and algorithms, but there are many other skills that may be even more important. When you write code, it's often more important that people on your team understand what you wrote and the concepts behind it then writing something super optimised that no one will understand in 2 weeks. Another thing to note here is that by solving practical issues in software development you may learn math easier because it sometimes offers a way to write more elegant or better performing code. Once you stumble upon issues that can better be solved by using math concepts you might be more interested to find out how the math behind it works! I believe this is actually the case with many programmers, even those that were good at math in college, but forgot a bunch of the concepts and approaches to problems because they never needed to use the in the real life. Once you really need to use them, they'll likely stick with you for the rest of your life as a permanent knowledge.
Computer science degree is required to be a programmer
Nope. Similar to the previous point about knowing math. Programming is a skill that you learn and practice to become better over time. There is a vast amount of free and paid online resources that can learn you programming basically anything you'd want starting from scratch. Going to university or having a degree is definitely a plus, but many of the university courses that do the matter and make a difference are available freely online.
Programmers are geniuses
Far from it. Some of them maybe are, like in any other field of work. But that's simply not true for most of us. Most are just the regular people that are willing to learn how to solve problems and automate things.
Good coders work long hours
I'd say that this is not really the truth, even though working on side projects along real work often means you are really into it and spend more time learning and practicing. This can probably help you grow a bit more quickly in the long term, but can also burn you out in the short term. It all comes down to good work-life balance and what you feel comfortable with. Also "good developer" doesn't necessarily mean someone who only knows how to produce code faster. Good developer also knows when it's time to take a break and a look at the problem from a fresh perspective. Sometimes it's even best to avoid work altogether, until you completely understand the implications of a problem you are trying to solve.
Great developers are 10 times more productive — the famous 10x developer, rockstars, unicorns, ninjas
This one is so bad, because it makes a bunch of people feel almost worthless in comparison to the those "top performers". Some people's logic and technical skills are better than the other's but it's almost always because of more experience. It would be really tough to find a developer that is 10 times more productive than someone else, without someone else being a complete beginner in the field. Watching at the job postings you'll notice that some companies search for developer rockstars, ninjas or unicorns. It's really funny. I used to read those job postings and admire the people that get to be called rockstar developers. Not anymore, I actually avoid such job postings and I think they'll disappear with time. When you think about it for a moment, what those companies are searching for is best in the field, that can accomplish anything and never do a mistake. No pressure there. Once you stumble upon a problem like everyone does, they might go on a search for a new rockstar or a ninja, maybe even samurai, who knows.
Learn the best programming language and technologies and be settled for the rest of your life
The thing is, that as a software developer you'll most likely learn a couple of major technologies throughout your work life. Technologies change, concepts and methodologies also, but less often. So general methodologies and concepts can be your secure foundation on which you build up rest of your knowledge and experience around specific technologies. You'll need to adapt to what's popular and efficient for a given set of problems at any given time. Life-long learning, is a background theme for many modern jobs and this one is not an exception.
Developers memorise everything and best of them never need to consult anyone
Not true 😄. We look up even the most basic things on the internet all the time. No matter how experienced or skilful we get. You simply can't memorise everything. Especially the stuff that is rarely used. Google and StackOverflow are programmer's best friends.
It only takes weeks to learn and master a programming language
Some courses suggest similar timelines. You can learn the basic constructs of a language in two or three weeks, but you can't become a master in such short period of time. Mastering a language requires interest, patience, and application. A lot of it, which means applying your technical knowledge to solve real problems and building real products.
Males are better at programming
I feel bad to even have to go through this one, but I would feel even worse if I left it out It is somehow implied just from number of male vs. female workers in the field. Every single person on this planet can take the time and learn some skill. No matter the gender, nationality or any other differentiating factor. Knowledge and experience don't recognise such boundaries. You can learn software development just like everyone else who did it in the past. Many before you have proven this to be true. The situation and awareness about inequality in this field is also improving and you can find many women driven coding communities. As far as software companies and teams are concerned, they can only profit from having people with different way of thinking, ideas and fresh perspectives aboard! If you aren't convinced, I encourage you to google for famous female programmers or search for women organised coding communities or conferences/meetups.
Software development is all about coding
This might only be true in short bursts of time while you know exactly what you are building, the problem you are solving, who will profit from your solution and how the piece of software will be used when done. That is rarely the case and the rest of time you might spend on planing, debugging existing code and identifying problems, writing documentation, informing other team members about problems that popped up or changes that were introduced to the software, reviewing other people's code etc.
When You Ship Software, You’re Done
Software is rarely finished. Sure, management and developers would love to believe that large, multi-layered a software is in constant flux, the developers who made the software aren’t perfect, applications change, added features introduce new bugs, underlying systems change and introduce new problems. Management and teams need to consider support and maintenance costs, and account for continual innovation that a product must upkeep to stay competitive.
Build it and they will come
This is never the case. There are many roles alongside software developers, like designers, marketers, analysts that are necessary to bring a product successfully to the market. Having product market fit and marketing your product correctly and efficiently to target audience is the key. It's even more important than the product itself in some cases. Software development is not the "main" role in a software company.