Ask HN: Getting back into programming after 8 year break
I was a (mostly frontend) web developer until 2009 and developing websites was pretty simple then: i wrote some html, css, javascript and some php or python on the backend. I haven't done any programming since (except i went through a couple of clojure books for fun). I'm 30 years old with no degree.
I'm trying to get back into real-world web development and things have changed a lot, there's so much choice today. I feel like a newbie again. I really need help choosing what technologies to learn to get up to speed with modern web dev and start making a living out of it. Is there a website that lists the most in-demand skills for a web developer today?
For the last couple of week I've been learning React, Bootstrap, these seem to be pretty popular choices for frontend. I like React, can't wait to build something meaningful with it. What other frontend skills do I need to learn? Today I discovered d3.js and I absolutely love it - that would be like a dream job to visualize data in creative ways :) I've been reading about other technologies but there's so much of them that my head is spinning.
What are the good choices at the backend, looks like mostly node.js and express in demand. Should I skip backend altogether and focus 100% on the frontend for now?
What databases are the most popular? Do people still use mysql?
Deployment also changed a lot, there's AWS, Google cloud, Heroku, Docker to name a few.
I've been bidding on freelancing sites but no one replies, which is understandable since I have no recent work experience. How should I go about getting my first client? Do some free work? Make some demo websites to put in my portfolio? What do you think?
9 comments
[ 3.1 ms ] story [ 33.0 ms ] threadThere has been a split between the front end and back end. The front end has almost if not more tooling then the back end. If you love things like d3.js, then the front end sounds like where you would love to be.
If you want to get better, learn things like Webpack.js, Babel.js and things like that. Its a rabbit hole, so have fun!
There all kinds of deployment strategies now, Id read into a few and see what fits you best.
Put it all on Github, and host it via Digital Ocean or something cheap and have fun!
On the front end every tool now relies on and is installed by npm/nodejs and will require 90 other packages, and will be replaced yet again in 6 months time.
Basically, web developers got sick of "they're not real programmers, they just write scripts" and made their own ridiculous tool chains to solve problems they themselves created.
Edit: forgot to add, every developer who knows what bash is feels like they're a qualified system admin now because aws has an api so ops staff are no longer required.
There are dozens of JS package managers and packing systems. JS files start with 100's of bytes of boilerplate to try and figure out what defacto module system is being used and then respond appropriately.
JS use is definitely increasing. I'm not sure if you're using "hip" positively or not.
I think this is an awesome time to be relearning how to code. So many problems have been solved and web standards have been created. It's so much better than it was a decade ago.
Pro-tip: Decide on an MVP, then research frameworks and Libraries. I suggest taking a look at Progressive Web Apps, the deciding on React, Angular or Vue, then deciding on some material design library/UI Kit.
Remember that, if you use Google's repo to start a Progressive Web App (Or pretty much any boilerplate nowadays), it will use Gulp (Or Grunt or Bower or whatever). Anything you wanna plug, first thing to do is integrating with it. If it uses Babel, check that you can import it and that it doesn't depend on Globals, and write everything in ES6. If it doesn't, your code may be messier but you won't hate your life as much, so rejoice. Integrating everything early and properly will save you many hours, especially if you use ES6/Babel.
For the back-end, NodeJS is great but, as with front-end, a mess, Elixir feels like Ruby from the future (And Phoenix is to Elixir what Rails is to Ruby), but it's still small, Ruby and Python are still there and pretty solid, and PHP still sucks.
MySQL is still out there but if you're not going the PostgreSQL way then check MariaDB, it's Open Source MySQL being updated by the original MySQL team.
For Deployment and/or managing this shitload of dependencies (NodeJS versions, databases, webservers and whatnot) you may want to check Docker, though it may be overkill if you're not going all the way down the rabbit hole.
Edit: Forgot to add, instead of freelancing jump at some lesser known open source projects. Maintainers will usually welcome your help, and will also help you figure stuff out. Maintainers win, you win, the community wins.
Check out programming language popularity in job offers:
https://jobsquery.it/stats/language/group
Or just general buzzwords popularity:
https://jobsquery.it/stats/tags/group