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.
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.
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.
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.
* 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
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.
You might need to structure something similar, so that a company isn't frightened off by that 15-year break.
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.
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.
What have you been doing in the past 15 years?
- 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.
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.