top | item 18946712

25 years of coding, and I'm just beginning

415 points| rbanffy | 7 years ago |dev.to

204 comments

order
[+] orev|7 years ago|reply
What every salary-person has to show for it: a life lived; bills paid; food on the table; health; a roof over your head; a body not ravaged and damaged by hard labor; the ability to relax and have some entertainment in the evening; a place to sleep; comfort; relative stability; the ability to make a living using mostly just your brain.

Yes, perspective is important, and I’m not saying one should not strive to make more of an impact if you want. Just don’t overlook the fortunate times you live in and the benefits you enjoy every day.

[+] ratsimihah|7 years ago|reply
Maybe some of us tend to mix up "a life lived" with overachieving. In other words, we only feel it worth if we produce something truly outstanding.
[+] ellius|7 years ago|reply
Hannah Arendt draws a useful distinction between "labor" and "work." Labor is effort required to sustain life: catching food, finding water, plowing crops. Because living creatures need these things continually, labor never ends. Food is eaten or decays and new food must be grown.

Work, on the other hand, has a defined start and endpoint. Ideally, it produces something enduring and unique.

In ancient times, labor was looked down on as something that slaves did. The lowest in society did the back-breaking, life-sustaining work anonymously, while rich, propertied elites built empires, wrote philosophy, and invented new technologies.

The world has changed since then, but I think there's something useful in that distinction. Capitalism transmutes nearly all work into labor. Almost every profession feels like it's performed solely to "sustain life" whether it's plowing fields or producing software. It's all just a salary. So I'm not surprised when I hear that people feel they have "nothing to show for it": they usually retain no ownership of the things they create and it all seems like one long endless task.

[+] jmatthews|7 years ago|reply
As devil's advocate... The majority of your waking life is then spent satisfying the newest version of "subsistence ".

It is true that new subsistence is better than old subsistence, but its still serfdom with nicer clothes.

The chase, at least for me, is about having time and location freedom while enjoying a middle class living or better. It's not about being a billionaire, it's about being free.

[+] steve_taylor|7 years ago|reply
You forgot to mention millions of dollars of value created for other people.
[+] TomMckenny|7 years ago|reply
Being grateful makes perfect sense. But being satisfied with just that sees a bit of a waste. Perhaps even a bit ungrateful. Should I be satisfied if my headstone says simply "I was comfortable"?
[+] NotUsingLinux|7 years ago|reply
Of course it’s good to „get by“ and live a life without „hassle“. But I think it’s becoming more and more clear that this is just not the case.

Most part of what we call civilisation, such as industry, sich as the IT industry is simply not sustainable. To survive the 21 century we have to look at better methods to collaborate.

And of course technology is part of the eqaation. Open Source and similar efforts lead the way towards such better methods. But they cannot exist in vacuum or on a island alone.

So we have to change society but by bit. Let’s go!

[+] Antoninus|7 years ago|reply
I agree with this sentiment. Isn't that interesting part of this job? That you get have all of things the listed above and 'nothing' to show for it? We're left with nothing tangible. I'm really happy with my memories, freedom to work where I want, using my brain for living. A life built from my brain, pen, paper and a portable computer.
[+] ngcc_hk|7 years ago|reply
Great wisdom you have.

*

Of course one may add other may be unnecessary concerns - whether the world we live in are better for our kids than we do. We have enjoyed no world hot conflict for decades. Environment can be used and within our life time ... ba la ba la. Are our kids better ?

Or many things happened in the last several years challenge all our knowledge of society - trump and Brexit and the raise of communist china etc. We live in interesting time.

Just relearn swift (forget quit a bit after my iOS app on app story in 2015).

[+] perfmode|7 years ago|reply
I can’t enjoy my leisure when there is so much injustice around me
[+] pugworthy|7 years ago|reply
Speaking from 40 years of programming (not counting before 18), OP needs to move to a life that's not about just programming.

The idea that OP has nothing to show from programming is short sighted, in that it's assuming that all one can or should created in life is code.

Do you have stories to tell? Tell them.

Do you know more about how to create solutions now? Become a better problem solver.

Do you know how to talk to a client about the "why" and not the "how" of a project? Be a creator of solutions, not software.

Also, the OP should start thinking of personal projects in a new way. Learn to fish, start a garden, volunteer somewhere, write, create art, travel, learn to play an instrument, learn to mediate. Anything that's not programming.

[+] tjtrapp|7 years ago|reply
This response echoes my sentiment. I've been coding for 20+ years and have found that literally writing the code becomes a smaller and smaller portion of my day-to-day as my career moves forward. The solution design, guidance for less-experienced team members, pull-request reviews, solution design with customers/partners, etc. becomes a larger portion of my daily responsibilities.
[+] dechamp|7 years ago|reply
You're right about this. I do have other hobbies and I have a wonderful family. I think I failed to note that this was in the manor of my portfolio, not my life.
[+] TrackerFF|7 years ago|reply
I'm a musician, and I've been one for, well, 20 years now.

Without a doubt, my most productive years were from year 2-6. At year two, I had mastered the instrument enough to be productive, and for the next four years, I'd practice up to 12 hours a day, writing and record stuff as I progressed on.

Lots of times, I re-visit older stuff, that I now felt I could do much better - having progressed as a musician and songwriter. Suddenly I noticed errors or things I hadn't done before.

As the years went on, and I got better, I (for some reason) lost that creative fire I had as a novice. I became much more critical, wanted everything to be "perfect", and would essentially stumble on more challenges.

And then, out of the blue, I'd hit a writers block - or just lose motivation all-together. Suddenly I could go for a year or two without writing or recording anything - zero output.

Even if I don't practice as much as before, I'm still a much, much better musician than I used to be. But my creativity and drive is nowhere the same as when I was transitioning from beginner -> intermediate -> good musician.

FWIW, I've noticed this with a lot of my peers, both in the world of music, tech, and other. Sometimes it's because a hobby has turned into work, or sometimes it's just change in interest.

It's hard to be passionate about something 24/7/365 for years and years, and when you're not passionate, it becomes a grind.

When you're a beginner, it's fun to re-invent the wheel over and over again, as you get a sense of ownership. YOU made it, even though it's been made millions of times before.

Sure, I could spend my evenings pushing out apps just for the sake of it, but it wouldn't give me any pleasure. And besides, that's what I do for a living.

[+] bakoo|7 years ago|reply
Interesting! In some ways, you're describing the difference between art and craft, which might help explain why I often enjoy early albums more than later ones, or at least appreciate them for different reasons.

I've always loved programming, but whenever I'm asked why I don't switch from ops to development, my answer is that I don't want to destroy my hobby by becoming a professional. I've seen it happen, not only to photographers that shoot weddings and anything else that pays, but accomplished artists who can't afford to not spend their time and talent to "create new artwork for our HQ reception and conference rooms, since the old artwork doesn't match the new logo". It can be heartbreaking.

[+] abledon|7 years ago|reply
have you considered transitioning from music to yoga/taichi? I found the same creative force was required but on a different plane.
[+] Spearchucker|7 years ago|reply
To start with I've been writing software for 32 years now. I went through what this guy did, at around the same age as him, give or take. And I got past it, as I imagine he will.

Today I work with people half my age who, and this is so obviously apparent it's actually funny, are convinced they have a better grasp of the problem and solution domain than I do. To be fair there was a young lady once who did, and it was amazing to be humbled like that, but it's hardly the norm.

Anyhow, when I hit my mid-40's my ego (which was substantial) just kind of... left. I still love tech, programming, solving problems. But this has taken second place now to enjoying myself, my son, life. I now live for moments - snowboarding, scuba diving, restoring an old BMW R80.

My biggest lesson to my 20-something self would be to get the hell over myself. Life isn't a competition.

[+] unreal37|7 years ago|reply
Fascinating comparison of comments. If you read the comments to the article, 100% of them are "same with me". If you read the comments in HN, 50% of them are "set your expectations correctly."

I read this and I felt like I needed to talk with the guy. It doesn't matter if you "don't have anything to show" for 15 years of work. It doesn't matter. Where is it written that programmers must have a hand-coded website or a open source project to their name?

I also never buy the "I'm too much of a perfectionist" line. That's not a thing.

You got bored. You didn't have motivation to complete. Sure, happens all the time. "Too much of a perfectionist" is not a thing.

[+] merlinsbrain|7 years ago|reply
It matters to some people, the same way art matters to some people as a way to be proud of what they’ve done, and have something “tangible” to show for it. Programming can be an extremely creative endeavor, and not having something to hang on the wall can be a bit disconcerting for the kind of craftsman who wants to look upon their work / listen to their latest composition every day.

You may not need anything code related to feel fulfilled / happy / whatever in life, but being dismissive by projecting isn’t useful.

I do agree that “too much of a perfectionist” is a stretch. It could be lack of motivation or fear of failure, or something entirely different, I don’t think the meaning is lost here.

[+] sureaboutthis|7 years ago|reply
This is an article on dev.to. The home of frustrated redditors trying to make a name for themselves. I'm starting to see too many of these on HN and have never seen anything posted there worthwhile reading.
[+] ilovecaching|7 years ago|reply
What is this obsessions with leaving something behind, or doing something noteworthy? Be selfish. Programming is my selfish pleasure; I love it therefore I do it.

Just remember, we are a tiny, insignificant speck in the history of our own planet, let alone the universe. If you truly believe you can improve people's lives with code, go do that. But don't make it about proving yourself to other people, or creating a lasting legacy. Ask yourself, if everything I made or affected disappeared when I died, would I still be doing this?

Fight Ego.

[+] tluyben2|7 years ago|reply
For me it's not ego, well not primarily I like to think. I find, after programming for 30 years now, that programming is deeply flawed and that it is basically a huge disaster waiting to happen (in many cases it's happening already). I want to try to at least progress the field a little bit further so it's not this bad anymore.
[+] mmjaa|7 years ago|reply
I've been coding for 30 years and I can't count the number of times my stuff has just disappeared into the ether. All the CP/M apps I wrote, the DOS apps, the risc/OS and the Windows and OS/2 apps, the BeOS stuff, the Linux stuff, the iOS and Android apps which no longer work yet will never be updated to 64-bit "just because", etc.

The industry doesn't promote longevity - and neither do its participants, who graduate from wherever they learned a career skill to enter the market and make waves - by writing new shit that will change everything, and guarantee that the work that was there before they came will become irrelevant and archaic "ASAP".

You need not blame yourself. This is normal.

[+] angry_octet|7 years ago|reply
I was applying for graduate school a while ago and the application form says: GitHub link to your programming portfolio.

Portfolio? I don't have a portfolio. My work is jealously guarded by the people who paid for it. I've been able to kick some stuff out as open source, but it mostly isn't mine or especially good. (The victory was overcoming the culture of fear.)

Of course, the form is for people who had just graduated recently. But it made me question myself.

And then it made me question whether I was wanting to study the right course. Were they open to having students who had more life experience than they did? People who have been in the field building real systems? Other stuff came up and I didn't end up finding out how it would go.

[+] zmmmmm|7 years ago|reply
It's a bit of a side point, but this is one reason I almost insist on incorporating some of what I do at work into open source projects. I realise there are places that make this very difficult. Sometimes you have to do it in reverse - find an existing open source project, get that in the door at work, then contribute to that project. Done that way it doesn't seem like the same giving away the corporate crown jewels as open sourcing existing things originated in-house.

But the result is you don't end up 25 years downstream with nothing to show for it. You end up with a collection of open source projects to your name that you can keep working on and re-deploying over your lifetime.

[+] sotojuan|7 years ago|reply
I get the sentiment but if you want to be able to point to things that you built years ago software is probably the worst career to take. We shutdown, delete, replace, and rewrite our work all the time.

The small amount stuff that lasts over five years gets called legacy and is made fun of.

[+] imhoguy|7 years ago|reply
"if you program and want any longevity to your work, make a game. all else recycles, but people rewrite architectures to keep games alive."

Why The Lucky Stiff

[+] michael_leachim|7 years ago|reply
I am in a somewhat similar position, although I can't say that I have a solid career. I've started through working on a startup and then miserably failed, wasting three years.

Then worked for a small company making money saving and useful services for them, but nothing extraordinary.

Then I tried again. And I failed again. I was disciplined. I planned and worked hard for half a year, having nothing to show for it in the end. To the point, when I just sat and said that I won't do anything code related until I understand where I lack understanding.

I've come to understand that my main problem is fear. Fear of rejection of things that I do. Fear that anything that I can share is of not enough quality to be shareable. Fear of being not appropriate to the people online, or expressing opinions that I have no right to express.

So, now I am working directly with fear. Will see where it will lead me.

[+] howard941|7 years ago|reply
FFS this comment resonates so deeply. I don't understand how to work directly with fear except for being completely occupied so as to make rumination impossible. Can you share any pointers?
[+] twodave|7 years ago|reply
I got my first TI-82 about 19 years ago. Never had to study for a math test again. I’ve built some things since then as an employee, as a contractor, as an owner and even as a donor, but never really “hit it big” by SV standards. Still, it’s hard not to be thankful for the way my life has gone so far. My single greatest asset is that I have the confidence to take on basically any technical project imaginable. I’ve started from the bottom of a new tech stack enough times and worked with enough different teams and bosses that I no longer have this fear of being enough or doubt my abilities the way I did even 5 years ago.

There is a lot of value in confidence, ability to execute and knowing the value of your own hour of effort. My advice to anybody out there who feels like the OP is to get our and expose yourself to new things, take a few measures risks and force yourself to grow.

[+] kumarvvr|7 years ago|reply
> confidence

That confidence to handle any technical work seems to stem from gradual development abstract thinking w.r.t problems . Top notch problem solvers see beyond the technical details and focus on more abstract aspects of the problem. To them the problem at hand has a few key sub-problems that are very critical and thus, when those are solved, everything else is just minor details. Identifying those critical sub-problems seems to be the key. And that is usually developed over a good amount of real-world experience. There are genius people out there who can think in these lines in their teens, but those are few and far between.

All those years of working, those long hours, those brain wracking problems, those moments of sheet delight at having solved one, all of that is its own reward. I may not have anything to show for my 15 years in a field, but I have plenty of self-satisfaction and the experience living those moments.

[+] ngcc_hk|7 years ago|reply
There are two kind of life - swim in the sea and walk the mountain.

Swim in the sea you enjoy but nothing left behind. We call the people good at this guys with wisdom.

Walk the mountain you left a path. If the steps repeated made a path to ease late comer. But if not continue walk the path will be covered and gone.

When you walk you follow path not known who made it in many cases. Or create your own. We call them people of righteous.

Are you a swimmer or a walker?

[+] martinsb|7 years ago|reply
I cannot express in words how much I feel I relate to this post. Big thanks to the author of the article and OP for posting it here.

A few thoughts:

* Don't compare yourself to others, nothing, absolutely nothing, good comes out of it. Ever. I know this is especially hard in times when anyone can brag about their accomplishments in a blink of an eye on Twitter, Facebook or anywhere else. Follow those people, learn from them but don't compare yourself to them.

* Even if you did not finish your projects you still have learned something which makes you a better programmer.

* Programming is just a tool. Nobody will care much about your code as long as it does its job - be it a great application, service or a useful library.

* Your job pays your bills, if you earn more than others (a very common case if IT jobs), donate money to charity, to a good cause.

* The author has taught a person to program and he created a website. This is not something to be jealous about, the author should be proud of himself. It sounds to be that the author is a good tutor, maybe there's an opportunity to participate in local meetups, organize workshops or start a career in that direction?

* As others already mentioned, programming is not the only thing in life. Maybe there can be other hobbies like painting, carpentry, or gardening?

EDIT: formatting

[+] dechamp|7 years ago|reply
Thank you! I appreciate you saying this. I will take your points and apply them.
[+] n1vz3r|7 years ago|reply
As article author did, I code since I was eleven and yes, that's 25 years too. I feel for him, because perfectionism along with need of exhausting everyday grind (especially when you have kids) quite reduces our ability to spend productive time to create Next Big Thing. But for me, the biggest showstopper is that I love to code, but just to code. I don't care much about sharing what I did, nor I want to get approval from someone who uses my work. Maybe I will overcome my issue one day, as author did overcame his. (edit: spelling)
[+] DanielBMarkham|7 years ago|reply
My father-in-law is a carpenter. When we talk about work, he talks about things we can drive around and see: porches, houses, parts of big buildings, housing projects. I have nothing to point to that would mean much of anything to him. At least I didn't up until the last ten years or so.

I used to focus on the code. People wanted stuff and the code had to be "correct" so that they could get what they wanted. I found "correct" to be endlessly complicated, but heck, that was part of the fun of it.

Then I focused on the people. How am I interacting with the people I'm trying to help such that I have a better idea of what "correct" means? I found that people don't know what they want, they don't know how their desires might change, and even if they did they are incapable of describing that to me in a way that would provide significant architectural guidance.

Finally, I balanced them. I created a definition of good code. Good code is code that does something for people that they value that I can walk away from and never touch again If the code doesn't do anything valuable or I can't walk away from it, it's not good code.

This made me realize that as much as I knew about people and programming, I suck at good code. I get wrapped up in the people part, not figuring out value or being able to scope it well. I get wrapped up in the coding part, building out things that I'll only need in my imagination.

It made me feel a little better to see that so many other developers suck at my definition of good code also, but it was a terrible blow. Humbling.

I'm happy I made the change. I don't feel the way I used to a decade or two ago. My journey is not this author's journey, but I feel the pain he expressed in his essay, and because of that pain I began mine. Best of luck.

[+] rumcajz|7 years ago|reply
I like your definition of good code. In the industry we are brainwashed to think that code is something that needs constant maintenance. Good to see someone who haven't succumbed that mindset.
[+] ams6110|7 years ago|reply
I guess I didn't realize just how many people out there are seeking anyone who knows even a little more than they do. They don't care if that person has 25 years or 25 minutes more education than they do. They only care if they can learn from this person and build a communication line with them.

In the business world it's the same with software. At one place I worked they were paying thousands of dollars a year for a software product that was buggy and barely worked. It was slightly better than a shared spreadsheet. But it was better, so they paid for it. Most non-technical people are pragmatic, and also jaded about software. They expect it to be arcane and difficult and spitting out errors and warnings. They just learn how to get through it in the ways that do work, and as long as it's a net time saver they'll accept it.

[+] hirundo|7 years ago|reply
I recommend "The War of Art". For me it holds up to multiple readings and gives me a kick in the pants each time.

https://www.goodreads.com/book/show/1319.The_War_of_Art

[+] merlinsbrain|7 years ago|reply
I read this based on some HN comments, I found it to be pretty motivational but not much else.

Was there anything else you gained from it that I may have skipped?

[+] dechamp|7 years ago|reply
I'll read up on this, thank you
[+] justanother|7 years ago|reply
Hi there, programmer since age 4, professionally for about 27 years. You haven't heard of me. There's a fair chance you've used something I've worked on, but more likely you haven't. I'm over 40 and haven't had my zillion dollar Californian exit. In fact, despite extracting some rather generous sums from clients over the years, I still often struggle financially due to the people, animals, and causes I care for.

I know people who've had exits. Some of them have a family they neglected for it. Often there's an abused (or just cheated-on) spouse. Many of them are just pure sociopaths who would shank their own mothers, and literally gave all to pursue an exit. If you really wanted to join them, you know you could. But you haven't. This shows that despite your doubts about your career, you have some degree of integrity. And yes, I'm aware not all people with the Grand Exit achievement are this dirty, but having had a front-row seat enough times, I can verify it's substantially easier when they are. I should also mention I know some genuinely nice, and not incredibly talented, people who sort of stumbled into the Grand Exit and have been horribly alienated by the ruthless financial demands of entitled "friends and family."

You've chosen your battles, be proud of your choices. In just a few more decades, you and I and the overachievers will all be equal below the surface of the planet. Their names and works will be forgotten too.

Till then, let's have fun and maybe lift a couple other people up with us.

[+] dechamp|7 years ago|reply
wow, this gave me cold chills. I seriously ran through scenarios a million times of what happened if I made progress on my projects and they sold for big money, is that even something i want? No, it's not. I just want to code cool things, and maybe share my knowledge with those who are interested in it. Have my family close to me. What I really want is just to feel like I have a story to share with others. To have my knowledge and skillset appreciated by others. I don't need to be rich or have the coolest projects. Money is great, but you're right, it brings out the devil in some. My aunt's husband just died and his own kids are after the money... it's sad. So I'll take your advice. I'll be grateful for my family, and for my experience. That I get to code, that is my reward. Thanks again for this post.
[+] komali2|7 years ago|reply
I think one of the most important lessons I took from the coding boot camp I went to was the value of the MVP. There, the first step was to deploy an index.html with "hello" before doing anything else, before even npm init. Then, get your framework running with another hello. Then, the barest functionality possible - if we were building a GitHub analysis thing, make the frontend capable of listing repos before building the server that did analysis on those repos (or vis versa).

Through a couple group projects I refined the concept of KISS and feature prioritizing, siloing, and escalation.