Hacker News new | ask | show | jobs
by 1_player 2721 days ago
As a sibling commenter said, define web developer first.

I can see two viable, yet very different definitions:

1. Frontend web engineer: Versed in HTML, CSS, modern Javascript libraries such as React, Vue, Angular. This is a programming role first and foremost, better paying than #2, and what I would suggest focusing on.

2. "Classic web developer": Versed in HTML, CSS and just enough JS/jQuery. Knows the inside out of some CMS such as Wordpress. Not recommended, yet there are a TON of small companies and clients that just need a small website or ecommerce site. A friend of mine fits this role, I wouldn't define him a programmer by any stretch of the word, yet makes a living adapting Wordpress or Magento into functional websites.

10 comments

It is weird that you consider frontend frameworks programming but CMS frameworks might not be. You could fudge your way through a React tutorial just as much as someone could a Magento tutorial. It's the person not the tools that make you a programmer.

Magento is a fairly complex platform too. It uses lots of very formal software engineering paradigms joined together in a well thought out framework. I would consider it a bit more traditional programming than Vue or React, and if I had a general programming role to fill I would sooner hire a Magento only backend dev than a React only dev. React/Vue are very specialized frontend tools and working with themm doesn't translate all that well to general programming.

I might agree on the reality, but the market rate of pay for React programmers is considerably higher than that for Magento, whether this is fair or well advised or not.
I can't argue there. Career wise, React is a good choice. It is a really cool piece of technology too. I have been very resistant to the new hat frontend frameworks, mostly because I had a strong methodology for frontend UI already and there was no sense throwing it away. But even I put React in my toolbelt recently.
React was the first front end framework that felt "right" to me. Of course, I was a fan of templating with E4X (which never gained support outside Adobe and Mozilla).
I really like how you defined these roles. #1 pays more these days and startups and sf companies want actual front end engineers. But there is still a world of work out there for the classic web developer or "web designer" as we used to call them. In every town and city you have small agencies and web shops building a range of smb to mid size sites. Squarespace, wix and some wordpress plugins are chewing into this market thou.
If you're trying to categorize web developers then you really need to mention back-end development as well.

3. Full-stack web developer.

4. Back-end web developer.

Bit elitist - the trouble with 1 is they can produce pretty one page sites which then suck when crawled by search engines and 90% of websites out there depend on search.
If you're hiring #1s to build static web pages you're lightning money on fire.
If you're hiring #1s to build SPAs, when all you need is some static pages, you'd also be lighting money on fire.
It's realist. One pays better than the other.
I consider myself a web developer (that's how I introduce myself), but my definition would be:

3. HTML, React/Vue (and related libraries like redux/vuex), CSS, SCSS, JS (including ES6+), JSON, REST, Node.js, Webpack, Babel, Python/Java/.Net/PHP/etc., SQL, Postgres/MySQL/etc. DDL/DML, Git/SVN/etc., Apache/NGINX/etc., HTTP/HTTPS, Let's Encrypt, Linux related technologies (SSH, BASH, etc.), etc.

How about "web developer who thinks heavy client-side frameworks are a bad idea"?
You can think however you wish - and I agree with you - but if you want to be competitive in the modern job market as a web developer, you have to be fluent in client side frameworks.
I agree that having that tool in your toolbelt is important - it's not want the parent post was saying. He was arguing that you're either a Wordpress "not really programmer" or you're a front-end "big-framework-first" developer.

As someone who's neither I rather disagree.

I don't know any front end frameworks either. I know Javascript, Bootstrap, and HandleBarsJs for template and I have done web pages knowing only those.

But no one would ever hire me as a "front end developer" or a "full stack developer" without knowing one.

This depends:

If you're advocating for traditional server-rendered websites (perhaps with very small bits of interactivity via JS), then you're #3: A backend developer.

If you're suggesting building a complex client-side app, just without a framework, then I reckon that this is just a variant of #1. But you'd better be a very experienced developer, or your code is going to be a complete mess. This isn't really a viable path for a new developer just starting out.

It's all about using the correct tool for the job.
Define "heavy." Right now I have react, material-ui and a handful of libraries in an application with an initial load (through main entry point) under 80k gzipped, and under 300k total load (1.6mb in memory, which includes app configuration data) when you navigate through to an area with graphs. This also includes SVG manipulation and image overlays.

In terms of what is being done, I'm far more judicious with removing unnecessary libraries. I've followed up other developers removing any number of modules in favor of hand-crafting from baseline modules. Since it's JSS it includes semi-dynamic styling that is based on async loaded modules. ex: if you don't go onto a chart/graph page, you don't get those modules.

It really depends on your tooling, knowledge and what your needs are. IMHO it's far better than typical jquery + bootstrap + bootstrap extensions that many of those who look down on client-side frameworks lean towards.

I'd go so far as to question the experience of someone who doesn't see value in React or frameworks similar to it for web applications. There's a large contingent that advocates for bare-bones JS development, but minimalism for the sake of it is not worthwhile.

It's all patchwork on top of JavaScript, though. Another programming language like Elm, or something that compiles to WebAssembly, may be another option to consider.

> minimalism for the sake of it is not worthwhile

It is entirely possible to dislike React for being React, rather than for the fact that it's not minimalism. I have to work with React, and it's a constant source of pain for me.

What do you dislike not just about React, but categorically about that style of frontend development in general? Framework specific distaste I understand, but general philosophy wise I don't.
Minimalism for the sake of good battery life and low website latency is quite worthwhile, though.
If your projects are simple enough that using a framework is a bad idea it's a waste of money to hire the #1 types.
It's this binary distinction I'm objecting to. Is the choice really "Wordpress" or "React"? There's a huge number of projects that don't fit either of these templates very well. I'd still argue that people building web "sites" (which can still be way beyond the complexity sweet spot for Wordpress) rather than web "apps" should not be building SPAs.
That is basically what he lists under number 2, "classic web developer".
Not necessarily, since someone would need to build the server backend for anything more complex than a static website.

As other people have noted, classifying "web developer" as "frontend web developer" is a bit restrictive.

You do not mention why you think number 1 would be better to focus on. There are more number 2 jobs available, depending on your location, there might only be number 2 jobs available. These jobs also require less knowledge and training and therefore can be attained more easily. I see a lot of advantages for the number 2 jobs for OP.
There's also a third definition: 3. Web backend developer, who knows the inside out of some framework or language such as Laravel/PHP, Django/Python, Rails/Ruby, or node/ECMAScript, and focuses on writing server-side logic for the frontend guy to consume. Also look at C# or Java if you want to get into the enterprise market.

You're not going to find this kind of developer in a run-of-the-mill WordPress shop. You probably won't find them in the latest startup that is all on the serverless bandwagon, either. But there are quite a few of backend positions in larger organizations where you might coincidentally find better pay and job security as well. Bonus points if you're well versed in security, or know how to talk to the database guys over there.

I personally can't stand doing number 2, and I do as little of number 1 as is necessary these days, but that said...

there is a ton of room for number two still. Maybe not in the heart of Silicon Valley, but other major cities—sure. There are a ton of businesses operating using WordPress as their primary platform because it's relatively easy for non-technical or semi-technical users to wrap their heads around.

Here in Toronto there are a lot of thriving WordPress/PHP-stack shops that service those businesses so that they don't have to hire their own web team. I would never want to work with one because I personally really don't like working with that stuff. 100-foot pole sort of situation— but they're there, and they pay okay for the local market.

#2 is still in demand and there are a ton of boutqiue-type firms that make good money by keeping some old Typo3 CMS site alive. However, from a developer perspective, you should aim for #1. It pays more and in worst case you can downgrade to #2 rather easily .