21 ms·
The forty-year programmer
- YZF 4y agoI'm right about this milestone as well. I started programming circa 1980 (BASIC on a Sinclair ZX81). I'm not coding as much as I used to or want to these days... A lot has changed in terms of technology but has it really. The industry has changed though. I don't know if this is just my narrow perspective but it seems the % of challenging/interesting work is much smaller than it used to be.
- 082349872349872 4y ago% is certainly much smaller: computers are so cheap these days that it makes sense to pay people to do boring stuff with them. However: in absolute terms, I bet there's way more challenging/interesting work now than 40 years ago, and in geographical terms, there are definitely way more places it's possible to do that work. Food for thought: > I suppose the picture of computing is of a topsy-turvy growth obeying laws of a commercial "natural" selection. This could be entirely accurate considering how fast it has grown. Things started out in a scholarly vein, but the rush of commerce hasn't allowed much time to think where we're going. (that sentiment was penned in 1963)
- matwood 4y agoYou also know a lot more, so finding challenging problems is harder. When first starting everything is new and challenging. Eventually you start to see the same patterns over and over. What’s kept me interested over many years is to expand my problem space. Business problems, people problems, devops problems, architecture problems, etc... There are tons of problems to solve, just not all them require code (unfortunately).
- revskill 4y agoNot much useful stories based on my real life story. My friends are programmers, too. But they never get to senior level programmers, even if they keep working in software engineering for more than 10 years, or 20 years. The reason? They refused to learn unit testing. They love manual testing, from function to the software. God bless them.
- gherkinnn 4y agoIs it the lack of unit testing or a lack of learning new tools and techniques once knowing just enough to get a job?
- revskill 4y agoOf all basic senior skills, unit testing is the first one need to know.
- nuclearnice1 4y agoWhat’s second and third?
- rightbyte 4y agoUnit testing is quite overrated. Testing stuff "by hand" is more or less writing a unit test you delete afterwards.
- lazide 4y agoSounds like it would be hard to scale yourself, time wise, If you kept deleting the automation.
- analog31 4y agoI guess I crossed that milestone too, without thinking much about it. My brother was in college, taking CS classes, and then my high school offered a course in BASIC so I signed up, in 1981. Meanwhile, my mom had started taking night classes in programming at a community college, and ended up being asked to teach the introductory course. We were in the Detroit area, and the car companies were using PL/1, so that was what the colleges taught, until everybody switched to Pascal. My mom's students were getting decent jobs after 1 year in her course. She bought a couple of computers out of her own pocket and started a zeroth hour programming class at the high school where she was a science teacher. There were lots of family debates about programming. My mom thought that the job market for programmers would soon be flooded, and that in any event, it was too easy to justify 4 years of college study. I was interested in a variety of things and ended up majoring in math and physics. I got a summer internship at a computing facility, and formed the impression that an actual programming job would ultimately be boring. But programming, in the service of physics and electronics, was exciting! At my college, the professors who embraced personal computers and were doing cool things with them, were in the math and science departments. Of course that's all hindsight, but interesting to see how my opinions have held up over the years. I think programming turned out to be harder than imagined, for people to learn, and we don't know precisely why. Views about how programming requires this or that kind of thinking, don't seem to hold water. Yet there's a shortage of programmers relative to investor interest in software development. Is it boring? Was I right about that? I watch the programmers at my workplace doing their jobs, but at the same time, maybe they think my job is boring. That's a matter of personal preference, and all jobs have some amount of drudge work. I'm still interested in programming, but on my own terms. I'm one of those dreaded "scientific" programmers, who uses programming as a problem solving tool, rather than for creating software for widespread use.
- clappski 4y ago> Is it boring? Was I right about that? > who uses programming as a problem solving tool Programming can be boring, software development is much more exciting! All software is solving a problem, same as the software that’s the output of the programming you do. Those problems might be purely technical (like virtualising different CPU architectures) or focussed on improving the efficiency that others can solve problems (like the software running Stack Exchange) or something completely different. Solving all of those problems requires more than programming, same as the problems you’re trying to solve need more than programming to fully resolve. Building for maintainability, reliability etc. requires much more than mindlessly programming the software. But even the programming itself is interesting, especially when solving difficult problems.
- gumby 4y agoI began as a paid programmer in 1982 (wow, just realized that). It's been fun and programming is still one of the most fun things I do. I think a lot of developers are unhappy because they either chose the career for the money or because most software development today doesn't involve a lot of programming. That is sad. But there is still a ton which really is simply programming.
- incanus77 4y agoVery well put. 35 years of exposure to programming here, over 25 full-time, and I feel very much the same way.
- legends2k 4y agoHuge +1 to both > most software development today doesn't involve a lot of programming. That is sad. and > But there is still a ton which really is simply programming. I think many can work on the latter. Have fun programming simple stuff as a hobby; for this involves a lot of (simple) programming and there's a lot of room here, unlike what the job or industry is after, where it's only plumbing.
- kilroy123 4y agoI'm at ~15 years now. I would agree that most of my work isn't much programming. It all feels like gluing stuff together. It's been a long time since I had to sit down and really program. :-/
- angryGhost 4y agoSome good tips there, I want to deepen my backend system/architecture knowledge and really become an expert in building and designing backend systems. Reading this article makes me rethink that... Should I look at front end too or is it enough to have some shallow knowledge of full stack so I know what's going on? Should I be more concerned with dev ops instead? So much to learn, so little time...
- travisgriggs 4y ago> “Try different things” is the key, of course. 32 year programmer here (started at 19). I cannot “amen” this sentiment enough. But probably not in the way most will read it. Most will interpret this at a macro level: Learn some Smalltalk! Now go learn Lisp! And then Clojure followed by Haskell, throw in some Java or C++ so you know what pain feels like! This is OK, it is good to be somewhat travelled in your journeys as a programmer. But I find that there is a micro application that gets overlooked. You can do a lot of “try new things” right in the stack you’re in without having to bust strange new worlds. Most languages end up with many ways to do things. You can and should take time to explore those. Learn the conventions/idioms, but then push/challenge those. I was afraid of C macros until I took time to really try some things with them. It didn’t mean I suddenly used them for everything, but overusing them for a bit helped me better make good choices about them. C pointers intimidated a peer until I forced him to forego index based for statements, using all pointer math instead. Smalltalk context objects were kind of “behind the scene” magic until I decided I’d like to figure out how to implement goto in Smalltalk. After that, they opened up for me. Python decorators are “magic” until you make a few of your own. The examples could go on and on. Try new things.
- xyzzy_plugh 4y ago> Python decorators are “magic” until you make a few of your own. To add to this, you must try things to understand them not only so you can wield them, but so you know what not to do. Decorators are squarely in that latter category for me. Things that feel magical, expressivity, structure, data model, abstractions... there is an element of experience required to develop a robust understanding of not only the power but the costs, which are often subtle and pernicious.
- nxpnsv 4y agoI want examples of terrible decorators now…
- lordgrenville 4y agohttps://news.ycombinator.com/item?id=16084238 https://news.ycombinator.com/item?id=16084238
- rufus_foreman 4y ago>> What I mean is, I’m 46. I’m not 96 and done. I have at least twenty more years of this left, and maybe fifty years No. Sadly no. This is not the way it works.
- Barrin92 4y agoI'd say 50 is a little bit optimistic but if you're in your 40s you certainly have a few decades of hacking left if that's what you want to do. Nobody there to stop you.
- rufus_foreman 4y agoAge is there to stop you, in two ways. First in raw ability, you hit 50, it's leaving. And then in the motivation, I remember this Tom Waits song, "The higher the monkey can climb, the more it shows its tail". I'm old. I don't have to fucking lie anymore.
- Barrin92 4y ago>you hit 50, it's leaving Your average working programmer isn't retiring at 50, and your brain works just fine at that age. Is this some Silicon Valley cult of youth thing? At my boring old German company I'd say a third of the devs is over 50 or close to it, they're gonna work till retirement like everyone else and they write good code. Hell, you're still physically fit at that age if you take care of yourself. You may not be able to pull five all-nighters in a row, but you're not decrepit just yet lol. Btw John Carmack is 52 already and the man seems to have the energy of an entire engineering team. I think some people really let age get to their own head.
- rufus_foreman 4y ago>> Your average working programmer isn't retiring at 50, and your brain works just fine at that age I'm 50 and my brain does not work fine at this age. >> they're gonna work till retirement like everyone else 50 is retirement. I'm still writing code, but no. I'm ready to retire, this is a victory lap. This is why you save money if you're a coder. You won't listen to me if you're a young me, but I'm telling you, young me, save your money. This is the old you talking directly to the young you. But you won't listen. Barrin92 might still be able to hit it out of the park at age 50, I can't. I'm hanging on.
- pizzaknife 4y agoas someone approaching 20years, i have existential dread that the bus may stop before im ready to get off. i appreciate this article and i find it comforting to see someone else find continued fulfillment, both professionally and personally, especially given the approach and attitude reads much as my own. what a treat, sincerely, thank you
- ChrisMarshallNY 4y agoBeen coding since 1983. Full-time, since about 1985-6. I'm 60. Besides dealing with folks that don't like gray hair, it's been a blast. I code for free, and for fun, these days.
- gedy 4y ago39 years here (as a kid, not professional), and can't pass FAANG coding quiz interviews!
- PuppyKhan 4y agoHad a FAANG interview where the interviewer said I was wrong... about a topic I was teaching the Graduate course on that topic at that very semester. Realized I needed to dumb down my answer to freshmen undergrad level intro class level, rewording the exact same answer, and he congratulated me for "fixing my mistakes". I can almost guarantee you the problem is the FAANG interview, not you.
- MexicanJoe 4y agoSo many devs are just aiming for that FAANG job, no thanks. There is a whole world of awesome and interesting companies that are not FAANG.
- jrjarrett 4y ago34 myself, and same. It’s kind of anxiety-provoking because if I have to find something else, I’m scared I won’t be able to.
- kache_ 4y agoThis is a really great video, thank you for sharing. I love hearing older people speak about programming. They're quite rare, since our field is so young.
- fjfaase 4y agoIt is 44 years ago, that I worked on a program in FORTRAN and it is 43 years ago that I learned LISP. It is about 36 years that I am writing software for a living. The longer I am a software engineer the longer I begin to understand that the soft skills are much more important than all the technical skills. For me software engineering is much about dealing with my insecurities and coming to term with my weaknesses. I also feel that it is a lot about dealing with your ego and a lot with cooperating with colleagues and bosses. The longer I am a software engineer, the more I understand that developing software is not about writing code but communicating with people.
- MexicanJoe 4y ago100% - you also have the other group ( at least in my company ) that basically does not care about the user. That is a real problem, but hopefully, they see the light someday.
- xwdv 4y agoHaving every engineering care about the user is inefficient. I don’t care about users, I care about inputs and outputs. By the time new stories reach me, the user should be entirely abstracted out. It is more accurate to say every software engineer should care about interfaces. Not user interfaces, just interfaces. Code you write will be consumed by something or someone. That is who you care about, the end user is not always something within your horizon. I work deep in the backend, the consumers of my work are other machines or developers. I don’t give a damn about the people at the very end clicking on pixels. My only interaction with them is when I look at their PII data in the database.
- PuppyKhan 4y agoI'm on the cusp of 50, taught myself programming 1980ish or so. Went to college after already working in the industry. Actually switched across various industries: finance, journalism, defense, real estate. I also teach college, am a kung fu instructor with as much experience as I do with programming. Serious, though amateur, Mongol historian. Cut my teeth for a decade or two professionally programming C++ before switching to other languages. (Go, Python, Rust, others...) And I recently changed from Back End Engineer to Data Engineer. So yeah, this article is basically on the nose.
- synergy20 4y agovery inspiring, I'm an EE major and have started learning all the CS side golang/c++/python/javascript coding skills, some of my colleagues are un-retired and in their earlier 70s and are still coding and debugging too. I feel both CS and EE can last very long to later stage of life, as long as you enjoy it as a profession.
- kingcoleman 4y ago
- ChrisMarshallNY 4y agoIt’s also possible that a few of us are/were musicians. Most of the engineers in my department were at least amateur bards. A couple were more than that. I am no longer a musician, but I used to play a pretty mean bass (and rocked the silliest mullet you’ve ever seen). I still have my Rick (and my Carvin amp), and the neck is still true. Might want to reconsider the nasty in that comment. I find that Respect and Kindness pay dividends, and I consider this to be a professional venue. Not the place to be showing my ass.
- cbtacy 4y agoI'm sorry... I refuse to believe there is a Rickenbacker bass anywhere in the world with a true neck.
- ChrisMarshallNY 4y agoI have small hands (and you know what they say…). The Rick was the only full-length bass I could play. Took forever to stop sounding like a coffee can full of rocks. https://cmarshall.com/MulletMan.jpg https://cmarshall.com/MulletMan.jpg
- ianbutler 4y agoA non trivial amount of software engineers are musicians. My old boss had a phd in music theory and regularly played piano and sang.
- spullara 4y agoI turn 50 this year and started programming on a VIC-20 when I was 10. Still program everyday with the latest stuff that is out. e.g. https://shv.notion.site/Creating-Remember-When-51fdf609421d48fa90f5e474cba700b6 https://shv.notion.site/Creating-Remember-When-51fdf609421d4...
- darepublic 4y agoI am not entirely okay with not being as good as Alan Kay.
- annoyingnoob 4y agoThat comparison is not going to help you. Be the best you.
- Rochus 4y agoDid he program at all? Can you show me a program of his?
- winrid 4y agoJust passed ten years in, started professionally at 17. Here's to the next 30!
- dopeboy 4y agoI love these kind of stories. I'm wondering - would an interview series with 40+ year programmers be interesting? Topics like: * how the field has changed * war stories from past experiences * advice to the newer generation
- dpweb 4y agoHitting 40 years next year, since the day I found that TRS-80 at the nature center. Companies have paid me to do it, for the last 25. So I do it all week, then do my personal projects on the weekends. But I never wanted it as a "career". I never, ever, "aspired" to be a programmer. I just always was one. It's all just playing with computers, and coincidentally businesses need it, so I don't have to get a different day job.
- melony 4y agoI am a big fan of Peter Norvig. He is one of the few whose technical skills did not stagnate in a management role. If you see his Github's Pytudes, he regularly solves leetcoding questions that are usually given to engineers young enough to be his grandchildren.
- ThomasBHickey 4y agoI read my first Fortran manual about 1964 (my father was an engineer), but didn't have access to a computer until college in '65/'66. I always had my choice of languages, so I've used a couple dozen fairly seriously, including SAIL, BLISS, Metafont, Tex, Forth, APL, Fortran, C, Java, Python. Now it's just recreational programming when I get the itch, e.g. hand coding a string package in WASM.
- earleybird 4y agoBeen programming for 49 years - 44 as paid work; still going, retirement will happen when I find something I enjoy more than problem solving/programming. Started with Focal (PDP-8/I), Dartmouth Basic, Fortran (using my dad's account at the local uni) - in that order. Subsequently learnt Cobol (for work) & Lisp (out of interest) at about the same time. Shortly after going through the LispKit lisp implementation I realized I could implement lisp in pretty much any language I had at hand (often not well but still functional). At various times work has been more design & architecture but there's always a programming part to it.
- Aeolun 4y ago> retirement will happen when I find something I enjoy more than problem solving/programming After 49 years, do you actually see that happening? Or is it more of a ‘when pigs fly’ situation.
- earleybird 4y agoIt may happen some time, more likely when the problems being solved are less interesting than the hobby programming. But I'll be programming either way. :-)
- WalterBright 4y agoNearing 50 years for me. Still program every day. Still get excited about it. I plan to continue until my brain no longer works. Have no interest in retiring.
- Taniwha 4y agoI've clocked 51 years of programming, started at 13, I'll retire next year, but wont stop programming. I think the important thing to do is to keep reinventing yourself, change and do different stuff every decade or so
- euroderf 4y agoAlmost 50 years of it here, starting in high school in the early 70s. With breaks here & there. And no longer for bread & butter: now it's a hobby. So no need for reinvention: just sticking with C-syntax languages (now Go) with a side of SQL, finding that the luxury of modern tools and modern languages (and modern processors' speed) greatly reduces the sources of aggravation and frustration. No more burning an entire day trying to stomp out a single bug, and unsuccessfully at that. Steady improvements across the board create a new world of (relatively) straightforward translation of thought to software.
- cmsonger 4y agoAgeism is a thing.
- tomcam 4y ago> in the same way that some people are musicians for a long time, or artists for a long time, or roofers for a long time Uh not likely with the roofing thing. It's hell on the knees and pretty much everything else. Most guys don't last more than 15 or so years. I've been a programmer for 40 and one of the reasons I started was for that reason
- MaysonL 4y agoIn about a year it'll be 60 years since I wrote my first dozen programs, all in Fortran, all running first shot(I still find that nearly unbelievable, although they were trivial). A couple of months ago, I got a check in the mail paying for some 35-year-old Mac shareware. Computers are the shizz.
- sailingdarter 4y agoI am curious. What shareware did you develop back in the day?
- MaysonL 4y agoA little INIT/CDEF called Scroll2.
- bitwize 4y agoI suddenly realized, it is -- just about -- 40 years since my dad got me that VIC-20 that let me explore BASIC on my own without using (and potentially breaking) his new-car-expensive Tandy computer. So I, too, am a 40-year programmer. Shit, I'm old.
- mikewarot 4y ago>Shit, I'm old. Congratulations on beating the alternative. 8) The point is, as long as you're still going, you can do whatever you want, build whatever you want, especially in programming. As long as you can input into a computer, you can build things. It's amazing and fun.
- legends2k 4y ago25-year programmer here. This very much resonated with me. Agreed on almost all points. Notice it has a direct correlation to Peter Norvig's Teach Yourself Programming in Ten Years [0] and a distant correlation to Paul Graham's Bus Ticket Theory of Genius [1]. More broadly, it's like Zen Buddhism's idea of _Shut up and sit down_. Keep doing, keep working instead of talking and thinking. Talking and thinking is only to convince yourself and others, which may not matter so much; salvation lies in the doing ultimately. I wrote a poorly worded piece on this(non-native speaker here) in case one's interested [2]. [0]: https://www.norvig.com/21-days.html https://www.norvig.com/21-days.html [1]: http://paulgraham.com/genius.html http://paulgraham.com/genius.html [2]: https://legends2k.github.io/post/galls_law/ https://legends2k.github.io/post/galls_law/
- fortran77 4y agoI've been programming professionally, full time, for 40 years. And, like the author, I also play piano. I've been playing for 47 years -- started at age 13 which was way too late. I still practice daily for about 2/hours day (one in the morning and one in the evening). And people who started younger can generally out-play me. The correct age is 5 or 6.
- intrasight 4y agoThirty years ago I asked a famous computer scientist at what age to they peak. He answered that we don't know as the field is too young and few have yet "peaked".
- ckhung 4y agoinspiring. been coding for 30yrs. feel lucky and proud. think coding is not only learning new language, but learn how the world function, and try to join it.
- picometer 4y ago“Study as if you were going to live forever; live as if you were going to die tomorrow.” - Maria Mitchell, 19th cent. American astronomer
- kieckerjan 4y agoInterestingly, there is this (unrelated?) saying about Sicilians: "Sicilians build as if they will live forever, and eat as if they will die tomorrow."
- _tom_ 4y agoI don't think I would study, if I knew I would die tomorrow.
- suction 4y agoA disappointing aspect of being a Programmer at 40, 50, or even 60, is that you’ll meet a lot of people, often your managers, who will think of you as an non ambitious loser. “I used to be a coder but now I’m 32 and the ‘Director of User Experience’ - did you never feel the need to do a little more than coding?”
- Scootwilli90 4y ago[flagged]
- theflyingelvis 4y agoIt’s been exactly forty years that I’ve been programming. I’ve seen programming concepts come in and out of fashion and then be recycled again as something new and exciting. I totally agree with the other comments stating that soft skills are very important.
- 5350-uiop-1130 4y ago> If you have no problems that you care about, that just means you’re fine building this same level of software for awhile. sounds like me. although awhile but might be the wrong word.
- simmo9000 4y agoStarted programming on a Vic20 in 1981, kept hacking away for 25 years before going into management in investment banking, telecoms and was c-level in listed companies. I got noticed by being good at developing small pieces of code to fix a specific problem that individuals had. Code quality did not matter, just the function of the end product. Easy to deliver, nightmare to manage on-going. Agile came in because so many others had the same nightmare. Got fed up with computers and changed to Landscaping/Building starting as a basic laborer, had great fun and learnt an immense amount but was hard work on the body. Not long-term sustainable which is why I guess lots of co-workers my age go into specialisation, particularly in joining two separate disciplines into 'their' skill. The best bit for me was seeing a tangible result each day, and this is on display to everyone. I've been back developing code full-time for 4 years now and nothing makes me happier to see concepts come to digital reality. Even if I am the only one that sees my daily progress, I am happy. I know now, eventually people see at the end of the project. Managing expectations. Development is the balance of enjoying coding for the coder while delivering for the user, (whoever pays the bills). I assume this is why there are so many open-source love projects, which fits into the playing an instrument for fun. But hey, it's like that Sunblock Song...
- zogomoox 4y ago35-ish years of coding here, but the professional part of it is being thoroughly ruined by things like SAFe (Scaled Agile Framework). You always were a cog in a machine, but SAFe actually makes you be aware of it, all the time.
- mikewarot 4y agoI've been at it since about 1980 when my high school got Commodore PET computers, and I got access to them in the back of the math classroom. A few years later, I got my own. We're alchemists who have actually found the Philosopher's stone[1], who wouldn't love having that kind of power? We take a universal computing element and constrain it into acting like just the tool a user needs. I love this art, and can't see ever giving it up. I first learned to cast spells in BASIC, then moved on to Turbo Pascal, assembler, and many other forms of incantation. [1] https://en.wikipedia.org/wiki/Philosopher%27s_stone https://en.wikipedia.org/wiki/Philosopher%27s_stone
- zh3 4y agoReading the article, I've been programming for 45 years now, starting with a Z80 kit (which I still have, and still works - 768 bytes of RAM free) then PDP-11's (Fortran and Macro-11), 35 years of C (TurboC 1.0 FTW), Javascript, various scripting languages (not sad to see the back of Perl) and a shedload of embedded stuff. Helps I started out in electronics; I've long been surprised how many programmers don't really know what's going on under the hood. Main thing I'd add to the article is about keeping motivation. There's always new stuff to learn, but one of the biggest motivations I get these days is helping others. Working at startups with people just getting started on their careers is intensely rewarding, being able to help them gain understanding and solve challenges (rather than just telling them how to do it/what library to use).
- mathgenius 4y agoGreat article. One thing missing: find some genius programmer and learn from them! It can be just a couple of hours of watching them work, or pairing with them, etc.
- 2sk21 4y agoI wrote my first program in 1980 (in Fortran). After I finished my PhD, I was employed in various programming jobs for about thirty years until I retired in 2020. I still spend a lot of time programming, which I still enjoy, but no longer for work.
- somesortofsystm 4y ago1978, the year I first touched a computer as a kid (8 years old). I've kept every single computer for which I've ever written software. I literally grew up with the industry as a deeply rooted philosophical subject that has nourished my life in so many ways - and detracted from it in as many ways too. There is still so much to learn, and I never will learn everything I ever wanted to know. But I've come a long way since and there are millions of people, literally, whose lives I have touched with my code. That is a good thing. Probably going to keep at it for another 10 or maybe 20 years, professionally. But I'll be coding until I die.
- NorSoulx 4y agoI started programming on the VIC20 back when it was released, and moved on to being part of the C64 and Amiga Demo Scene in the 80s, releasing the first Amiga Demo creator back in May 1987: https://coding-and-computers.blogspot.com/2022/05/first-amiga-demo-creator-may-1987.html https://coding-and-computers.blogspot.com/2022/05/first-amig... Programming was my hobby and passion before I went on to study Computer Science, and subsequently working as a systems developer for the past 30 years. Programming is still my hobby, and I use my free time reading up on and trying out interesting technologies and languages. I've also completed 30+ MOOCs since 2012 in my spare time. For me the thrill is the problem solving part and the journey towards a solution to a problem or task by applying both old and newly acquired knowledge. It's something like the thrill of waiting in anticipation for Christmas presents as child. I've been lucky to work with lots of nice people during my time in the industry. I hope to continue with my hobby after I professionally retire.
- huqedato 4y agoSplendid, inspiring article. Full of deep thought. I already read it three times.
- rikroots 4y agoI could write a book on this! But the section that resonated most with me was: "Look to Other Fields, Learn From Other Fields" My elevator pitch background: I first learned to code when I was at school, back in 1982 (which, technically, makes me a 40 year programmer), learning Basic for the exam, and simple games on those new-fangled programmable calculators. Then I went in other directions - lab tech, soldier (for 7 weeks), bartender etc. I bought my first computer (Amiga 500!) in 1990, but wasn't allowed near a computer at work until 1993. I coded my first "professional" website in 2001, and another in 2006; but I only landed my first full-time web developer job in 2014. Also: I failed my final school exams quite badly - I finally got my degree (with the Open University) in 2011. tl;dr: If there's a way to make my life-path more difficult, I'll generally embrace it. The reason why I'm a web developer is because of my strange hobbies: writing poetry; and constructing worlds/languages. For me, it's never been enough to dabble in my hobbies. I want to share them with the world (whether the world wants it or not) and, back in the mid-90s the simplest way to do that is via the internet using whatever tech I could lay my hands on at the time. + I delved into deep-learning HTML (and, later, CSS/JS) because I needed my poems to display in the same way as I formatted them on the page. I taught myself about how to create PDF docs using (PHP) code, and learned about crafting eBooks, because I wanted an easy way to distribute my poems beyond the website. I taught myself the basics of SQL because I needed a way to organise and manage the poems on the website; building my own PHP templating system was driven by similar necessity. + My interest in computer graphics grew from my need to display maps on my conworld/conlangs website. I learned about the mad universe of font creation, and displaying fonts in a page, because my conlangs each had their own conscript (one of them logographic!). My database skills evolved as I built lexicon pages for each of my conlangs, and an encyclopaedia detailing each of my societies and nations. My interactive/animated graphics learning started from the need to explain/explore my world's biology. + My biggest learnings, which have been massively useful in my professional coding career, are the soft skills around dealing with people, organisations and the politics which go with each. I surprised myself during my brief army career when I discovered I was quite good at team-working, that I didn't have to do everything myself. Lab work taught me how to cope with boring, repetitive tasks. Bar work taught me how to talk to strangers, how to cajole them into spending more money, and how to get rid of them at the end of the session with minimal violence. My 18 years in the civil service taught me everything I will ever need to know about navigating office politics; it also taught me that the work I do can have an impact far beyond the office (or the code), that learning and caring about my clients/stakeholders is as important as impressing my line managers. It taught me about effective delegation and distributed working - how to get colleagues to happily give their best efforts to meet my, and our, objectives and deadlines. Another tl;dr: there's no single path to becoming a good software engineer, no book of rules setting out the steps required to building a successful, profitable career in the industry. Just do your best, be nice to people, and value/love your family and friends.
- indobb 4y ago
- FunnyBadger 4y ago1973 or 49 years for me. FORTRAN on punch cards as part of computer programming class in the Gifted Children program "College for Kids" which is long gone from California. I was 11 yo. Still coding for work and for hobby, though I have many other technical and non-technical work roles as well.
- clement_b 4y agoBeen programming on and off for 15 years +, mostly for personal stuff like websites, or scripts at work. I have a basic level. Got rejected from CS school when I was 18 because of my math level (can be relevant in my country), ended up in marketing and now product management -- pretty bored of what I do. All I really want to do is sitting on a CLI and solve problems with code all day long, yet to do that I need to make a drastic life change and quit, re-learn the basics (self-learning is good but I need interactions with mentors/experienced devs) then kind of restart professional life from scratch (with 1/4th of my current income, which will affect my family). This is so hard to make as a decision. This article definitely helps and is encouraging because I thought my time had past. Anyone else having similar 'issues'? Do you think it's worth attempting to become a developer these days, coming in with a product background, or is this a fantasy, that I should keep as is?
- hellohowareu 4y agoI tried learning programming off and on for about 3-4 years. Sometimes while working full time, sometimes while unemployed. How to create an full stack web app didn't click until three things happened: 1. I took two statistics courses (one at a community college, one at a university. the university one involved programming in R). This really helped me understand that there are tons of different types of data, with different shapes, sizes, purposes. 2. I took a "Database Management" course at a university. This helped me understand how databases are designed and how they're used within the context of an app. 3. I looked up "What is a REST API" and "how does http work"-- specifically, coming to terms with what diagrams and code for these things means. From there, I set my sights on building a full stack app in javascript. NodeJS (ExpressJS) on the backend, and initially jQuery on the frontend-- then I realized my jQuery project was turning into a mostly unstructured mess. I had heard about ReactJS, so I decided to take 1 month to learn it via Udemy.com (Stephen Grider's course). THen I re-did the frontend, and kept grinding on the project. At various points, I lived in a tent in California, on a friend's ranch in Texas (did landscaping in exchange for rent), drove back to CA but failed to land a job (app was only halfway built), then I realized "You know what? Instead of living out of this tent in California, I bet I can rent a place for cheap in Mexico"-- Drove to Rosarito, Baja California, stayed at a hostel & made friends with its owner who rented me a cheap house for 3 months. Then went back to ranch in Texas, and 3 months later I finished the app. All in all, most of the app was created part time in 6 months of part-time work (usually about 4 hours a day) (Prior to that I did some exploratory & design work on it for about a month). The day after I finished it, I made a diagram about it. And a web portfolio featuring the project. And it's on github as well of course. I applied to about 15 jobs. Landed one two weeks later, working with Clojure/ClojureScript-- I had never used it but the company gave me 2 weeks to pick up the basics. So yeah-- - It takes sacrifice - It takes focus - It takes marketing strategy It doesn't have to be a fantasy. That first job was $80k on contract. About 3-4 years later I'm at $180k on salary (that number includes stock & bonuses) What helped me was: - The mentality of "If you really want it, you'll do whatever it takes to make it happen" - Motivational music & speeches - Help from developers on IRC (Especially the #nodejs and #reactjs channels -- these days on Libera server). And Udemy.com / Youtube / StackOverflow. But IRC is a chatroom where you can chat in real time w/ devs.
- mgaunard 4y agoHe's a 24-year programmer. I wouldn't count the time he was just messing around as a kid, that's not the same as being a professional.
- layer8 4y agoI believe it’s very relevant, insofar as quite a lot of people only learn programming at uni or in a bootcamp, shortly before starting their professional careers.
- bregma 4y agoI hit the 40 year mark as a full-time professional software developer this year, although I was programming for about 9 years before that. While I have some technical observations and opinion that have served me well, I would like to take this opportunity to express a non-technical opinion here. The software industry has become extremely youth-oriented with conspicuous ageist policies. This is a problem as wisdom is ignored or dismissed only to be rediscovered and repackaged commercially time after time, but how does it affect you? The answer is that you need to plan early for your retirement. With the short job duration and explicit age discrimination in hiring you're probably going to be forced out of the industry before the tradition age. Plan for it.
- GnarfGnarf 4y agoI started writing FORTRAN in University in 1965, and Assembler at my first job in 1970. I have had a blast by successfully avoiding management for as long as possible. Still programming C++ and C#, with a bit of Python (I'm not a fan of dynamic typing).
- whoisthemachine 4y agoGreat essay. 12 years in (well, 24 if you count my HTML dabbling as a youngster), and it's already felt like forever. I can see myself programming for life, so this was inspiring for me.
- coldcode 4y agoI retired last year after 39.5 years as a working programmer. I started with Fortran, used C, C++, Java, Objective-C (both modern and NeXT variety), Javascript, lots of assembly languages and the last 6 years, Swift; also dabbled in other languages. Was always a full time programmer no matter my title and other duties. The key is always learning new things, which is a minefield since so much stuff winds up losing popularity. Most of what I worked on was targeted at people, even server side stuff always had a client as well. I also learned a lot about dealing with people, deciphering and untangling requirements, and how whatever industry I worked in functioned. I only retired because I was tired of working 60 hrs/week and endless meetings. Compared to today there were only a handful of people programming when I started, so people with 4 decades of experience are still rare.
- todfox 4y agoThis is my 30th year programming. I always hope it's my last. Programming for money destroyed the fun hobby long ago. It's just reinventing the wheel year after year by this point. The last thing the world needs is more software. The web is the crappiest platform ever conceived; I won't touch it. Social media is poison. Smartphones didn't impress me in 2007 and they don't impress me now. They're annoying and intrusive. I still like desktop software. I know, I'm a dinosaur. I just don't care about computers any more. I don't care what direction the industry goes in. I'm not depressed and I don't need to learn a new language or work on a different project. I love creative problem solving. What I do not love is solving whatever problems are handed to you without asking whether they truly need solutions, or whether it's good for the world. Much of what people want computers to do is a waste of time and of life. Whether it's bureaucratic corporate garbage or thought stopping entertainment. I'm so tired of computers.
- going_ham 4y agoI haven't started yet and I am already tired of Computer Vision and pace of catching up in the field. I am saying so as I am working towards my Master's thesis. The field evolves faster than I thought. It is so quick and nothing makes sense here. 5 year old technique is pre-historic. Like you I also like creative problem solving, and aha moments. Sometimes I think I should have studied some physics I feel like switching to software engineering but I do not have the qualifications for it. All I have is years of experience in ML and CV. However, I managed to transition to graphics somehow! Graphics is something I feel closest to physics and enjoy it a lot! I want to get into simulations and animations, but no idea how!
- robodale 4y agoI started on a Commodore 64 in 1983. I share your opinions. I think it's hilarious how much I am paid by companies to write their crapware.
- _krii 4y agoThank you very much for coming out and saying all of this. I'm reminded of Wendell Berry's essay "Why I Am Not Going to Buy a Computer"[1]: > I do not see that computers are bringing us one step nearer to anything that does matter to me: economic justice, ecological health, political honesty, family and community stability, good work. This essay was apparently written in 1987. If Mr. Berry were to revisit the subject today, I suspect he would offer much the same sentiment, perhaps even more strongly. > The last thing the world needs is more software. My dream job in this field is to get paid to delete code. [1] https://classes.matthewjbrown.net/teaching-files/philtech/berry-computer.pdf https://classes.matthewjbrown.net/teaching-files/philtech/be...
- wnolens 4y ago> At some point, you stop calculating because you can’t do everything by calculation and planning. At some point you’re not “off task,” you’re just “living your life.” Advice I need to figure out how to take.
- deshpand 4y agoFor longevity, I will provide one advice to younger people.. get away from the mouse as much as you can and use the keyboard. My working style is editing code in vim, dark screen, 2 buffers when necessary, go to the colon prompt to run the unit test or the script/driver and do this all day. No mouse needed until I need to check email or browse the web. There were times in my career when I was overusing the mouse and my wrist hurt. I have no issues now, 30+ years into programming. No matter what your editor/language/framework choices, try to minimize using the mouse
- deshpand 4y agoAnother advice is to have a thick skin and ignore the jerks, like for instance someone downvoting your note that was written with a good intention, sharing something learnt the hard way.
- maxpowersage 4y agoWhenever the TI 99/4a dropped in price. That was when I started. So almost 40 years. I find the key was not being given everything and being forced to do things on your own. My son is smarter than me and could code at 5 but he's happy to use steam and chat and is only passing interested in computer--mostly when his machine won't run windows or Linux correctly so he can run his vidya and discord. He became interested in AI/ML only when I showed him it could help with D&D
- deleted 4y ago[deleted]
- chuckledog 4y agoGreat article. As another 40 year programmer I strongly agree with the “software is young” sentiment. Coding is fun but the way we tend to go about it is insanely boneheaded! I was in the Computer History museum in Santa Clara the other day (awesome place) which maybe provided some perspective. We haven’t really come all that far from the punch cards era, we’ve certainly added a lot of talent and people, but the punch cards are still essentially unchanged. Consider: - the interface for telling a computer what to do is still a “text editor”, barely changed since 1980. Basically, a bigger punchcard. We’re still arguing about whether 120 columns is better than 80. Scratch’s blocks are a hint of fresh air but only the kids use this - code execution is still totally decoupled from code creation. We use insanely rich compilers to “talk” to our machines, but pretty much nothing to “listen” to them. We “log” things then ignore the logs. There’s no way to tell how often a line of code has been run, or what the universe of values has been for a given variable, short of digging into an awkward field called “tracing”. Borland Turbo Pascal offered live code tracing 40 years ago (Ctrl-N to execute to the next line) but nobody has meaningfully improved upon it. I don’t mean to gripe — we’ve accomplished so much with these and the other simple metaphors —- but they do reinforce the idea that the software field is still very young.
- turtleyacht 4y agoAnyone have anecdotes about good solutions they've used? When I learn something new, it's to solve a problem already posted on StackOverflow. I make a note and feel great! On to the next requirement. On the other hand, here's some things I haven't heard much of, that could be dark magic or just obvious to the more experienced folks--not always easily expressed in a type algebra, monad or what-have-you: * How to deploy schema changes to live production while preserving data * How to evaluate and test backup and disaster recovery * What's the longest you've maintained *someone else's* code? * How to set expectations, defer decision-making, and general "long-term" strategies * As you've observed colleagues come and go, what advice would you wish they had listened to instead? Soft skills ring true. Thank-you.
- Karen48 4y ago[dead]
- JoeAltmaier 4y agoI keep writing the same kind of thing for different companies for more money every year. Started 50 years ago on an Altair 8800 in my bedroom. Now I do it in a docker shell on a virtual machine over a VPN on hardware in another state on contract. But it's the same damn code I'm writing. And I keep thinking "This could certainly be automated, and I know how." But do I do it? And end a whole subset of programming? Not a lot of motivation for me to do that.