from Hacker News

40 Years of Programming

by janvdberg on 3/12/24, 9:15 PM with 111 comments

  • by anonzzzies on 3/13/24, 4:06 AM

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

  • by qingcharles on 3/13/24, 4:56 AM

    Over 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 )

    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.

  • by mianos on 3/13/24, 1:31 AM

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

  • by Brajeshwar on 3/13/24, 3:21 AM

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

  • by WoodenChair on 3/13/24, 1:24 AM

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

  • by beryilma on 3/13/24, 8:45 PM

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

  • by Metricon on 3/13/24, 12:12 AM

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

  • by mattgreenrocks on 3/13/24, 12:17 AM

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

  • by whitehexagon on 3/13/24, 8:39 AM

    Over 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

  • by blindriver on 3/13/24, 2:22 AM

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

  • by gsliepen on 3/13/24, 9:12 AM

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

  • by masto on 3/13/24, 1:26 AM

    I 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.
  • by prossercj on 3/13/24, 3:43 AM

    Awesome, thanks for sharing. Three cheers for "preemptive guerrilla maintenance." Congrats on 40 years
  • by bregma on 3/13/24, 11:01 AM

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

  • by armchairhacker on 3/12/24, 11:55 PM

    I 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.
  • by coldcode on 3/12/24, 11:45 PM

    Me as well, three years removed from retirement, still coding every day making art.
  • by NorSoulx on 3/13/24, 1:58 PM

    Many 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

  • by dboreham on 3/13/24, 8:33 AM

    Reading this made me realize I'm close to 50 years in. Yikes.
  • by codr7 on 3/12/24, 11:45 PM

    Getting there, 38.
  • by candrewlee14 on 3/12/24, 11:58 PM

    I'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 ;)
  • by geoffc on 3/12/24, 11:40 PM

    40 yrs of coding as well. It's a joy.
  • by alekseiprokopev on 3/13/24, 1:27 AM

    The hardest thing in programming is not the programming itself.
  • by megamix on 3/13/24, 7:35 AM

    Highly appreciated. Wisdom is king
  • by Sparkyte on 3/13/24, 12:09 AM

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

  • by cosmicac on 3/12/24, 11:39 PM

    Loved this.
  • by javier_e06 on 3/13/24, 11:51 AM

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