Hacker News new | ask | show | jobs
Ask HN: Returning to SW development after a 15-year break?
37 points by backtoswdev15 1920 days ago
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.

13 comments

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.

On a similar note, does anyone have a similar project based book recommendation for Django.

I have found that I generally learn better from books compared to video lectures.

The book I usually recommend is Two Scoops of Django with a small caveat that while it remains the most lucid guide to a fairly complex framework, Django itself has evolved since its publication (most notably in its support for async). But I actually just learned there's a new version out that targets Django 3.0 and supposedly covers all its fancy new bells and whistles. Haven't picked it up yet, maybe someone who has can chime in. But IMO you really can't go wrong with Two Scoops — I'm sure the new version is fantastic.

Intermediate-level Python proficiency is assumed, but that's to be expected when learning any new framework.

Thanks for the recommendation. Will check them out!
Thanks for your great points.
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.

It has changed a lot, but server-side rendering seem to be making a comeback [0].

We might be able to blow the old dust of the old Java Struts. Or is it Spring, or Liftweb, or some other new shiny? Scratch that - things have still changed a lot in 15 years :-)

0. https://twitter.com/sonniesedge/status/1369682513401176072

Thanks for your answer and the links.

It doesn't necessarily have to be web development. During my apprenticeship I worked on technical apps (for example, one Delphi app I wrote calculated and printed some common sheet metal unwindings for the internal locksmith shop), and that was also interesting.

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.

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

I disagree. QA is not SW development at all. Start with front end developer in any language, any framework or anything. But no QA or Testing.
Thanks for mentioning QA, that was not on my radar.

The depression is currently not a problem. It's main reason, the skin problem, is fortunately gone.

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.

To piggy back on the ideas here, don't be afraid to clone something that already exists. The important part here isn't to make a company that will make money, it's to learn by doing, so don't stress over the idea too much. I'd say add a small niche to it so it's easier to give it a unique personality. For example, a real time chat application, so you could just clone the basics of Discord, but do Discord for poker players or something.
Good point, thanks.
That are good project ideas, thanks.
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.
Good idea about the freelancing sites, that could buy me some more time. Thanks.
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.
There’s definitely high demand for “technical” web analysts at the moment. That usually means someone who isn’t afraid of html and JavaScript and can help less technical marketeers and analysts implement their measurement requirements and analytics tools either through a tag manager like Google Tag Manager or directly in code.
Thanks for your idea, this was not on my radar so far. I'll have to investigate it further.
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.

That's a good point.

Here it is common to have a probation period between one to three months, which can be terminated by both parties on short notice. And you can also define a lower salary during this period.

Hence the workaround with being a contractor first is probably not necessary with a local employer, but with a foreign employer it's probably the only solution.

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.

That site looks useful, thanks.
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.

Interesting ideas, thanks. Definitely worth to investigate more.
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?

Yes, I received a CS degree.

In the past 15 years I read a lot, analyzed companies/special situations, and created financial models in order to invest my savings. Plus I learned a few languages, primarily for reading purposes. And I've been active in a depression/suicide channel, trying to "help" people.

Maybe you can frame that as "self-employed day trader" or something. Actually this is really remarkable to be able to do that for 15 years. Most people who try that fail far earlier or don't even start.

How did you create the financial models? Pen & paper/Excel/Scripts/...?

With the help channel it might be possible put it in the CV under social engagement, like "Online Crisis hotline".

Definitely this. The fact that you have managed to keep yourself going investing for 15 years is impressive. Put some of what you did on the resume / CV and it will be much less empty. What types of models? Did you you data analysis? Those are things that might get you into a Data Science role of some sort somewhere. Something like Kaggle might be a good way to hone some of those skills and make it to someone's radar.
As I mentioned in another comment, a frugal lifestyle also played an important role.

I create models of income statements, it's nothing fancy. And no, I don't use data analysis.

I use "self-employed portfolio manager" in my CV.

There was a lot of luck involved that allowed me to do it for so long, and a frugal lifestyle also played an important role. I have no car and I live in a ~16sqm "tiny home", so there is not much space to have stuff and the rent is low.

I create the financial models with Google sheets.

Ah ok, I could imagine "self-employed day-trader" or "self-employed trader" to be more catchy/on point. But this is of course your decision what you see fits better.

Yeah but still, in many places, Berlin for instance it's quite normal for people to not have a car and exception to have one. I guess the modeling part proves that you are really good at that. So far I met 10 people (including myself) who at some point planned to do (day) trading for a living. Most never left the conceptual/preparation phase, a friend of mine started, lost some money and halted it. Of them I know 2 people who did this for a longer time (years).

I don't do day trading as I don't have the personality for it. And I think it would have been difficult to be successful over a longer period because of the fees.

My investment style is value investing, primarily in the nano- and microcap space (i.e., companies with a market capitalization of less than $300 million).

Active investing is something you can easily start doing on the side: to find your personal style, and, probably most important, to experience losses and the effect it has on you. And of course to figure out whether it is really something you want to do, because I think people often have a wrong idea of what it means to do investing for a living. At least in my case, it primarily consisted of reading. Absolutely unsexy.

> analyzed companies/special situations, and created financial models in order to invest my savings

You say you "analyzed" and "created financial models". But did you actually put money into it? And if so, did you make money?

Yes, I made my investment decisions based on that work, though not from the beginning. My first "investments" were of the kind: ah, stock XY dropped by 50% in a day, it must be cheap now.

I made some money, otherwise my savings wouldn't have lasted so long. But I failed to make enough to make it sustainable.

That's reasonably impressive.
So you haven't held a full-time job for around 20 years (since you got fired during the dotcom bubble burst)?
Yes, I never held a traditional full-time job during this time.
Congratulations!! Don’t change that.
- 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.

Thanks for your idea.

Unfortunately I don't have any Apple hardware. I have to check whether there is a way to do it on Linux.

Ah not really. You can learn swift on linux for sure, but none of the UI stuff. I started on a cheap Hackintosh but that might not be an option anymore.
You could do the same with Android as well. Most major apps want to support both platforms and will have needs for devs with both skill sets.
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.

You should learn the best possible tool available at the moment to do the job. There are better frameworks that will make you more productive.