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.
The power line-up of seasoned programmers I interviewed included: Igor, who has been in the game for 8 years and programmes in mostly PHP and JavaScript (and occasionally in Python). Pavel K who is a Brainiac veteran, Head of R&D and is fully versed in C#, Objective-C, Javascript, Python, and Dmitry E who’s a badass PHP and Python programmer and now manages projects and programming teams for WeAreBrain.
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.
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.
Dmitry: In my opinion, it’s important to concentrate on more than one tech stack and actually learn more than one programming language. Keeping up to date with the most popular code editors is always a good idea, too.
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.
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.
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.
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. For instance, spend time developing your debugging techniques and strategies as you’ll spend many hours searching for errors in code. 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:
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.
An executive’s guide to AI and Intelligent Automation. Working Machines takes a look at how the renewed vigour for the development of Artificial Intelligence and Intelligent Automation technology has begun to change how businesses operate.