Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
On finally learning to program at the age of 40 (2020) (github.com/dhghomon)
215 points by dlcmh on Oct 23, 2022 | hide | past | favorite | 110 comments


This article illustrates quite well what our industry is suffering from. (Apart from being 10x as long as needed and full of rambling that makes it hard to actually read fully.)

There seems to be the perception that you can just "get into programming" in a few weeks and then you are a competent programmer creating anything of high quality and value. It's not the case for skilled carpenters, neurosurgeons or concert violin players. How come people seem to believe it's true for the art and craft of software engineering? I've been a computer nerd since high school, studied a Comp.Eng. degree for 5 years, went to grad school for another 4 and now I'm in an industry job for 3 years, and I consider myself only marginally competent at my craft. How come my soccer friend thinks he can watch a bunch of Javascript youtube clips and take an easy distance course at a university to score him a high paying job 2 months from now? That's not how it works, neither with carpentry nor with neurosurgery nor with concert violinists nor with software engineering.


Carpentry is the better analogy for programming. There's a spectrum for the work software engineers do. neurosurgery and concert violin are pretty tight on what the end goal is and you don't usually do a decent job from day one without a lot of supervision.

Whereas smacking a few bits of wood together (framing) gets you in the door as a carpenter. But there's a whole bunch more to learn if you're going to do fine woodworking. However, you can be productive from day one if you're willing to learn. That's the same as being a developer these days.

People will pay for low end skills because they are still a skill. You have a comp engineering degree. What are you working on in your job? Does the education fit the work, or on reflection do you have a little too much qualification for the work you're doing?


Carpentry is a great analogy. Half of all woodworkers have no concept of the properties of wood grain; they'll mix up edge and end grains on decorative cutting boards.

I wish I understood the "grain" in programming better. It's a lifelong search.


Programming is harder than carpentry, because the “surface area” is much larger, and also because you need a much greater ability to abstract and to understand abstractions. It would be a bit different if the programming ecosystem (tools, APIs, languages, services, etc.) was stable. Then you could train people to perform useful standard tasks, that they could then do for at least a decade or two. Just like how you build a simple table, bookshelf or cupboard doesn’t change every two years. But look at how much more complex and in constant flux the world of software development is.


Hmmm, I know I'm playing to the wrong crowd here but I am a horrendous carpenter. Here's what is missing for me from carpentry:

- copy/paste. You made one perfect table leg? Great, now make another 3. From scratch

- undo. Cut that plank a bit short? Start again

- incremental changes. Want to change the angle of that join? Start again

- imports. Don't want to make those fancy doohickies that go along the edge? You could try to buy some but it's not like there's an international database where you can pick and choose often for free

- debugging. Oh, your wardrobe just fell in a heap when you installed it? Hopefully you can salvage some of the materials and then figure out what went wrong

I'm not a very good programmer either, so I'm sure there's more


Let’s put it this way: If carpentry earned the same money as programming, we probably would have more carpenters than programmers.


You could probably say that about any occupation imaginable though, right?


It wouldn’t be the case for occupations that are either unattractive in terms of the actual work (coal miner, sewage worker, fisherman, undertaker) or have high barrier to entry in terms of qualifications (neurosurgeon, PhD-level scientist, lawyer, professional sports).

Carpentry is reasonably attractive in terms of actual work, so that if it payed as well as software development, many people would want to take it up. My point is that a larger portion of the population would have the necessary ability (and, I assume, inclination) to become a competent carpenter than a competent software developer.


not to mention all your knowledge of wood won't be completely irrelevant in 5 years.


Used to be "irrelevant in a few months (er,weeks)" for JS, at least a while ago. [ducks to avoid projectiles]


I'd say programming Grain is just simplicity. It takes real work to find that simplicity.


I get what you are saying, but the author isn't making any wild claims here, just that he finally made the transition from wanting to learn to having some basic ability. We don't think that people who just learnt to swim are ready for the Olympics, just that they can no longer be classified as non-swimmers.

What I found interesting was that part of his "learning journey" was to write a textbook about Rust even though he has never completed a major project with it. I wonder how many "how-to's" out there (not just for programming) are basically notes written as the author was learning that thing themselves. It's a pretty gutsy move and I don't don't think that I would do it


That's Mediums entire business model. Blog spam by people who can barely switch a computer on.


> That's not how it works, neither with carpentry nor with neurosurgery nor with concert violinists nor with software engineering.

Not quite a violin, but once upon a time I bought my first guitar and literally two weeks later was playing to a paying crowd of ~100 people. I certainly wasn't producing quality, and still can't, but I found something that a small number of people valued.

Some goes for software. You can create the most horrible monstrosity imaginable, but it can very much still deliver value. The audience who finds that value may be smaller than a master craftsman can attract, but at software scale a small audience is still huge.


And I’d argue the reason these crappy software products often succeed is because they’re made by people who have direct knowledge of the problem.

I know a guy who works in the food industry. Not a CS nerd by any stretch, but he started dabbling in Python, and then got a huge raise because he could use Python to autogenerate PowerPoint decks that present a bunch of otherwise tedious-to-assemble information in a fraction of the time.

Could a professional developer do a better job? Almost certainly.

Did the company need to go find/hire one to achieve a huge efficiency gain? Nope.

Will the same guy be able to spearhead some massive greenfield app dev project? Not anytime soon.

The same thing is happening across industries. People with iPhones and Davinci Resolve are churning out social media content that previously would have required $100Ks of equipment and specialized training.

Will these same people direct the next Oscar winner? Probably not. But that’s beside the point.


To play devil's advocate 1. Not all CS projects are equally hard. Many successful projects have been written by kids with no formal education. In the same way that some great music have been written by beginners. 2. Some people learn coding at 7, have a formal education up to a PhD and they aren't better engineers than others with only 3-4 years education. A reason is that a lot of time may be spent on things irrelevant for the job.

But then I agree that nowadays a few years education seems like a minimum.


There was a lot of low hanging fruit in the mid 2000s, when Ruby and Python made creating relatively complex software easier. Now most obvious app markets (hotel/travel booking, social media, ordering food, dating, ride hailing/sharing) and everything web is three layers of framework tweaking. I think clueless 'coders' had a window in time where they could actually produce a lot of economic value but now they're producing more harm then good. A lot of people come out of bootcamps now thinking 'programming = editing high level languages in a text box' and don't have the depth of knowledge to design and run sane production environments.


This was true for me. I made ok money off a simple web service I created in 2013 with no formal education. But I think it still exists to a lesser degree now, probably only if you have some other domain specific specialisation though, contacts etc. e.g I am a farmer than knows how to code a little which is fun.


> How come my soccer friend thinks he can watch a bunch of Javascript youtube clips and take an easy distance course at a university to score him a high paying job 2 months from now? That's not how it works

Except it's exactly how it works: Your soccer friend can probably job-hop for years before everyone realises they have no idea how to tell a computer what to do, and by that point, they might be ready for management.

Why are you so mad? You think hard work should be appreciated or something?


I knew someone who was hired as a carpenter with no training or experience. It happens in a housing bubble.


To be trained as a carpenter while being paid, more likely. Like the coding bootcamps that “graduate” you and then rent you out. If there’s no skilled labour. You have to create your own.


Because barrier to entry is much lower now than it was for you when you entered the field. What we do is not that difficult and with the advent of youtube, best practices, and better tools it has become much easier than it used to be. It is also easier because to learn it you only need a computer, internet-connection, and free time. Training to become a carpenter for example, requires space, physical work, and some money.


>>> What we do is not that difficult

Somethings are not, but some are. Just like everything else, software work also ranges from easy to hard.


Not difficult to do in some academic way, but often demanding of your attention in boring ways (writing tests, handling errors, etc.) that the developer in it for the money isn't able to commit to.


Just like everything else too, most of the work out there isn't that difficult


> How come my soccer friend thinks he can watch a bunch of Javascript youtube clips and take an easy distance course at a university to score him a high paying job 2 months from now? That's not how it works

That is how it works at most places for anyone starting out.

All the formal education is great for seniors and the 3% who do more than push boxes all day. For anything else, it ranges from useful to an active detriment. Given most devs will not be expected to be productive regardless of education and sit 5 years doing mostly the same work, that's a lot of time to train someone into the ideal cargoculter, which will keep them hireable in most of the market.

Vice versa, someone who sees inefficiencies, knows things can be better, etc.? Yeah, you get a few "look I did these amazing things and now my company loves me" stories, but the vast majority will struggle balancing their own desires and thoughts with company processes and political walls.


There is this idea that the initial inertia to "get it" is the main issue, after attempting probably 20 or so MOOCs, had friends run over the basics a few times but not catching the 'spark' of engagement that drives you forward.

The concept is presented in a binary because of how spoken languages are presented. you are either "fluent" in a language or you arent. Knowing a few words vs conversational french is a discernable difference, while of course the process of learning is gradual, I believe it's partially referring to the confidence to use something actively.

"Learning to program" constitutes being able to interpret nearly any code in that syntax, and to produce your own working code without outside intervention that actually does something useful. This is all that is required for most business programming, so it's the goal. A question could be posed - Can you make a CRUD app in X without someone helping you, or at the very least pseudocode one?

People want to be in the yes camp to the above question


I always have the same reaction when I watch threads on /r/learnprogramming. I believe it's due to "programming" attracting people who want quick money (without having no interest whatsoever in programming languages or computers), the hype of the Web2.0 and the scams created by all the so-called bootcamps who promised all those things.

I've been writing C++ on every OS for the past 20 years and still don't consider myself a good programmer. I read every day to improve myself though but I still have a lot to learn.


You can't become a skilled carpenter with just a few weeks of training, but you can apprentice with one if you can swing a hammer and are willing to put in the effort to learn, follow instructions, and work hard.

I suspect a lot of entry-level programming jobs are like that, even if they don't intent to be apprenticeships.


Those apprentices don't get paid a journeyman salary though, but many of these very new programmers seem to think they should.


I understand the sentiment, but this is just the inevitable result of "software eating the world" and huge demand for programmers. Rather than hand-wringing over all the clueless attitudes out there, count your blessings!


not sure if appearing competent enough to score a job is really dependent upon actually being a decent software developer


Kudos to the author but I got the impression that they equate "learning to program" with "learning syntax" which, I think, is a mistake. I've noticed the article talks a lot about things like "print", "goto", dereferencing, enums, but nothing about algorithms, data structures, architecture, patterns, how to properly structure your code. That is, the author learned how to make small one-off utilities but there's no mention if they went beyond that. I program since childhood and I'd say I'm still learning how to program because there's so much more to it than just finishing a few crash courses and making your Rust program finally compile.


A big part of learning to program early is absolutely how to internalize the syntax you're seeing into a mental model of the program. I bounced off of Java on first encounter for no better reason than "wtf is public static void main supposed to mean, i want to understand not just cargo cult examples".

Data structures and so on are what you build on top of that baseline understanding. They're important, sure, but getting over that first hump is hard. Once you have some familiarity -- some real roots set into a language -- you can start to learn how to build real(er) things in it. All the architecture in the world won't help somebody who can barely hold one function in their head.


> but nothing about algorithms, data structures, architecture, patterns, how to properly structure your code.

To be fair, that is the fault of most programming textbooks and courses.

Maybe ONE programming course (Learn Go With Test) I’ve seen has focused on this.


Agree, you should be so proficient at coding that the actual coding part of programming is intuitive so you can focus on the much more difficult task of where/how/why that code is going to run.


Learning to program is not some discrete event, some fixed point in time, where you could not do it before, and you can afterwards.

It's a continuous process. Understanding the syntax is maybe the first step but this is easy. Understanding control statements like conditional code and loops, maybe recursion, is a next big step, if it's all completely novel to you. At this point, you probably already can program a lot of basic things, when you are persistent enough to work through all the errors. So at this stage, you might say you have learned to program.

But then there is so much more, like all the relevant data structures, etc.

I'm know coding since 25 years and still I feel that I'm far away from really having mastered it, although I feel very confident in most things. Currently I think I could definitely improve my architectural skills. And there are many other things where I lack knowledge, which could have been helpful in certain situations.


The same could be said about learning to read, and yet we use that term often. I would say a person has learned to read once they are good enough to figure out the pronunciation and definition of new words. You reach a minimum vocabulary set and using a dictionary or Google search becomes possible.

I think you could apply the same standard to programming. You are always building your vocabulary and understanding, but anybody who has moved on from tutorials to actual building could be said to have "learned to program." The rest is just honing that skill.


>> So even up to then I had been keeping a distance from computers when out in public so that I could maintain the image of "Yeah, I'm good at computers but I'm not a computer guy or anything".

"Your time is limited, so don't waste it living someone else's life"


Of course, these days it is the opposite problem: people know that there is money in software so they base their career on it despite not having any real interest.


I am one such person, or at least I was when I began my career writing software way back in 2000. Oh well, write software is a loaded term, let's say I began writing programs. Simply for the reason you state above, more money than anywhere else with one caveat. There was this hunch that software is the future and there were more exciting stuff happening in software than in the world of let's say mechanical engineering, even in my backyard in Bangalore.

But, over time I got to love writing software and the entire industry as such. About 3 years in, I couldn't think of doing anything else. So yeah, there's no harm in pursuing something for the sake of money, because the odds are you will eventually fall in love with that path, assuming some of your qualities are suitable for that career.

But, not everyone finds happiness or satisfaction in a path that they chose for money and I think majority of them will be wishing they never had to be in that career.


“Love what you do” is a safer and more realistic professional strategy than “Do what you love”.


What's wrong with that? Money provides opportunity to do as you please.

I say this as a person who never had to worry a day in my life about money, because I thought programming was super interesting, and learned C when I was 12, and made more money than both my parents combined by the time I was 18. It was never about money for me, but I wouldn't blame anyone for doing it for the paycheck.

Falling in line with conventional viewpoints rarely gets you kudos, since it is what most people do.


There is nothing wrong with trying to earn the most money you can. I don't enjoy working with people who don't enjoy what they are doing however.


I don't enjoy working with people who don't enjoy what they are doing however.

I wonder if your manager feels the same way you feel about code, but about meetings. Maybe they wish you'd chosen a career that paid less because you don't enjoy meetings. You probably drag their working day right down by not finding meetings super fun.


If you become a novelist not because you want to tell stories but because you want to sell a few books, don't be surprised when nobody likes your novels


Isn't that how Garfield came into existence? Jon Davis created the character because he'd be marketable, and has turned the series into a merchandising empire as a result.


Except it is code that moves their company, not meetings.

Anyways, their manager can stick their opinion where the sun doesn’t shine, just OP does probably since it’s anticlimactic to express opinions like that.


Meetings are of course necessary. The problem is pointless meetings.


The meetings are not the product. The code implements the product, so this analogy falls flat.


Communication is pretty much the most important part of the process of building software at scale. Meetings are a simple way of having that communication quickly. Without communication (eg meetings) most software would fail to ship, largely because the developers would never stop working on it long enough to push it over the line.


The problem is usually, that without love for the craft, they do not have good chances to actually learn important lessons, because those are not taught in your mainstream OOP or algorithm classes. If their approach is to slam hyped frameworks together until it works, because dinner is at 7, then the outcome will be annoying to work with for people, who do learn their lessons and love the craft. They love the craft, but get their work environment made worse, by some "everything must be React/JS" kinda guy. Or by some guy who has only ever used Java for 10 years and has the idea of noun=class so calcified in their brain, that they think that is the definition OOP and makes the whole code base worse.


As a 30 year old learning C and C++ (a project I want to contribute to uses both), where does one look to earn money with said languages? To land entry level jobs?

I have some genuine interest and it won't be ling until I'm able to write small to medium programs. At that point working in an unrelated field is a bottleneck because I don't have time to spend programming. Hence I need a job so I can focus my time on actually doing it. Any advice? How I prove I'm good enough for entry level even though I'm "old" without a relevant degree? Avoiding employers that will push bad coding habits on me?


C and C++ are pretty specialized this day and age in my opinion, you might have better opportunities breaking into a programming career if you at least get working knowledge of more popular languages


I've done some projects in python and JS. I just never felt confident in what was really going on. Reading K&R helped me connect a lot of dots.


As someone who just honestly enjoys it, this has been painful to see. I feel so few people I can talk to who enjoy the craft.


It's more like folk who enjoy the craft run off and join the big tech companies in my experience.

You can work in a skyscraper, and not find a single one.

Off you go to the other skyscraper. There's a whole bunch.


True, but people do that about a lot of things.

People might become a dentist but then start to hate it, but the $$$ is too good and how is he or she going to start as a newspaper cartoonist for $13,000 per year because that is their interest?

If you don't know what you want, and don't have any real absorbing interest in too much, if nothing really turns your crank, why NOT go into the highest paying job that you can get? Nothing wrong with that?

I think these days way too much emphasis is put on the whole "Do what you love" thing. Who loves being a convenience store clerk, or a gas station attendant or movie ticket taker?

But people do it, for the sole reason that they need money. And do it year after year, for a lifetime.

It's the real high-end problem when you decide between being an investment banker, a programmer for google, a lawyer at a top 10 law firm, or a brain surgeon that graduated from Harvard med school.

Personally, I have no interest in anything. I've "explored" all kinds of areas, more than most. I'm one of those people you read about that's done 489 different jobs (hyperbole, but not much, I don't think). Nothing turns my crank. What am I supposed to do? So, I just keep going from industry to industry, lacksadaisically, wandering aimlessly through life. Am I supposed to have a goal? Am I supposed to only work one job, one career for 60 years? Those are not real questions, because I don't really care too much.

Sometimes you just gotta do what you gotta do and be a robot, go to work, go through the motions, and collect your paycheck. No dancing girls in your office every day, no $5 million gold sink in your private office, no live concert by Miley Cyrus in your personal office, how rude, how can I live without being catered to my every whim and being so, so, so happy? I MUST be happy, I MUST have a real interest....snnnnooooore. Get real, people.

The only ones whose world is their oyster are people who graduate from a top 10 school, they truly can do anything. The rest of us hacks that graduated from anything below that, or god forbid a middling or low end university with a C average, we take what scraps that fall on the floor. Let alone high school graduates, or worse, those who never finished high school.

Count your blessings.


Thank you. You said it wonderfully. It becomes absurd to see privileged people with all sorts of opportunities and economic support hectoring others because they (for some reason that obviously has nothing at all whatsoever to do with not being so cushioned) just pick up a job that's less than perfect, but do it for decades because they need to find a way to make a living, pay the bills, support family and in the lapses between tedious work, still find some way to generate a bit of personal happiness in some detail or another of their less than perfect lives.

For those of you living in your bubbles of trouble-free personal fulfillment, welcome to the real world for a vast majority of the world's population. The people that handle your menial needs don't always do so out of pure love of the job, but yes, they still find some imperfect avenues for happiness in life. There's nothing innately wrong with that either.


There's a kernel of truth.

My life is VASTLY better, because my profession I do 9-5 is something I dearly, dearly, love.

I'd read it as:

"Find something to work in that you love. Or Else."


>Get real, people.

Just because you swallowed that pill doesn't mean that others should do the same.

It's precisely when the odds are stacked against you (be it education/age and/or whatever) that success it most impressive.


>Just because you swallowed that pill

It's not about me. I don't think that you read what I wrote.

Are you saying that someone who didn't finish high school can get into Harvard medical school?

Most people in the world have zero choice.

What would you do if you were born in some place like, oh, East Saint Louis or South side of Chicago, and your mom was a prostitute on crack and you never knew your father. All the role models that you saw were criminals, and all your peer group that you grew up with were into crime, and when you were 13-, 14-,15-years-old, you were arrested 8 or 10 times. Your school was rickety, teachers were terrible, you never got 3 meals a day so you couldn't concentrate in school.

Or you were raised in Bengladesh and don't even have access to electricity, let alone a computer.

What if one just doesn't have the brainpower? My in-laws taught in schools in very nasty areas, and there were kids that they spent hours with trying to teach them how to add two 2 digit numbers and the student just couldn't do it - things that would take you 2 minutes to understand, some cannot understand at all.

What if you work in some town in the middle of Nebraska and there is only one significant employer in the area. You have no university degree, but scraped oneself up to being a plant manager making $120K per year, but you HATE it, abhor it, your superior treats you like trash. But you have a wife and 5 children, and you live in a huge 5 bedroom 6 bathroom house with 5 acres in the best area of town. Your wife loves living there and your children love their schools and are successful in them. And your wife's parents live nearby, and they both have Alzheimers Disease, so she takes care of the daily. But you hate the job. and there is only that one employer. Are you suggesting that the person, with a high school degree, sell their home for $500K, moves to SF and buys a 1 bedroom condo in Palo Alto for $800K and all of them live in the one bedroom, including the wife's parents? And the guy goes out with his high school degree and find a job as a computer programmer working at Google, which is harder to get into than getting into Harvard University? No. The man has to stay in his job, and hate it. But get his happiness from having a happy family, a nice home. Stuff outside of work. Work is not the main goal in life. Family and friends are.

You really don't have too much experience in life, or have not really thought it through.


>> Count your blessings.

After reading this post, I certainly do!


When referring to "software" does this mean the software that is licensed at no cost to mobile carriers and consumers. Does it include open source software used by corporations for which there are no license fee payments.

There is money in surveillance, data collection and advertising. Are those practices synonymous with software.


At first I could not see the point of this article. Just his own personal experience. That is well… personal.

Then I compared to my own personal experience. Which is probably as weird and totally random.

I started « programming » with VHDL and then XSLT ;). And after similar completely random professional/own experiences, aka trials/errors (doing mostly Java. For GUIs, Eclipse plugins, Hibernate, pure functional framework, highly parallel data treatment, …), I switched to Javascript (thanks god, it was after ES6, and just when hooks arrived in React). While, in parallel, always trying to understand that book « Learn you a haskell for great good ».

Nowadays (46 years old here), I am now at ease with programming. I do all the things that amazed me when younger: reading code first (mild confidence in colleagues talks, or in documentation), organising projects ahead of time, no fear to PoC things/break things/repair things, refactoring as a foundation, testing all the time, choosing the right tools (Git-bash/ IntelliJ/Obsidian for the win!).

I now connect with younger programmers, trying to exchange knowledge and methods. I realize what they do wrong or think wrong, and help them shorten the path towards simplicity.


The article title is false (deliberately clickbait). He clearly learned to program at an early age which is what he was doing when making those RPGs. Programming with BASIC does train on core programming skills and concepts.

He just stopped doing it and got stuck for a bit while trying to pick it up again with a different language many years later.


I agree that it's not a clear-cut case, but programming is so much more than doing ifs and gotos. It seems that he learned most of his programming at 40 still. I did some programming with Turbo Pascal 3, but I hardly knew how to program, actually. I skipped all the hard parts (pointers, even the simplest data structures, refactoring general-purpose code into functions, using 3rd party libraries etc.) when I was a kid. There are more than one senses what it means to "know programming", I think me and the author knew as kids in one sense but not in another sense.


I disagree.

The point at which the author actually "gets" programming and felt comfortable with the idea that given a task they could write something to solve it appears to be when the author determines their real start with programming.

I'm not sure it makes sense to really get into the debate of what constitutes programming as like a lot of skills there's a strong personal aspect to when you actually have some skill in it. Many people are this way with cooking, singing, or other creative/practical endeavors, and I see it similarly with programming. Personally I think the drive to get people to coding is a bit too generous and supportive in the wrong way, for example, promoting that Excel users are programmers/DBAs because Excel is essential a database with a well documented UI. There is definitely truth to such a statement and the intention is good and comes from a place of support; however I would wager most Excel wizards without coding/DB knowledge would not feel comfortable or a desire to step further since they personally don't get the connection and can't conceptualize how to translate those skills into what they consider programming.

I had a very similar programming history to the author -- as a child I could write very simple programs in BASIC (needed something to do during study-hall on my TI-89) and also had spent a lot of time following guides to hack trial programs on MacOS to extend the trial period on games/programs indefinitely. I could put together a basic website to share ROMs with my friends, but I absolutely could not figure out anything I thought was 'complex', and thus I didn't 'get' programming in my mind.

It wasn't until my late 20's when at a tech support job, I got absolutely fed up with a specific type of case that required a lot of specific hardware information from client servers which my colleagues and our clients never collected correctly; the cases were simple if you had all the information, but after multiple attempts to get the information, both the support team/client would be frustrated and the case would needlessly get escalated to me. After dealing with a particularly abrasive client on a case like this, I finally said "enough is enough" and that night rage-coded a very simple tool to ensure all the system info was collected with the click of a button; my frustration fueled me through all the bumps and pitfalls of getting this info and voila, 12 hours later I had written what I consider my first program. Months later, I even solved my first bug in it all on my own, and that's when I considered myself legit. After that, I couldn't stop myself from finding nails to smash with my new hammer, programming.

It's all about when you 'get' that moment and feel like given a task you can actually figure it out. That one moment that lets you realize "you can do this, given enough time."


He said he programmed RPG games as a kid.


I started undergrad as an engineering major in 2005 and I remember [somehow] thinking very clearly that programming was fun and interesting but would be a self-indulgent thing to study since it was just for making fun websites and video games... going to art school to pursue a teaching job legitimately seemed like the more practical choice somehow. I had a blast and don't regret the art part, and teaching was extremely rewarding, but I wish I had kept programming.

I started up again in 2020 in my mid-thirties with a newborn but it took a bootcamp and a lot of guidance / help from friends to catch up with what modern development had become. I've loved every minute of it and I cant believe what a relief it is to be on a stable career path, even with the hiring freezes etc.

Anyway its aways great to see this kind of thing on the top of HN. The future of human labor is software, and we all really can do it. Maybe, like I know.


I like being able to build things myself

all the lucrative stuff requires a software engineer, other people have to go raise capital just to pay them for that person's one idea

if you are the software engineer, you are six figures worth of value already and you just need to dedicate your own time to your idea

its also totally fine if you don't have any entreprenurial aspiration and just want to go to work, the compensation package's value is geared towards you being content having no aspiration to build something lucrative for yourself


Discussed at the time:

On finally learning to program at the age of 40 - https://news.ycombinator.com/item?id=24404628 - Sept 2020 (161 comments)


On the topic of programming things, I'm surprised you don't have a bot to automate this.


Part of the idea is to pick out the relevant threads and omit the others. I don't know how to automate that.


Interestingly I also started with basic, having to manually write line numbers, but I’m in my early 30s. I’m wondering if I was exposed to some legacy stuff when young, or if basic lasted a long time. Btw it was on a very big and awkward calculator.


Most TI calculators come with a TI-Basic interpreter included, and they are one of the few vendors that is accepted for national standardized tests (SAT, and so on), so lots of 30-ish-year-olds were first exposed to programming there. I don't recall if TI-basic requires line numbers though.


I had one of these TI-89 in highschool and they're not like the ones I used when I started writing code (you didn't need line numbers, for one)


About his 80s childhood:

> The key point is that he showed me something called BASIC that at the time I assumed was the only programming language in the world. I took to it and followed along with books like this one called the Mystery of Silver Mountain and Hunt the Wumpus, and pretty soon had picked up how to program. I began making my own small RPGs based on Steve Jackson's Sorcery! books.

Why are these articles always about people who already know how to program and they just want to refresh/update/continue their learning?


The OP is not learning to program , he is just juggling programming languages. He dosen't learn to understand the core concepts of software engineering . What he could learn better is by doing :

- Pick an opensource software of his favourite programming lang

- Set it up from scratch (no docker or GUI installer , build from source)

- Learn how it works by looking into the source code.

- Learn how it was engineered.

That would make him learn a lot faster and better.


> Learn how it works by looking into the source code

Yes, now he can do that. He's at that level now. He never was before. I think you and OP are just disagreeing on what "knows how to program" means.

To me, he described reaching the point where he can actually do what you suggest. Not "becoming a software engineer".

You can't just pick a software project and learn things from it if you're still at "what the fuck does this ampersand do?"


The Coleco Adam was a kinda cool machine at the time, compared to low-end home computers. It had tape drives instead of audio cassette recorder/cable, detached keyboard, daisy wheel printer instead of 9-pin dot matrix. IIRC, Forrest Mims had one.


I’m a few months pre 40 and currently going through CS50x, it does feel like finally things are clicking after years of dabbling into various attempts like the author, and more recently having done a ton with no code and low code tools.


I had a lot of conflicting opinions on this article. My upbringing is very similar (albeit 10 years later). But I did become a professional software developer. I even resonated with starting with wanting to make games as a kid!

I don’t think I agree with this destiny stuff, on this specific topic. I think maybe because in college I had a lot of people try to say that some people just will never be able to be a programmer, and that never sat well with me because it was a passion of mine even if I wasn’t as smart.

I’m glad the author learned it! It sort of reminds me of Paula Deen, a very famous chef who IIRC didn’t start her culinary career until her 40s!


Worth it, no matter the age.


I have a strong hunch it is an activity that might delay or decrease the severity of neurodegenerative disease.


Interesting that he learned Rust largely through binging youtube and online tutorials. I kind of have a theory that for learning large programming languages like C++ or Rust the chunking of 10 minute youtube clips is superior to reading a whole book chapter or watching a 1 hour university lecture. The latter is often too tiring and by the end I am tired and lost but the 10 minute format forces quick examples.


Learning through straight osmosis is highly effective.


Off topic, maybe. What does it mean to have learned to program? Does a trivial program qualify? Anyone could in theory do that. A paying job? Does quality matter? I can (and often do) write crappy code. So, technically I can program. But have I really learned to program?


I think there's an inflection point after learning the basics of syntax, variables, data structures, control structures, etc. where you see how things fit together and your goals feel attainable instead of murky and unknowable. You may not be great with best practices or architecting complex programs, but you actually "know how to program" and can create what you want or need.


Authors fundamental understanding is already better than 80% of the programmers i work with


With computer science the interesting thing is thar you can start learning to program… but you will never end!…

I’ve been programming since I was very young, and I still learn new things all the time. Which is great. :)


What happened to the girl you had a crush on? Did your effort to distance yourself from computers bear any fruit in any way? Do you have any regrets with that part of your story?


Girl: she moved away at the end of grade 6 (I think to the US) and this was in 1992 before the internet so that was the end of that.

Distancing from computers and regrets: worked well, and no regrets. Had long hair and listened exclusively to heavy metal and almost all of my friends in high school were girls. I remember the computer guys where we lived tended to just hang out in the computer lab and not a girl to be seen in there. (I'm sure they got fantastic jobs early on, of course)

Though in 2015 when our team at the pipeline company got packaged out I probably would have properly learned to code if I had gone straight with F# instead of Python and then trying everything else until I ran out of time and had to find a job instead. Or Rust though version 1.0 would have just come out then and not sure if there would have been enough resources to pull through.


Having an ADAM means you were probably far closer to 50 than 40 in 2020. That seems like a weird point to base a repo on.


Pretty cool.


Still on my list.


You've got this, it's never too late. Pick any language you can get installed, and then learn how to do these things:

lvl 0

- Make a program that prompts you for your name, and greets you.

- Now make your program write that name to a file.

- Now make your program read from that file.

lvl 1

- Put the file with your word or name on a server somewhere, like Github, it's free.

- Make your program read that file with an "HTTP Request"

- Just about any language can store to a SQlite database, write a program to create a table called 'stuff', with a column for strings, and store your name as an entry in a row.

- Combine the HTTP Request program and the DB program

lvl 2

- Learn another language, repeat this process, reflect on the differences between the process in both languages.

After this, you'll have an intuitive knowledge of where to go next, and how to find solutions and basic structures to accomplish the things you want to do.

I believe in you!


I’m not that guy, but wow this is getting me all amped to learn how to code. Thanks for this! I think I’m going to take a crack at it tomorrow.


That makes me so happy, thank you :) Stick with it, you'll do fine. It can be tough at times, but persistence is key! I believe in you!


I think your template for getting into programming was pretty great and could make a great article.


Thanks! It's yours now, tell a friend :) Use it how you wish.


But this is after you have already grasped the basic concepts of variables, assignments, conditionals, loops, functions, etc?

Your suggested path is great to learn a lot of stuff about web development. It's actually very very good, the more I think about it the more I see you basically covered most of the things one actually does in the job. Especially the googling part right at level 0 ;)

But I'm afraid I wouldn't recommend this path to someone that knows absolutely nothing about programming, isn't it better to start with little puzzles like fizzbuzz and the like to get to know the syntax of the language first?


ok


How does one complete step 5. Get hired for something entry level?


Nope, find a problem you have, then solve it. Next, find a problem someone else has, and tell them to pay you to solve it. Being a programmer means you choose to have a boss or not.


does it matter what language you choose to start with?

Is Rust a good one to start with?


This was a theme in the original article as well. This sense of not getting going because you might pick the wrong language.

This hesitation is likely because human languages are such a huge learning environment. Learning Spanish or Chinese is such a lot of work, and I don't know which would be more useful.

Good news though is that in programming, the language you learn doesn't matter. Because in programming moving between languages is trivial - the concepts underneath are 90% of the work, and are transferable. An expert in say c# could be proficient in say Rust in a matter of days.

So I get the "which language should I learn" question, but the truthful answer is that it doesn't matter.

For a reference, when at university, to prove the point, we implemented the same small program in 10 different languages in 10 days. Language is just syntax, which is trivial to assimilate. Programming happens first in the head, those techniques are the important things.


I am fond of Rust, but I suspect it would be a difficult one to start with. If you want to get some wins to help boost your confidence, it may not be a good place to start.

On the flip side, if you have an existing motivation to learn Rust, that could help you to stay engaged :)


Just about any language will do fine for this, Rust is a great language with an enthusiastic community. D

ownload Rust, install it to your system and get started with "How do I print in Rust". This will allow you to tell Rust to make words appear on your screen (no toner required!)

Bon voyage my friend, I hope you end up loving it as much as I do :)


I’ll offer a different approach than current sibling response, as a self taught programmer. This is how I learned. Take any endeavor you’d like to share with the world, and think of how you’d want to present it. Learn enough HTML (or whatever platform you’d prefer where you’re writing some amount of code) to present it. Get annoyed at how tedious routine things are distracting from your project and its presentation, and find some ways to start automating those tedious bits. Congratulations, you wrote a software! You’re probably already finding inspiration at this point to hone what you’ve learned so far. And you have a wealth of starting points to learn how to write better software. Follow whichever feels interesting. Before you know it, you might find others taking your programming efforts seriously. You might feel like you haven’t earned that. Don’t give into impostor syndrome here, you’ve come this far! Every experience is a chance to learn where you had gaps, and everyone who filled those gaps with useful knowledge before you walked the same path or walked the path of someone who did.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: