I want to start front-end development. So, my question is what is the list of languages, frameworks and libraries I should be familiar with?
- Repeat 1st until you won't master it
- Node, npm, some build tools like rollup.js with at least babel plugin
- Learn how to write custom node scripts and automate your front-end. Don't use gulp/grunt/bower/whatever
- Don't learn any frameworks, learn software architecture and engineering principles, paradigms, design patterns, best practices, algorithms. Take a look onto MVC.
- For styling start from SASS but keep learning all the latest CSS standards and features. Take a look into ITCSS and BEM. Browse the source code of Bootstrap 4, try to configure BS4 with SASS and write custom code on top of it.
- For HTML - HTML5, HTML5.1, Web components, Web accessibility, start using semantics as much as possible, custom tags and attributes are ok.
- Try to build your own simple tempalting engine to understand how it works
- Try to build own small framework/library, you can take a look into source of Monkberry, Vue.js, React
- Try to build own simple routing, you can also play with latest browser History API and pushState
- Try to build custom vanilla JS simple app like TodoMVC from scratch
Now you can waste time learning any of thousands of frameworks around but I believe you won't finish my starter list until you will find a job as a jr. front-end engineer where you will have to learn some tools, frameworks which company is using anyway.
Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!
💬 Ask programming questions without being judged
🧠 Stay in the loop and grow your knowledge
🍕 More than 500K developers share programming wisdom here
❤️ Support the growing dev community!
While the others wrote great answers, I really want to encourage you to use the Hashnode search before asking a question, because we already have some stuff to read over here, for example:
Let me make a tl;dr for you:
- There are only three things to learn, which are standardized: HTML, CSS and JS.
- Forget about frameworks and libraries for now. You will not learn the essence with them and you will never become good if you only rely on tools without knowing the basics. Libraries will come and go, but the basics will always be the same. You should only learn a library or framework to abstract away tedious stuff you already know and understand and only if it solves a particular problem! Look, learning tools at your stage is like trying to take a shortcut in a race. You will see results faster, but you will never be the best runner and there will be some point where you will not be able to use a shortcut any more; that might be the most crucial situation and you are going to fail then. For example when you learned Angular, but the company really needs some React. There are millions of libraries. Learning one will get you nowhere, when another one is a better fit for the job. Choose the tool for the job.
- Do not learn stuff you do not need. For front end, you will not need any knowledge about HTTP, server-side programming, like Node.JS, or databases. Learning stuff like that will just keep you away from things you really should learn. Also forget about some fancy programming patterns. Only learn a pattern when you need it in a particular situation. Learning for the sake of learning will only result in you forgetting the stuff quickly so you will have to re-learn things.
There are many ways how to go about learning the ropes, but there is only thing which you always have to do: Stay at it and practice practice practice.
All of the tools, frameworks, libraries, and best practices built on top of them will be much easier to pick up and use, or create for yourself if you have a thorough understanding of the 3 languages the web uses.
I would recommend not getting distracted by learning frameworks or plugins right now. If you have knowledge about the foundation of how the web works, then you will be able to pick up new tools and frameworks with as much difficulty as you would putting on a shirt in the morning. And you may change your tools nearly just as often as you change your shirt, but HTML, CSS, and JS will always be constant ;)
Beyond that, like I said, React, Redux and GraphQL are all amazing cutting edge technologies that are a blast to work with.
- you can't get anywhere without this.
- again this important to understand core mechanics of front end dev.
- The most important one. I see everyone saying to learn ES6 here but in reality not all browsers support that. You should learn ES5 so most tutorials or classes you find go over this. Once you have this ES6 is a easy.
You should strive to get a taste of it all if or at least most popular items because most jobs offer these.
- Now when I started I learned this second but its strict styling gives you a better build without making so many mistakes at first and starts you off with some structure. Use the CLI.
Angular JS 1
- Now I know angular 2 is out. But many and I mean many jobs ask for this and it is I think a good thing to learn this before learning Angular 2. You will love Angular 2 after learning Angular JS. I suggest not spending too much time here. Just get the basics and move on.
Angular JS 2
- Now this is were new magic comes into play. Typescript 2.0 really bring this framework into the new age of front end. Now As you can see there is a new thing here so look below.
- Most people will argue you should learn this before the other languages. Really it is a personal preference for me to learn it here. Reacts JSX files to me seem backwards to the days that HTML and JS were in the same files. And well they are again. However I would recommend React with Typescript. Since after all React is JS you can use Typescript.
I mentioned learning CSS before and this is where this comes in.
- Is actually a framework but you can just use the CSS like many devs and if you use Angular there is Angular UI which pairs well with bootstrap to have a more complete feel. Angular 2 however will have a good point in using bootstrap with its component based approach.
- To me this has surpassed bootstrap in many ways but it is a little difficult to take in after learning bootstrap. It's very much a completely new approach.
Try to learn
This is something you should take a look at. It always your best interest to learn more than just your job.
- This also is something that is very different in different projects. But it is easy to learn its basic structuring. This is sits on top of Node JS and well you can think of it as connecting your server to your front end.
because every project has them, maybe just read over the docs if not dive in and use them in your personal projects, highly recommend making your own projects. If you want to see some example work check out my github. me.
- I prefer
- Angular 2 uses
- I think was used on Angular 2 Release Candidates but havent checked out A2 full release yet.
- Just a very usefull package manager. You can use others though. This is just specific for NodeJS.
- This is actually really important and most people don't stress this. There are other similar things out there but if you really want to get involved in the community of devs this is the place to be.
I never had anyone lay out a list of things and reasons of why I should learn certain things. I hope this gives you a good outline of how I learned to be a developer. I have been programming for 4 years now. I know some 15? .. 16? languages. Not fluent but I can dabble in many.
I hope this helps :D
The Dev Community
(Free, friendly and inclusive)
A network for software developers to learn new things and get insight into the world of programming