What you need to know as a Junior Developer.

Munalula Sikazwe
8 min readJan 27, 2022

--

Photo by Christina @ wocintechchat.com on Unsplash

Becoming a Software Developer can be one of the most difficult career moves you can make . Sometimes , especially when you are a beginner it may even seem like rocket science. Thankfully I’m here to rescue you. If you’re a beginner or junior developer here’s my two cents on what you need to keep in mind as you embark on your journey from a junior developer to a senior developer.

Don’t try to learn everything all at once.

Photo by Cristina Gottardi on Unsplash

One common transgression of many inexperienced developers is that they try to learn everything at once . It’s true that the world of Computer Science or Software possesses an ocean of possibilities when it comes to tools and ideas . This however should not draw you in mindlessly as it may yet become the source of your demise . To quote the old adage “ The thirsty are prone to drowning” . Indeed, this is in fact truth . You therefore should en-devour to devour this ocean one sip at a time. To be clear , ideas in the world of software development and computer science should be devoured one at time and in small chewable bits. Examples of such a tactic would be to only learn one programming language at a time . Trying to learn multiple programming languages(JavaScript,Java,Python,C++,C#,Kotlin,Dart) at the same time might have the opposite probably negative effect.

There is only demand for good developers .

Photo by Zac Durant on Unsplash

It’s really likely that you’re in software development because there is high demand. Well, even if you’re not , most probably are . So here’s the reality of this little half truth “Software Developers are in high demand”. The truth is it’s not that “Software Developers are in high Demand ” , It’s more “Good Software Developers are in High Demand.” . Most companies and organizations are looking for good software developers and not software developers in general. Evidence of this is normally visible in the fact that high paying developer jobs are normally available despite the fact that the software development industry is completely saturated.

Being a good programmer is not the same as being a good developer.

Photo by Philipp Katzenberger on Unsplash

While this may not be readily obvious to the inexperienced developer , being a good programmer is not the same as being a good developer. In order to have greater clarity on this point , it would be prudent to understand the differences between a developer and a programmer. A programmer is simply a person who is capable of writing computer programs to solve a problem , while a developer is a programmer that implements or develops a system as per given requirements. When we look at these vague descriptions it may not be clear what the real difference is. To be on the nose with this ,would be to say a developer is one who participates in the development stage of the software development life cycle. What this entails is that software development is an engineering process. As such a good developer must adhere to good engineering practices. Now that we have a faint idea of what a programmer and developer are, let’s get to meat of discussion “Why Being a good programmer is not the same as being a good developer.”. Believe it or not the most clever code is normally unreadable. While this is a good thing in Competitive programming, this may not be the case in software development. Remember when you’re a developer you’ll most likely have to work in a team. Even if you don’t, it’s more likely than not that, another developer will have to work on that code your wrote. Being a good developer means writing code that not only solves the problem but is readable , maintainable,extensible and robust.

Have a niche.

Evil Morty, Rick and Morty. The Greatest Morty.

In an ocean of fish just like you, be like no other. Seriously though don’t be generic. A developer’s overall value comes down to what they have to offer that others don’t. Have you ever heard the saying “Jack of all trades , master of none.” . This is the actual hidden cost of trying to exist in all parts of tech all at once. Claiming to operate in many fields is simply announcing your lack of expert skill in a single one. Not to worry though while mastering many technologies or gaining experience in many fields in software may be a painstaking undertaking, it can be done, with time. However while you’re new to the field of software development having a niche let’s you stand out a little more as it allows you make an impact , without too much in the world of experience.

Everything takes time.

Photo by Duane Mendes on Unsplash

“It takes ten years to be an overnight success”-Anonymous. Everything takes time and software development is no different . To that effect rest is a very important ingredient . Beginners tend to mistakenly think that they can crumb 5years of experience into 6 months of coding. Unless you have some hidden magical talents this is less than likely . The key to harmonious development of software development skills is consistency . You don’t have to spend eight hours a day writing code to get a serious improvement 6–2 hours would do you just have to be consistent. Remember to take breaks , the brain is muscle and it needs rest between workouts.

Knowledge is not the same as skill.

Photo by Olav Ahrens Røtne on Unsplash

This is probably not the most obvious to most people but knowing the difference between the two could be the difference. This usually comes up in the qualification vs experience debate. Knowledge is information that use to further our understanding of the world . Skill is your actual ability to accomplish a task. How well you accomplish a task is known as your skill level. Knowing about data structures and algorithms from a University does not guarantee you can apply it to a real life problem. The ability to apply a solution to a problem requires skill and that can only be attained through experience. And so to be quite to the point true skill as a developer can only be attained through practice and heavy application of possessed knowledge.

Use the right tool for the job.

What is the best programming language ? What is the best framework ? These questions are common amongst newbies and beginners. The answer however will always be the same for both questions. This being “it depends on the job.”. There’s no such thing as the best or greatest language or best and greatest framework. All programming languages and frameworks are just tools , and these tools exist to fix problems that plagued the times before their invention . A common example of one such argument is the JavaScript vs Python debate. A debate of this kind is a fools errand , but understanding the languages strengths and weaknesses is key for a software developers success. Just in case your curious as to why you would chose one over the other here’s a quick tip. JavaScript excels at web development because it was designed to work in the browser. Python excels at making the developer more productive as most of it’s syntax is written in almost natural language style and is therefore easier to read and implement simple ideas.

Freelance or Full-time 9–5 Job ?

As to the debate on freelance and full-time , the answer to this questions depends of several factors. These factors summed up together can be recognized as Freedom vs Security. Freelance work offers you one thing over full-time 9–5 employment (freedom). This is the freedom to set the price and the freedom to set the working hours. This freedom could be important to developers that prefer to work certain hours of the day or work on particular tasks for a price of their very choosing. The caveat of this free heaven is that the price if free to fall as well . Clients take away the freedom to choose price by forcing the free-market to decide what the price is . The key to surviving in such an industry is having loyal clients that know exactly what you offer for that price and are not willing to compromise on quality just to get a lower price. However if this is too much of a risk for you, safety and security can be found in a regular full-time 9–5 job. In such a setting the time and price at which work is done is agreed upon in advance an is fixed. For a beginner full-time employment may be a better fit as you don’t have to search for clients to pay for your services at a given price because you may not have established yourself in the industry just yet. It is my personal opinion that freelance work favours the more experienced developers while full time employment may be best for beginners.

A good Developer Masters all languages by mastering one.

Programming languages are different from natural languages in that mastering one often means you get to learn other languages that much quicker. This has more to do with the fact that the ideas used to solve problems in any given language is just a variation of an algorithm that is common to all languages. The data structures used as well have a very striking similarity when they are not exactly the same. It therefore goes that if you have once reached a senior developer level with java script the same is just as achievable. The skill may not be immediately transferable as programming languages are nuanced.

There’s an order to most things.

This is undoubtedly true with programming more than anything .
Case Study: Web Development.
If you wanted to learn web development the very first thing you should learn without exception is HTML. This is because all webpages have HTML from the most primitive to the most fancy and state of the art. Secondly the next step would be to learn the basics of CSS . A website with just HTML may be impressive to you but everyone agrees that a little style and color never hurt anybody. In fact it is almost an unspoken requirement for webpages on any given website. Programming meets the web with this third requirement, learning JavaScript. To reduce the friction that comes with learning a new technology or diving into a new technological field, you need to follow it’s required order of learning.

Conclusion

There are more tips I could share in the world of technology but I feel these will help you fare just fine . Continue your journey with these ideas and make up your own mind as you make your head way.

--

--

Munalula Sikazwe

I’m a computer Scientist and Python Developer . My hobbies are playing chess and watching movies with convoluted storylines like Tenet or Inception.