loading...

What are the absolute top learning priorities for getting the first junior software engineering job?

sophia_wyl profile image Sophia Li ・1 min read

I started my programming journey 6 months ago, and since then I've come across many developer roadmaps/guides that include a lot of information. Is learning every single topic in these guides realistic? What skills would you prioritize?

Question: From your experience, what would you say are the absolute top learning priorities for getting the first junior software engineering job?

Share your thoughts in the comments πŸ‘‡!

These are a few of the roadmaps:

  1. Front-end Developer Handbook 2019 by Front End Masters.

  2. Front-End Checklist by David Dias.

    GitHub logo thedaviddias / Front-End-Checklist

    πŸ—‚ The perfect Front-End Checklist for modern websites and meticulous developers

  3. Roadmap to becoming a web developer in 2020 by Kamran Ahmed.

    GitHub logo kamranahmedse / developer-roadmap

    Roadmap to becoming a web developer in 2020

  4. Frontend Developer Learning Guide on Notion by Ire Aderinokun.

  5. Web developer roadmap by Ladybug Podcast.

  6. Web Development In 2020 - A Practical Guide by Traversy Media.

Posted on by:

Discussion

markdown guide
 

Every single roadmap I saw often shows the path to become an intermediate front-end engineer, not a junior one.

I'm a front-end engineer for more than 2 years now and from my experience, you don't need to know every single topic. Usually, a junior is expected to know:

  • HTML and CSS: basic semantics, flexbox, maybe a CSS framework
  • JavaScript + JSON and interaction with APIs
  • Version control (git and GitHub)
  • A JS framework, such as React/Vue/Angular. If the company works with React or Vue, you'll probably need to know routing and state management.

And that's all, to be honest. At least, from what I've seen. Yes, accessibility, performance, testing, SEO, SSR, TypeScript, UI/UX design, knowledge of databases and servers or GraphQL are good to know but not required, in my opinion. Also, your soft skills, willingness and motivation can play a significant part in an interview, it shouldn't be underestimated.

However, If you're aiming the top companies right off the bat, you'll need to have computer science knowledge such as data structures (arrays, trees, graphs) and algorithms (sorting, searching, etc.).

By the way, if you need advices or are struggling on something, don't hesitate to reach out, I love front-end development and it's a pleasure to help on this topic.

 

Thanks for your response, Thomas!

Love the way you broke down "HTML and CSS: basic semantics, flexbox, maybe a CSS framework".

Do you have any thoughts on how much JavaScript / what JavaScript concepts a junior dev should know?

 

I'm not sure how many concepts a junior dev should know. It can depend on the company and what they're doing. Some companies will focus on your ability to solve a problem no matter the language. In contrast, others will expect you to know how to write an app in JavaScript.

Personally, I would expect a junior developer to know the following:

  • JavaScript basics: variables, scopes, control flow statements (if, for, switch, etc.), arrays and array methods (I wrote a post on it), objects, working with modules.
  • Knowledge of modern JavaScript: let and const, arrow functions, destructuring, classes, Promises, async/await

In short, you should know the required concepts to write a basic algorithm in JavaScript and an app written with a framework (React, Vue, etc.).

Knowing "advanced" JS concepts such as the event loop, execution contexts, closures, hoisting, the prototype chain, module pattern and IIFEs are great to know (and will impress) but not required in my opinion :)

Awesome - thank you so much! This is exactly the type of breakdown I was so curious about.

 

Great and very helpful answer for someone like me who's trying to switch carriers.
What projects would you recommend for a portfolio for a Junior position?
At the moment I "know" HTML, CSS and Javascript only.

 

You can take a look at freeCodeCamp's curriculum to have ideas of projects. Keep in mind that it's just for practice, though. It's excellent to level up your skills, but it's not impressive to show them.

My advice would be to consolidate your skills and then move on JS frameworks such as React or Vue. Then, you can build something bigger. It can be a small clone of an application such as Todoist or Twitter. Try to make something you actually like, you'll be more motivated. For example, if you're into movies, create a movie rating app. If you need ideas, I wrote a blog post on finding ideas :)

Once you have the idea, build it and stick to it. Don't fall into the trap of doing too many (small) side-projects!
Having one big project is better and more impressive than having a hundred small projects. Most of the time, people who will look at your portfolio will usually check out one or two projects, not more.

 

I'm dying. How can I get one of these coveted Dev jobs without a degree? I have blown past the min requirements you have listed, but I'm not getting any HR love. Suggestions?

 

Hey I could use a code review for an issue I'm having with a firm calendar in a Gatsby/react app if you're up for a quick challenge.

 

Hey, sure! Feel free to send me the link :)

github.com/Kieran815/bell_chrio/tr...

dm me for details if you have a few minutes. The state isn't updating from my react-calendar to the main form page. It breaks as soon as you click a date.
facebook.com/kieran.milligan

 

How about some soft skills?
As a young developer, I was told I should be HOT

  1. Humble - take credit, but don't take all of it. Don't be a brilliant jerk. Everything is team effort.
  2. Open - this one goes both ways. Be open to learning as much as you can, and be open to share your ideas as well. What might appear obvious to you might not be that clear to somebody else.
  3. Teachable - when you find a solution, brainstorm your idea with a colleague. Some ideas appear pristine in paper, but actually sounds terrible when discussed out loud. Surround yourself with constructive criticisms then thrive.

Applies to different aspects of life as well πŸ˜‰

 

Learn to seek mentors to help you to be your sounding board in the type of industry, job or organization you would like to be part of.

Learn to disregard advice from your mentor after thinking or reflecting it through in your own perspective and be open minded instead of dogmatic in nature.

Learn to be humble and not be a brilliant jerk. The worst is being a know it all as it just shows that you lack self esteem & is unable to work as a team player.

 

Thanks, Max! I especially like and agree with "Learn to disregard advice from your mentor after thinking or reflecting it through in your own perspective".

When I'm learning something new, I tend to just try to absorb everything, learn broadly, and not have any opinion on what's the "right" way to do things. But once I have sufficient understanding and practice, then I start having opinions on how / why I prefer a certain thing to be done.

 

Yup your mentors is able to guide or point a way based upon their journey so far. It's the thought process that is more valuable than the advice that is given.

Since it may not apply to everyone unless further reflection and due diligence from your end. Plus it holds yourself accountable for your own growth in what you set out to do.

 
 

Everything here seems to be about getting a front-end web development job, but the title is about getting a junior software engineering role.

People in comments are using the terms interchangeably and I don't think I agree.

 
  1. Basics of HTML, CSS, JS (TypeScript)
  2. Basics of Git
  3. Pick a FE Framework (Angular, Vue, React..)
  4. Start improving all skills together πŸ˜‰
 

Thanks for your answer! I'm curious why you have TypeScript in parentheses? I'm not too familiar with TypeScript other than it's related to JavaScript.

 

Because TypeScript is not necessary if you pick React, only if you want start with Angular.

 

I have interviewed a lot of people during my years. And something that is always valuable is to meet someone passionate about what they do and are hungry about learning and adding value; I usually ask people:

  • What are you currently learning?
  • How do you lean new things?
  • How do you ask for feedback?

Last note:

Always research what technologies the position you are applying for uses. And if you don't know it. Do some research, do some work, learn the basics understand how is used, what is for, and what other alternatives are out there.

 

First priority for any dev job is always going to vary based on just what sort of development you're doing and what language you're using, but you always need a base to learn from, which will usually consist of a) basic familiarity with the fundamental syntax and data structures of the language and b) sufficient understanding to read the docs and get a more advanced familiarity. You don't need to understand immediately what a closure is in Javascript, but you do need to be able to learn what it is and why it's useful.

And of course the whole gamut of non-coding skills for setting up and contributing to a project, like git, proper communication, understanding of efficiency, etc.

 

If you've been learning for six months you know enough for a junior position. What you need to work on are your career skills.

  1. Persistence.
  2. Creativity.
  3. Networking.
 

The two primary skills a programmer / software developer needs to have are:

The ability to quickly research and come up to speed on new knowledge and technologies. The landscape changes constantly and rapidly. There is a ton of stuff to know. Its not feasible to learn it all ahead of time. Focus on being able to zero in on the knowledge you need J.I.T.

You dont need to memorize the signature of every api method, just what the api is useful for and where to find it.

Coming up to speed on knowledge as its needed is a critical skill for the working codeo sapiens.

A working knowledge of the fundamentals. This accumulates over time as you practice the craft. How much you need may vary, but more is always better. A very good programmer is one able to build her own tools. Understanding your compiler well enough to build one (you know, if you felt like it), helps you write code which is better, more efficient. Pick good tools and learn as much as you can about how they work.

i wrote this quickly using only my thumb, so please forgive any imperfections in grammar, or otherwise.

Remember to have fun. Cheers
Kenneth

 
 

Hi Sophia, I understand that you are a front-end dev, but do you know anything similar for junior back-end developers? Thank you!

 

I haven't found any back-end ones except for the one in Kamran Ahmed's guide.

 

Thanks so much, this is very useful!

 
[deleted]
 

And anyone determined enough to go so far as to solicit opinions on their career prospects from the unwashed internet masses should negotiate for a better title than one with the word "junior" in it.

 

Thanks for mentioning the Front-End Checklist Sophia! I'm glad it helped you on your journey. Actually on a version 2 that should be out soon!