No longer just a developer (The lie of Full Stack)
Originally posted: 23 August 2018
This blog post will probably come off as a bit of an old man ranting at the kids to get off his lawn, but I’m only 32 and the local kids already know not to come onto my lawn.
What I’m ranting about recently is the knowledge required to be a Developer these days, specifically a Drupal developer in Australian Government has gone from “I think I can master these in a few years” to “Where’s the rest of the team, what do you mean it’s just me.”
#backinmyday all you needed to make a website was Linux, Apache and a text editor.
The majority of my development experience has been using a LAMP stack, which stands for Linux, Apache, MySQL, PHP. And you can swap out Linux for Windows or Mac as required… but it’s all fairly straight forward.
A LAMP stack looks like this:
Linux is the Operating System and sits at the base layer
Apache runs in the operating system and delivers your pages to the world
MySQL is the database where your complex data is stored
PHP is the programming language that your website is written in
On top of that, you also had to know a number of coding languages.
HTML for basic webpage content and layout
CSS for styling
PHP for complex functionality
Javascript/jQuery for fancy interfaces.
So there, four applications/frameworks, and four languages.
And if you could manage that, you could call yourself a Full Stack Developer.
But not anymore.
In an effort to make thing simpler, things have become increasingly complicated.
Now, we have (at least for Drupal GovCMS):
Cloud hosting providers like AWS (Amazon Web Services)
Apache or nginx
MySQL or MariaDB
Composer to manage dependencies
PHP is still there
Symfony as a framework on top of PHP
TWIG as a templating engine
Git to manage all your files and version control
Docker and Containers to help compartmentalise and genericise your developments
Lagoon, but not the nice swimming one
Ruby, Pygmy, Ahoy and other various command line interfaces built only for Linux in order to control and automate the above systems
And while LAMP is a nice acronym, I’m not sure that CAMCPSTGDLRPA is likely to catch on.
And then on the programming side of things, we have:
HTML, although now it’s HTML5 with more elements
CSS, is now CSS3 with easy to use rounded edges… which was released at the same point all designers decided to go back to wanting crisp straight edges and corners
PHP is still around
Javascript/jQuery as before, but now with more additional libraries for more functionality
SASS or LESS pre-processors for CSS
Any number of front-end frameworks such as:
Angular
Node.js
React
Vue
An IDE (Integrated Development Environment) like NetBeans or JetBrains to manage it all
And don’t forget to support Internet Explorer 9 (Released in 2011) because some important Government official is still running it somewhere
the seven different screen resolutions just for Apple’s mobile devices
and it’s only a matter of time before having your website display correctly on a Smart Fridge is a common requirement.
The modern web developer is no longer just a programmer, they are a multi-lingual multi-plate spinning sorcerer of many things.