2 Biggest Mistakes Junior Developers Make

Running @thedevlife on Instagram has exposed me to a lot of questions from software developers and engineers from different skill levels and experience. Using that information, along with my personal experiences in the industry, I have identified the two mistakes new developers make. If you are new to software development, this might be beneficial.

Waiting Too Long

When is a developer ready to start creating applications? That is one of the most popular questions I get. My answer to that question is “now.” Let me explain why. When I get that question from a developer, I take that question as asking for confirmation or in an indirect way asking for me to give them a little push to start working on an application. Sometimes it might even feel as if they are asking for permission to start. When you are new to programming, you might feel uncomfortable, and you might lack the confidence to start building, that is a natural feeling. However, you should put that feeling aside and get started as quickly as you can.

Some developers wait until they feel comfortable with the language or framework they are working with to start building. If you do that, you might have waited too long. One of the reasons you want to start building applications is to have something to show when you are interviewing for a position. The lack of a portfolio can have a substantial negative impact on your career. Waiting too long is not advisable. The applications or services you build might not become a great success, but you will gain experience by working on them. The apps you create can also be used in your portfolio.

Not Being Coachable

Sometimes I come across developers who love to use the phrase “I know” to cut someone off when a peer is trying to get a point across. The worst part about this is that some of the time, they actually don’t know what is being explained to them; they use the phrase “I know” to not appear vulnerable. If you always say you already know, your peers will stop trying to help you out because you will not be approachable. Sometimes, even if I already do know what is being explained to me, I give the other person a chance to say what they want to say because I could be wrong. Sometimes I am surprised and pick up a bit of new knowledge just by letting someone explain what they have to say or explain. 

My advice to you is to stay humble, showing your vulnerability might feel uncomfortable, but it has lots of value long term because you will learn from having concepts explained to you. On the other hand, if you are not open, you would be making it more difficult for yourself to learn new things.

Final Thoughts

 Remaining coachable expresses to the ones around you that you are open and willing to learn new things. Learning in tech or any other space for that matter is very important. The moment you stop learning, you start dying.

New to software development? Here is what you need to know.

Introduction

Starting your journey as a software developer nowadays could be overwhelming if you don’t have a mentor or access to constant guidance. There is a vast number of technologies, languages, and frameworks that could make your journey more complicated. I want to share with you some tips that could help you clear out a path for your developer journey. Warning, you may see the term “things” being used very loosely, so whenever you see that term keep in mind, I am using it interchangeably with frameworks, languages, libraries, and methodologies.

Do not aim to become an expert in the first week.

Patience, patience, patience. I think the two most essential traits developers should have are, excellent problem-solving skills and patience. I mean lots of patience. As you will learn in due time, if you haven’t already, things don’t usually work on the first try when you are coding, especially when you are starting out. It would be wise not to expect to become an expert in a short amount of time. Becoming an expert as in any other field comes with practice. Expect to make constant incremental progress as you learn new things and work on projects, so don’t beat yourself up if you don’t pick up things quickly.

Don’t allow yourself to get overwhelmed.

As I mentioned in the introduction, there are way too many things to learn out there. When we are new to this field, we tend to get excited when we grasp something new like a framework or library, right away we want to start using in our project(s) even if the functionality of the application does not require it. Another common scenario is that we want to feel like we have another notch under our belt and move on to the next thing. Not always thoroughly learning all the correct applications for what we learned.

A right approach would be to find out what you want to specialize in. You could be visualizing yourself working on the front-end, back-end, mobile, AI, or big data. Each one of these specializations requires a different path for you to be able to get there the quickest. I have written my thoughts about this. You can find that post here.

Build ASAP

Don’t spend too much time learning new things. I don’t want to contradict myself, so let me explain. Throughout the years, I have spent a lot of time learning new things that I never used. I spent many hours learning something that I thought would be beneficial or just downright cool and end up not building anything with that gained knowledge. The reason we learn things is to be able to accomplish a goal, to create an application. I advise you take a step back and find out the pieces that are required to build what you want to develop and what knowledge you need to have for each of the parts that go into putting the application together.

Once you know what those things are, start building as soon as you know enough. The rest will be trial and error as you start developing, expect this to be the case even as you gain experience. The best way to remember how things work is by applying what you learn.

It’s just like playing with Legos.

After a while, after building a handful of applications, you will start to realize that a lot of the pieces that go into an app are similar. You don’t have to re-invent the wheel for each application. Design your projects in a way you can re-use code you have previously written. Sticking to the same tech stack over time will turn out as an advantage. Switching languages or technologies will limit the ability to re-use code, but if you play it right, you will be building a library of code overtime which you will be able to use to piece together an application and shorten the development cycle.

Summary

It is very close to impossible to learn everything there is to know about computer science, and even if someone knew everything there is know, that person wouldn’t have enough time to apply all of their knowledge. What I’m trying to say is figure out the reason you got or are getting into programming. Usually doing it for solely financial goals is not a good reason. In addition to monetary compensation, there has to be the element of passion, whether it is for building things or for an idea/vision you want to develop. Motivation is a vital part of becoming a good developer; getting satisfaction from what you make will keep you going.