Starting to work on a real commercial project is without a doubt the most popular goal for junior developers. But getting there is not that obvious. Last year I was fortunate enough to join the team at Liki Mobile Solutions in a role of a Junior Frontend Developer after a great internship program, which gave me an opportunity to learn how the whole project lifecycle looks.

Prior to the internship I was learning on my own in the free time. Getting to know the basics – HTML, CSS and vanilla Javascript was crucial before going step ahead and doing anything related to frameworks/libraries like React, Angular or Vue. Yes, they help a ton when developing a project but without knowing the basics, using these frameworks would be very confusing instead of being productive and helpful. Thankfully the Javascript community is very active and is still growing so there’s a lot of free resources online to learn from. The three most valuable sources of knowledge for me at this phase were:

  1. freecodecamp.org – a non-profit organization with interactive courses ranging from basics of HTML, CSS and JS to using frontend frameworks and using APIs. I think that it’s a perfect place to begin with for self-taught developers as the courses teach and later verify your knowledge. Each next level has incrementally higher difficulty and relies on knowledge based in previous lessons.
  2. developer.mozilla.org – great addition for freecodecamp. This site contains documentation about HTML, CSS and JS so it’s a great place to supplement the knowledge gained from online courses.
  3. Video courses on YouTube – especially Traversy Media and TheNetNinja channels – both of them are great compendiums of video courses about various programming languages, frameworks and tools. The courses range from teaching basics of different technologies to building projects using them.

The next big step was to move on from the tutorial phase and start building small projects. They shouldn’t be too complicated because that’s an easy way to become unmotivated and never finish them. I’d suggest to focus on projects without too much of HTML and CSS. Focus on Javascript logic – projects like password generator, calculator, to-do list etc. are the best to begin with.

The most important part of becoming a React Developer for me, was making small but complete projects using React (remaking vanilla JS apps from the previous step could be a good option). Building these microapps from scratch is a great way to familiarize yourself with correct project architecture and all the configuration needed to get your app running. It can be a little overwhelming at the beginning and it could require you to do some additional research but with every next project this process becomes easier and easier.

The biggest drawback of this approach is that there’s a good chance that you won’t need to use some of the more advanced React features during the development, so it would be a good idea for you to dive deeper into the documentation and try to implement some of those features into your apps just to know that they exist and how they work.

This is a good point to start looking for internship offers or to find some small commercial project to work on as a freelancer but in my opinion joining an internship programme at a software house is a much better choice. Here’s some of the best benefits of doing so.

Experienced Colleagues

Being surrounded by experienced developers who are eager to pass their knowledge and answer your questions results in a huge experience boost in a short period of time. You may think that you ask too much questions or the things that you want to ask about are obvious but remember – there’s no stupid questions.

Tips:

Before asking a question try searching for some possible answers. It will allow you to propose multiple possible solutions and ask which of them is the best for a specific situation. Doing so not only answers your question but also gives knowledge about good practices for a specified circumstances. Also you should avoid bombarding other developers with questions when you see that they’re busy. You could write the questions down and ask when they have some spare free time.

Code Review

Another great part of working with other programmers is the code review – a process of taking a critical look at code made by other developers. Seeing solutions made by people with different experiences provides a great opportunity to see other perspectives and thought processes, which results in having a broader look at how to solve various problems. 

Doing code review also changes the way you analyze your own code – it helps to look at it in a more objective way without getting your ego involved.

Tips:

  • First of all – check your code by yourself before asking for a review. It will allow you to catch the typos and missed console logs. Next thing that helps immensely is using a linter and should be used in every project as it’s a automated way to check if your code follows specific guideline and if it follows language good practices – amount of new lines between function declarations and variables, single quotes vs double quotes, remove unnecessary semicolons and bunch of other rules. Linter allows to find syntax specific errors and lets other developers focus on the code logic while performing the code review.
  • The second tip is about psychological aspects of code review in which beginners may struggle with. After pushing your first commit and making a pull request you may feel sort of connected to your code and treat the received comments too personally. Just remember that you’re working as a part of a team and the main goal of everyone involved is to make good software. The code that you write doesn’t represent who you are as a person and the comments you receive are meant to help in your personal growth.

Soft Skills

Being a part of a full team also familiarizes with other – not technical aspects of working on a project. Learning how to properly communicate with designers, getting to know one of agile work frameworks like Scrum or Kanban, gaining knowledge on how to properly prepare for a demo and so on. All of this results in growth of soft skills which are as important as technical knowledge and will greatly benefit in the next steps of your career.

Tips:

At first you should learn who is responsible for what in your project and in the whole company. It will make life easier as you will know who to ask depending on what you need – from asking for a day off to asking for a raise or new hardware.

The next thing worth noting is that you should know how to clearly explain technical topics about the project to people who may not have much knowledge about programming.

Last but not least – learn core concepts about work methodology that the project is carried by. For example at the beginning of working in the Scrum methodology you always should prepare a short list of things that you want to talk about at each project meeting. That preparation will require less and less preparation with each meeting as you will increasingly gain knowledge which topics are worth talking about and which can be skipped.

These are only the three benefits of working in a software house selected by me but the list of valuable experiences of working in such an environment is much longer. The only way for you to witness all of them is selecting a similar career route which I strongly recommend. Remember – it’s never too late to start in IT.

Leave a comment

Your email address will not be published. Required fields are marked *