You want to be a front-end developer. But where do you begin? There are great jobs available building the next big thing on the web. But these jobs require a coherent set of skills. You need a plan.
There are great jobs available building the next big thing on the web, but these jobs require a coherent set of skills and you need a plan. You need to define your own developer learning path.
This path identifies the technologies you need to learn and the dependencies that exist between them.
We need to choose relevant technologies and understand how they fit together.
It can help to understand the nature of learning and certain patterns begin to emerge. Firstly recognise that you are not alone if you feel overwhelmed by technology - everyone working in the technical space faces the same challenge.
The pace of change in front-end development is rapid. Experiencing "impostor syndrome" - the belief that you are not as competent as others perceive you - is commonplace in a technical role. The nature of your job involves pushing technical boundaries and discovering new skills.
But you cannot learn everything. What follows is a suggested learning path to acquire a stack of relevant skills.
Is this the definitive learning path? No.
As the proverb says "There are many paths to the top of the mountain".
You do not have to dive deep into CSS. There are frameworks like Bootstrap to help you construct responsive layouts.
Get fluent with ES6. Then learning React or Angular will not seem such a big deal.
So we say, do your ES6 homework first then just dive in. The framework will build a lot of the code for you. There is no need to dust off that old jQuery manual.
Typescript is central to how Angular works, but it remains optional in other frameworks like React.
We think TypeScript is a good idea. It's what is known as a Strongly Typed language - which will help spot errors earlier in the development life cycle - even in the editor as you're going along. And there's a chance your teammates might even understand your code ;-)
Another feature called "Promises" allows you to write clean code that handles async events and avoids complex nested logic. Alternatively, "Reactive programming" offers a new way of thinking. Interactivity and events can be treated as streams of async events over time.
One of the biggest deals in Reactive frameworks is the use of "Observable" objects to manage async streams of data - which is a central idea within the Angular framework.
Since "Web 2.0" requesting data has involved making AJAX calls to REST APIs and getting back JSON data. This approach works but what you get back can lack precision. To give it an analogy, if you order your favourite dish in a restaurant, you probably don't want the waiter to return with an entire menu of food. GraphQL solves this problem. This query language from Facebook precisely returns the data you requested and nothing more. Less data means higher performance, means happier users.
Don't skimp on learning GraphQL - it is likely to play a big part in your front-end development career.
Build something small and then repeat. Get into the habit of continuous learning by writing lots of small projects. This work is hard. Stuff will break - which is just fine.
For inspiration, check out "100 days of code". You will find lots of developers who have set themselves the goal of writing a small project every day for one hundred days in a row. Forming the habit of learning is as valuable as the thing you create.
Don't forget to take a break and go for a walk every now and again.
Learning takes time but small amounts of effort every day will compound over time.
In no time you will be wearing that Dr. Who T-shirt!
If you found this article interesting and you'd be interested in some of our courses.