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.
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.
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.