Things I wish I knew as junior dev.
Tags: beginners, intern, tools, programming
Published: 2022-03-10 08:39:03

## 
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 efficient 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 lets discuss how they can help your journey.

## Learning

![cat reading](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a8988jbjpxzfs1hpf31a.jpg)
- Something that I hope you already know is that developers are as good as their ability to learn tools and languages, so I advise you to learn how to learn.
- 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 which ever 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 out come 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 guide for your learning road map.
In closing I want to clarify that you have not truly learnt fully until you build something with what you have learnt

## Documentation 


![https://unsplash.com/photos/YiRQIglwYig?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zrjeb2cjusfq73yhhu3.jpg)
- Documentation is the guide you create for the people who will use or maintain your work, so as developer since you will re-use other peoples 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. 
- You tube video’s are important because you can see someone else using the doc’s to build something. Focus on the details on 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.
Its 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

![https://unsplash.com/photos/ZV_64LdGoao?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7y1xx97rmhwagk2zepga.jpg)
- GitHub is widely used in the developer community to maintain code standards, work remotely in teams, to track bugs and also to extend code base.
- 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 start using it with your personal projects to maintain them and to grow them.
- Work with other developers on projects and use source control to work remotely or keep your code up to date and backed up remotely.
- You also need to be able to access your repository in a 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 peoples projects and even learning material and you will always be excluded from these resources if you are not familiar with GitHub.

## Debugging

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgrdd3lqx29qmd8wfgy9.jpg)
- Its well known that no body 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 break points 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, or 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.
- Using try-catch blocks is very important handle errors from code you know might or might not break. I do not condone adding try-catch clauses all over the code but its important to look at the behavior and prepare for bug possibility with try catch.

## Communication

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phed44qtez2p5npxok44.jpg)
- 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 a command and execute it smoothly important for developers.
- As a developer your career does depend on your ability to listen, to follow instruction, to ask whenever you get confused and lost, it also lies on 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 on interaction, its rare to solve a problem by attacking a fellow developer.
- Allow your self 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, 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 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s62u9yaga0ce14gsvh21.jpg)
- I want to express that as with developing its 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 in 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

> Have any of these affected your growth as a junior??
### Network with me on :
> Follow me on [VukaniNqubekoGcabashe](https://www.instagram.com/nqubekogcabashe/) for some fun code
> Check my [LinkedIn](https://www.linkedin.com/in/nqubeko-gcabashe/)