by revorad on 9/2/22, 1:55 PM with 238 comments
by fjfaase on 9/4/22, 12:35 AM
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.
by travisgriggs on 9/3/22, 11:09 PM
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.
by todfox on 9/4/22, 2:20 PM
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.
by gumby on 9/3/22, 10:33 PM
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.
by simmo9000 on 9/4/22, 6:49 AM
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...
by analog31 on 9/3/22, 10:29 PM
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.
by PuppyKhan on 9/4/22, 12:46 AM
So yeah, this article is basically on the nose.
by legends2k on 9/4/22, 3:48 AM
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
by dpweb on 9/4/22, 1:38 AM
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.
by MaysonL on 9/4/22, 2:50 AM
by ChrisMarshallNY on 9/3/22, 11:39 PM
Besides dealing with folks that don't like gray hair, it's been a blast.
I code for free, and for fun, these days.
by WalterBright on 9/4/22, 2:25 AM
I plan to continue until my brain no longer works. Have no interest in retiring.
by chuckledog on 9/4/22, 4:39 PM
- 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.
by revskill on 9/3/22, 10:11 PM
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.
by earleybird on 9/4/22, 2:21 AM
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.
by NorSoulx on 9/4/22, 10:04 AM
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.
by tomcam on 9/4/22, 2:44 AM
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
by YZF on 9/3/22, 9:50 PM
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.
by clement_b on 9/4/22, 11:27 AM
by dopeboy on 9/4/22, 1:38 AM
* how the field has changed * war stories from past experiences * advice to the newer generation
by picometer on 9/4/22, 4:55 AM
- Maria Mitchell, 19th cent. American astronomer
by mikewarot on 9/4/22, 7:54 AM
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.
by kache_ on 9/3/22, 11:47 PM
by winrid on 9/4/22, 1:32 AM
by turtleyacht on 9/4/22, 6:44 PM
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.
by coldcode on 9/4/22, 2:04 PM
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.
by zh3 on 9/4/22, 8:14 AM
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).
by FunnyBadger on 9/4/22, 10:46 AM
by spullara on 9/4/22, 1:14 AM
e.g. https://shv.notion.site/Creating-Remember-When-51fdf609421d4...
by bregma on 9/4/22, 11:52 AM
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.
by 2sk21 on 9/4/22, 8:44 AM
by zogomoox on 9/4/22, 7:48 AM
by somesortofsystm on 9/4/22, 9:42 AM
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.
by theflyingelvis on 9/4/22, 6:04 AM
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.
by maxpowersage on 9/4/22, 3:21 PM
by JoeAltmaier on 9/5/22, 7:47 PM
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.
by ThomasBHickey on 9/4/22, 1:43 AM
by angryGhost on 9/3/22, 11:04 PM
by fortran77 on 9/4/22, 3:52 AM
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.
by pizzaknife on 9/3/22, 11:34 PM
by synergy20 on 9/4/22, 1:09 AM
I feel both CS and EE can last very long to later stage of life, as long as you enjoy it as a profession.
by GnarfGnarf on 9/4/22, 12:21 PM
by melony on 9/4/22, 1:38 AM
by gedy on 9/3/22, 11:46 PM
by bitwize on 9/4/22, 3:23 AM
Shit, I'm old.
by wnolens on 9/4/22, 2:22 PM
Advice I need to figure out how to take.
by whoisthemachine on 9/4/22, 1:04 PM
by intrasight on 9/4/22, 3:55 AM
by mouzogu on 9/4/22, 6:21 AM
sounds like me. although awhile but might be the wrong word.
by mathgenius on 9/4/22, 8:34 AM
by deshpand on 9/4/22, 2:40 PM
No matter what your editor/language/framework choices, try to minimize using the mouse
by darepublic on 9/4/22, 1:21 AM
by huqedato on 9/4/22, 10:13 AM
by ckhung on 9/4/22, 4:06 AM
by mgaunard on 9/4/22, 11:40 AM
I wouldn't count the time he was just messing around as a kid, that's not the same as being a professional.
by cmsonger on 9/4/22, 2:33 AM
by rikroots on 9/4/22, 10:28 AM
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.
by suction on 9/4/22, 5:29 AM
by rufus_foreman on 9/3/22, 11:10 PM
No. Sadly no. This is not the way it works.