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:
- signing up for my free weekly dev newsletter
- subscribing to my free YouTube dev channel
Latest comments (54)
With the rapid pace of change in the tech industry, it can be difficult to predict which skills will be in demand in the future ?
However, there are top 10 skills that are essential for any front-end developer.
I think the security part can be something you don't want to be an expert at initially.
Instead of piling on to or tweaking this list, I'll start with what too many people in positions to hire devs at any level - but especially junior - fail to notice, acknowledge, or emphasize:
0) Willingness to:
I may not be able to hire you on this alone, but I can forgive and work with you on getting up to speed on anything lacking in what everyone else has mentioned if I see that you're strong in this requirement 0.
Hire for potential, not just current demonstrated proficiency - and that's not even getting into just how awful and ineffective most hiring processes' checks for proficiency are.
While far too many companies treat "junior" as "we're too cheap to pay you mid-senior level, but you still need a gazillion skills in these (often niche) technologies," it actually means "entry level" or not far from it. Keep that in mind and remember that you used to be there, just waiting for someone to recognize your potential and give you a chance, or at least tell you where and how to improve.
And if you expect all these things right off the bat, then you should probably be mentoring the hell out of people on and off the job; or at the very least, making damn sure you follow a rejection with detailed pointers on where to improve.
Javascript, Html, CSS, and JQuery. Any less and I'd be surprised if you got considered.
This post is really helpful for newbies like me. Thank you .
Curiosity and willingness to learn!
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.
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.
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!"
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.
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 all I do is backend, but I know everything listed here, can I call myself Junior Frontend & Junior Backend?
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.
1) CSS
2) HTML
3) PSDs - Photoshop
These three are enough for junior fe developers.
Rest can be learnt on the job.
d