HACKER Q&A
📣 backtoswdev15

Returning to SW development after a 15-year break?


Hi HN,

First some background: I started my "career" with an IT apprenticeship, worked two years as a web dev (until I got fired during the dotcom crash), and afterwards I studied to get a CS bachelor. Despite a good job market (and good grades) I was unable to find a job. Probably because I'm an Asperger and/or because I looked unhealthy (back then I had a severe skin problem on my face with large pieces of skin falling off plus I've always been underweight). At some point I gave up the job search. For a while I struggled with depression until I discovered investing, and started to actively invest my savings on the stock market.

Fast forward to today, and the savings will be gone soon and I'm back looking for a job. As I live far away from any finance center, I'm trying to return to software development. It's probably a mission impossible, given my age and the lack of experience (my only recent dev experience is doing Advent of Code challenges in the last few years). I'm unsure what's the best way to approach this mission, how to catch up, and what a software developer has to know nowadays. I found "Teach Yourself CS" and that looks great, only it probably takes too long to go through all the stuff to refresh things and to fill gaps (I'm currently reading Designing Data-Intensive Applications). I also considered doing a project, but so far I have no idea what I could do, it feels like I'm stuck in a kind of analysis paralysis.

Are there any resources for people returning to the field? Any advice or suggestions? Thanks in advance.


  👤 dataminer Accepted Answer ✓
If you want to get back into web development which is very remote friendly, learn one of the following frameworks, Rails (Ruby) / Django (Python) / Laravel (PHP). The best way to learn and have experience is to build a small project, if you pick Rails, you can use the book by Michael Hartl https://www.railstutorial.org/book, it's a project based tutorial, so it's quite practical. For other frameworks there maybe similar books or tutorials.

Be part of a relevant forum / linkedin group, so you can clarify things when you are stuck.

Once you have built your first app, you can build more advanced features and start your job search. Update your linkedin profile with keywords which reflect that you are into web / software development. Start posting stuff on linkedin / blog and making connections with recruiters. Also connect with companies hiring remotely.

There are lots of companies with opensource projects on github, pick some issues, resolve them and send a pull requests, this will give you experience working with existing code, you will get to know remote team dynamics, and get to know people working on these projects.

Ask questions early, seek help often, I have found people to be very collaborative and helpful. We need more people in software development. I wish you great success.


👤 auslegung
I’ll assume you still want to do web development. JavaScript, HTML, and CSS are still the most valuable things to learn, but my goodness they’ve changed in the past 15 years. There are a number of free learning options, https://teamtreehouse.com/, https://theodinproject.com/, https://www.codecademy.com/ just to name a few. If I were you I’d learn those three languages and spend some time learning one of the popular frameworks, such as react or angular, just to familiarize myself with the tools most companies use. That will be more than enough to become employable again.

You’re going to do great, lots of developers these days don’t have a CS degree, and there’s even a sizable percentage who have no degree at all, so you’re already ahead of the game. Don’t listen to imposter syndrome.

One more bit of advice, start networking either online or in person. Join discord servers, meetup.com groups, whatever so you can start interacting in the community again. You’ll learn about jobs faster that way, the community will help you along the way, and you’ll end up helping them too.


👤 stuaxo
Web development has become a lot more based around tools, which is good and bad.

Deployment is not longer just uploading code to an FTP and is usually automated, which is good.

The amount of tech needed for a page has got a lot bigger. Tables aren't so much of a thing.

Analysis paralysis is definitely a thing, accept that whatever your first choice is may not be right, but you will still learn in doing, so it's good to move forward.

If you are looking at data intensive applications, python may be a good choice.

One good thing with python based tech is there is less churn than Javascript based development.

Frankly, the pace of Javascript based tech leaves me burnt out whenever I dive in.

Although many projects use lots of different tech, you aren't really expected to be an expert in them all (even if a job spec may say that).

Start with one thing, learning enough to get going and move on.

There are communities to help like reddit.com/r/learnpython

It's worth asking the odd question on StackOverflow, though don't get disheartened if they close your question or dismiss it, it's something that site does more and more of.

Mostly, just dive in and don't worry when stuff is hard, people who have been doing this for ages experience this too.


👤 dmrg
Consider starting in a QA role and gradually building your skillset toward possible transition into development, if that is what you will still want:

* while having low entrance barrier, manual QA role will allow you to get exposed to an industry and build domain knowledge

* you will get a daily sense of accomplishment and meaning which will help you deal with depression

* gradually you will be able to transition to automated testing, or an adjacent field, such as DevOps

* you will be able to make a living


👤 avoaja
For projects you can do. Start with a simple todo app, an e-commerce app and a real time chat application. I find that building and deploying these will cover most general knowledge required to land an entry/mid level role.

Words of encouragement: this is the best time to be a developer. The demand is huge and growing.

Also check out this site: https://zerotomastery.io/blog/learn-to-code-in-2021-get-hire.... It offers reasonable a path to become a web developer in 6 months. Since you have some knowledge, you can power through in 6 months or less.


👤 JRGC
Build a portfolio site. Add some smalls projects and share on github or similar. Start responding to freelancer dot com or similar sites where people are looking for cheap workers. You will be underpaid until you are busy enough to turn down work.

👤 dominotw
I suggest trying to ease into data engineering/data analyst positions. Looks like you already have some analysis experience with stocks, those skills will translate well. Anything you can highlight from your resume in aspect will help you.

👤 AnimalMuppet
Not so long ago, we hired a guy who had been out of software for 10 years. We were nervous - what if he couldn't do it anymore? So we hired him as a contractor for three months at a low rate. If he could do it, we would hire him full-time as an employee at a real (market) salary. If he couldn't, we would lose him at the end of the contract. This approach let us gamble on him, with the only downside being the cost of the contract if he couldn't perform. He worked out, so we hired him.

You might need to structure something similar, so that a company isn't frightened off by that 15-year break.


👤 JoeMayoBot
I've used https://www.freecodecamp.org to refresh on a few subjects and pick up some new tech that I needed. They also have coding challenges and interview prep.

You might also want to start hanging out at meetups - many are virtual now. When user groups open in-person again, they're a great way to meet other devs and pick up work.


👤 rkagerer
Good suggestions above; here are two less mainstream ideas I haven't seen mentioned yet:

1) Embedded development. You're closer to the hardware and may be able to ignore the overwhelming mess of web frameworks.

2) Smart contracts. There's a lot of demand at the moment, the companies tend to be very remote friendly and since the specialization hasn't been around for long the playing field may be a bit more level.


👤 beforeolives
Do you actually have a CS degree? You only said that you studied for one.

What have you been doing in the past 15 years?


👤 Grustaf
- Learn iOS development with the Stanford course (CS193p, coding together).

- Make an app or two

- Apply to remote jobs

Nobody will care about your age, having a decent app (regardless of number of downloads) in the store is enough to get an ok job at some startup or similar.


👤 notjustanymike
I'll be a little more specific with my advice, so it may or may not help. This advice is for front-end application development.

Learn Angular. Not react, not vue, not svelte.

Angular may not be the best, fastest, or most popular web framework out there but it is a comprehensive, well documented framework. This is tremendously beneficial to avoiding JavaScript burnout, as you're not constantly fighting with different library changes and upgrades. Those other libraries are great but I feel for your needs this is the best place to start.

In going the Angular path you'll also learn Typescript which, love it or hate it, is a popular modern language here to stay.

You could also chuck in SCSS if you're interested in programatic CSS.

Again, not the most conventual advice but a good possible direction.