Cons of front end development

Books on web development

Video version of this article: https://youtu.be/CBnf2OXTNzE.

This is a series of posts on whether or not you should learn front end development
Pros of front end development
Cons of front end development (this post)
Should you learn front end development?


While the pros of learning front end development out-weight the cons (in my opinion), there are still some very real cons to front end development. These may mean that front end development is not for you.

Here are some of the cons:
– Design skills are encouraged
– Tons of things to learn
– Solid front end development is extremely difficult.

And here they are in more detail.

Design skills are encouraged

I would consider this a very minor con… depending on the job.

Some jobs require a mixture between design skills and development skills, however many jobs only require development skills without any design.

Nevertheless, a "design eye" can be very helpful. Designers are not developers, therefore some of the designs they give you may be difficult and / or not worth implementing because of how long they would take.

I.e. it may take multiple weeks to implement something, and the product manager may not be happy with that.

If communication in your job between the product manager and designers is nice and quick, it’s not a problem. You can give feedback quickly and the designers can tweak the design if needed.

However if communication is very slow, it may fall on you to tweak the design and code something feasible in the allocated time.

Tons of things to learn

Learning for front end never stops, and as a beginner you’ll probably be playing "catch-up" for multiple years.

There is far too much to learn.

Core technologies:
– HTML
– CSS
– JavaScript

Ecosystem:
– Scss
– Webpack / other module bundlers
– Babel (JavaScript transpiler)
– ESLint (JavaScript linting)
– Stylelint (CSS linting)
– Frameworks and other technologies:
– React / Vue / Angular / Svelte / tons of others
– Redux / MobX
– TypeScript / Flow
– Web APIs
– Node (basics)
– NPM
– Tons of NPM packages for various things

Domain knowledge:
– Accessibility
– Security & authentication
– Cross-browser development
– Basics of HTTP
– Browser basics
– Server-side rendering and pre-rendering

General software engineering knowledge:
– Testing
– Testing JavaScript
– Integration testing
– End to end testing
– Design patterns
– Agile
– Performance
– Functional programming
– Object oriented programming
– Multi-threading (e.g. web workers and such)
– Databases (e.g. IndexedDB)

The reason for all this stuff is because with modern web applications a lot of what was traditionally back end work is appearing in front end, along with everything else that is exclusively front end.

The good news is that you don’t have to learn everything before you start developing something. You can start with very little. All the rest can be considered enhancements rather than requirements.

Nevertheless, you’ll be playing catch-up for a while.

Solid front end development is very difficult

I’m not saying it’s more difficult than other types of programming, just that it’s very difficult.

Why?
– Every website / applications is unique.
– Constantly changing design.
– Accessibility needs to be considered from day 1.
– Cross-browser development (styling, JavaScript features, handling different device inputs).
– CSS is very quirky and counter-intuitive. Sometimes it’s very difficult getting the styling you want.

The good news is that it’s not necessarily harder than any other type of programming, there are just different problems. However, opinions on this may vary.

Overall

These were some of the cons to front end development.

If I missed any please comment about them below.

This is a series of posts on whether or not you should learn front end development
Pros of front end development
Cons of front end development (this post)
Should you learn front end development?

^