There is one important prerequisite to becoming better at anything: Concentrate on the things that matter, and give up what doesn’t. Developing is no exception. It is a process that can become problematic if you decide to pursue perfection, focusing on aspects that are complex but inessential.
I am a senior software developer and also happy to train future programmers. In the last couple of years, I have written quite a few articles, mainly related to learning Java and other programming languages. In this regard, I turned into a sort of collector of errors of novice programmers. I analyze mistakes and try to give prescriptions for more effective learning.
Indeed, that’s precisely what I have done in this post: I have collected 13 things a novice programmer should avoid. With this guide, I want to help all beginners focus on the important aspects of developing, thus having a promising start to a successful career.
Are you striving to write short code? Stop!
The first rule of thumb on how to become a developer is to write readable code so the dozens of people who read it understand it and find it useful, regardless of the number of lines.
If you are a beginner in programming, try not to write much syntax sugar—defined as alternative syntax within a programming language to make some things shorter. Your initial task is creating readable code.
The idea that you should write code using the fewest words or characters possible will only see you complicating an otherwise simple process—and chances are high that later you will not understand what you meant. It is wiser, therefore, to focus on making your work readable.
Futuristic thinking is good, but not for coding. Your code should be useful now and today.
When you work on a relatively large program, say, a personal project, write just enough code to run the system. Always start with basic functionality, and gradually add features afterward. This way, you will experience fewer bugs, and you will spend less time developing, maintaining, and debugging.
If you ever need to add features and functionalities to your code, you can always do so later on. Instead of wasting your time writing code you do not currently need, you could spend that time learning something new.
Help is good; make effective use of it.
Development comes with its hurdles, some even large enough to halt a project altogether.
As a good developer, you need to learn when to search for help online. The internet has a wealth of online communities and forums for developers to use as resources and to help them with current roadblocks they may be facing. Stop hesitating to ask questions on forums out of fear of looking stupid. Stupid questions don’t exist.
Every time I posted a description of bugs I had to fix on platforms such as Stack Overflow, Reddit (r/WebDev and r/AskProgramming), or Hacker News, I got detailed answers written by other developers on how to handle that problem. Forums are an amazing source of knowledge, as people share their personal experience, and you can get many insights that are not covered in any tutorials.
When you are stuck on a line of code, learning to search for guidance on the internet will help you find solutions without stalling. You can create a list of handy go-to resources as you go.
A lot of developers seldom remember to document.
Adding comments to your code helps you keep track of your project. It also helps others grasp what your code offers. With notes, you make information more understandable.
In case you forget something about your code, or you need to explain it to someone, comments help you and others down the line.
Debugging is a crucial part of how you become a successful developer.
There is no perfect code out there. Even the most popular apps and systems from big tech companies still fail. This is why there are so many updates to your favorite apps.
Debugging, which is identifying and removing parts of the code that have errors, takes time and energy. In fact, most developers spend more than 50% of their time debugging, and the process is not any fun. However, it is the only way to ensure that your code does not crash, misbehave, or get hacked into.
You can use debugging tools to make the process easier and improve the code while you’re at it. Look for a tool that works best to make the process smooth. For Java, I would recommend using IntelliJ IDEA.
Copying and pasting without understanding the code is not the solution; work on understanding the problem.
The temptation to copy someone’s code can be strong at times. However, this is never a good idea in the very beginning. Copying and pasting someone else’s code is not a good habit because your initial goal should be to understand the problem and figure out the solution to it. Doing it yourself is the only way you can learn.
I compare it to cheating in school when your friend does your homework; you just rewrite the solution and get a good mark. Later, the exam comes and you have to do tasks by yourself, but you have no idea how to tackle them. So do your best, and always try to understand the problem.
It is normal to get stuck when developing code; this happens even to the best developers. A wiser approach to such a situation would be to study the problem until you understand it enough to provide a solution. This approach will help you sharpen your knowledge and skills.
However, if you understand the problem with your code but don’t wish to waste time coding from scratch again, it may make sense to copy another developer’s work. Even then, you should have an in-depth understanding of how this code works.
Hacking your way through all challenges won’t get you far; seek to understand and create better solutions.
When faced with a coding challenge, many developers will rush to hack it. What they don’t realize is that they are causing more harm than good. Attempting to hack code you do not understand seldom works. In fact, it often only complicates the problem further.
You should strive to figure out the problem first. Once you have established an understanding of the problem you are dealing with, it will be a lot easier to generate a sustainable solution to it. This way, you learn and develop your problem-solving skills, which will be essential ingredients for your success in future projects.
“How long does it take to become a developer?” beginners often ask. The learning process starts as soon as you leave your comfort zone!
If you only handle projects you are confident about, you are living in a comfort zone. There is no space to grow your skills.
You need to take on projects that scare you, as they give you a chance to expand your skills and grow your career in development.
Once you take on a big project, you start learning new bits and working on things you don’t know yet. By the end of the project, you will be more skilled as a developer.
One programming language is no longer enough; learn more.
A few years back, knowing one coding language was enough to impress your employer and secure your job. Unfortunately, that time is long behind us.
The contemporary world’s technology landscape requires developers who are flexible and versatile. You know Java or C++ well? Learn some front-end technologies, SQL, other programming languages, or new features of your language. This way, you will remain competitive in today’s workplace.
Luckily, you do not have to go back to school to learn new coding languages. There are online platforms that allow you to learn and develop your knowledge and programming skills:
CodeGym is an online platform for learning Java. This course envisages the approach “learning by doing”—80% of your time is dedicated to doing different programming exercises and
20% to learning theory. The course is fully gamified, which makes the learning process really exciting.
CodeCademy. This website has a wide range of different courses and tasks. If you choose this project, you will gain access to more than 300 hours of content related to coding. This platform might be useful for people with different levels of training.
freeCodeCamp has an amazing choice of different practical coding tasks. The only catch is that this platform is not very suitable for the newbies to the programming world, as you have to be confident with programming theory.
Khan Academy is a noncommercial website. The platform mostly covers theory, so you will not find a lot of practical tasks here. But as soon as you are more or less confident with coding basics, you can go for CodeGym or CodeAcademy to practice.
Without health, your success will be short-lived.
Many programmers have developed heart problems because of their chronic lack of sleep, often caused by consuming unhealthy energy drinks in an effort to stay up coding through the night. Don’t do the same; create a schedule your body can handle.
Getting ample sleep is very essential for your well-being. It is very easy to distort your sleeping pattern while trying to finish a project in time, and this sacrifice often feels justified. Overworking yourself and interfering with sleeping hours could hamper your well-being and hinder you from becoming a successful developer in the long run. You should plan your work to avoid overworking.
Similarly, many developers are at risk of developing back problems. This is mainly because they adapt bad sitting postures for prolonged hours. Therefore, it is vital that you get the right seat and worktop for your workstation. This will ensure that your back remains strong and healthy.
Don’t isolate yourself. Learn how to become a developer and grow with a team.
Beginner programmers often hold on to the misconception that they can become successful developers on their own. Going solo can be fun, but it won’t make you successful.
Team members and team environments are vital ingredients in the modern computing world. Many coding projects are handled in teams. Therefore, you need to learn to be a team player and collaborate with others if you want to be successful in this profession. Working with others will sharpen your skills and make you more knowledgeable—traits that will set you up nicely for a successful career.
Comparisons are odious; focus on growth.
It is normal to feel the need to be better than everyone else in your career, but if that is what you concentrate on, you may not achieve much growth. Instead, you should focus on adding incremental value to your knowledge and skills. Use every opportunity available to you to make regular improvements to yourself.
You can set goals for yourself and work toward achieving them. To do that, you might need to set key performance indicators to track your progress toward achieving your goals. If you are learning to program, such indicators can be, for example, hours of regular coding, the number of solved problems, the number of solved problems of increased complexity, the topics studied, questions that you helped other programmers solve on the forums, and so on.
Giving up is not an option!
Some projects will be challenging and make you want to hang up your boots. However, this is your chance to learn something new. You need to realize that every developer goes through hard times. Actually, all people eventually go through hard times in their lives.
You can take a few days to learn something new to help you solve a problem, but you shouldn’t quit. Problems will show up one after the other, and all you need is to learn to power through them. In my opinion, our lives would be boring without all the challenges.
While giving up your bad programming habits may seem difficult at times, giving up altogether is not an option. Becoming a successful developer is not an easy process. You will be faced with several challenges and disappointments along the way, and you may get discouraged at some point.
However, you are not alone! Trust me, all beginners go through a loss of motivation and become frustrated, but it is very important to remember that problems are temporary, and you shouldn’t feel disheartened and stop. The road is made by walking. You must master the motivation to keep going. I hope the above tips will help you keep your focus on what is crucial for your career to progress. Implement them, and you will be happy you did.
First published on Simple Programmer.