The 9 Most Common Problems New Programmers Face
Your first job as a programmer starts off exciting. But after a few weeks, the downsides of the job — deadlines, bug reports, being yelled at by your manager — start getting to you.
But all is not lost.
The good news is that everyone makes mistakes. All of the mistakes you’re making have been made by others who started off just like you. Other new programmers took those problems in stride, looked for solutions, and came out better at the end.
So can you.
Let’s look at some of the most common problems new programmers face to learn how you can gain perspective and fix your own issues.
1 – Not Understanding the User
In software development, user centricity isn’t an option — it’s a priority. Of course, to make any software user centric, you have to know what users want.
Your users may have opinions about how a product should work. These opinions may differ from those of your development team. But it’s often difficult for new programmers to understand what their users want, since they rarely get to interact with them directly.
Sure, project management techniques like Agile/Scrum make it easier for development teams to update the software as user demands change throughout the development cycle, but it can be challenging for programmers who are still learning the ropes to balance the needs of the user with the lack of access to them.
Ultimately, the people who will use your product will be the end users.
However, users might know what task they want the product to accomplish, but not the features. It’s your job to figure that out. As Henry Ford once famously said, “If I’d asked my customers what they wanted, they would have said a faster horse.”
- Talk to the people who have direct access to the users: (No, not the project managers.) If you really want to know what your users expect, go to the user experience experts or designers. They are required to approach each product with a human-centered design approach and are given direct access to the people who will actually be using the end product. Their insight will give direction to your code.
- Test your product: If you really want to know what your users think about your product, test it. Successful companies like Apple often release beta versions of their products to see how users will react to them before they are officially launched. This helps them fix any bugs and any issues users might point out.
2 – Debugging
Picture this scenario. After working for days to perfect a program, you go home satisfied that it will work like it’s supposed to. When you come in the next day, your colleague from quality assurance (QA) gives you a long list of bugs to work through. The “Cancel” button on the web form isn’t clickable, the grammar on the error messages isn’t right, and the software has other errors that are causing hitches in the user experience.
Debugging all of this sounds overwhelming, doesn’t it? And it is even more so for new programmers. Some bugs are easy to debug, but a lot aren’t, which can lead to lost development time and endless frustration for new programmers.
But the good news is that bugs are common in programming. In fact, even the best-written code can have them. And they can be fixed.
In professional football, it is said that the best defense is a good offense. When applied to programming, the best defense against bugs is a good debugging strategy. As a new programmer, incorporating debugging strategies can help you, too. Here is what you can do:
- Reproduce the error: Spending countless hours trying to fix a problem that you don’t understand can be a strain. To fix your bugs, understand why they happened. How? Start by reproducing them. What you find will give you a good idea on how to fix them.
- Get help: This tip might be obvious, but when projects are on a critical deadline, most new programmers tend to panic first and think later. If you can’t reproduce a bug, get help. The tester who found the bug can help reproduce it for you.
3 – Keeping up with Technology
As technology continues to grow and expand, programmers need to keep up. Frameworks, tools, and libraries become outdated pretty quickly. For example, front-end frameworks usually last for a year or two before new, updated versions come along.
In a sense, updated versions are good, because they are more efficient and make your job easier. But you also need to get used to them fast — something you may struggle with as a new programmer.
Veteran programmers know that iterations and frequent updates come with the territory. The most successful releases are updated one to four times in a month. As a new programmer, you might buckle under that pressure.
There are two easy fixes:
- Take some time to learn new systems: There are only so many hours in the workday to get things done. But it won’t hurt to squeeze in 20 to 30 minutes to learn how new tools work. For example, if you think that you would work better with an updated version of your project management software, learn how to use it in your spare time and use it to improve your workflow once you finally get accustomed to it.
- Keep up with the latest trends: Reading might not be on your list of priorities when there are work deadlines to meet. But keeping up with the latest programming trends will only help you. Learning new coding practices and tools means you will get better at creating code and can develop more innovative products.
To make learning a more manageable practice, use readily available resources like Codecademy and Stack Overflow. Better yet, use lunch hours to ask more experienced programmers on your team about the latest technologies and best practices. These conversations will keep you informed and help you make better use of your time.
4 – Communication
As a new programmer, you probably don’t know anyone in your new workplace. Sure, maybe you know the colleague who told you about the job opening, but not the members of your team or the project manager you will be working with. And if you don’t know them, you might hesitate to talk to them about anything, from code-related issues to getting to know the corporate pecking order.
Poor communication is a problem that most new programmers face at some point. And the worst part is that it can cause conflicts in the workplace. If you find yourself unclear about issues regarding a project, you may not know how to fix them or get help if you can’t talk to your teammates. For example, you can surround yourself with code merging issues if you don’t coordinate with your team members. This is what I went through as a new hire in a software development company. Everyone on my team followed a coding strategy that I was completely unfamiliar with. As a result, I ran into a lot of merging conflicts and often clashed with my team members.
The blame for poor communications falls on you, because it is in your power to control. If you don’t try to build good communications with your team, you are ultimately responsible for the problem.
When it comes to software development, communication skills are just as important as technical skills. Here is how you can improve these skills:
- Be proactive: Communicating only when you need something or are asked a question isn’t going to cut it in the workplace. Mingle with your colleagues and don’t be afraid to ask them questions, especially about any problems you are facing at work. You can get accustomed to the workplace culture faster if you open up to other people. And if you are a shy person, well, your lack of self-confidence is something that you will have to work on.
- Be consistent: There will be times when you might not be clear or cohesive enough in what you say and this causes problems. Accept that there will be moments like these, learn from them, and do better next time. Practice until you are able to express yourself more fluently.
5 – Time Estimation
Maybe you didn’t know how to make a good estimate. Or maybe you gave an estimate, but didn’t stick to it. In the end, you couldn’t keep up with the rest of the team and your project went over schedule.
As a professional working in an industry that is controlled by deadlines, you might be asked to provide an estimate on the time it would take to complete a task such as debugging code or completing certain features in a sprint.
Estimates are important in software development. They can be a basis for price quotes and project schedules. Schedule delays cause problems and may compromise trust.
As a new programmer, you might be tempted to put in more time than you need for a task, with the assumption that doing so might impress your boss and be good for the project. But doing this can come back to bite you. It can put you way behind schedule and behind your team, which makes you look bad.
To solve this problem:
- Break down tasks: The best way to make tasks more manageable is to break them down into a series of smaller tasks. Did QA just identify a dozen bugs in your work? Look at each fix as a mini task and estimate the time it might take you to complete each of these tasks. Breaking down your workload this way will keep things from becoming overwhelming.
- Time yourself appropriately: Give each task a time frame for completion, but give yourself a buffer, too. For example, if a task would normally take 20 minutes, set yourself a buffer by keeping the time frame at 30 minutes. You never know what disturbance may occur.
6 – Sitting for Hours
When it comes to software development, sitting for long hours is part of the job. So is back pain, numb legs, and neck sprains. As a new programmer, you might not be used to sitting for a prolonged period of time. After all, tasks didn’t take you eight hours to complete in school.
Sitting might not be perceived as a problem for programmers, but considering the health impacts, it should be a consideration.
Studies show that sitting for more than five hours every day can result in serious health risks like cardiovascular disease and obesity. It can also make you feel more tired during the day.
You can’t change the fact that your job confines you to a desk. But you can change how you work by doing the following:
- Stand up and work: Standing up to work puts less stress on your back and improves blood circulation. It also makes you work more efficiently. In fact, some businesses are even investing in height-adjustable desks to make this working method easier for their employees.
- Get some exercise: People who work desk jobs often start feeling tired and unmotivated during the day. To alleviate the stress, give your body a workout. Even a 30-minute walk or jog before work can make you work better throughout the day, provided that you make it a practice. If you can’t spare time for exercise, take short walks to grab some lunch or a cup of coffee.
7 – Security Threats
Data is a valuable commodity. And some people are willing to pay a lot for it, including your client’s competitors looking to pry into a top secret project (like a marketing or enterprise software) that you might be working on.
Your clients rely on you to keep their information safe from these threats. That’s a lot of pressure. Unfortunately, beginners often overlook security loopholes in their code and don’t become aware of the repercussions until after a security breach happens.
As a new programmer, you might end up overlooking security loopholes, especially if your focus is more on delivering error-free code rather than checking to see if it is secure. Hackers know this weakness and are always looking for ways to infiltrate your code.
You can’t stop someone from trying to hack your code, but you can make it harder for them to do so by securing it against common hacking methods. Here is how:
- Use parameterized queries for SQL injections: An attacker can use SQL injections to steal data like a user’s login details. To prevent this kind of attack, use parameterized queries in the programming language you use.
- Keep your workstation secure: Attackers aren’t always online; they can be someone in your workplace, too. For example, a fired employee may decide to get back at your employer by using your system to steal or modify data on a project. To prevent this kind of attack from happening, log off from any software you are using after you are done with it.
8 – Working with Another Person’s Code
Even new employees have to work on projects created by someone else at some point. In programming, for instance, you might have to work on code written by another developer. This situation can cause problems.
The programmer who originally wrote the code might not be working there anymore and didn’t brief anyone about their work before leaving. Or if they are still at your workplace, they might be too busy to answer any questions you have.
Or in a worst-case scenario, there might be office politics. For example, maybe your colleagues had trouble getting along with the previous programmer and might be reluctant to help you figure out their code.
Working on another programmer’s code can be a problem, but it’s a solvable problem. And the best way to approach it is to take it as a challenge. Here is a start:
- Realize that it’s your code now: Fixing this issue means changing your attitude about it. If someone left the code to you, it’s not their code anymore. It’s yours now. Taking responsibility from the beginning will take the edge off the task.
- Spend more time reading code: Spend some time understanding how the other developer worked, both their approach and style. You will have an easier time adapting to the code once you have done that.
9 – Not Planning your Code
First impressions matter, no doubt. But so does thoughtful planning.
It’s a new job and you want to prove yourself, which is totally understandable. But to achieve a good first impression, you might be tempted to rush your code and figure out the direction it is supposed to go in later.
But this method can come back to bite you. Your code might make sense in your head, but then it goes in a direction totally contrary to where it’s supposed to go.
Time spent on unplanned code is time wasted. To avoid such a scenario, put your ideas on paper rather than carrying them around in your head. Here are some tips you can try out:
- Start with an idea: Every software program starts with an idea. For example, your idea for an application might be a tool that lets users remember appointments. This step lets you focus on what you are about to code.
- Use a mind map to figure out user problems: Once you have your idea figured out, the next step is to map it out. Start with the problems your product will address. Write your idea on paper and create subtopics for it. For example, if your idea is for an appointment reminder app, one subtopic could be why a user might need it (e.g., they have too many appointments to keep track of).
- Figure out possible solutions: After you map the problems your product will address, think about possible solutions for those problems. For example, if a user needs your product to keep track of multiple assignments, possible features might be a notification system or an email alert that reminds them of any appointments they have during the day.
It’s Okay to be the New Person
When you are just starting off as a programmer, everything from the code you are supposed to write to communicate with colleagues can seem overwhelming.
But the good news is that there is a totally reasonable explanation for the way you feel. The challenges you face are not insurmountable. Keep these tips in mind and take comfort in the fact that you aren’t the only one; your colleagues have faced these problems at some point, too.