15 common programming myths

Hi habr. Recently, I discussed with a colleague common stereotypes and myths that the programming industry has acquired. This idea seemed to me worth writing a post here, despite the already existing material on this topic. To all comers - welcome to cat.







It would seem that such a rational and logic-based profession is unlikely to be susceptible to all kinds of fabrications, but the development community still encounters myths so widespread that they begin to penetrate reality. If all these myths were true, the programming world would be like a cohort of 20 year old geeks using their high math skills to code at any time of the day or night. If you work in this area, you most likely know that this is not the case. However, even the developers themselves tend to believe some prejudices. Let's get it right.



1. Good developers work around the clock



Despite the reluctance to succumb to stereotypical thinking, the image of a guy with sleepy eyes and an energetic in his hands immediately arises in the head, as an invariable attribute of any programmer. Yes, there is some truth in this - sometimes the approaching deadline requires sacrificing sleep, especially when it comes to startups. However, this is not always the case.



In addition, everyone has long known that lack of sleep does not increase productivity, but inhibits the process. Few people are satisfied with this state of affairs, because many developers have family, friends and their personal affairs, to which they are more likely to devote their free time. Instead of cultivating this idea, the programmer community should look for other ways to improve the workflow and focus on goal setting following the Agile methodology. Few people are satisfied with the work "wear and tear", and this applies not only to programmers.



2. The more people check the code, the fewer bugs



Invented by Eric S. Raymond, the aphorism โ€œwith enough eyes, all bugs are on the surfaceโ€ implies that open source has an advantage in that any developer can review it and fix bugs. In reality, this is not entirely true, because open source programs have more users who are unable to fix errors in the code than people who are willing to contribute. Simply put, seven nannies have a child without an eye. The best solution in this situation would be to use a problem-focused team with good bug tracking software.



3. Math skills determine development skills



Yes and no, because you cannot say for sure which abilities will become a determining factor in your professional growth. A penchant for mathematics does not guarantee absolute success, just as its absence does not lead to failure. Except for gaming, most developers only use basic algebra and statistics to figure out the effectiveness of their code, but fundamental knowledge is also involved.



4. Developers are geniuses



You don't need to be a genius to be a programmer, you just need to have motivation and the ability to learn. Errors are an integral part of professional development, and even ingenious developers make them. The only important thing is to be able to transform them into useful lessons that will allow you to improve your skills.



5. It is enough to master one thing



The world of programming is changing at the speed of light, which means you will always have something to learn. Once you have mastered only one language, sooner or later you will be stuck in a dead end situation that will require flexible solutions. If you stop educating, you will stagnate and stop being competitive, so be prepared that you will have to improve yourself throughout your career.



6. Language X is better



The truth is, there isn't one omnipotent language for all development. Each language fills a specific niche in this environment and is designed for specific purposes. For the development of interactive software, the developer is more likely to use JavaScript, and for something oriented to the speed of the task - C ++. Arguments about the superiority of one language over another are simply irrelevant, because each of them is focused on specific tasks that have nothing to do with personal bias.



7. You can master the language in a few weeks.



I would not want to kill the enthusiasm of beginners, but a couple of weeks will not be enough. Even if you can learn the basic tenets of the language in two to three weeks, for everything else you will need a lot of strength, perseverance and practice. In the absence of interest and patience, you will not be enough for a long time, and it is impossible to master a large set of skills in a short time.



Draw a parallel between the work of a programmer and the work of a doctor: an inexperienced surgeon cannot carry out a successful operation without good practice behind him, just as a programmer cannot write complex code without spending time studying all aspects. In other words, a good developer needs muscle memory as much as a surgeon.



8. Release of the product into production = end of work on the project



In reality, software development is rarely complete. Of course, management and developers want to believe that the large, multi-level software they create will work properly for very many years. However, over time, new problems may appear that will need to be fixed, and applications will change and require new features to be added, so the process is endless. You need to remember the costs of support and maintenance, as well as invest in the development of innovation to maintain competitiveness.



9. Programming is just writing code



Many people mistakenly believe that developers are simply transforming ideas into code, without understanding the essence of the decisions made in the process of writing it. This is a big misconception, because at each stage developers have to form abstract solutions to the problem and anticipate possible bugs even before they occur, and this requires deep knowledge and understanding of the problem. Among other things, they have to deal with many non-functional requirements and design failures, and only good developers can track them and communicate them clearly to the team, independently making smaller decisions.



10. Programming is not a creative activity



Such a stereotype is most often based on superficial ideas of people far from this sphere, because writing code, algorithms and other moments from the world of programming seem to a common man in the street to be something alien to creative activity. Yes, the foundation of programming can undoubtedly be called logic and the scientific and technical field of knowledge, but this does not negate its creative side. To some extent, this can be called an art form, because many developers try to design the code beautifully, structure and make it cleaner. This is nothing more than a creative process.



11. Developers have low social skills



According to many people, programmers are loners who are ready to spend all their free time alone with their computer, and as soon as it comes to social communication, they lose their quick wits and tend to close themselves from the outside world. This myth can be linked to the very first point.



However, the position of a programmer, however, like any other, will not make you an unsociable social phobia and is unlikely to affect your character traits. By succumbing to this stereotype, many managers interact with developers in such a way that their communicative input is underestimated. Each developer is a separate person with their own internal characteristics, and the fact that they like to write code does not mean that they are afraid of people.



12. Young developers consider themselves to be the best specialists



Maybe it's age, but early in their careers, many developers tend to think they are better than their experienced colleagues. They have mastered new technologies that they believe are more productive and, in turn, more valuable than using older platforms. In fact, many developers learn new technologies even as they grow up (otherwise itโ€™s hard to compete and remain in demand). And newly educated graduates often overlook an important factor: the depth and breadth of experience that only comes with time.



13. Programming is boring



Would you devote your life to what seems boring to you? The answer is obvious, everyone determines the scope of their interests. Programming can be as fun as any other activity because it is a mixture of architecture, mathematics and language. People who find development boring do not understand all the subtleties. But developers know that development is about continuous learning, finding effective solutions, and the opportunity to feel like the creator of something important and useful. Can it be boring?



14. After 35, the development career ends



Ageism is a very real part of the programming world, but age is not something that you can give up on your career. People who are stuck in the same language or have not been able to master new platforms and technologies are contributing to the confirmation of this myth.



This does not mean that developers completely quit programming after 35. Many are moving to management positions or starting their own companies. Others continue to learn and develop with love for their cause throughout their careers, it is only a matter of a desire to receive relevant information and to monitor the ongoing changes.



15. Developers are a product



Often people think that the more lines of code a developer writes, the more productive they are, but development is not laying bricks. It's foolish to hire cheaper programmers and expect the job to be done just as well. Developers are primarily people. Each of them has its own special skills, personal characteristics and knowledge. As with languages, programmers can perform better in some projects than in others, which in turn will affect the efficiency of the development process.



Conclusion



It will be interesting for me to hear about the ridiculous stereotypes that you have come across during your practice (and I am sure there were quite a few of them). Leave your options in the comments.



All Articles