I recently sat down with some of our rockstar programmers at WeAreBrain to discuss the most common mistakes beginner programmers make, and how best you can avoid them.
So even with my limited programming experience I know we’ve got a pretty even spread of experience between the three of them and they were more than ready to drop some knowledge bombs at our collective doors.
Not one to pull punches, I hit them with the big question right out of the gates.
Q: What are the most common mistakes you see new programmers make?
Pavel: Probably the most common mistake I’ve seen is that beginner programmers seem to be really hesitant to ask more skilled team members for help when they’re struggling to find a solution to something. It’s not just a time-waster, but it also ends up affecting the rest of the team’s timing and the quality of the overall project.
The second most common error I see newbies make is forgetting about new tendentious techniques, focusing on only the current scope of the task and corresponding technologies instead of keeping the bigger picture in mind.
Dmitry: I’d say one of the key errors I see is that a junior programmer will focus only on the tech and architecture, and forget to take into account the business needs.
Igor: New programmers make a lot of both of these mistakes. Sometimes they don’t have enough skill to write readable, understandable or optimal code, but sometimes they lack attention to business-logic.
Q: ‘Let’s pick this apart a little more’ I say, talk to me more about skills issues and misconceptions around learning the trade.
Dmitry: In my opinion, it’s important to concentrate on more than one tech stack and actually learn more than one programming language.
Pavel: I agree, and I’ve also noticed that with many new technologies allowing you to design new platforms at a more basic programming level, a lot of young programmers think that deep knowledge of the platform and language specifics are not as important anymore.
What you end up seeing is the cloning of the same approach again and again. That results in rigid and monotonous solutions. When you put the time in and get a deep understanding of the platforms and languages you use, you’re able to design more complex applications and informational systems.
Q: So how do you recommend newbie’s fix this behaviour?
Igor: I would recommend practice and dual-programming. Also, they need to read ForeignCode and find out what it does and how.
Pavel: Obviously upskilling is important, but I also see a major role for managers in fixing the mistakes newbies make. I think it’s important to challenge them and ask them questions about the solutions they propose. You can also pair them with a more experienced coder and have them guide the newbie by being in charge and teaching them about design documentation, for example. I also recommend challenging them with complex business tasks. I think growth only happens when you’re forced out of your comfort zone.
Dmitry: When I work with a newbie I always encourage them to think about what they’re building from the customer’s perspective, or even better, from their parent’s. Try understanding how they might behave when they use the functionality that you build. I also tell the newbs to learn new languages. The more diverse your understanding of coding languages the better. It’ll make you a better developer in the long run. It will also give you the ability to find multiple principles, approaches and solutions in future projects.
Q: So, what made you become a better programmer?
Igor: I read a lot of articles and books. I also think sharing thoughts and problems with other developers helps to broaden my perspective.
Dmitry: I’d say the first thing that definitely helped me to become a better programmer was switching between multiple projects and clients, which in turn meant I learnt and tried a lot of different tech and approaches. The second would be actually configuring servers and environments by myself. These two things helped me really develop my skills.
Pavel: I think making mistakes, in the beginning, made me introspective and it led to me discovering what skills and values I needed to either exclude or enhance to make me more effective professionally.
Q: Before I let you go, what is the one piece of advice you would give to a newbie developer?
Pavel: Mmmm… just one? Well, I’d say first and foremost, don’t be afraid to come out of your shell and share your ideas and knowledge with the team. And make sure you embrace the whole business idea even if you’re working on only a small part of the development scope. I’d also say from a more technical perspective, avoid evident tricks in the code and DO NOT postpone refactoring… it always results in higher risk and more bugs.
Igor: I really recommend reading smartbooks and practice, practice, practice. Also, remember colleagues that are more experienced than you are a great recourse. Ask questions and keep an open mind.
Dmitry: I have a bit of a list as well:
- On the topic of asking questions – consider asking things like “what is this feature for?” and “what are we trying to achieve with this functionality?” instead of just wondering how to get it done
- Look out for the latest trends in the programming world and don’t just stick to front-end or back-end dev. Do both!
- Configure environments yourself and don’t use DevOps too much
- Do white unit tests and include this into your time estimates upfront, it will save you a great deal in the future. Especially when you need to do a second iteration of changes
Other than that I agree with Pavel and Igor, read a lot and make use of the expertise of more experienced teammates. You’re all on the same side so make sure you are a team player.
In closing, I’d like to say a big thank you. I’m sure your advice will be very helpful to developer newbies who are trying to find their feet when it comes to software development.