In the web development world there’s been a load of discussion about learning/knowing CSS, the cascade, CSS-in-JSS vs CSS-in-err-CSS recently.
I’ve largely not taken part mostly because I see these things as tools: you use the one that works for you and your project, and no one is right or wrong – you’re allowed your opinion (but do express is kindly, please).
This isn’t to say that learning the cascade isn’t something you should do (if you work on the web, it’s probably helpful to understand the cascade), and it isn’t saying that you should avoid work by just lazily doing whatever you’ve done in the past because it worked then and it should work now.
I’d say that learning CSS is easy and learning CSS-in-JS is easy; what’s hard is learning how to decide what is the best tool to use on your project. This is the difference between knowledge (which is easily gained) – and wisdom (which is gained over years of work and much trial and error).
But anyway…the whole thing ended up with someone suggesting to me that “the title ‘front-end developer’ is pretty much synonymous with React now.”
This got me thinking. Because a “front-end” developer used to be someone who made layouts and designs in code. They did HTML and CSS with some JavaScript sprinkles.
But now, because front-end can include any of the popular JS frameworks, the description of that role has significantly changed and now includes doing routing, data storage and manipulation, interfacing with (and creating) APIs and so on.
When discussing this with someone else it was suggested that “all developer jobs are full stack now” and that’s because all the stuff that used to happen in the “back-end” can, and frequently does, now happen in the browser.
And so our job titles are all messed up. I think we need some new ones that better distinguish between the disciplines of web and application development. Along the lines of “visual developer” and “data developer”. Hopefully you get my meaning.
I think it’s easier to switch languages (i.e. I’d probably be fine writing data-processing algorithms in JavaScript if I wanted to, but I’m not really into animation or advanced typography and font-handling techniques) than to switch disciplines (i.e. to go from being a data geek to being an animation geek).
So we need terms that better describe our disciplines. I’m happy to take your suggestions in the comments.
In any case…I love my self-proclaimed job title of “Creator – Engineer – Advisor”. It perfectly sums up what I do without tying me to any particular discipline or technology! So why not make your own, like I did?