I’ve been asked a question: “Should I learn React or WordPress if I want to freelance as a front-end developer? There’s been a lot of talk lately about The Great Divide in front-end development, how a there’s two type of job positions for front-end devs: the first one is JavaScript oriented ( React, GraphQL, Angular etc ) and the other one which is website development & design ( mainly WordPress ) so that’s HTML, CSS, SCSS, light JavaScript ( mainly jQuery ). I’ll try to distinguish these two job positions and come up with potential career paths for two developer personas.

Know Thyself

As Steve Krug says in Don’t Make Me Think it all comes down to happy hormones. Developers like writing algorithms, they feel satisfied when processes get automated, designers like sophisticated looks, they’re satisfied when things look their way. Same thing is going on in the great divide – one half of front-end devs like to deal with data/algorithms and the other like to make things look good. One half is heavily focused on learning JavaScript and optimizing data flow and the other half wants to write modular, scaleable & DRY CSS code in order to make things on the web look good using as few html nodes as possible. But writing CSS is easy, right? React developer can style CSS components too. Maybe.

Of course, there exists a monetary divide as well, good luck in finding a $100k position without writing algorithms and dealing with data. Money aside, let’s talk about what makes us feel good. When a backend/javascript developer implements a singleton or object factory pattern, he/she feels very good, because they see the beauty of logical perfection these patterns bring with them. They are fulfilled. Then, because their company doesn’t have a front-end developer they goes on and styles the front-end components, writing everything in a single css file. Why? Because they don’t really care about the design of it, it brings no pleasure to them. Writing more CSS to fix older CSS, eventually writing tens of thousands lines of code in a single file. This code is not easy to change, it’s not DRY ( Don’t repeat yourself, Lea Verou writes about how to code DRY CSS in her amazing book CSS Secrets ), and it becomes an issue. The company realizes this problem and hires a front-end developer / designer that goes on and implements a CSS architecture, something similar to SMACSS or BEM. What are these? These are CSS design patterns, implemented by designers and front-end developers and much like these programmatic patterns, it brought them a lot of joy to them. Dan Eden, Facebook’s designer speaks about this in one of his talks.

UX Engineer / JavaScript Engineer

Biggest companies have addressed these problems and created separate job positions, such as Google, they have a UX engineer role and a JavaScript engineer. As always, smaller companies will follow the trends big ones create but beware, human resource departments of smaller companies don’t care which side of the great divide you’re on. A common response is: “You’re an engineer, you can figure out anything you’re told to“. A mindset that probably creates more problems than it solves. Freelancers ( On Upwork ) mostly work for smaller companies, and WordPress is dominating that space. React on the other hand, is a more expensive technology used by bigger companies. There are React jobs on Upwork, but there are many react jobs on Stackoverflow jobs as well.

Conclusion

So to sum the story up, if you’re a JavaScript focused developer you’ll most likely want to master React and everything that goes together with it, programming design patterns, data graphs etc. If you’re curios about design of the web, writing semantic HTML, scaleable CSS, motion design, accessibility, you’ll want to learn more about these topics. You don’t have to cross the divide if you don’t like what’s on the other side. Master your own side, you might get bored of it eventually and decide to learn something new.