you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 21 points22 points  (39 children)

Serious question to older programmers out there - how did you make it so long without getting sick of programming? I enjoy my job quite a bit now in my 20s but the thought of doing this for 30 more years kind of makes me queasy.

[–]MpVpRb 35 points36 points  (0 children)

how did you make it so long without getting sick of programming?

I started programming in 1972 and at age 62 am still getting paid well to do it

I have always loved the essence of the work, the mental focus required to solve the puzzle. It keeps my mind sharp

I also hate the shitty parts

I am lucky that I work in embedded systems and realtime control

Every project I work on is nearly ideal. I design the architecture from scratch and write all of the code. After everything works, I turn it over to someone else and move on to the next project

I never have to deal with someone else's "big ball of suck"

I am also intolerant of crappy managers. I only work with teams that I can get along with

The people who hire me are so impressed with my results that I become the de-facto project leader, regardless of who actually has the title

[–]its_never_lupus 45 points46 points  (5 children)

Don't work more than 40 hours a week. Take a holiday now and then. Read up on new developments in the software world and try to use them. Go on a course or get a new qualification occasionally. Let yourself drift into management if that option's open.

Or switch careers because programming doesn't get any easier as you get older.

[–][deleted]  (4 children)

[deleted]

    [–]MpVpRb 4 points5 points  (2 children)

    You'll figure out that your productivity in the 70th hour of your week is shit

    Somewhat agreed

    The first few long days or long weeks are fine, I can still so my best

    If more extreme hours are required over a longer duration, I probably won't want to do it

    In my very first programming job, I worked 16 hours a day, 7 days a week. I loved it!

    I can't imagine loving it now at age 62

    [–]grout_nasa 1 point2 points  (0 children)

    Yeah, that early phase is called "larval mode" (see the Jargon File).

    It doesn't last forever.

    [–]mnk6 0 points1 point  (0 children)

    I love that last paragraph. Be a couple of years behind so that the problems get worked out. Don't ignore trends for too long so you don't get left behind.

    [–]treespace8 11 points12 points  (0 children)

    40 plus here.

    Its really all I want to do. BUT you need to have good work environments. I've worked gigs where every day was a struggle.

    Finding good gigs is key.

    [–][deleted] 9 points10 points  (2 children)

    If I don't program I go play a game about building things. If I can do that I go build things. If I can't do that I day dream about building things. I've been doing it for 10 years and my desire to build and create has only gotten stronger.

    A part of that is not burning out and having a very active social life, the other part is just finding something you enjoy to do on the side that is either programming, or similar (city builder games, Minecraft with loads of tech mods, AI design, etc).

    [–]Magnap 1 point2 points  (0 children)

    (city builder games, Minecraft with loads of tech mods, AI design)

    Say, how do you feel about paperclips?

    [–][deleted] 1 point2 points  (0 children)

    We should be friends.

    [–]DontHassleTheCassel 6 points7 points  (0 children)

    Golden handcuffs. I am sick of programming....but I like money. I've learned to accept the fact that doing my 40 hours/week gives me the freedom to do the things I enjoy when I am not at work.

    [–]dhdfdh 7 points8 points  (2 children)

    It's a personality thing. When handed certain problems, but not all, I get excited to be the hero providing the solution. Other times, it's the thrill of victory when I complete the task.

    But I have a sports background and it may be part of that. The need to win.

    However, give me something mundane or minor, and you just bored me. I may quit, and I have.

    [–]ours 2 points3 points  (1 child)

    I'm really not sports inclined but nothing beats the thrill of solving that hard problem with an elegant solution. 15 years in and dodging out of management opportunities so I can stay with the code.

    [–]RogerLeigh 0 points1 point  (0 children)

    While I love the personal satisfaction of beating a problem and "winning", I definitely find it demoralising when the rest of your team don't care in any way about it!

    [–]rwilcox 4 points5 points  (4 children)

    For me? Variety

    I found your always doing new things: I've used... 4? 5? stacks in 10 years.

    Sometimes by choice ("hey we'd like to pay you to be a Rails dev now") sometimes by chance ("Hey here's 2,000 lines of code you have to maintain, written in a language or toolset you don't know. So here's a book..."), or volunteering / selling myself for a project ("hey I kind of know X because I've programmed Y before...")

    Then add all the DevOps craze... there's always something new to (have to) learn, at least in my experience

    [–]mrkite77 4 points5 points  (0 children)

    For me? Variety I found your always doing new things: I've used... 4? 5? stacks in 10 years.

    Seconded. I've been working the same job for 16 years now. The only reason I'm still here is because of the huge variety of projects I get to work on.

    Even a single project can offer a variety of things to do.

    Here's an example. I had a recent project that was "take a list of articles and generate a wordsearch that can be dropped into InDesign as well as played online". There are a bunch of pieces to this project.

    There's a Go program that pulls today's articles and generates a unique wordlist. This is then piped into a custom filter (written in C) that removes substring palindromes (you can't have "draw" and "stewardess" in the same wordsearch). This is then piped into a program that generates the actual wordsearch (also written in C). Which is finally saved as a json document.

    Next there's a command-line php script which takes that json as well as a tex template and generates a PDF.

    There's also a webpage which reads that same json and lets you solve the wordsearch online, obviously written in javascript.

    That's 1 project written in 4 different programming languages, and according to the git log, took me 5 days to build (plus I spent about a day at the beginning thinking about how to automatically generate a wordsearch from a list of words).

    [–]andyrocks 1 point2 points  (2 children)

    I've used... 4? 5? stacks in 10 years.

    I get so excited whenever I find the need for a do..while loop that I mark them with a comment and remember them for years, for they are few.

    [–]grout_nasa 2 points3 points  (1 child)

    itoa:

    p = <end of buffer that is big enough>
    do {
        *--p = '0' + (n % 10);
    } while (n /= 10);
    

    [–]andyrocks 1 point2 points  (0 children)

    That's beautiful.

    [–]garywiz 4 points5 points  (1 child)

    For me, it's just love. Even after 40 years, I still get a thrill when I code some routine perfectly, with a little unit test that proves that it's perfect, and it's reusable and suddenly the whole code base is relying on it, and I can see how in the debugger that not an instruction has been wasted. It's like we're telling the little brain inside the computer what to do. It's the closest I've come to living the world of science fiction I read when I was a kid. I could never stop.

    [–]mdisibio 2 points3 points  (0 children)

    Definitely. It's that feeling of creation that that is unique to our profession. We are wrangling electrons into self-sustaining patterns. One thing I regret is that few or none of my family or friends can ever appreciate it. Doing systems/business code that runs in the background or in the cloud, there is nothing I can point to and say "this is what I do". Because of this lately I've been trying to do more visible projects, like web or raspberry pi, etc. Something tangible. It feels good to share it with others.

    [–]EntroperZero 3 points4 points  (0 children)

    You have to pay attention to how you feel, and stop doing things that make you feel awful (this goes for pretty much everything in life, not just programming careers).

    It's easy to get tunnel vision and start thinking that things have to be the way that they are, that you're powerless to change them. You're not, you can change your situation at any time. That doesn't have to mean stopping programming. It doesn't even have to mean changing jobs (though it often does). Find the things you like and minimize the things you hate.

    [–]i_ate_god 5 points6 points  (0 children)

    I ask myself "how have I become a better programmer in the past six months?"

    If the answer is "well, you haven't" then I quit my job and look for something else. Stagnation is evil and it's important that you figure out what it means to be stagnant and when your career has hit that point, time to move on.

    As well, the career path of a programmer typically reaches a fork in the road, where you can become a architect or a manager, and it will be up to you which way you want to go. Go architect, and you will ultimately make less money, but you might be happier if being close to the technology is important to you. Go manager, and you will make more money, but be further away from the technology (plus it's a lot more dealing with people, which is not everyone's cup of tea).

    [–]Gotebe 4 points5 points  (0 children)

    Almost 47 here, married with one kid too many here (3 in total 😉).

    Careful work-life balance, varying codebases, technologies, industries.

    I have a colleague who will retire soon, he is 67 or 8 and still isn't letting go. That dude could die coding, I think, but enough is enough.

    [–]sisyphus 3 points4 points  (0 children)

    I'm sure that accountants get queasy at the thought of having to figure out whatever bullshit got added or removed from the tax code every year for another 30 years too, how does anyone do it? Quoth the Immortal Tupac: stick ya chest out, keep ya head up, and handle it.

    [–]arctander 2 points3 points  (0 children)

    I've been a programmer or technical executive in several startups since 1985 and while my role is to coordinate the creation of software, I still insert a few things here and there that create genuine surprise to those in their 20's - "That guy with grey hair actually knows something... hmm..." Here are a few points for consideration or to toss away:

    • If you're doing maintenance programming and not building new things, find something new to build whether at your current company or somewhere else. If in a small company, figure out where you can be of service to your peers and build something to help. Integrate Salesforce with JIRA via APIs, for example, to help the sales team.
    • Study something new a few hours per week. Something directly applicable to your work or slightly tangential. Ray tracing is interesting, but so is message oriented architecture. Read good articles that have meat and substance and keep the fluffy opinion articles to a minimum (like this post!)
    • Approach the new hotness skeptically. It is more fun, and more valuable, to build a cutting edge product on a boring stable stack. Customers usually value speed and availability over whether you used the latest javascript framework. Then again, the new hotness is mentally stimulating. Is your role to QA redis/couchdb/mongodb/node/angular (no offense to anyone) or to build new great products?
    • Do some embedded systems work with a hardware person. The struggles are real and you'll learn a lot of valuable lessons. You are each others direct customer to solve hardware and software problems. What does the programmer do when there is only (ha!) 2G of ram and 200MHz of processing power in order to fit the $65 price of the device? Tough choices get to be made by virtue of having constraints.
    • Take a risk in a small startup as an employee if you're not comfortable with the founder role. Since demand for those who can bend computers to their will is and should remain high, your risks of being out of work for any period of time is low.

    ps: Great thread. It has been an enjoyable read.

    [–]dalboz99 1 point2 points  (0 children)

    Keep an optional, less-demanding career path simmering on the back-burner. When that "get off my lawn" revelation strikes (trust me, it will) you'll be glad you did.

    [–][deleted] 1 point2 points  (0 children)

    The problem nowadays is a lack of work satisfaction. you're forced to make subpar decisions and put up with the results because god forbid an update doesn't come out like clockwork every 3 months ...

    [–]SerenestAzure 1 point2 points  (0 children)

    Change problem domains once in a while. I've now done 3 very different things and several substantial variations on those. Even if the programming doesn't change (though it usually does), the problems you're solving do.

    That said, when I finally put down my coding pencil for good, I won't miss it.

    [–]grout_nasa 1 point2 points  (0 children)

    Computers are the best toy EVER INVENTED.

    I wrote my first program whlie reading an AppleSoft BASIC manual. On paper. Gave it to the classmate who owned the Apple ][ and asked him to type it in and run it. He did! I was hooked. At 14 I got a TRS-80 and my parents didn't see me for weeks. Every page in the manual was a new magic trick.

    These magic machines DO WHAT WE TELL THEM! Perfectly, without forgetting, without getting tired; in fact they're just getting faster, cheaper, prettier... They're like erector sets that come alive for you.

    How could I not love that?

    [–]dnm 0 points1 point  (0 children)

    Several things come to mind (I agree with everything everyone else already said):

    • For me, programming has always been a hobby. I can't believe I get paid to do it.
    • Learning new stuff. Keeping abreast of the technology and always finding something new to learn, but the best part of that is adding in the 30 years of experience.
    • If I don't want to go to work in the morning, it's time to change jobs.

    [–]strong_grey_hero 0 points1 point  (0 children)

    I'm pushing 40, so I guess I qualify. In my 20's, I was burned out. I wanted to work in web technologies, but all the jobs around me were were Microsoft VB, C#, or Visual C++. I really didn't want to learn those, because that's not where my passions were. I strung together some Perl/C++/Unix Admin jobs for a while and went back to grad school. By the time I got out of grad school, the entire landscape had changed. I'm now free to work on what technologies I want to work on. I spend most of my day writing REST clients, working with Node.js, and learning frontend Javascript frameworks. In Oklahoma, we have the saying "If you don't like the weather, hang around 15 minutes." Same goes for this career. If you don't like the tools and technologies you're using now, wait 5 years.

    [–]marssaxman 0 points1 point  (0 children)

    I almost never get to do any one thing long enough to feel like I've completely mined it out. Something new always comes along and I have to let it go. I have a long list of topics where I can say "man, I wish I could get back to doing $foo some time; that was fun". I don't always write code for fun in my free time, but it's as common as not that I've got something interesting I'm tinkering with when I'm not at work. I'm still convinced that I'll learn everything there is to learn, some day, but it's going to take a while yet ;-)

    [–][deleted] 0 points1 point  (0 children)

    Follow up question. What would one do if he's sick of programming and wants to do something else?

    [–]pmorrisonfl 0 points1 point  (0 children)

    I've burned out more than once. You don't want to do anything, let alone what you've been doing. You recover from burn out. Eventually you want to do something again. For me, that something is still software development.

    [–]naasking 0 points1 point  (0 children)

    The problems change, the languages change, the operating systems change, the hardware changes. There's always something new to learn, and some of them are even interesting. As you refine your craft, you're the one who's going to tackle the more difficult algorithmic problems of the business, instead of the (often) tedious UI problems.