Photo by Susan Q Yin on Unsplash
Tips on skills and tools I needed starting my junior dev position.
As a junior developer its fairly easy to set yourself apart from other developers, and that’s mainly because of how you do things or fail to do things efficiently or even effectively sometimes.
So I want to share concepts and tools that could help you make a better impression to your employer as a junior from university or just changing jobs from another field to now developing software.
Mind you some of these are skills and others are just tools to master, so let's discuss how they can help your journey.
Learning Correctly:
Learning is a 4 stages of understanding process. You want to get to level 4 quickly.
Something that I hope you already know is that developers are as good as their ability to learn tools & languages, so I advise you to learn how to learn. We have explored that subject before with Targeted Learning topic
My senior showed me how after learning a tool I still lacked some important fundamentals in the tools, so he came to tell me to learn tools correctly, not in a rush.
A powerful process that works for most people is to code along with the tutorial they are watching, or to actually build something with whichever language or framework you are currently learning.
Spend a good amount of time picking and choosing the languages or tools you intend to learn, and look at what is the outcome you sought to create with these, for instance when you have a job its easier to choose because you will just focus on the tech stack the company you work for uses or plans to introduce into the company.
If you’re not working in a company look at the company you intend to work for and choose the position you would love to have, look at what is required for that position then use that as a guide for your learning road map. In closing, I want to clarify that you have not truly learned fully until you build something with what you have learned
Documentation:
Documentation is the guide you create for the people who will use or maintain your work, so as a developer since you will re-use other people's code you have to learn how to use the docs.
Simply start looking at the basics of how a language or library is used, practice it, then go to more advanced topics to learn them and practice those topics also.
Youtube videos are important because you can see someone else using the docs to build something. Focus on the details of how they implement a code segment and why, this will clarify why the docs are created that way.
Allow yourself to understand what the docs say about a topic, do not try to remember the entire documentation or code segments, but simply focus on grasping the understanding behind the documentation and its functionality.
It's important for you to know that documentation is how people build & maintain applications and you knowing how to use it means you can maintain their code and understand it
Source Control:
GitHub is widely used in the developer community to maintain code standards, work remotely in teams, track bugs, and also to extend the codebase.
All companies use a coder versioning tool or source control, and these all have the same functions but will differ in implementation and versatility, you must learn how to use these.
You want to get to the company with some experience and understanding of source control, so I advise you to start using it with your personal projects to maintain them and grow them with tracked progress, that's good for your portfolio.
Work with other developers on projects and use source control to work remotely or keep your code up to date and backed up remotely. Let this be a task for your networking growth.
You also need to be able to access your repository in an interview to show people your code, and that’s only possible if you even have one.
Then a final but important point is that GitHub actually has code for other people's projects and even learning material and you will always be excluded from these resources if you are not familiar with GitHub.
Debugging:
It's well known that nobody can write “bug-free” code, but then juniors always fear bugs and panic when they meet them - at least I know I did. So, how do you approach and handle bugs?
Learning syntax is not solving errors, don’t be shy to google the methods of how to debug it. This can be simply copying and pasting the error online or describing it.
Bugs are not errors, errors tell you where the bug is, so read the error carefully so you can find the source of the bug. For logical errors simply use breakpoints or print the logic as the compiler passes it so you can see what the logic is doing.
Do not spend too much time trying to fix a bug, ‘especially if you don’t know what it means, just reach out and ask for help either online ‘stack Overflow, code circles, medium’ or locally
Give yourself time to understand debugging tools like chrome developer tools, the compiler debugging module, or Redux developer tools, I am sure the list is longer than that but I am simply saying bugs are out here and so are debugging tools.
You cannot avoid bugs but you can handle them when they come by using debugging tools and reading errors. You can also start learning testing as a skill to help you get confident in your code and bugs. Well, that goes for me too still.
Using try-catch blocks is very important to handle errors from code you know might or might not break. I do not condone adding try-catch clauses all over the code but it's important to look at defensive programming principles.
Communication is key:
Communication is such an important part of the development process such that a project might actually not get to production because of poor communication.
I want to specify on a personal level that, being able to express yourself without arguing, being able to listen and fully understand what a person is saying, the ability to take command and execute it smoothly are important for developers.
As a developer your career does depend on your ability to listen, to follow instructions, and to ask whenever you get confused and lost, it also lies in your ability to voice out your concerns, your hurdles, your confidence in a solution, or method of fixing a problem.
So learn to speak properly, clearly, and respectfully. Don’t cut people off, don’t bad mouth or attack others during interaction, it's rare to solve a problem by attacking a fellow developer/partner.
Allow yourself space to learn new things and know new people. Study the people around you and learn where they have set boundaries for you not to cross but handle people with respect and care at all times.
Pay attention to the way you reference people, the way you ask for things, and the response you give after you get what you want. Look at how you write emails and reports, it all reflects who you are and how much respect and responsibility you deserve.
Networking:
I want to express that as with developing it's important to mind the company you keep, being exposed to other developers will grow you, will drive you, will boost your confidence.
Spending time with other developers will help you see different ways to solve problems, it will help you feel less afraid to handle certain responsibilities.
Developer groups have a way of opening your mind up to possibilities that are out there, they allow you to connect with people who help you grow as a problem solver and a creator.
The right network will lead you to a much more stable career and also with ease since you will have some support, help, and validation since these greatly impact your confidence.
Your network will also help you build a good profile if they help you start, maintain or finish projects, this is a good badge for your profile and your career in the long run.
With that said, pay careful attention to how your social media presence is looking, put a conscious effort into building a professional profile and build online relationships with other developers.
I truly hope these will help give you a good start with your growth and your path moving forward. This list is a start and a very good list, but there are still more. So go out and search and find what works for you. Thank you
You have got this:
In closing I need to express that none of this is new to you, for most of us the issue is not knowledge but consistent practice. Work on each of these one at a time and celebrate those wins, I know very well that it is not easy, but the fact that you read this far means you mean business and you can do this. Believe in yourself and lets start or carry on this journey correctly.
and as always don't be shy to share how any of these affected your growth as a junior.