loading...
Cover image for Practical Skills I Never Knew I Needed as a Junior Developer

Practical Skills I Never Knew I Needed as a Junior Developer

omarobot profile image omarobot ・4 min read

I’m sure we have all been at a point in time when we prepare ourselves to transition from being a student to working and obtaining that first job. For me, it’s been three years since then, and now as an established Senior Developer, I look back and reflect on that journey.

My goal is to share my experience and a few things I wish I would’ve known to help me prepare for that next big step into web development.

The topics I want to talk about are based on my own experiences and are my opinion, of course, we all have our own. There isn’t a definitive guide to follow whether you are a college student, a self-taught programmer, or someone with nothing better to do. I believe these are all topics developers should learn or be aware of during their transition into the software world.

These topics include server/cloud architecture, APIs, frameworks, Git/version control, CI/CD, unit testing & automation, and development tools.

Server/Cloud Architecture:
I believe it’s highly important for one to understand their company’s project design architecture, which includes how users, applications, servers, databases, etc. all interact with one another. In college, I had a basic understanding of how server architecture and design worked, but a lot of the things I learned were outdated. Companies are now taking newer and different approaches. For example, today, it’s almost impossible not to see some form of cloud architecture in most companies when dealing with web or mobile applications. It’s critical to understand your company’s design and compare it to others to see how they differ and identify the pros and cons of them. You need to learn the lay of the land and the ecosystem before you can start building your house.

APIs:
Ah, those good ol’ application programming interfaces, or as we like to call them, APIs. I would say that these puppies are probably the most important, if not the most significant, in your work as a web developer. During my time as a college student, I had a brief introduction to their definition and their roles, but I didn’t get any practical training on them. Instead, I read some blogs and articles, and then I started experimenting and built my own web applications. In a nutshell, they provide a way for applications to communicate. I can go on for hours talking about this topic. Just take my advice and learn the ins and outs of APIs, including what they are, how they work, and how to implement them. Also, be sure to look at different types, such as REST APIs or research other tools such as GraphQL, which takes on a different approach to building them.

Frameworks:
Almost every programming language out there has some sort of framework affiliated with it. Frameworks are your friends, and in most cases, they help guide you in achieving specific things and making your life easier. Each may have an individual purpose but think of them as tools with instructions that can help you build different parts of a house. There are hundreds of frameworks out there, and many of them follow the same concepts. Learn a few of them, maybe the most popular or the simplest, but make sure you learn them. You’re welcome! (You will thank me later)

Git/Version Control:
Although I had used Git for version control along with GitHub to share code with classmates on school projects or to experiment with personal projects, I never really understood its ultimate capabilities in the real world. There, you run into things such as merge conflicts and will sometimes find the need to make a pull request. These examples are only one of many things you might come across, so it’s important you learn some of Git’s more advanced features since they will become a crucial part of your daily life.

CI/CD:
For those of you who don’t know what that means, I am talking about continuous integration and continuous delivery. If you are simply a frontend or backend developer, you probably won’t deal with building and deploying your applications live into production. You most likely have a designated team for this. In either case, it’s important to understand how your build and deployment processes work across your environments. You should understand which environments your application uses, how your application is distributed, and how those pipelines interact.

Unit Testing/Automation:
As the world turns to automation to solve our problems, this subject becomes more and more valuable. To make sure you are delivering quality software to your clients, unit testing, and writing automated tests for your software are essential and will increase your overall value as a developer. Look into different frameworks that can help you achieve this.

Development Tools:
If you want to master your craft and be more effective in the way you work, you have to take advantage of the development tools that are out there. For example, we have tools such as Postman, Docker, Cordova, and many more that help you with the process of writing code, as well as testing and shipping it out to clients faster. Everyone needs a little boost.

The possibilities are endless on what you can learn on the path to mastering your craft. These examples barely scratch the surface, and even I have a lot more to learn.

I hope my words help you in your transition from student to career developer. Good luck on your path within this endless matrix.

Please don’t stop the music, Mr. DJ…

Posted on by:

omarobot profile

omarobot

@omarobot

I am a technology and music enthusiast who enjoys learning new things and traveling the world.

Discussion

markdown guide
 

In my own opinion I don't think that a junior should be necessarily covering all this content, it's rather overwhelming especially for newcomers. Also not to mention that there are in fact middleweight developers out there and probably even seniors without prior knowledge of writing say unit tests or know the difference between containerization vs virtualization.

 

Exactly. Learning is a journey where you need to take your time. Think long term. Don't try to learn everything at once; go step by step.

 

Couldn't agree more Matthieu. I should have been less overwhelming. I will be be more perceptive next time

 

I definitely agree. This post should be a lot less intimidating for newcomers. The only reason I brought up all these subjects is because as an intern, I touched on all of them without much knowledge and was a little lost. If I at least knew the definition of each one of them I would have been better off. Nevertheless, everything is a learning experience and I want to share knowledge with the world.

 

I understand where you're coming from but lot of those seem out of the remit of a junior developer. If you want to move up definitely but I'd consider myself a junior with a lot ofthis stuff I have heard of most of those things but have no real interest in learning them yet I need to learn the code first before looking at the tools to go with it.

 

You are totally right, I guess I should have made this post a little less intimidating :/ The reason for it is because I truly did have to go through all these subjects as an intern without much help and spent a lot of sleepless night trying to figure these things out on my own.

 

I can appreciate that trying to learn all this stuff on your own is hard. I've learnt to use git and have been learning Vue framework I know a bit about APIs but not enough. Both the good and bad part of being a developer is there is always more to learn most of what I've struggled with is knowing what to learn but I've found things I'm interested in and learning more about those.

 

Only for the Mr Robot banner, I valid the post ✅

 

Haha such a great show man!

 

Awesome! Looks like I have some more reading to do.

 

It's always a process, take your time and have fun with it :)