
Ask HN: Getting back into programming after 8 year break - aleo
Hey HN, i need your help with getting back on track with programming after 8 year break.<p>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&#x27;t done any programming since (except i went through a couple of clojure books for fun). I&#x27;m 30 years old with no degree.<p>I&#x27;m trying to get back into real-world web development and things have changed a lot, there&#x27;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?<p>For the last couple of week I&#x27;ve been learning React, Bootstrap, these seem to be pretty popular choices for frontend. I like React, can&#x27;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&#x27;ve been reading about other technologies but there&#x27;s so much of them that my head is spinning.<p>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?<p>What databases are the most popular? Do people still use mysql?<p>Deployment also changed a lot, there&#x27;s AWS, Google cloud, Heroku, Docker to name a few.<p>I&#x27;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?
======
stephenr
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.

~~~
bbcbasic
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.

~~~
stephenr
> 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.

------
Ellahn
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.

------
gotrythis
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.

~~~
aleo
Definitely, browsers become much more standardized and capable.

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

------
krystiangw
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:

[https://jobsquery.it/stats/language/group](https://jobsquery.it/stats/language/group)

Or just general buzzwords popularity:

[https://jobsquery.it/stats/tags/group](https://jobsquery.it/stats/tags/group)

