loading...
Cover image for What is the Minimum Skillset for Junior Frontend Devs?

What is the Minimum Skillset for Junior Frontend Devs?

nas5w profile image Nick Scialli (he/him) ・1 min read

The web development ecosystem is downright daunting for newcomers. I’ve been thinking a lot about what a minimum curriculum for frontend devs might be. In other words—what’s the minimum path from nothing to applying for your first FE job?

I think it’d go something like this:

1) How the web works (e.g., client v server, HTTP)
2) HTML
3) CSS
4) JavaScript
5) Git
6) Choose a framework (React, Vue, etc)
7) Security (e.g., HTTPS, XSS, CSRF)
8) Accessibility
9) Projects (~1 vanilla, 2 framework)

Thoughts? Obviously, there’s so much more to the ecosystem, but again I’m trying to distill down to the minimum for a first FE job.


If you enjoy this discussion, please give it a 💓, 🦄, or 🔖 and consider:

Posted on May 28 by:

nas5w profile

Nick Scialli (he/him)

@nas5w

Husband, dog dad, software engineer, coffee monster. Working in civic tech!

Discussion

markdown guide
 

I would take away the framework option. To me that is generally something a junior can learn or adopt on the job. An understanding of JS is most important.

 

At least with the way I learned, I started with a good foundation in vanilla javascript got a couple of small projects under my belt and then learned React. I'm super glad I went in knowing it already otherwise I would have been completely lost I was able to be up and running in a week rather than months. I would say it's definitely learning at least one then the rest should be easy.

 

Well... That depends.

You should be able to land a job by saying "I know Angular" (or Vue, React, whatever). Learning this stuff top down instead of bottom up, is an option and you can very well learn about http, an vanilla JS on the job.

 

That works if a company has a fixed approach to the way in which they do front end however it also pigeon holes the developer from moving on if they want to or increases the ramp up time if the company changes framework for whatever reason. A really good example of this is working for an agency doing projects for different companies. If one project requires Vue and another React then the developer will need to learn both. With a top down approach having learnt Vue they may not know the base concepts from Vanilla Js that would apply to React and therefore their ramp up time would be a lot slower than if they just had an understanding of Vanilla Js. It's all JS at the end of the day and I'd argue you can never fully understand a framework until you understand the base component.

All of what you said, is true. Top down might not be the fastest way to get to the long term goal, but it might be faster for the intermediate goal "landing a job".
If you got plenty of time, by all means approach the whole thing bottom up. If not, top down is a valid option.

 

In my experience, the work of a junior frontend dev can vary between different companies. There are companies (bad ones) that expect juniors to create full projects from scratch, these companies usually are consulting companies and I have seen several companies with projects full of bad practices and wrong software designs due to the lack of experience and preparation of these juniors developers. On the other hand, we have companies that develop a single product or a limited amount of products in these companies juniors usually have to work in very specific tasks and they would have the opportunity to learn from a senior developer, unfortunately, it is very difficult to get this kind of job, there are very few of these.

So, now having this in mind the answer to our question What is the Minimum Skillset for Junior Frontend Devs? Really varies from company to company. I believe that it is a good set of knowledge and skills that you have already listed here which allow newcomers to have a view of the big picture. I have taught people with no prior knowledge of programming to code inside a company and they are great developers nowadays. I believe that soft skills are more important than hard skills.

I believe the more important soft skills that a junior should have are the following
1)-Having the eagerness to learn continuously- I would expect a junior developer to work 6-8 hours daily and besides that investing 2-4 hours learning everything that they can. On free days invest 4-6 hours the more the better.
2)-Having the courage to recognize that there will be always something that you do not know- When falling a technical interview or being asked to do something that you have no idea how to do it don't blame yourself instead have the courage to use skill 1) and 3) and learn that thing that you don't know.
3)-Be humble and ask for help as often as you can- This is very important developers are very intelligent people and sometimes, they do not accept to ask for help because on a normal day they don't need help but in the programming realm there is a lot to learn and the more important things to learn comes from the experience if you are a newcomer pretending to know everything let me tell you that that is the worst strategy that you can adopt, learn to be humble and ask for help, also learn when to ask for help and how. Try not to bother every 5 minutes the same person, don't be ashame to say that you no idea about how to doing something, and if in your workplace there is no one you can learn from then go to online resources, stackoverflow, dev.to, go to workshops, hackatons, FB groups.
4)-Be resilient, learn from your mistakes and try again- If you fail at an interview or when creating a project. Embrace failure and learn from your mistakes I can assure you that this is the more important skill. If you didn't know how to answer a question in an interview then do some research to understand why you failed and fix it. Theoretically, there is a limited amount of things that they can ask you in a frontend junior interview maybe after failing 5,10 or 50 interviews learning for each mistake there will be a point where you will pass any interviews I am telling you that because that happened to me I failed like 23 interviews but that was few year ago last time I applied for jobs I got like 8 job offers and it is not like I am very smart or I am genius it turns out that companies always ask the same questions in interviews, in my last technical interview I solved 4 whiteboard algorithmic questions in like 20 minutes and the interviewer told me that I was supposed to solve 1 at most 2. He got angry and told me How did you do that? Did you memorize everything? lol I even put edge cases, architectures, different language implementations, corner cases, test cases, design patterns, FP vs OOP approaches and data structures. And still, I feel like a complete ignorant (rule 2).

Hopefully, my opinion can help any newcomers. Sorry for bad english.

 

If new-comers focus on...

  • HTML5
  • CSS
  • Typescript
  • JSON

That's a good start.

The back end or cloud requests all follow same pattern.

Keep functions small each doing only one thing.


Angular can help because 2 commands create a fully functional dev. Web site. Where all the stuff listed above just works. Instant lab.

 

Keep functions small each doing only one thing.

This is gold.

 

As a newbie to the industry, giving my two cents I'd question a front-end dev role requiring how the web works and frameworks. Everything you've listed goes under tooling for me. HTML/CSS/JS are simply languages, Git is a method of tracing work, and Security / Accessibility are a must to consider when an End-User is trying to use your product. A Front-End importantly needs the skillset of what the user is needing and the empathy to understand why.

For example, recently I've moved away from a hamburger menu in my own site to a more native feeling bottom-bar approach because mobile users are bottom-bar navigators. My menu was short enough to transition to an approach where the main navigation should be in thumbs-reach at all times. If not, I can always add a vertical ellipsis / hamburger on the left or right (depending on country/culture) for further navigation options.

I actually love working with accessibility because it's concrete standards.

An Engineer should understand the deeper learning of how things work, however any developer or engineer first needs the fundamental skillset of problem solving in a way that suits the role presented.

Personally I've not landed a role in web dev just yet, I've love to work in Front-end, but I've learnt Full-stack JS for what Peyton mentioned; adding in other tools, languages, and how your own work is implemented is integral to understanding how your own work impacts on a project or for other members of a team. Combined, they're presented to the user who should hopefully be able to navigate their way with ease to what they're wanting to attain.

 

I think the minimum path from no prior knowledge is 12-18 months worth of concentrated study on the topics you mention above. A code school is a good option to structure that time and accelerate learning, if you pick a good one. Starting out with a month or two of self-study would be a smart way to see if this is really for you, before investing in technical training. It is possible to teach yourself, but your odds go up if you are in a cirriculum built with the end goal of getting you the job you want.

 

Over the top standards. Juniors should come with a solid base understanding of JS, CSS, HTML and how the web theoretically works with each other. Everything else is learnable or a plus.

Now let’s talk soft skills. Communication and being able to discussion objectively should be nothing the junior is afraid off. Teamwork and the kind of spirit to learn new interesting stuff must be given.

 

Mine is basically the same. I would add:

  • ES6 JS
  • Serverless
  • Tooling (Webpack/Rollup, ESLint, Prettier, VSCode)
  • Node
 

I would say if you added those, that would be a full-stack minimum requirements

 

well full stack also can involve Java or ASP.NET (sometimes Go) and the data-layer (Postgresql/MariaDB)

 
 

I'm not a frontend developer, but imho i would take away accessibility and maybe put in JSON and some basic knowledge (really basic) of webpack.
I'm not quite sure about focusing on a framework. A basic knowledge about the differences between Angular, React and Vue and how they work could be well enough for a Junior FE position.

 

I would say, basic accessibility knowledge is definitly neccessary. Esspecially I would put some of this basic knowledge into knowing HTML, because writing correct HTML avoids many a11y issues.

 

I think it depends on the job:
maintenance -> you need a bit of JS, CSS, HTML, JQuery, Bootstrap.
Greenfield -> basic understanding of TS and one of the 3 major front-end tools (Angular, Vue, React) along with one of their widget sets (well Angular means just Angular Material)

Security and Accessibility from a junior... I don't know. In the end your list seems to fit better for a mid-level (3-5 years experience) rather than a junior.

 

I would add: Optimising performance.

 

I think a junior programmer should have developed using some modern UI framework (like React, Angular or Vue). They should have done some meaningful project to land a job.

Which framework is less important. But I don't agree that just knowing JavaScript is enough. Because there's a lot of knowledge that comes with these frameworks that is hard to pick up.

I would say that if the person were senior but didn't know any of the frameworks it would be no big deal. But as a junior its important because you don't have years of knowledge under your belt. Besides, all companies prefer if you hit the ground running.

 
 

Curiosity and willingness to learn!

 

My bar is this. Can you learn and do you care?

 

Yes I can and I do care to learn.

 

Then to quote Dr She's. "Oh the places you'll go!"

 

Any thoughts on whether responsive design belongs on this list?

 

I think it falls under "nice-to-have" but not a "must-have". I guess having no idea about responsive design is bad but having some should be totally acceptable.

 

Why you think so? (serious question)

From my point of view many components of "responsive web design" are a required part of knowing CSS.

Sure. They could be required part of knowing CSS but not necessarily a requirement for being a junior developer, do you agree? Knowing some of it and learning the rest of it on the job should suffice. What do you think?

 

If all I do is backend, but I know everything listed here, can I call myself Junior Frontend & Junior Backend?

 
 

Don’t choose a framework.
Try several, and pick favorites. Yes, plural.
Have them think how they’d implement their fresh knowledge in different playgrounds.
Also, 6 can be done after 8.

 

1) CSS
2) HTML
3) PSDs - Photoshop

These three are enough for junior fe developers.
Rest can be learnt on the job.