Ask HN: Returning to SW development after a 15-year break?
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.
47 comments
[ 4.4 ms ] story [ 124 ms ] threadWhat have you been doing in the past 15 years?
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.
You say you "analyzed" and "created financial models". But did you actually put money into it? And if so, did you make money?
I made some money, otherwise my savings wouldn't have lasted so long. But I failed to make enough to make it sustainable.
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".
I create models of income statements, it's nothing fancy. And no, I don't use data analysis.
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.
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).
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.
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 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.
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
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.
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.
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.
I have found that I generally learn better from books compared to video lectures.
Intermediate-level Python proficiency is assumed, but that's to be expected when learning any new framework.
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.
- 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.
Unfortunately I don't have any Apple hardware. I have to check whether there is a way to do it on Linux.
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.
You might need to structure something similar, so that a company isn't frightened off by that 15-year break.
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.
* 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
The depression is currently not a problem. It's main reason, the skin problem, is fortunately gone.
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.