> My lovely wife ([…] who believes I have adult ADHD) is supportive of my journey, and has no qualms becoming the only breadwinner of the family.
Some advice for the OP:
1. Don’t give up working. IMO, a job provides structure to the ADHD and keeps you moving forward instead of spinning your wheels. Change job? Sure. Work 25 hours/week? Sure. Not 0 though.
2. Before you start on the projects, spend some time learning how to design programs. I like HtDP.org but it’s kind of oriented to a class setting.
3. OSSU could be the project of a lifetime. Beware getting sucked in there. That said, some of the courses referenced are excellent. Knowing ALL of them is a lot.
4. Have an exit plan if you are not working. When will you work again? Some bad scenarios are less horrible if you are ready to jump back into the workforce.
Hey thank you for the time you took to comment and offer advice.
1. I agree. I am still working on the community project which my wife is building - it has started to grow and looks like it has the potential to become a sustainable source of income. I have built the website and automated some stuff for her. I am also honing my skill as a woodworker and toymaker - learning to make wooden toys.
2. I did the HtDP version of the program hosted on the edX platform. I enjoyed the whole program and it was very insightful on how to think about creating larger and complex programs. It also motivated me to read the SICP textbook - I've read a couple of chapters from the book. I also adapted the HtDP program in Hindi to teach village girls here for a local non-profit on how to code.
3. I agree about OSSU. What I don't like about OSSU courses is retention. I did the Programming Languages (A, B and C) course by Dan Grossman a few months back. I enjoyed the course and the exercises - but I am not sure how much of it I retain today. These and the HtDP program has definitely helped me to think what might be happening inside the hood of programs rather than treating them as magical boxes.
4. I think I can keep exploring computers while simultaneously make my living as a woodworker / toymaker. It also helps me balance my faculties of mind and my hands /body. I am not thinking of an end goal at the moment but want to keep exploring and potentially building.
when i was learning i remember crying into my c++ book because i had no idea what they were trying to say. learning computing did not come easy to me. i think the only thing to be wary of is feeling like a fraud, even though you may eventually know a lot and be an accomplished programmer (it helps if you have people that believe in you). good luck to you though and i hope you enjoy learning all the new and interesting things in this field!
It’s been difficult talking with people that have made the decision to go into development, because it’s a weird and risky occupation right now.
An analogy would be wanting to become an artist, so you learn your way into a field position on a semi-pro baseball league where artists play baseball. Some players come up with their own unique spin on the ball as they throw it, others attempt to swing the bat the way they’ve been told. Older players may have advice, but not play as hard. The goal is to just make points, and new players are in awe of the artistic ways they could become great and make bank. For years and years, players would get injured, fired, or just age out in their thirties, because you rarely ever saw anyone older; there were some small old person leagues, too, I guess? And older players might become managers, coaches, owners, sports journalists, or just leave the profession. They just kind of disappear- people are only thinking about the game. But, within the past several months, players have started working independently with robots on the field. The companies making the robots swap out new robots every few weeks which compliment the players and play something that seems like baseball, but often isn’t. People worry that robots seem to be attempting to takeover the jobs of the players. They mostly hit some runs when no one is on base, but they create holes in the field in the process. People don’t understand why the players are either micromanaging the robots or are spending time filling holes, because the robots score points, and they’re focused on the scoreboard.
1. Agreed. There's strong evidence that most people who quit their jobs to pursue passion projects accomplish less than those who pursue them but keep their jobs.
I see people conflate computer science with computer programming regularly. If you are motivated to build things you probably want to pursue the latter, and dig in to understand how the things you use work. Maybe your want to go deeper academically in certain areas, but do you want to be motivated by real world application or theoretical underpinnings? True comp sci is a lot closer to mathematics than most people's think. Sometimes this is required for deep understanding of what you're doing as a developer, but rarely.
I have always found this quote annoying. There are many ways to solve problems, but when you constrain yourself to solving them mechanistically, that is what makes computer science computer science. Virtually every theoretical CS paper implicitly presupposes a specific model of computation. Sometimes they even say it explicitly.
Sure, computer science is not about a specific computer. But it is definitely about computers.
Good luck! I’m going through a similar journey. I’m in my late thirties and only started software engineering professionally 5 years ago, without a formal CS degree, but with a hobby-level affinity for computers. It seems like you have an intrinsic interest in the subject. I think this is THE key, because you will grow the most by figuring things out in a play-like fashion, this will solidify your understanding and build intuition.
Looking back what has helped me a lot is being surrounded by more experienced engineers that were good at teaching (those are quite rare I discovered later).
Other than that, read a lot of code, write a lot of code, and keep reflecting on what areas to further develop. Be kind to yourself, this space is huge and no one’s is an expert in all of it. Burn out is real, especially when struggling alone for too long. One thing that has helped me as well is to realise everything in software engineering has been made by humans. None of it is actually ‘unknown magic’, just keep digging deeper to find out how the thing you’re struggling with works on a more fundamental level. The LLM age has made this so much easier.
I don't know how comfortable I feel throwing around terms like computer science and software engineering. I know a lot of people who can program but I would never have them design a medical system or anything having to do with life or death situations.
the keyword there is "design". systems engineers/architects design those things, not coders. And they are made safe by entire teams of academics, clinicians, engineers, testers, scientists, and even lawyers.
Nobody else will tell you the truth: nobody will ever hire you as a software developer. You will never get past the filter.
I tried to enter the field at 35. I couldn’t get an interview with a CS degree. I did everything right. Good GPA. Portfolio. Professional resume help. Sent applications for two years and heard nothing. Now I’m 45 with nothing to show for it. All those late nights studying coding interview questions and I never got a chance to try.
The success stories you hear are people with friends or family members who get them through the door. Unless you know someone like this, give up now and don’t waste your time.
I have some doubts about your statements. If you can't get a job at FAANG or the major startups, sure - that makes absolute sense. Competition is crazy.
If you can't get a job at all, that makes no sense, and probably speaks more to the fact that you might be an academic parrot who can talk code, but not write code, as an actual software developer with practical abilities. And that goes more to your lack of practice, rather than lack of knowledge. The world is not to blame in that regard but you.
Alternatively, try different domains - your skills might work little wonder in the software world, but might move mountains in other (especially labour-intensive) domains.
An often forgotten field that's adjacent to programming but much easier to get into is network engineering. If you're smart enough to program then you're smart enough to to architect and configure a network. Salaries are comparable to programming jobs, and college degrees generally don't matter much.
Getting no offers in 2 years seems very possible (it's tough out there - every job seems to have dozens of applicants), but getting no interviews at all is rough.
I wonder if anyone on HN has experience working with a technical consulting or contracting agency. Are there good ones? How hard is it to get hired?
I'm sorry it didn't work out for you. Sometimes it's luck of the draw. It also depends a lot on which industry you're in (finance, gaming, etc.). As an extreme example, if you're any good at COBOL, you can probably get a job working on legacy systems regardless of your age. Gaming, probably not so much.
You may have more success getting smaller freelance jobs at first and building a reputation as a can-do developer, which might be easier to parlay into a full time job. But at the end of the day, connections are sometimes the most important factor, so I would encourage anyone in your shoes to work on not just their technical chops but also their people-meeting skills.
I want to call out something here. I’m all for learning to code at any age but companies need to stop being ageist and discriminatory towards older coders and workers.
I’ve started to see this myself. I’m certain it’s ageism.
To the OP, if you’re passionate about it, don’t let anyone/thing stand in your way.
Ageism is as real as any other prejudice. And unfortunately it's just a difficult to prove. I've seen the faces of the room full of "kids" (yea, that's reverse ageism I suppose) when doing remote interviews and watched them drop as soon as I appear on the screen.
Then it's just a matter of speeding me through the interview until they can find the candidate with the "right team dynamic" or "culture fit" etc. The excuses I've heard are quite amusing, but transparent.
I would simply ask upfront if they’re open to hiring over 40 and/or hiring with a disability (and then mention I’m not litigious and simply don’t want waste their time if they aren’t looking for that, no hard feelings). I actually had a few places admit they are not going to hire over 40 + a disability after I made it clear I have no intentions to sue.
i've never discriminated. I don't wanna know your name I don't wanna see your face. Pass the test pass the interview. we can use chat if you want to I don't care. Well maybe now I care because of ChatGPT. you also have to pass all the criteria from HR, but that could have anything to do with your right to work or criminal record. That's not my concern either. On my last job the first person I hired was 67 years old and I didn't even know it. They did the work of eight people easily. The only surprise was that I didn't learn anything from them. (Pro tip: if someone like this tries to teach you something someone told them to tell you. this guy is not gonna say anything he's getting paid €300 an hour) What was not surprising, was that every project was completed with extremely high-quality and completed early. what I learned from him was always keep a pocketbook handy for the times you get bored. He was bored very often.
The things described as the goal of the OP are not Computer Science, they're mostly Software Engineering/Development. Even though there is overlap Computer Science is mostly math, completely irrelevant to setting up static blogs or web servers and somewhat relevant to developing applications. A more accurate title would have been "wanting to learn software development and the relevant bits of computer science which help with that"
Also, software has two things going for older late-starters:
- The mental muscles involved in the act of making software tends to be those that mature the latest, around 25--30. It is also the case for comprehending the concepts, because in the end software is mostly about "human rules for doing things" rather than "how things are in Nature, deal with it however you can".
- The proportion of the total corpus of knowledge probably has the highest online-availability of any technical fields, rather than being completely locked-in to academic intitutions.
Was surprised to not see this mentioned earlier in this HN post. Author seems to be conflating software development with computer science.
Making a bunch of apps isn't going to provide a solid foundation in CS which usu. includes topics such as linear algebra, discrete mathematics, calc (at a minimum differential and integral), data structures, algorithms, etc.
I've been re-learning CS (programmed as a kid, then missed getting a minor in CS in college after the service by one 300-level course which wasn't being re-offered when I needed it) and then just did (La)TeX and AppleScript for my day job, but am now trying to create a tool for CNC which is quite different from those which have existed previously, and one thing which has helped a lot is MIT OCW:
very helpful (first reading I did one chapter at a time, re-writing my current project applying the principles of that chapter) --- interesting video overview at:
Thank you for sharing these valuable resources.
I am already on to the OCW Python course and SICP textbook.
How did you start on these resources? Did you start reading them because you needed them in your current project Or did you read them because you thought they will be useful for your project?
I read SICP a long while back, so the video lecture was a useful review.
For the balance, I managed to get a working version of my project pretty quickly when the Python version of OpenSCAD first became available: https://pythonscad.org/ but I quickly hit a plateau and was having trouble adding features and improving it, so I began researching and trying to learn what I needed for:
In some sense blog posts like this shouldn't even need to exist, or the doubt you can read between the lines. At 37 you're a decade and a half into adult life, you probably got like 50 years left or who knows how much with what the future will bring.
That people who haven't even reached middle age yet are already mindful of ageism when it comes to reinventing themselves is just crazy. There's something messed up in our culture around age. It's one thing I enjoyed about chess growing up. Chess clubs are one of the places where you genuinely meet people at every age and skill level and they don't feel like they need to justify it.
Some advice for the OP:
1. Don’t give up working. IMO, a job provides structure to the ADHD and keeps you moving forward instead of spinning your wheels. Change job? Sure. Work 25 hours/week? Sure. Not 0 though.
2. Before you start on the projects, spend some time learning how to design programs. I like HtDP.org but it’s kind of oriented to a class setting.
3. OSSU could be the project of a lifetime. Beware getting sucked in there. That said, some of the courses referenced are excellent. Knowing ALL of them is a lot.
4. Have an exit plan if you are not working. When will you work again? Some bad scenarios are less horrible if you are ready to jump back into the workforce.
1. I agree. I am still working on the community project which my wife is building - it has started to grow and looks like it has the potential to become a sustainable source of income. I have built the website and automated some stuff for her. I am also honing my skill as a woodworker and toymaker - learning to make wooden toys.
2. I did the HtDP version of the program hosted on the edX platform. I enjoyed the whole program and it was very insightful on how to think about creating larger and complex programs. It also motivated me to read the SICP textbook - I've read a couple of chapters from the book. I also adapted the HtDP program in Hindi to teach village girls here for a local non-profit on how to code.
3. I agree about OSSU. What I don't like about OSSU courses is retention. I did the Programming Languages (A, B and C) course by Dan Grossman a few months back. I enjoyed the course and the exercises - but I am not sure how much of it I retain today. These and the HtDP program has definitely helped me to think what might be happening inside the hood of programs rather than treating them as magical boxes.
4. I think I can keep exploring computers while simultaneously make my living as a woodworker / toymaker. It also helps me balance my faculties of mind and my hands /body. I am not thinking of an end goal at the moment but want to keep exploring and potentially building.
It’s been difficult talking with people that have made the decision to go into development, because it’s a weird and risky occupation right now.
An analogy would be wanting to become an artist, so you learn your way into a field position on a semi-pro baseball league where artists play baseball. Some players come up with their own unique spin on the ball as they throw it, others attempt to swing the bat the way they’ve been told. Older players may have advice, but not play as hard. The goal is to just make points, and new players are in awe of the artistic ways they could become great and make bank. For years and years, players would get injured, fired, or just age out in their thirties, because you rarely ever saw anyone older; there were some small old person leagues, too, I guess? And older players might become managers, coaches, owners, sports journalists, or just leave the profession. They just kind of disappear- people are only thinking about the game. But, within the past several months, players have started working independently with robots on the field. The companies making the robots swap out new robots every few weeks which compliment the players and play something that seems like baseball, but often isn’t. People worry that robots seem to be attempting to takeover the jobs of the players. They mostly hit some runs when no one is on base, but they create holes in the field in the process. People don’t understand why the players are either micromanaging the robots or are spending time filling holes, because the robots score points, and they’re focused on the scoreboard.
Does the artist belong on a baseball field?
Is there a more efficient way to score points?
A good student finds teachers everywhere. The converse is true too. The drive & patience are the most important things.
Take one problem - solve it end to end by first principles. You’ll do great.
Sure, computer science is not about a specific computer. But it is definitely about computers.
Looking back what has helped me a lot is being surrounded by more experienced engineers that were good at teaching (those are quite rare I discovered later). Other than that, read a lot of code, write a lot of code, and keep reflecting on what areas to further develop. Be kind to yourself, this space is huge and no one’s is an expert in all of it. Burn out is real, especially when struggling alone for too long. One thing that has helped me as well is to realise everything in software engineering has been made by humans. None of it is actually ‘unknown magic’, just keep digging deeper to find out how the thing you’re struggling with works on a more fundamental level. The LLM age has made this so much easier.
Thank you. I will keep these in mind.
Your journey is a source of motivation as well.
I tried to enter the field at 35. I couldn’t get an interview with a CS degree. I did everything right. Good GPA. Portfolio. Professional resume help. Sent applications for two years and heard nothing. Now I’m 45 with nothing to show for it. All those late nights studying coding interview questions and I never got a chance to try.
The success stories you hear are people with friends or family members who get them through the door. Unless you know someone like this, give up now and don’t waste your time.
> I did everything right
This can't be true.
If you can't get a job at all, that makes no sense, and probably speaks more to the fact that you might be an academic parrot who can talk code, but not write code, as an actual software developer with practical abilities. And that goes more to your lack of practice, rather than lack of knowledge. The world is not to blame in that regard but you.
Alternatively, try different domains - your skills might work little wonder in the software world, but might move mountains in other (especially labour-intensive) domains.
I wonder if anyone on HN has experience working with a technical consulting or contracting agency. Are there good ones? How hard is it to get hired?
Deleted Comment
You may have more success getting smaller freelance jobs at first and building a reputation as a can-do developer, which might be easier to parlay into a full time job. But at the end of the day, connections are sometimes the most important factor, so I would encourage anyone in your shoes to work on not just their technical chops but also their people-meeting skills.
I’ve started to see this myself. I’m certain it’s ageism.
To the OP, if you’re passionate about it, don’t let anyone/thing stand in your way.
Then it's just a matter of speeding me through the interview until they can find the candidate with the "right team dynamic" or "culture fit" etc. The excuses I've heard are quite amusing, but transparent.
- The mental muscles involved in the act of making software tends to be those that mature the latest, around 25--30. It is also the case for comprehending the concepts, because in the end software is mostly about "human rules for doing things" rather than "how things are in Nature, deal with it however you can".
- The proportion of the total corpus of knowledge probably has the highest online-availability of any technical fields, rather than being completely locked-in to academic intitutions.
Making a bunch of apps isn't going to provide a solid foundation in CS which usu. includes topics such as linear algebra, discrete mathematics, calc (at a minimum differential and integral), data structures, algorithms, etc.
- the Python courses got me up-to-speed on the basics of that language: https://ocw.mit.edu/courses/6-0001-introduction-to-computer-... and https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-pr...
- Structure and Interpretation of Computer Programs served as a disciplined review of a book which I wasn't patient enough to do the exercises of when I first read it: https://ocw.mit.edu/courses/6-001-structure-and-interpretati...
- Mathematics for Computer Science helped make up for my spotty math: https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-...
I've also found the recent book:
https://www.goodreads.com/book/show/39996759-a-philosophy-of...
very helpful (first reading I did one chapter at a time, re-writing my current project applying the principles of that chapter) --- interesting video overview at:
https://www.youtube.com/watch?v=bmSAYlu0NcY
If one is fortunate, there are videos on specific subjects/algorithms which one needs, e.g.,
https://www.youtube.com/watch?v=jvPPXbo87ds
How did you start on these resources? Did you start reading them because you needed them in your current project Or did you read them because you thought they will be useful for your project?
For the balance, I managed to get a working version of my project pretty quickly when the Python version of OpenSCAD first became available: https://pythonscad.org/ but I quickly hit a plateau and was having trouble adding features and improving it, so I began researching and trying to learn what I needed for:
https://github.com/WillAdams/gcodepreview
Been collecting lists of the books I've been using at:
https://www.goodreads.com/review/list/21394355-william-adams...
https://www.goodreads.com/review/list/21394355-william-adams...
I will note that my preference (as a person coming at this from (La)TeX is for Literate Programming:
http://literateprogramming.com/
so have also put together:
https://www.goodreads.com/review/list/21394355-william-adams...
After you got it installed, run:
then, edit a text file called ~/.csirc with the contents:(import scheme) (import (srfi 203)) (import (srfi 216))
That people who haven't even reached middle age yet are already mindful of ageism when it comes to reinventing themselves is just crazy. There's something messed up in our culture around age. It's one thing I enjoyed about chess growing up. Chess clubs are one of the places where you genuinely meet people at every age and skill level and they don't feel like they need to justify it.