In this article, Alexey Korepanov will not only talk about programming but also will give advice to himself being a 20-year-old young man. At that time, in the late 90s, the man was a student, lived with his parents and dreamed of becoming a programmer. Unfortunately, some mistakes may have prevented certain successes. Perhaps the story of his past mistakes will help you avoid mistakes and achieve your goals faster.
Tip 1: Programming is About People, not about Computers
You can learn to program in a year. Explaining to a computer what it needs to do is relatively easy. But it can be difficult to figure out what the people for whom you write the program want. Therefore, one of the hallmarks of a good developer is the ability to work with what users want. This is called a technical requirement or problem statement. A good developer can collect requirements from customers, understand what they are missing and understand if there will be problems somewhere. He will also be able to understand whether testers can test them correctly.
Of course, many companies have specially trained analysts to do this. But Alexey was not lucky to work in such a company. Therefore, programmers often have to communicate a lot with other programmers, managers, testers. And in some companies, they even have to communicate with customers.
There is one book “The Human Factor” (authors – Tom DeMarco and Timothy Lister). It talks about successful projects and teams. There was this thought in the book: in software development projects, the main problem is communicating with people. Indeed, you can be an introvert, but to be a successful programmer, you need to communicate with other people. At least in order to get an assessment of their work. Therefore, if you do not like people, choose the profession of a forester, because programmers will have to communicate. Check this top 10 books that every developer must read.
Tip 2: Talk to Other Programmers
Reading about programming is not enough. We need to talk about it, discuss it, and share the books we read. If you learn terminology from English literature, but do not practice, it will be difficult for you during an interview. You may not have the terms you need to communicate with other programmers. Yes, you can communicate in various chats and forums, but there is not so much personal communication. Therefore, it is useful to find an offline hangout where you can discuss who is working on what, who is paid how much and how the interview went.
Tip 3: Remember that theory is as important as practice
Learn to program by doing. Don’t waste time on courses and reading books. Choose a program and start doing it. Over time, you begin to understand that there is not enough theoretical knowledge. Start with practice, but find time for books, conferences. Alexey even regrets that he did not find time for this earlier.
Tip 4: Learn Programming Theory Early
At the university, Alexey had a lot of mathematics and computer disciplines, where he studied databases, etc. They can be not very useful in real life. But at the interview there may be questions about algorithms, database theory, and probability theory. Yes, you can do without a mathematical education. But one could have learned the theory much earlier.
Tip 5: Go to interviews
In the early 2000s, Alex posted his resume on the site. At some point, the man received a letter from Microsoft in the mail that they were looking for a programmer. He was sure that he would not pass an interview, so he did not answer the letter. But now you understand that it was necessary to communicate. Sometimes you have to try to jump above your head in order to understand where you want to strive in the future.
Tip 6: Don’t worry if you know less than othersIt is impossible to know everything. Throughout his career, a man has been haunted by the impostor syndrome – this is when it seems that everyone around knows more than you. This syndrome has not gone anywhere and has not disappeared. You come to an interview for Python programming and they show you something that you have not even heard of. You come home, you google, you find these instructions and you don’t understand what they do. The syndrome isn’t going anywhere. Alexei just resigned himself to this syndrome. You have to accept it and just live with it.
Tip 7: Remember the Dunning-Kruger Effect
This is when you learn a new technology and at first it seems to you that you know it very well. But you only learned a small part. Then you understand that there is still a lot to learn. Confidence is decreasing. Only later, when you have already worked with this technology for many years, your confidence can return. Confidence, when you greatly overestimate your strength, is called the peak of stupidity. It is better not to express your opinion and assessments at this time. As you learn, you realize that you don’t know much. It seems that everyone around knows better. It motivates you to strive and try harder. At some point, you realize that you are better oriented in the topic and understand newcomers who are only at the beginning of their journey.
Tip 8: Don’t be a perfectionist
There is nothing perfect. Everyone has problems. No need to write code without bugs. It is enough to write code with some small number of errors. It is believed that the average developer makes 100 errors per 10,000 lines of code. Of these, 90% are reviewed, then found in testing. Some even remain in the product until the release of the new version. Many errors sometimes cannot be found at the coding stage. Some bugs are very difficult to predict, they may be related to code that was not written by you. Yes, it happens that shame haunts and you want to justify yourself. We must learn to live with it. You can’t write code perfectly, you have to try to reduce the number of errors.
Tip 9: The best code is the one that doesn’t exist
Extra code means extra bugs. Often such errors are corrected later. The shorter the program is, the better it is. But it takes more time and effort to write code with short functionality. It’s generally cheaper to use libraries. 10 lines of code can turn into 100 or 1000 if you don’t use a framework.
Tip 10: Do what is asked and don’t do what is not asked
Alexei was also a student and wrote some programs just for fun. Sometimes you want to add a feature that wasn’t planned. But it takes time and the manager may not be happy, because it is difficult to explain to the client why you spent a lot of time on something that you were not even asked for. Sometimes what you do can be done later. To do this, you can create a separate task, explain to the management its importance, but this is more correct. This makes development more predictable.
Tip 11: Be persistentPerseverance is one of the most useful habits of a programmer. Very often you can solve problems thanks to perseverance, and not some kind of knowledge. For example, this is a search for bugs. All skills are important, but perseverance should not be underestimated.
Tip 12: Become a Programmer
This is the last tip. Forget about everything and become a programmer. It would be good if as many people as possible chose this profession and never regretted it.
You might be interested in reading:
- Top Books For Programmers
- How I Became a Programmer at 29 and Got a Job at Linkedin
- Popular Interview Questions for .Net Developers
- How to Become a Python Programmer at the Age of 44? Ruslan’s Story
This article was prepared using Alexey Korepanov video, link https://www.youtube.com/watch?v=Z9FvlPpSS3U