Frontend Developer Roadmap 2024: 6 Clear Steps To Senior

theSeniorDev
10 Jun 202421:19

Summary

TLDRThis video script outlines a comprehensive roadmap for aspiring senior frontend developers. It emphasizes the importance of mastering JavaScript, CSS, and HTML fundamentals, understanding modern JavaScript features, and learning programming paradigms like OOP and FP. The guide also covers essential frontend tooling, debugging techniques, testing strategies, and design patterns. Advanced topics include frontend security, performance optimization, deployment, and architectural concepts like micro frontends, SSR, and BFF. The script warns against chasing trends without a solid foundation and encourages building on strong fundamentals to achieve senior developer status.

Takeaways

  • 🚀 **Fundamentals First**: Before mastering senior-level topics, ensure you have a solid grasp of JavaScript, programming, CSS, and DOM APIs.
  • 🧠 **Mental Models**: Understanding the mental models and principles behind frameworks is crucial for a senior developer, not just chasing the latest libraries.
  • 🔧 **Frontend Tooling**: Proficiency in tools like module bundlers, CSS preprocessors, and TypeScript is essential for a senior frontend developer.
  • 🛠️ **Debugging Skills**: Move beyond 'console.log' and learn to use browser debugging tools, IDE debuggers, and framework-specific debuggers.
  • 📝 **Testing Proficiency**: A senior developer should be well-versed in unit, integration, and end-to-end testing, adhering to the testing pyramid.
  • 🏗️ **Design Patterns**: Familiarity with design patterns like component-based architecture, state management, and the virtual DOM is key for building scalable applications.
  • 🔐 **Security and Authentication**: Knowledge of web security fundamentals, common attacks, and modern authentication techniques is necessary.
  • 🌐 **Performance Optimization**: Senior developers should understand client-side and server-side optimization techniques to improve application speed.
  • 📦 **Deployment and CI/CD**: Knowing how to set up deployment pipelines and use cloud services for scaling is a mark of a senior developer.
  • 🌟 **Advanced Architectures**: Understanding micro frontends, server-side rendering, and backend-for-frontend architectures is crucial for senior roles.

Q & A

  • What is the main issue with most frontend roadmaps found on YouTube?

    -Most frontend roadmaps found on YouTube are anti-senior, focusing on chasing shiny libraries and frameworks without explaining the mental models and fundamentals behind them, which is crucial for developers to advance to a senior level.

  • Why do many frontend developers struggle to reach the next level despite taking numerous courses and working on side projects?

    -Many frontend developers struggle to reach the next level because they try to master senior-level topics without first having a strong grasp of the fundamentals, leading to a scattered knowledge base without depth.

  • What are the four main types of fundamentals in frontend development according to the script?

    -The four main types of fundamentals in frontend development are JavaScript fundamentals, programming fundamentals, CSS fundamentals, and DOM APIs.

  • Why is it important for frontend developers to understand object-oriented programming (OOP) concepts?

    -Understanding OOP concepts is important because they are fundamental to JavaScript's prototypal inheritance, which is a core concept in the language, and they apply to other programming languages as well.

  • What are the three key concepts in CSS that a senior frontend developer should understand?

    -A senior frontend developer should understand the Box model, CSS specificity and inheritance, and modern layout techniques like Flexbox and Grid.

  • Why is networking knowledge important for frontend developers?

    -Networking knowledge is important for frontend developers because it helps them understand how data is transferred over the internet, which is crucial for building efficient and effective web applications.

  • What is the significance of mastering module bundlers like Webpack for a senior frontend developer?

    -Mastering module bundlers is significant because it allows senior developers to navigate the source code within applications, understand the build process, and configure JavaScript applications from scratch.

  • Why should a senior frontend developer be cautious about using Tailwind CSS without first mastering plain CSS?

    -Senior frontend developers should be cautious about using Tailwind CSS without mastering plain CSS because it's important to understand the fundamentals of styling before leveraging utility-first CSS frameworks, which can obscure underlying CSS principles.

  • What are the key areas a senior frontend developer should focus on for frontend testing?

    -A senior frontend developer should focus on unit tests, integration tests, and end-to-end tests, understanding the testing pyramid and utilizing framework-specific libraries for effective testing.

  • How does the understanding of design patterns like component-based architecture benefit a senior frontend developer?

    -Understanding design patterns like component-based architecture allows senior developers to quickly learn new frameworks, understand the pros and cons of components, and work efficiently with them in building UIs.

  • Why is server-side rendering (SSR) becoming popular in the frontend community, and what challenges does it pose?

    -Server-side rendering is becoming popular for improving performance and SEO by sending a pre-rendered version of the application to the client. The challenge it poses is ensuring that the server-rendered output matches the client-rendered output, as JavaScript applications were not originally designed for server-side rendering.

Outlines

00:00

🚀 Kickstarting the Journey to Senior Frontend Developer

The paragraph introduces a roadmap for aspiring frontend developers to advance from junior to senior levels. It emphasizes the importance of mastering fundamental concepts rather than chasing the latest frameworks and libraries. The speaker shares personal experience and mentions that the roadmap has been effective for 250 software engineers. The focus is on understanding mental models and principles behind advanced frontend topics such as micro frontends, server-side rendering, and backend-for-frontend. The paragraph also warns against the common mistake of building expertise on shaky foundations, advocating for a strong grasp of frontend fundamentals including JavaScript, programming principles, CSS, and browser APIs.

05:01

🛠️ Mastering Frontend Fundamentals and Tooling

This section delves into the core frontend fundamentals that are essential for any senior developer. It starts with JavaScript basics such as variables, data types, functions, and control structures, then progresses to modern JavaScript features like promises, async/await, modules, and classes. The paragraph also covers programming paradigms like object-oriented and functional programming, including JavaScript's unique approach with prototypal inheritance. CSS fundamentals are discussed, highlighting the box model, specificity, inheritance, flexbox, and grid. The importance of understanding browser APIs for tasks like authentication and storage is stressed. Networking basics like DNS, IP protocols, HTTP, and REST APIs are also mentioned as crucial for a well-rounded senior developer.

10:02

🔨 Advanced Frontend Tooling and Testing

The focus shifts to frontend tooling, which is critical for any developer working on modern web projects. The paragraph discusses the importance of understanding module bundlers like Webpack and Vite, CSS preprocessors and postprocessors, and CSS-in-JS libraries. It also touches on the necessity of knowing how to debug effectively using browser dev tools and IDE-specific debuggers. The importance of frontend testing is introduced, emphasizing the testing pyramid, which includes unit, integration, and end-to-end tests. The paragraph encourages developers to explore testing libraries and frameworks that are specific to the technologies they use, such as React Testing Library.

15:03

🎯 Design Patterns and Advanced Frontend Concepts

This section explores design patterns commonly used in frontend development, which are essential for senior developers to understand. It starts with component-based architecture, a pattern used by most modern frontend frameworks, emphasizing the benefits of reusability and separation of concerns. State management and its impact on UI behavior is discussed, along with design patterns like the state pattern and finite state machines. The virtual DOM pattern, crucial for performance in frameworks like React and Vue, is also covered. The paragraph concludes with a brief introduction to advanced frontend topics like security, performance optimization, and modern authentication techniques.

20:04

🌐 Frontend Architecture and Production Readiness

The final paragraph addresses the architectural knowledge required for senior frontend developers. It discusses micro frontends, an approach similar to microservices for backend, allowing for more manageable and scalable frontend applications. Server-side rendering (SSR) is introduced as a technique to improve performance and SEO by rendering JavaScript on the server. The paragraph also mentions backend-for-frontend (BFF), a pattern that involves creating specialized backend services for different frontend needs. The importance of understanding cloud platforms, CI/CD pipelines, and Docker for deployment is highlighted. The roadmap concludes with encouragement for developers to use this knowledge to advance their skills and prepare for the next steps in their careers.

Mindmap

Keywords

💡Frontend Developer

A frontend developer is a software engineer who specializes in the client-side of applications, focusing on the user interface and user experience. In the video, the speaker shares a roadmap to help frontend developers level up to senior positions, emphasizing the importance of mastering frontend fundamentals and advanced concepts to lead projects for top tech companies.

💡Mental Models

Mental models are conceptual frameworks that help developers understand and solve complex problems by relating new information to existing knowledge. The video stresses that understanding the mental models and principles behind frontend technologies is crucial for becoming a senior developer, rather than just chasing the latest libraries and frameworks.

💡Fundamentals

In the context of the video, fundamentals refer to the core knowledge areas that every frontend developer should master, such as JavaScript, programming principles, CSS, and DOM APIs. The speaker argues that building a strong foundation in these areas is essential before attempting to master more advanced topics.

💡Object-Oriented Programming (OOP)

OOP is a programming paradigm based on the concept of 'objects', which can contain data in the form of fields (often known as attributes or properties) and code in the form of procedures (often known as methods). The video mentions OOP as one of the programming fundamentals that frontend developers should understand, with concepts like encapsulation, inheritance, and polymorphism.

💡Functional Programming

Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. The video discusses functional programming in the context of JavaScript, highlighting the use of pure functions and the shift of computational pressure from memory to the CPU.

💡CSS Fundamentals

CSS fundamentals include essential concepts like the box model, CSS specificity and inheritance, and layout techniques such as flexbox and grid. The video emphasizes that a solid understanding of these fundamentals is necessary for frontend developers to debug and build layouts efficiently.

💡Module Bundlers

Module bundlers like Webpack, Vite, and gulp are tools that bundle JavaScript code into one or more bundles, transpile, minify, and prepare it for the browser. The video explains that mastering at least one module bundler is crucial for senior frontend developers to navigate source code, understand build processes, and configure applications from scratch.

💡CSS-in-JS

CSS-in-JS refers to a technique where CSS is written directly within JavaScript files, allowing for scoped and component-based styling. The video mentions CSS-in-JS as a powerful approach that provides modularity and flexibility, with style components being a popular library implementing this pattern.

💡TypeScript

TypeScript is a superset of JavaScript that adds static types to the language. The video highlights TypeScript as an essential skill for senior frontend developers, especially when working in production environments, and emphasizes understanding interfaces, types, and advanced features like Union and Intersection types.

💡Debugging

Debugging refers to the process of identifying and fixing errors or bugs in code. The video underscores the importance of mastering debugging tools and techniques for senior frontend developers, including browser debugging tools, IDE debuggers, and framework-specific debuggers.

💡Performance Optimization

Performance optimization in frontend development involves strategies to improve the speed and efficiency of web applications. The video discusses various optimization techniques, such as image optimization, JavaScript minification, and server-side rendering, which are critical for senior developers to ensure fast and responsive user experiences.

💡Micro Frontends

Micro Frontends is an architectural approach that breaks down a large frontend application into smaller, independent pieces that can be developed, tested, and deployed separately. The video explains that understanding micro frontends can help senior developers manage complexity and scale teams effectively.

💡Server-Side Rendering (SSR)

SSR is a technique where the frontend application is rendered on the server before being sent to the client. The video mentions SSR as a way to improve performance and SEO, as it allows for faster content delivery and better content indexing by search engines.

💡Backend for Frontend (BFF)

BFF is a pattern where a dedicated backend service is created specifically for a particular frontend application, allowing for tailored APIs that fit the frontend's needs. The video briefly touches on BFF as a way to increase flexibility and complexity in frontend development.

Highlights

The roadmap to becoming a senior frontend developer involves mastering frontend tooling, testing, design patterns, deployment, and architecture.

Avoid chasing shiny libraries and frameworks without understanding the fundamentals.

Mental models and principles behind technologies are crucial for senior developers.

Mastering the fundamentals is essential before diving into advanced topics.

Four key frontend fundamentals include JavaScript, programming principles, CSS, and DOM APIs.

JavaScript fundamentals encompass variables, data types, functions, and control structures.

Modern JavaScript concepts like promises, async/await, modules, and classes are important.

Object-oriented programming principles such as encapsulation, inheritance, and polymorphism apply to JavaScript's prototypal inheritance.

Functional programming focuses on using pure functions and immutable data.

SOLID principles are useful for refactoring and maintaining code quality.

CSS fundamentals include the box model, specificity, inheritance, flexbox, and grid.

Understanding browser APIs like cookies, local storage, fetch API, and session storage is necessary.

Networking knowledge, including DNS, IP protocols, HTTP, and REST APIs, is vital for frontend developers.

Frontend tooling like module bundlers, CSS preprocessors, and TypeScript is essential for building modern web applications.

Linting and formatting tools like ESLint and Prettier ensure code quality and consistency.

Debugging skills are critical, including using browser debugging tools, IDE debuggers, and framework-specific tools.

Frontend testing involves understanding unit, integration, and end-to-end tests, and using libraries like React Testing Library.

Design patterns like component-based architecture, state management, and the virtual DOM are fundamental to modern frontend development.

Advanced frontend topics include security, performance optimization, and understanding the importance of accessibility.

Deployment skills, such as setting up CI/CD pipelines and using cloud services, are necessary for senior frontend developers.

Frontend architecture topics like micro frontends, server-side rendering, and backend for frontend are important for scaling applications and teams.

Transcripts

play00:00

imagine what you could achieve if you

play00:02

stopped wasting time on shiny Frameworks

play00:04

and used a proven road map to level up

play00:06

to senior frontend developer today I'm

play00:08

going to share with you the exact road

play00:10

map I used to go from struggling Junior

play00:13

to Leading projects as a senior Dev for

play00:15

a top tech company and it not only

play00:17

worked for me but for 250 other software

play00:20

Engineers who used it to level up now we

play00:21

will cover front end tooling testing

play00:23

design patterns Advanced front end

play00:25

deployment and front-end architecture

play00:27

now the problem with most frontend road

play00:29

maps you will find here on YouTube is

play00:30

that they are anti- senior they have you

play00:32

chasing shiny libraries and Frameworks

play00:34

ending up like this little hamster right

play00:36

here but they don't explain the mental

play00:38

models and fundamentals behind those

play00:40

Frameworks which is why after thousands

play00:42

of courses and side projects most

play00:45

frontend developers still struggle when

play00:47

trying to get to the next level so even

play00:49

if today you will hear me talking about

play00:50

some fancy terms like micr front ends

play00:53

surface side rendering or back end for

play00:55

front end what I want you to get out of

play00:56

this road map are the mental models and

play00:58

principles behind those fancy terms

play01:01

that's what makes a senior developer

play01:03

senior but before we dive in what's the

play01:05

biggest mistake fronting developers make

play01:07

when trying to get to the senior level

play01:08

they try to build castles on Sand yes

play01:10

they try to master senior level topics

play01:12

without having Masters the fundamentals

play01:14

first so after the ini excitement is

play01:16

gone they find themselves surrounded by

play01:18

hundred of things they know about but

play01:21

none too deep because what they really

play01:22

doing is they keep adding gaps to their

play01:24

knowledge which is why before you start

play01:26

working so wasse getting to senior level

play01:28

you should make sure that that your

play01:30

fundamentals are strong because

play01:31

fundamentals are the Lego pieces

play01:33

everything else in this road map will be

play01:34

building upon in the front end there are

play01:36

mainly four types of fundamentals

play01:38

JavaScript fundamentals programming

play01:39

fundamentals CSS fundamentals and D apis

play01:42

let's dive deep into each one of them

play01:44

many of the JavaScript fundamentals you

play01:46

probably already know but let's refresh

play01:48

first you want to start with variables

play01:50

data types functions and control

play01:52

structures like conditionals and for

play01:54

Loops they might seem very basic but you

play01:56

will need these things in life coding

play01:57

interviews you should be able to write

play01:58

them out of your head even if GitHub

play02:01

co-pilot can do it for you I know six

play02:02

years experienced G developers who can't

play02:04

get a job because they cannot write a

play02:06

simple for Loop don't be those people

play02:08

then you will move on with modern

play02:10

JavaScript with Concepts like promises a

play02:12

syn we the module system and JavaScript

play02:14

classes everything we will see down the

play02:16

road Builds on these things so make sure

play02:18

you master them first on to programming

play02:20

fundamentals these are principles that

play02:21

apply to other programming language that

play02:24

JavaScript kind of stole from them the

play02:25

first one is op or objectoriented

play02:28

programming this is probably the most

play02:29

most popular programming Paradigm and it

play02:31

is based on programming by using objects

play02:34

which is cool because humans can

play02:36

understand objects very well I mean most

play02:37

humans here you should get a handle of

play02:39

Concepts like encapsulation inheritance

play02:41

and polymorphism in op if you want to

play02:44

change something you just assign it to a

play02:46

new value and you keep that stuff in

play02:48

memory a key concept from op that it's

play02:50

at the core of JavaScript it's

play02:52

prototypal inheritance which is like o

play02:55

but without classes prototypal

play02:56

inheritance deserves a video on its own

play02:58

so let me know and I will will make one

play03:00

the second programming Paradigm that

play03:01

JavaScript employs it's functional

play03:03

programming which tries to do everything

play03:06

using functions pure function in

play03:07

functional programming if you want to

play03:09

change something you recalculate again

play03:11

so your whole application is kind of

play03:13

constantly recalculating things which

play03:15

moves the pressure from your memory of

play03:16

course to the CPU if you want to dive

play03:18

deeper into these programming paradigms

play03:19

then let me know below and I'll also

play03:21

make a video about them and finally

play03:22

there are the solid principles and while

play03:24

I know that Uncle Bob and cing code and

play03:26

all that stuff it's totally overhyped

play03:28

these principles will come in hand

play03:30

if you're being asked for example to

play03:31

refactor a big chunk of your code check

play03:33

them out and try to implement them in

play03:35

your own code base onto CSS fundamentals

play03:37

you do not need a PhD in CSS to get to

play03:39

senior frontend developer but you should

play03:41

have a solid understanding of the

play03:43

following three concepts number one the

play03:44

Box model this is the model that's at

play03:46

the core of effing and CSS and once you

play03:49

master it you will be able to debug CSS

play03:51

with E and build layouts faster you can

play03:53

see it in the image then you want to

play03:54

check out CSS specificity and

play03:56

inheritance CSS is a very Global

play03:59

language conflicts between classes are

play04:00

unavoidable this means uh which class

play04:02

applies to what will help you figure out

play04:04

box faster again and design your CSS

play04:06

classes properly and finally you should

play04:08

check out flexbox and grid those are

play04:10

basically modern JavaScript wonders and

play04:12

they will help you build complex

play04:13

interfaces much much faster by this time

play04:15

you will be able to finally Center a div

play04:17

which will put you in the top 1% of

play04:19

frontend developers or at least give you

play04:21

some temporary feeling of satisfaction

play04:24

just enough to get you to our next top

play04:25

finally a senior front developer it's

play04:28

expected to know how the main browser

play04:30

apis work and how to interact with like

play04:32

basic authentication and basic storage

play04:34

mechanisms these are things like cookies

play04:36

local storage the fet API and session

play04:39

storage best learning materials for this

play04:41

are the official docks from mosa MDM

play04:44

finally networking if data is the blood

play04:46

of the internet networking are the veins

play04:48

make sure you check out the DNS and IP

play04:50

protocols so you don't go blank when

play04:53

we're going to ask you what happens when

play04:54

I type www Kitty cats.com in my browser

play04:58

bar knowing a bit of http will also go a

play05:00

long way things like headers status

play05:02

codes content negotiation and of course

play05:05

cashing in the case of request headers

play05:07

like accept host user agent and in the

play05:09

case of responses heads like cash

play05:11

control content type and content

play05:13

encoding will come in handy memorizing a

play05:15

few HTP status codes like 200 4004 500

play05:19

3001 and 3002 will also do wonders while

play05:22

your colleagues will be searching stack

play05:24

Overflow or asking chat GPT you will

play05:26

already know what's going on behind that

play05:28

not found request to add on top of your

play05:30

HTTP knowledge make sure you understand

play05:32

rest apis and restful design I know you

play05:34

are going to tell me that this is a

play05:35

backend topic but in my experience about

play05:38

four out of five front end interviews

play05:40

include questions about HTTP and rest

play05:42

apis if you are working in a realtime

play05:44

environment check out web sockets don't

play05:47

worry we will get back to http later

play05:49

when we talk about frontend security

play05:50

optionally you can check out things like

play05:52

trpc graph and HTTP 3 depending on which

play05:55

company are you planning to interview

play05:57

with the good news is that htttp barely

play05:58

changed in the last 20 years or

play06:00

something and it willon probably change

play06:02

in the next 20 so go learn it you're

play06:04

safe with a solid grasp of the

play06:06

fundamentals we are ready to start with

play06:08

front end tooling tooling is like the

play06:09

glue stitching everything else together

play06:11

if you work on frontend projects and you

play06:13

don't know the tooling around them

play06:14

you'll startle configuring them

play06:15

debugging them and understanding how to

play06:17

get them to production which brings us

play06:19

to module bunders these are tools like

play06:21

weback Vite and gulp they are at the

play06:24

core at most JavaScript Frameworks I

play06:26

mean what's a JavaScript framework in

play06:28

the end it's just bundled code that has

play06:29

to be transpiled compressed and sent to

play06:32

the browser that's exactly what these

play06:33

tools do you should Master at least one

play06:36

of them and I personally recommend

play06:38

weback because come on V is way too

play06:40

simple and it won teach you much knowing

play06:42

how to work with modu BS will allow you

play06:44

to navigate The Source Code inside your

play06:46

application understand what's going on

play06:48

in your build folder and why you'll also

play06:50

be able to set up JavaScript application

play06:51

from scratch and configure them which is

play06:53

a super useful skill specifically for

play06:56

senior frontend Engineers now nobody

play06:58

writes plain CSS these days anymore so

play07:00

you'll have to learn at least one CSS

play07:03

pre-processors or postprocessors like

play07:05

SAS orless which helps you do cool

play07:07

things like more flexible use of CSS

play07:09

variables nesting and reusability Via

play07:11

mixings and function talking about CSS

play07:13

if weback and SAS had a baby it would be

play07:17

CSS injs with style components being the

play07:20

most popular Library implementing it so

play07:22

make sure you check that out if CSS

play07:24

pre-processors were cool CSS injs is

play07:26

that to the square it gives you the

play07:28

modularity of components driven

play07:30

development and the flexibility of

play07:31

JavaScript given that we are talking

play07:33

senior developer here you should be able

play07:35

to understand the pros and the cons as

play07:38

well as the best use case for using

play07:39

something like CSS injs one last note on

play07:42

CSS I know Tailwind CSS is trendy and it

play07:45

comes by default with nextjs now and

play07:47

every second YouTuber is hyping about

play07:49

how great it is however it is mostly

play07:52

startups that use Tailwind in production

play07:54

and although there is nothing wrong with

play07:55

it make sure you get good at writing

play07:57

plain CSS before you get into Tailwind I

play08:00

know of developers getting ejected in

play08:01

tle interviews because they use Tailwind

play08:03

in the take-home task chaining 15 CSS

play08:06

classes to make an input field look good

play08:08

which can be done with plain CSS much

play08:10

much faster now moving on with

play08:12

typescript typescript makes JavaScript

play08:14

look more like Java so corporates love

play08:16

it jokes aside if you are working with

play08:18

JavaScript in production these days you

play08:19

will most likely be writing typescript

play08:22

typescript is kind of the new JavaScript

play08:24

without a solid understanding of

play08:25

typescript you won't be able to call

play08:27

yourself a senior Dev pay attention to

play08:28

things like interface types and the

play08:30

tooling around it and Advance features

play08:32

like Union and intersection types and

play08:34

for God's sake don't use any type under

play08:37

any circumstances moving on to linting

play08:39

and formatting every professional

play08:41

environment you will work in as a

play08:43

frontend developer will use tools like

play08:45

es lint and prettier to lint and format

play08:48

the code these tools automate your

play08:49

coding standards into the development

play08:51

process and you got to think of it like

play08:53

gram my checking for your emails but for

play08:55

your code it's a must have a Senor

play08:56

developer tip here if you want to go the

play08:58

xmi you can integrate these tools in

play09:00

your deployment Pipeline and get hooks

play09:03

with tools like husky oh this husky not

play09:06

the real one finally one of the most

play09:08

underrated skills a senior developer can

play09:10

have it's debugging many developers

play09:12

struggle with debugging because they

play09:13

don't even know the tools that they can

play09:15

use for debugging trust me you are

play09:17

better than console log the first set of

play09:19

debugging tools you want to get on your

play09:21

hand are the browser debugging tools and

play09:23

you want to pay special attention to the

play09:25

GS debugger present in your sources tab

play09:27

like you see can see in the image after

play09:29

that every IDE comes with its own

play09:31

debugger like the vs code debugger you

play09:33

want to know how to use that and set

play09:34

that up too then there are framework

play09:36

specific debuggers react has its own Dev

play09:38

tools and profiler for example and

play09:40

Library specific debuggers like the

play09:42

Redux toolkit when using Redux and

play09:44

here's another senior developer tip to

play09:46

make your debugging life easier make

play09:48

sure you emit Source maps in the

play09:50

devopment you are debugging you know

play09:52

this little MJS files you should see in

play09:54

your build folder they will allow you to

play09:56

understand what's going wrong in your

play09:57

code even when it looks like this now

play09:59

that we are done with tooling time for

play10:01

us to move on with front-end testing

play10:03

senior developers understand that

play10:04

testing is a lot more than just an

play10:07

organize their test according to the

play10:08

testing pyramid unit integration and

play10:11

endtoend tests in the front end unit

play10:14

test and end to end test are more

play10:15

predominant include at least each one of

play10:18

those tests when doing your next

play10:19

stayhome challenge that's if you want to

play10:22

pass the testing pyamid it's one of

play10:24

those senior frontend mental models that

play10:25

I told you about before starting this

play10:27

video on top of that you should make

play10:29

make sure you check out Tess for

play10:31

endtoend testing how to mock the Dom

play10:33

apis and framework specific libraries

play10:35

like react testing library in react if

play10:37

you were so adventurous get into mocks

play10:40

stops and spies well not this spy and

play10:42

look out for that code coverage it

play10:44

usually comes up in technical interview

play10:46

time to move on with frontend design

play10:48

patterns whether you use angular

play10:49

reactors felt at its core frontend

play10:51

Frameworks are just standard tooling

play10:53

which we already talked about and a

play10:55

bunch of common design patterns once you

play10:57

learn those patterns you can quickly

play10:59

learn new Frameworks just like senior

play11:01

developers do the first pattern here

play11:02

it's component based architecture which

play11:04

is used by most if not all major front

play11:06

end Frameworks out there component

play11:08

driven architecture it's actually

play11:09

objectoriented programming that we

play11:11

talked about applied to building uis as

play11:13

a senior developer you should be able to

play11:15

understand and be able to explain the

play11:17

pros and cons of components Pros such as

play11:20

reusability clear separation of concerns

play11:22

testability and a few more cons such as

play11:25

added complexity overall components are

play11:27

quite cool and it should become quite po

play11:28

efficient at working with them the

play11:30

second most common design pattern you

play11:31

will use in modern frontend is State and

play11:34

State Management the state of an

play11:36

application is basically the stuff you

play11:37

have in the memory and state matters

play11:39

because your job as a frontend developer

play11:41

is to make uis that reflect that state

play11:44

or manipulate that state and change the

play11:46

UI that can be data you get from the

play11:47

back end data inputed by the user or

play11:49

simple UI interactions State it's a

play11:52

behavioral design pattern which allows

play11:54

you to change the behavior of your

play11:56

object based on its state think about

play11:57

State like the driving wheel of your car

play11:59

and the pedals to change the behavior of

play12:01

your car you'll have to change the

play12:03

position of your driving wheel and

play12:04

controls the state pattern is closely

play12:06

related to the concept of a finite State

play12:09

machine it might sound fancy but a

play12:12

finite State machine it's anything that

play12:13

has a finite number of states like a

play12:15

traffic light who has three different

play12:17

states red yellow and green which makes

play12:19

it very predictable which is something

play12:22

that programmers and Engineers overall

play12:23

love when it comes to state pay

play12:26

attention to the hierarchy of states

play12:28

starting with component State shared

play12:30

State and Global State State Management

play12:32

includes the reducer pattern in the case

play12:34

of shared state with use reducer and

play12:36

different libraries to manage Global

play12:38

state from third party libraries to

play12:39

internal build functionality like the

play12:41

context API Redux or T and in case you

play12:44

get confused by libraries like Redux

play12:45

Swit stand and recoil or whatever chill

play12:48

out and keep in mind that they all

play12:49

basically do the same they manage state

play12:52

with their own pros and cons the third

play12:54

pattern you will want to dive deep into

play12:56

is the virtual Dome pattern developers

play12:58

realize that the real do is quite slow

play13:00

so they decided to create a copy in

play13:02

memory want to change something in the

play13:04

real Dome make your changes in the

play13:06

virtual Dome then run a different

play13:08

algorithm to find the difference it is

play13:09

used by both react and View and it is

play13:11

the reason why react it's so fast ACC to

play13:14

the virtual D are the reconciliation

play13:16

process and the diffing algorithm that I

play13:18

mentioned both might come up in

play13:20

interviews particularly at the senior

play13:22

level so make sure you check them out

play13:24

now let's move on to the next step in

play13:26

this road map Advanced front end by this

play13:28

time you able to build small

play13:29

applications and features in the front

play13:30

end and to understand why they are built

play13:32

in the way they are built but simply

play13:34

delivering features won't be enough to

play13:36

be considered a senior developer it is

play13:39

time to get deeper into the details

play13:41

security might sound very confusing to

play13:42

frontend developers particularly to

play13:44

self-thought developers the good news is

play13:46

that if you master two core fundamentals

play13:48

you will have covered 80% of your web

play13:50

security needs those are course and

play13:53

https you will also need to be familiar

play13:56

with the most common attacks like xss

play13:58

cross site request forgery and how to

play14:00

prevent them finally if you're going to

play14:02

a teal interview with a company in the

play14:03

insurance or financial sector make sure

play14:06

you refresh these knowledge because they

play14:07

like to focus on these things a lot I

play14:09

mean they have no choice a senior front

play14:11

end developer should also be familiar

play14:13

with modern authentication and

play14:14

authorization techniques most of them

play14:16

are based on the O2 framework getting

play14:19

deep into O2 is not the goal of this

play14:21

video so we will leave that for some

play14:23

other time but just make sure you don't

play14:24

get lost in those tokens way too long

play14:26

senior front developers also know that

play14:28

Grandma is cheing their website and make

play14:30

it easier for her by sticking to

play14:32

accessibility standards important if you

play14:34

want to work for government or big

play14:36

institutions make sure you check out the

play14:37

VC AG web content accessibility

play14:40

guidelines and of course semantic HTML

play14:43

and now that you are done with Grandma

play14:44

your product manager comes complaining

play14:46

that the website is too slow and as a

play14:48

senior F developer you are supposed to

play14:50

explain why that's happening and you are

play14:52

supposed to make it faster well I guess

play14:53

it must be the fonts I don't want you to

play14:55

guess I want you to know which brings us

play14:57

to the point number three in advance

play14:59

front and development performance

play15:01

optimization now if we think of the

play15:02

internet as a dysfunctional relationship

play15:05

between clients computers asking for

play15:06

things and servers computers giving them

play15:09

things if you want your website to be

play15:11

fast then you want your servers to serve

play15:13

fast and you want the clients to digest

play15:15

what the server is actually sending

play15:17

usually a JavaScript bundle in a fast

play15:19

way which brings us to client

play15:21

optimization if we are talking about

play15:22

front end we're talking about client

play15:24

side optimization where you'll have to

play15:26

optimize your images fonts CSS and of

play15:29

course your JavaScript yes that's about

play15:31

everything that goes in a front end app

play15:32

these days let's start with images big

play15:34

heavy images will make your frontend

play15:36

application slow senior developers know

play15:38

how to optimize them this is most

play15:41

important for certain use cases like

play15:43

e-commerce besides proper caching you

play15:45

can optimize images by using compression

play15:47

with algorithms like gzip and broadly

play15:50

converting them to Performance friendly

play15:51

formats like webp resizing them into a

play15:54

smaller size and providing different

play15:56

image sizes using the source set

play15:58

attribut optimizing your JavaScript gets

play16:00

us back to the beginning of this article

play16:03

module bondless you want to focus on

play16:04

minification uglification and

play16:06

compression techniques afterwards move

play16:08

on to more advanced features like code

play16:10

splitting including the prpl pattern and

play16:13

static inputs as well as serers side

play16:16

rendering in the case of SSR the process

play16:18

of rendering JavaScript on the server

play16:20

it's quite new and complex I want dive

play16:22

deeper into Concepts like rehydration

play16:23

for now but let me know if you want me

play16:25

to make a specific video about it

play16:27

finally optimizing at fre level will be

play16:30

specific to the framework you use even

play16:32

though angular reac and view share many

play16:34

patterns performance optimization is

play16:36

quite different from framework to

play16:37

framework I know you've been told that

play16:38

these Frameworks are built for

play16:39

performance but many times they come

play16:41

with hundreds of additional tools and

play16:43

libraries that slow them down fter

play16:44

optimization is needed in the case of

play16:45

react get familiar with react lazy and

play16:48

react memo as well as the used memo and

play16:50

use callback hooks okay for now I w't go

play16:53

deeper into CSS optimization and fonts

play16:55

optimization just use a CDN it works for

play16:57

almost everything here is a so you can

play16:59

remember that and I know by now you

play17:01

probably have a lot on your plate but

play17:03

wait there's more senior frontend

play17:05

developers are also required to know how

play17:07

to take their applications to production

play17:09

which brings us to the next point in

play17:10

this video deployment also called

play17:12

continuous integration and continuous

play17:14

delivery deploying with a oneclick

play17:16

deployment to services like netlify or

play17:18

verel might be very rewarding and give

play17:20

you a dopamine shot but it doesn't teach

play17:22

you much about how the cloud actually

play17:24

works a senior front developer should

play17:25

know how to set up a deployment Pipeline

play17:27

on one of the Lish Cloud platforms

play17:30

providers like AWS ideally they should

play17:32

also know how to scale it using services

play17:34

like cloudfront do you need to get AWS

play17:36

certified as a frontend engineer not

play17:38

really I mean if you have the time and

play17:40

resources then go ahead and do it just

play17:42

be ready for a three to six months

play17:44

commitment only for that a quicker way

play17:46

frontend developers can Master cicd is

play17:48

by trying to deploy your frontend

play17:50

application to a production like

play17:51

environment on one of those Cloud

play17:53

platforms bewind the AWS console can be

play17:56

quite intimidating because it looks like

play17:58

that just make sure you shut down those

play18:00

instances after you finish to avoid

play18:01

going back to living with your mom

play18:03

because of one AWS Bill and here's

play18:05

another senior developer tip most

play18:07

companies these days use Docker to

play18:09

package and deploy their applications

play18:11

knowing how to dockerize your react

play18:13

application will help you stand out in

play18:15

tangle interviews finally the last top

play18:17

in this road map front end architecture

play18:19

senior frontend developers know how to

play18:21

avoid their application becoming

play18:22

terrible spaghetti code monsters current

play18:25

software architecture Topics in the

play18:27

front end gather around two main topics

play18:29

Micron end and server side rendering oh

play18:32

there's actually a third one but you'll

play18:34

find it out at the end of this video

play18:35

let's get going with micro front ends

play18:37

micro front ends are to the front end

play18:39

what microservices are to the back end

play18:41

they break up big monolithic front end

play18:44

applications into smaller ones which

play18:46

looks like this our monolith is first

play18:48

split between front end and back end

play18:50

then the back end splits into

play18:51

microservices they know how to do that

play18:53

they've been doing it forever and

play18:54

finally our front end application will

play18:57

have to split into small tiny front end

play18:59

application which sounds great because

play19:01

now you can scale your team micr front

play19:03

ends can become very very complex they

play19:04

can become a hey integrating different

play19:06

apps in the same browser window it's

play19:08

hard on top of that you'll have to make

play19:09

sure the user experience is consistent

play19:11

across those different application check

play19:13

out iframes and web components microf

play19:15

fronts are a very cool topic for you as

play19:17

a frontend developer because they will

play19:19

push your knowledge to the Limit and

play19:20

given that when you build microservices

play19:22

you operate at the edge of Frameworks

play19:25

your understanding of the fundamentals

play19:26

will really pay off here let's move on

play19:28

with Ser side rendering because hey the

play19:31

javascri community decided client side

play19:32

rendering spa and 155 tools were not

play19:36

enough and we actually want to party

play19:38

paron render Like It's 1999 Ser side

play19:40

rendering is the new cool kid in town

play19:42

and it means like the name indicates

play19:44

rendering your JavaScript application on

play19:46

the server first there's one big problem

play19:49

with that your JavaScript application

play19:51

was not meant to be rendered on the

play19:52

client so why the heck do we want to

play19:54

render on the server first well

play19:56

performance and SEO sending a

play19:59

pre-rendered version of your application

play20:01

to the client means that the user won't

play20:02

have to wait for that big JavaScript

play20:04

bundle to be passed by the browser to

play20:06

see something on the screen and that

play20:07

Google will be able to easily understand

play20:09

what your app is about sounds cool but

play20:11

rendering on the server is quite hard

play20:13

because nodejs was not buil for

play20:16

rendering which is an intense CPU task

play20:19

but even the harder part is to make sure

play20:21

that what your rendering on the server

play20:23

matches what you're rendering on the

play20:24

client again I don't have the time to

play20:26

rant about SSR and sjs and all that

play20:29

stuff in this video so for now let's

play20:30

move on to the next thing finally the

play20:32

third frontend architecture topic you

play20:34

want to look into it's backend for

play20:36

frontend having one API for all your

play20:38

front needs can be quite limiting that's

play20:40

because your mobile app might require

play20:42

different data than your web app in a

play20:44

different format and different depth to

play20:46

fix that let's break that API layer into

play20:48

multiple smaller layers so which front

play20:50

end will have the own back end now you

play20:52

have more flexibility but of course this

play20:54

comes at the cost complexity will

play20:57

increase the BF F pattern will come up

play20:59

pretty often in senior frontend

play21:01

interviews and it will allow you to

play21:02

deepen your understanding of the back

play21:04

end and think about maybe you should

play21:05

give full stack a try of course this

play21:07

pattern has its pros and cons but that's

play21:09

not the point of this video so for now

play21:11

we're going to keep it short okay this

play21:12

is it for today use this senior frontend

play21:15

road map to take your skills to the next

play21:17

level and I will see you in the next one

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
Frontend DevelopmentSenior DeveloperWeb PerformanceJavaScript MasteryCSS FundamentalsFramework PatternsCode OptimizationTesting StrategiesDeployment PipelineMicro FrontendsServer-Side Rendering
¿Necesitas un resumen en inglés?