A 37-year-old wanting to learn computer science

81 chbkall 51 7/5/2025, 8:52:24 AM initcoder.com ↗

Comments (51)

fn-mote · 3h ago
> 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.

chbkall · 3h ago
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.

globalnode · 22m ago
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!
klipo · 3h ago
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.

chbkall · 2h ago
> just keep digging deeper to find out how the thing you’re struggling with works on a more fundamental level.

Thank you. I will keep these in mind.

Your journey is a source of motivation as well.

reactordev · 13m ago
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.

WillAdams · 3h ago
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:

- 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

chbkall · 2h ago
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?

WillAdams · 1h ago
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:

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...

giantg2 · 2h ago
I wouldn't try to get into. I'm in my 30s and age discrimination is real. Nobody wants to hire a 30 something entry level engineer. They dont even want 30 something mid-level engineers. I know because I have a disability that seems to have capped me at these levels, I'm about to be fired, and the job prospects look abysmal.
reactordev · 11m ago
The hard part is proving it. They’ll say it’s culture fit, or there’s a more qualified candidate. Being fired for any reason other than the real reason gives them indemnification should you say otherwise.
giantg2 · 6m ago
Well, I have some stuff in writing that shows they violated the ADA at least twice. So a lawyer should be able to get a nice payout for me when they do fire me.
matt3210 · 4h ago
Find a series of small irritations on your computer and write scripts to solve them.
notepad0x90 · 3h ago
Solid advice. I would just add to write C. There is a thing about finding a problem that really annoys you that focuses and tunnelvision's you.
chbkall · 2h ago
I tried learning C a while back. I would like to review it again and build / solve some problems using C.
chbkall · 2h ago
Would you give me a small example of the kind of small irritations you are talking about here?
surgical_fire · 2h ago
For example - I wrote a script that automatically rsyncs a bunch of folders I care about to one external HD, and then replicates the backup to a different external HD for backup purposes.

That sort of thing that would require you to run a bunch of commands and that you have to do from time to time. Automating it to a single script is cool.

I have a friend that wrote a bot to track the prices of stuff that he wants to buy and messages him on Telegram the current price and the min/max since it started running. Another fun little project.

chbkall · 2h ago
Ah. This definitely sounds exciting and makes me think.
upghost · 41m ago
If you want to speed run things and you have a little money to spend, I'd check out Dave Beazley's workshops, particularly his Advanced Python Mastery course[1].

One advantage you have over senior developers is that senior developers need to be generalists, you have the opportunity to go deep. It is entirely conceivable you could learn Postgres, JavaScript, or Python better than someone who has been programming in those languages daily for over a decade simply because they have a lot of other things to worry about. They can't read the manual cover to cover, no time. You can. Being a deep specialist in a technology has a lot of value.

If you find a programming community you love, start going to conferences as soon as possible. There are often financial opportunities available for new developers.

This is not going to happen overnight. In most cases to get proficient you can expect that working 3 hours a day, 3 days per week, it will take you about 3 years to reach a point where you might be employable -- although you will probably find you need to put in more time than that. But you can reach a point where it is enjoyable before then.

Good luck.

[1]: https://dabeaz.com/advprog.html

thomascountz · 3h ago
I feel as if commenters have not read the blog post in the same way I have.

More than anything, what a self-starter community-taught coder needs is motivation, curiosity, and access to resources. It does not matter where you begin, so long as you have enough stuff to take the next step.

OP, as you've said so yourself, the places you can go are vast! And it's no small thing to have already made working things! Now is the time to play, discover what you like and don't like, start projects and abandon them, go down rabbit holes, get stuck and frustrated, to over-romanticize, to become bored, to feel like an imposter, to become jaded but then to be inspired again, and to experience the magic of making.

I wish you luck and thank you for sharing. I'm excited to learn from you!

chbkall · 2h ago
Thank you for your kind words and motivation. I would like to experience what you have talked about here.
noelwelsh · 4h ago
In a good economy, one year is more than enough time to get a job (considering most bootcamps are 12 weeks, and I know a lot of bootcamp graduates who are employed as developers.) Learning on the job can be beneficial as you usually have others to learn with, and learning is contextualized.

Good luck with it!

ilamont · 2h ago
Are boot camps still a thing? I thought the bloom was off, as documented here many times in recent years.

https://news.ycombinator.com/item?id=15095805

hiAndrewQuinn · 3h ago
>[I]t is not aimed towards landing a job as a software developer.

>I am mindful of the ageist tendencies in the tech industry [...]

These two claims seem at odds to me. If you're not aiming at getting a job, why does it matter to you what the tendencies of the tech industry are?

albertojacini · 4h ago
I started when I was 34, for the same motivations that you describe. It become my profession and my hobby. I'm now 47 and I'm still enjoying the ride a lot.
chbkall · 2h ago
Right there is my motivation.

No comments yet

mattlondon · 4h ago
Good luck.

I'd recommend finding a MOOC course that covers some of the fundamentals of computer science to make sure you have a really solid grasp of the fundamentals - the whys and how's etc. Data structures, algorithms, networking, databases, design paradigms (so Object orientated Vs functional Vs whatever), testing etc. If they use multiple programming languages in different classes then all the better as I think learning more than one makes it easier to grasp the principles at a more theoretical/abstract level and not just how language foo does it and you'll find your favourite language(s) eventually in your own time so don't give up if the class is in a language you don't know/like.

It's tempting to use AI - I'd recommend you think of it as a knowledgeable friend who you can ask questions - is there a better way to do this/what alternatives are there? What does this function do? Why does this code do this and not that etc etc. You won't learn if it just implements for you, but as a learning companion you can bounce ideas off of or help you out of a rut etc it is great.

It is tempting to concentrate on like a React Bootcamp or whatever to get "practical skills" to start going off and building things, but I think that is like the difference of being the person who is paid to only assemble flat pack furniture following instructions vs the person who is paid to design the flat pack furniture and all the smart little fittings and how it all goes together and will it be strong enough and fit in the box and meet the price point and look like what the designer wanted it to look like and so on.

Finally, don't worry about writing "bad code" or bugs. We all do it from time to time and no one is perfect.

chbkall · 2h ago
Thank you for your kind suggestions and advice. Concentrating on 'practical skills' and 'shiny frameworks' is exactly something I want to avoid and focus on aspects (data structures, algorithms, networking etc) which you talked about.

I will keep your advise on AI in mind.

patchule · 1h ago
“knowledgeable friend who you can ask questions”

A friend who will randomly lie and mislead you in ways you can’t detect. Might be better to use ai for stuff like writing tests, summarizing data, and other low level stuff one can effectively supervise and where errors are low impact.

I would not treat current llm based ai models as an expert or a trusted friend but as the exact opposite, an unfriendly fake-expert. Unfriendly fake experts are still extremely useful if they work for free and can be scaled up, so definitely op should use ai, but he should never trust it.

bilvar · 4h ago
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"
xeonmc · 4h ago
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.

randomNumber7 · 3h ago
I would recommend to take the time and read some of the old papers and texts to get a deep understanding. Like Codd's paper on relational databases and Shannon's paper on entropy.

Also while I would not start a project in C understanding the memory model and how to implement basic data structures in it is s.th. every programmer should know IMHO.

ciwolex · 4h ago
If you want to really learn it and master it, I'd advise you start with a project to build something you'd like. With that in mind, learn a programming language. JavaScript, CSS and HTML will be a good start for the frontend. You'll then need some backend skills. You could learn MySQL and JavaScript will also help you develop the back end. Along the way, you'll figure out a lot of the stuff yourself. Avoid using AI at all costs if you really want to learn. Once you've mastered the skill, AI will be a multiplier. Good luck
867-5309 · 3h ago
they built the blog you (possibly) just read..
Barrin92 · 4h ago
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.

kgwxd · 2h ago
Where's the part where you became qualified to teach Math, Science and Computers to primary students after dropping out of school because of "competitive exams" (exams aren't a competition)?
moktonar · 4h ago
In the end it’s all about bytes and the meaning you assign them.

Edit: and algorithms

heyak · 4h ago
Hey, love your journey!
chbkall · 2h ago
Thank you
cynicalsecurity · 4h ago
There is no age limit.
dvh · 4h ago
There is, 127 years (nearest round number from maximal human lifespan)
matt3210 · 3h ago
Appropriate given age starts at 0
greenbit · 1h ago
Drat, I forgot to wish my son "happy zeroeth birthday" when he was born.
addvicks · 4h ago
Stop writing about how you're going to do this, and just do it. Everything you need is available online.

Writing blog posts like this is a form of procrastination, and distracts from your stated goal.

thomascountz · 4h ago
> I designed this website on my own as well while reading the book Refactoring UI [2]. This took me almost 4 months.

They have built something and they have used that something to shape a plan for achieving their goal. "Stated goal" and "just do it," are mutually consistent with "writing blog posts like this..."

mrkickling · 3h ago
You might be right but I also think writing down your goals can be useful if you want to achieve them.
zeroCalories · 4h ago
Blogging about your work can be great, and they haven't actually stalled out yet so you're being too cynical.
qwe----3 · 4h ago
A bit too much romanticizing the field of software for me... I'm not sure this will really help you rediscover yourself.

No comments yet

supermatt · 3h ago
> I really want to learn how to… (misc domain stuff)

From your objectives, I don’t think you want to learn computer science, you want to learn how to be a full stack software developer.

Learning certain aspects of computer science may certainly help you, but it’s by no means a prerequisite - and won’t help you to actually build things.

Learn the things you aim towards by doing and reading domain specific knowledge.

chbkall · 2h ago
The objectives I mentioned are somewhat guided by what I know at the moment. I really would like to understand computers and computing at a more fundamental level. When that happens, I am hoping my objectives will also change / evolve.