Hacker News new | comments | show | ask | jobs | submit login
Ask HN: Getting back into programming after 8 year break
20 points by aleo 12 months ago | hide | past | web | favorite | 9 comments
Hey HN, i need your help with getting back on track with 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?

Basically every wheel has been reinvented (usually worse than the thing they're trying to replace) multiple times, just because.

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.

I would further add that JS is becoming the assembly of everything. It is now hip to write desktop applications, server back ends and mobile applications in JS. Pick a language and I will find you a transpiler or 10 that will convert that to JS. There are also lots of new languages invented just for transpiling to JS. People spend months of their life writing compilers and toolchains for free, so that one day some other company can profit from their labours.

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.

> It is now hip to write desktop applications, server back ends and mobile applications in JS.

JS use is definitely increasing. I'm not sure if you're using "hip" positively or not.

Also, whichever wheel you pick to put on your project is terrible. When someone asks what tools you are using, just say "which ever tools you like to use". Because any other answer will be wrong....and god help you if so much as think the word PHP.

Front-end now has an "ecosystem". Now everyone loves Babel and EcmaScriot 6 and JS is starting to look a lot like Java shit, and there are build tools every-fucking-where. If Front-End devs had JS as their Ruby, build tools are the shitty assets pipeline with the damned turbolinks. They promise awesome, they get in your way all the time.

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.

I'm in the same place as you. I picked up some React courses from udemy, which cover pretty much everything you would need.

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.

Definitely, browsers become much more standardized and capable.

Yes, MySQL is certainly still used. Although I love Postgres, MySQL is still super prevalent.

There 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!

I think the best indicator will be the frequency of occurrence of technology / language in job offers.

Check out programming language popularity in job offers:


Or just general buzzwords popularity:


Applications are open for YC Summer 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact