10 ms·
40 Years of Programming
- cosmicac 3y agoLoved this.
- geoffc 3y ago40 yrs of coding as well. It's a joy.
- leetrout 3y agoWorking at various companies the whole time or contracting / freelancing?
- codr7 3y agoGetting there, 38.
- ojbyrne 3y agoMy number as well.
- coldcode 3y agoMe as well, three years removed from retirement, still coding every day making art.
- armchairhacker 3y agoI know mostly "it depends", but I wonder how that much experience affects job prospects, and what kinds of unique skills and advantages it gives. Software development has changed a lot and there are surely people who have been doing the same thing with no improvement, but 40 years is a lot of time to get very specific knowledge, and experience gives skills that can't be learned. At the least, it means you're reliable.
- highwaylights 3y agoI don’t have 40 years, but I’m a member of the multiple decades club. Job prospects vary depending on who is hiring, but people develop a wisdom when doing anything for a very long time that’s mostly based on everything you’ve seen (good and bad) in that time. The greatest value I bring to being the old person in the room is knowing what not to do and to be able to explain clearly why. I’m not meaning the above to sound negative, it’s just that a single good idea rarely makes a business, but a bad one can break it with ease (for example, people wanting to jump on web framework fads that no-one in the company understands well enough to implement securely).
- bruce511 3y agoGetting hired tends to be something you worry about more in your 20s than in your 50s. Speaking generally of course. It's not much fun being fired in your 50s. Although by that point you probably know enough about something that consulting (ie short gigs) are both available and lucrative. But generally, by the time you're in your 50's you've acquired enough expertise that you add more value than you consume. Which means you're unlikely to be fired. That experience, and ability to understand both the upside, and downside, can be really valuable. Certainly good communication skills help, and the better you are at getting information out of your brain, and into everyone else's, the better you'll be for it. For the record, I'm at 42 and counting :)
- thaumaturgy 3y agoYeah, this is a complex question. For background, I have 40 years of programming experience, about 20 or 25 professionally, depending on how you count. My first system was a Commodore Vic-20. I've done assembly and COBOL and mainframes and I've been doing web stuff since it was called "dhtml". If you zoom out far enough, programming has changed very little in the last 40 years, and a valuable programmer 40 years ago could be just as valuable today. Distill programming down into its basic essences, and you get abstractions described in a way that machines can implement. I have occasionally helped introduce non-programmers to programming, and abstract thinking is the biggest and most difficult hurdle by far; the rest is just nuts and bolts, implementation details. Of course, as you zoom in to tricky patterns in object-oriented programming, or lambdas, or the sharp edges of CAP in distributed systems, and so on, things get a bit more nuanced. A lot of that simply wasn't a part of typical software development 40 years ago. I've met a lot of older developers that found a niche and stayed in it and didn't participate in the broader field. I just recently worked with one such developer on a project that the average HN reader would recognize. He was brilliant; I'm a trial-and-error developer, a little bit sloppy, but I rely on tooling and following best practices to tune up my code. Usually, that's good enough. His code was horrifically hard to follow; he dogmatically avoided any of the common habits that had developed over the last 20 years, so his code was built out of piles of functions that were hundreds of lines long and had all kinds of tricky branching logic and would return arrays of values and so on. But, he could stare at it for a while and model the entire damn thing in his head. We went together like oil and water. He is someone I think of as a good cautionary example of what happens when you decide all the new stuff isn't worth your time. Still, though: he really was brilliant, and could be a valuable member of lots of different development teams. So, conversely, there's this widespread assumption that if you've been slinging code for more than 10 years and you haven't moved into management or have some really big-wow project on your CV, then you've done something wrong and you've stopped learning and nobody should hire you. Every single place I interview with acts like they have some kind of special, one-of-a-kind tech infrastructure, and if I'm not already an expert in that, then I can't provide any value. Most of the people I interview with have never ventured outside of web development, so it's cruelly ironic that they are the stick by which my ability to adapt is measured. I have a hunch that there's a subconscious incentive for hiring managers and lead developers to keep stitching together ever more esoteric tech ecosystems because it limits competition. If you build infrastructure out of all the latest stuff you can find, you not only develop your own expertise at it (resume-driven development), but you also reduce the number of viable candidates that the company might be able to hire to work with you. All in all, I still enjoy most of software development, I still do it as a hobby in some of my free time, and I'm more productive and skilled than I ever was, but I've also never been as disillusioned with the state of the industry, and I'm no-joke considering pivoting into becoming a personal trainer.
- candrewlee14 3y agoI'm at a 1/4 of that. I love it and I'm just hoping it sticks around long enough to get me to 40 ;)
- chanamasala 3y agoHopefully you don’t end up looking like him.
- Sparkyte 3y agoI have been doing it for almost 10 years and I will still never remember everything. I am calling full-stack devs BS. If fs devs remember everything they are probably hyper fixated on one particular design model.
- skipkey 3y agoI will let you in on a little secret. Very few devs, full stack or otherwise, remember everything on any non-trivial system. What the experience gives you is the ability to read and comprehend code that is new to you very quickly. And “new to you” code includes code you wrote a year ago and haven’t touched since.
- ChrisMarshallNY 3y ago> And “new to you” code includes code you wrote a year ago and haven’t touched since. True, dat. I write code and documentation for future Me[0]. I can’t remember lots of stuff, and Google the most basic stuff, every day. But my stuff ships, works well, and tends to last. I think actual results can count. That seems to be a minority opinion, these days, but what do I know? I have to Google basic stuff, so I suppose that means I don’t know what I’m doing. [0] https://littlegreenviper.com/miscellany/leaving-a-legacy/ https://littlegreenviper.com/miscellany/leaving-a-legacy/
- whartung 3y agoThere’s a difference between full stack and solo developers. There’s absolute overlap, but being aware of the stack and actually being the person who put it all together are different. All my solo projects I was intimately familiar with. Start adding people and you naturally start losing complete grasp of the project.
- Metricon 3y agoStarted 1982 on Tandy Color Computer. Still at it. #1 Advice - Focus on getting things done (as many will not) and Lego build interconnected/isolated simplicity as much as possible.
- mattgreenrocks 3y agoI will hit 20 years of professional programming experience in a few months. My q to everyone who has kept at it: did you continue up the career ladder into staff eng-type roles? They’re put on the IC ladder but get further away from programming. I’m still conflicted about that. I can see myself trying that for a few years then just dropping back to senior level. I did realize recently that it is hard to give up programming when my whole professional career has been built around being seen as the person who programs things well.
- dboreham 3y agoAdvice is to ignore the levels, do your thing and seek ways to be appropriately compensated and respected for that.
- cangeroo 3y agoI have a similar question. It seems to me that the software engineering salary distribution is bimodal. I'm simplifying a bit here, but basically into those that make <100k USD or >200k USD a year. What makes the difference? Is it management vs codemonkey? FAANG vs "small" <10k employee corporate? I like engineering, but my impression is that management often lies to engineers saying "oh, 80k USD is a high salary", when it's clearly not. The divide seems to be between those that know, and those that don't.
- bruce511 3y agoYou're getting to thd real root of the question here - Whst is most important to you? Is it the code, or the money? Management earns more money. Partly because they control how the money is spent. Partly because they're a value-multiplier. Coders get to write code. You seldom get both [1]. So for each person, it's really important to understand your root motivation. If it's money, then climb the ladder. It's gun in a different way, and if done well, can bring satisfaction. However, if writing code is eat gets you out of bed, if meetings are something you detest, then perhaps "enough money" is enough, and you might prefer enjoying your path through life. [1] you seldom get both in a large company. However in very small companies, and one-man operations, you can often find a very lucrative niche. Fewer people means little management (although more time talking to customers) so you get to spend more time actually producing.
- WoodenChair 3y ago> Interesting and significant software is beyond the capacity of any one person to build alone in a reasonable time frame. I disagree with that. VisiCalc, MacPaint, and many modern “significant” apps started out as 1 person projects. I agree collaboration and communication are vital skills but you don’t need to make this grandiose statement to defend that.
- mianos 3y agoThis may have been true back in the times of the applications (when I was also a developer), but, speaking from 40+ years of experience myself. I agree, most significant projects need more than one person. There may be outliers, but back then it was the normal, now it's not. Also consider games, back then one or two guys could do a game, now all but the outliers are done by large teams.
- WoodenChair 3y agoIf there are outliers you can't make an absolute statement. I would also add that with LLM assistance, one person being able to create a "significant" app is actually more likely today than five years ago.
- keithalewis 3y agoFeel free to come back to us when you have an actual example. The days of one person languages might be over, but we haven't seen any language created using a LLM yet. Much less one people complain about.
- norir 3y agoI'm writing a language by myself so for me at least the days of one person languages are not over. And I have the joy of working with a language no one complains about ;)
- bentruyman 3y agoIt's not an absolute statement, you'd have to have a childish interpretation of the article to have that takeaway. Not every generalization needs a "well actually".
- masto 3y agoI too got my start in 1984, when Santa brought me a Commodore 64. I'm not good at remembering things like anniversaries, so I'm glad not only to read this essay, but to be reminded of the occasion.
- Clubber 3y agoSanta and Commodore kick started a whole lot of careers.
- alekseiprokopev 3y agoThe hardest thing in programming is not the programming itself.
- mianos 3y agoOver 40 years and I never got sick of it. I am leaning new things every day. I strongly disagree with: "Simple, obvious code is easier to write, easier to get to work .." It takes real skill, time and effort to write simple code in any production setting. I am not talking about some 100 line algorithm some leet guy once wrote, but code that's been in production for years. It's only the simple code that survives.
- dr_kiszonka 3y agoThere is also that code no one understands and everyone is afraid to touch : - )
- mianos 3y agoFunny thing is, being the oldest programmer, I get given that code. Code that has had bugs in it that destroyed the careers of people given it. I could tell a story about one time I fixed something and they had a company wide party, which I couldn't go to as I had another impossible bug.
- ZaoLahma 3y ago> I strongly disagree with: "Simple, obvious code is easier to write, easier to get to work .." I get your point, as well as the author's point. Complex code is difficult to write, and unless you really pay attention, likely to be wrong. Simple code is easier to write, easier to verify and more likely to be correct, but it's very hard to learn how to express your solution to a complex problem in simple terms.
- mianos 3y agoMaybe I should have said, "simple code is hard to write and complex code is easy to get wrong". As an aside, I'm not going to post an AI generated essay, but pasting that quote into the new Claude gives an essay well worth reading if anyone cares.
- kolleykibber 3y agoEverything should be made as simple as possible, but no simpler
- blindriver 3y agoOver 30 years of professional experience. Currently at a FAANG. Just today I fixed a bug that the entire team couldn’t figure out, including our team lead who is brilliant who is 15 years my junior. I’m not a better programmer than he is but I pull my own weight. When I fixed the bug, I had a rush the entire day. 30+ years and I still love programming, and I feel blessed and grateful to have fallen into this career. It felt like divine, Godly intervention for the path that lead me here. There are some things that I disagree with the author, most especially things like this: > If you don't agree with this, I have no hope for you. > When in doubt, choose different. If you exclude people based on them being unlike you, you will likely be choosing poorly. He says he believes in diversity but contradicts himself a few sentences previous. I find this typical with a lot of people who claim to believe in diversity: they don’t actually believe in true diversity, they believe in people agreeing with their pre-existing beliefs. And if someone doesn’t agree, there’s no hope for them at least according to the author. That’s not someone who believes in diversity. And I actually believe the greatest software projects have a single strong voice with a strong vision and strong competency that drives the entire project. Look at Steve Jobs with Apple and the iPhone, Linus and Linux, Elon Musk with Tesla, Zuckerberg and Facebook. You don’t find a lot of collaboration, what you see is a brilliant visionary with strong opinions and not much diversity in opinion. Too many cooks spoil the broth, as they say. If you want a fun environment, then sure you can collaborate and give equal time to others but you won’t go as fast and usually the end results aren’t as dramatic.
- toadi 3y agoIn my home country, we have a saying: "No religion or politics in the bar." People who drink alcohol best avoid these as you end up in a fight sooner or later. We also do this at work. I am here to do a job. Just keep it focused on the professional side. I don't need to be your best friend. Or share the same religion or political beliefs. At work, I come together to reach a common goal. But that said, I hate people enforcing diversity for diversity's sake. They are actually introducing politics on the work floor.
- guest 3y agoI would be more careful using Steve Jobs as an example, the patents he infringed on (Ericsson, Nokia and another company, i do not recall the name off the top of my head) was what made the modern simpler smartphone possible (over 30 patents if i recall right) - so a strong lead/visionary - yes, a strong original programmer as the picture of him is drawn (from my limited knowledge - not so much). Linus - who can disagree? Even though with years the will to break new ground decreases. Elon though humanity is indepted to him and he has shown that some people discarded by big data has alot to give he still isn't leading alone as the original programmer. Neither is Zuckerberg as far as i know (but I can admit I don't know enough about him or his history). Visionaries - yes. Original lead programmers that lead by example and create original solutions to individual programming problems - not so much to my knowledge.
- Brajeshwar 3y agoFirst, I’d like to pay my utmost respect. Thank you for the brilliant article. It is short and concise and covers a wide range of topics for lifelong programmers. I’m bookmarking it for references when someone asks to read this line of thought. And, I’m happy to know and jealous of, “I have code running on billions of devices, on all continents, on all oceans, in orbit, and on Mars.” I’m a muggle in the programming world. I wandered around learning the dark spells of management, design, and everything else in between. Looking back on my 20+ years of technical-professional career, I realized that I’m much better off in bursts—5 years of extensive programming in an extremely narrow field of focus, another 5 in code-driven designs, etc. I hope that one day, I can also write in such beauty about my 40+ years of careers, learning, etc.
- prossercj 3y agoAwesome, thanks for sharing. Three cheers for "preemptive guerrilla maintenance." Congrats on 40 years
- anonzzzies 3y ago>I was once in a meeting, with four people, plus the CTO. The CTO forbade us to take notes: it seems the fad of the week was that note taking is what makes meetings a waste of time. The meeting took two hours. Afterwards, the four of us had about eight different opinions of what had been decided. No follow-up actions were ever taken. This is still the case in many companies I (founder of a small troubleshooting company; we search out problematic large, cash rich companies like these; they all have failing processes and IT all over the place) meet with; sometimes it's frowned upon, but often simply no one takes notes. Which shows these meetings (almost all meetings I go into) are a complete charade of managers wanting to show they have 'something important to do, really!' (somehow there are often 10+ people there). I am in meetings (including Zoom etc and irl) where i'm sure no-one really heard or understood what anyone else said (different accents of English from different countries and background and of course, no one can say anything because we all have to respect people etc); no notes, no recordings (and of course, the captions of the video chat or my phone didn't understand anything that was said either), while someone was explaining quite difficult, in depth stuff, for 2-3 hours. Afterwards, the stuff is rehashed in a 15 minute text chat with the person who explained the difficult stuff; why didn't they write it down in the first place and forgo the meeting? Because half(that's generous, it's more like 80%) of the room should have no (high paying) job; they are just there for being there. Ah, the enterprise world, such joys; I enjoy it as I threat it like a cosmic joke; it's a comedy show, not unlike The Office including the main characters high pay.
- Brajeshwar 3y agoIn almost all the meetings I attend, I'm always the note-taker by choice unless I have earmarked someone to take notes. My notes usually ends up being the go-to and shared document after the meetings. I'm still learning, and I love taking pictorial/visual notes. Try it; it is fun. If one is interested, I suggest the books by Dan Roam[1]. They are quick to read/browse, and I keep re-reading them. If you are starting with just one book, start with “Draw to Win”. https://www.danroam.com https://www.danroam.com
- Terr_ 3y ago> Vetinari was very good at committees, especially when Drumknott took the minutes. What the Iron Maiden was to stupid tyrants, the committee was to Lord Vetinari; it was only slightly more expensive,* far less messy, considerably more efficient and, best of all, you had to force people to climb inside the Iron Maiden. > * The only real expense was tea and biscuits halfway through, which seldom happened with the Iron Maiden. -- Making Money, by Terry Pratchett
- qingcharles 3y agoOver 40 years of programming here, and I'm back in my prime again. Started out in BASIC on ZX Spectrum and BBC Micro/Electron. The toughest programming I did was writing a full texture-mapped, shaded 3D engine in x86 from scratch, aged about 12. (I pasted my 12-year-old code into this commercial video game, although I think the texture-mapping here I replaced with Direct3D's much slower software renderer: https://www.youtube.com/watch?v=t2kdKB18c7I&t=332s https://www.youtube.com/watch?v=t2kdKB18c7I&t=332s ) The best paid was modifying some existing source for a torrent site that brought in ~$13m. Funny moment: putting a language I didn't know on my resume, getting hired from it on a Friday and starting on a Monday as lead developer :D (crazy weekend) My favorite language of all time was VB.NET, but that's not worth pursuing any longer. Right now I'm mostly writing hardcore ASP.NET in C#, running on Linux.
- bojan 3y agoI have to ask, sorry - what is it precisely that makes it hardcore?
- geraldhh 3y agoprobably the use of implicit behavior and subtle conventions
- qingcharles 3y agoIt's using every single damned feature in the thing, plus doing a bunch of stuff that has never been done with the templating system.
- pdimitar 3y ago> The best paid was modifying some existing source for a torrent site that brought in ~$13m. ...Wow. How does one even find such a gig?
- swader999 3y agoI'm not sure how to read that, did the site or did they bring in 13m?
- megamix 3y agoHighly appreciated. Wisdom is king
- dboreham 3y agoReading this made me realize I'm close to 50 years in. Yikes.
- julian_t 3y agoJust past 50 years in. It's fun watching new hires when they realize how old I actually am ;-)
- whitehexagon 3y agoOver 40 years here too, from basic & assembly on a speccy 48k, 68000 on the amiga, through to my latest just-for-fun project of Zig SoC programming on the A64 pinephone. Thanks for making me feel old today! but also lucky to have had such a hobby come career. Although I am sure it has rewired my brain in the process, and not all for the best. Depression, and frustration at how software now mostly controls lives rather than enhances / supports. I feel like I got a glimpse behind the curtain, and this problem solving brain now sees a broken system destroying the planet and humanity for the last extra cent of profit, with no solution. EOL
- gsliepen 3y agoOver 40 myself, and having a similar experience (I just started with an Amstrad CPC6128 instead of a Luxor ABC-802, and it came with a few games, but after that you had to write your own in BASIC). I like the part about the past/present/future "me". I think it's something that happens on smaller timescales as well. Especially when starting a new project, or writing a new feature, start with being lazy and sloppy: just make the thing work. Once you have it working, then refine it so it the code is clear and maintainable; this is the "superb work" you'll be doing, inspired by "future me"'s view of perfection. However, instead of this being a linear progression with a clear start and end, this should be more of a cycle; don't get stuck trying to achieve impossible perfection, instead don't be afraid to break stuff now and then to make actual progress.
- valval 3y ago[flagged]
- caporaltito 3y agoSame for me.
- bruce343434 3y agoIn the current zeitgeist it's a sensitive topic, but quite explicitly the article said not to hire people just because they think the same. The author warns against getting stuck in a local maximum. I don't think it has anything to do with current day diversity quotas.
- bregma 3y agoOver 50 years for me. Stared with a Cardiac [0]. First job after graduating university was FORTRAN IV on a PDP-11. Done some pretty cool stuff over the decades, much of which has disappeared as the market or technology has moved on. Pretty much everything in the article is spot on. [0] https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_...
- victorantos 3y ago[flagged]
- supriyo-biswas 3y agoPlease do not post summary comments like this; they’re also LLM generated.
- javier_e06 3y agoGreat reading. This morning I woke to a Bob Ross quote: "This is not something you should labor over or worry about. If painting does nothing it should make you happy" I wish I could replace painting with coding.
- NorSoulx 3y agoMany years of programming here as well, either as a hobby, while studying or for work. My main driving motivator after 32 years in the industry is that I still love to code and do problem solving. I have been fortunate to have been working on interesting and challenging tasks with very nice people throughout my career. And I still enjoy learning new stuff, so never stop learning. A short chronicle of my linguistic adventures in the computing domain during this 40+ year-long programming journey, although some are just vague memories at this point, like "fingerprints on an abandoned handrail" (Bob Mortimer): 1. Basic 2. Assembly (6502 and 68000) C64 and Amiga Demo Scene 3. C 4. Pascal 5. Simula 6. C++ 7. Cobol 8. Wolfram Language (Mathematica) 9. PostScript 10. Fortran 11. QUEL 12. Visual Basic 13. Lisp 14. Perl 15. SQL 16. Java 17. AWK 18. Octave 19. Python 20. (S)ML 21. Scheme/Racket 22. C# 23. JavaScript 24. Scala 25. TypeScript 26. Haskell 27. F# 28. Erlang 29. Ruby 30. Clojure 31. R 32. Rust
- beryilma 3y agoI have been programming for over 35 years, 23 years of it professionally, since I was about 15 years old. I've started with ZX-81, Commodore 64, Amiga 500, IBM PC, ... I don't like programming and "software development" anymore. People are tiring, jobs are tiring, development processes are tiring, complexities of modern systems are tiring. How many goddamn front- and back-end "frameworks" does one need to learn and use to put together a goddamn website? It is all so boring and soul-destroying. I find it a bit more enjoyable these days to program (numerical, control) algorithms and firmware (for MCUs), getting myself closer back again to my second life-long interest, which is electronics. At least, at the intersection of hardware and software, there is less hyped-up stuff. And "scary" hardware keeps pseudo-programmers and internet charlatans away. To some extent...
- masfoobar 3y agoMy programming journey span 25 years. Professionally around 18 years. Not as long as your good self, but I share your frustrations! I started my love for coding as a young teenager. I never had the opportunity to program on Amiga or Commodore... but very thankful to have a 486 PC in the early-to-mid 90s.. leading up to "Intel Inside" PCs a few years later. I avoid working with a large team. I like no more than 4 people including myself. Projects can be broken down into (what I call) modules. I dont bother with Sprint meetings or the like... just a quick morning catchups with coffee! I started a new job a few years ago.. which is also me getting back into web development. How much things have changed in this domain! What was originally Server-side processing (of html) 20 years ago has slowly turns into the job of the frontend... so (now) having Node, React, etc. Deployment tools were also using Node, which made it a pain to upgrade it! We have an opportunity to rewrite some of our websites due to changing internal systems. My team has learning allocated for htmx. This will make our lives sooo much easier!