> It lets me be a bit more objective in a field that's prone to a lot of subjectivity and - like almost any field - pride and ego
Unpopular opinion: pride and ego actually drive personal ambition, technological achievements, and human progress. No one accidentally stumbles over being "passionate" and no one truly passionate divorces their personal identity from their work. That's why some of the most successful people in their respective fields also are often the most egotistical. There should obviously be some checks and balances there that everyone needs to take stock of, but that's just my two cents.
It wasn't my experience at all. The best software developers I've met were the nicest guys ever, no ego at all. The ones with big ego typically think very highly of themselves but are in fact mediocre developers. And their high ego often prevents them from working productively in a team resulting in negative value contribution.
You are right, but you're missing the flipside of this: they also drive mental illness. Adaptations like these can be constructive or destructive to a person and society, and it's current consensus (which may be wrong), that it's better to have less of an ego in average case.
> Unpopular opinion: pride and ego actually drive personal ambition, technological achievements, and human progress.
Yes, for the 0.0001 percent of us that actually do something monumental and worthwhile. For the rest of us who are working in a glorified ad agency, it's just pride and ego if we think otherwise.
That begs the question, why do I want to be the most successful person in my field?
Software development is a means to exchange labor for money and to support my addiction to food and shelter.
The list of things I’m more passionate about than software development is a mile long.
I haven’t written a single line of code that wasn’t in direct service to exchanging my time for money since 1996. I was “passionate” from the time I was 12 until I graduated from college.
I don't remember wanting to "be the best programmer I could be" - I just wanted to build stuff and it made me feel smart/good when I solved complex problems.
Nowadays I get paid to solve trivial problems, self-inflicted complexity, and work in problem domains I have no interest in. But it gets me a nice living.
Me too. And in danger of being "found out", I don't think I've ever wanted to be a "ninja coder" or someone who dives deep into solving hard problems. I like computing, and I like programming a lot, but the thing that I really enjoy about it is (as you said) building something that makes me feel smart, or accomplished.
Incidentally, I feel like this is why I gave up on running OpenWRT on my routers, or FreeNAS on my NAS, and why I don't end up sticking with Linux on my personal computers. I enjoy computing, but it's not my hobby. My hobbies are things that I do with my computer.
Most problems are trivial, particularly to people with domain expertise.
I think getting really pulpy, difficult problems is a rarity even at the top of the field. I don't think that should be the goal and particularly not most of your time (it would probably drive us insane)
What we can do is solve trivial (or easy) problems in ways that are elegant and robust and easy for other developers to understand. That in itself is a challenge.
I solve trivial software problems but get to help solve interesting business problems. I still code but have moved into a role where I get input on the business processes that my software helps run. It's awesome and I love it. My input is directly aligned with business outcomes and it feels amazing.
Since I was 12 (I'm nearly 50) my drive to program has always been about understanding, duplicating, and then exceeding the work of others. Part of this is ego- the desire to be respected for my intelligence- and the other part is a desire to see certain science fiction futures come to pass (elective gene therapy, interstellar travel, machine singularity) through my discoveries.
At some point I realized I'm not going to be the equal of Lord British or Jeff Dean. This was a huge blow to my ego. Like the author, this had huge impacts on me. So instead, I worked harder: more hours spent programming, tediously working through all the bits and pieces that smarter people can solve quickly. And that taught me something: grinding like that comes at a price (life satisfaction).
What drives me still is passion: the desire to be able to do something I know is possible, with my own hands.
2nd all of this. Since ChatGPT came out I've had a renewed excitement for the idea of building a simulacrum of myself with things like a language model and training it on my life. I'm actually excited how far away the idea is and the prospect of having something to tinker with for the coming decades.
For me it's different. I've always been a person that likes challenges and to improve, and programming was just what I needed. It's an endless road of challenges. I am trying every day to get better, and this doesn't have much value besides for myself. Companies that I work for doesn't need much of a knowledge I have.
I spent tte first 15 years of my career finding “passion” in my part time working hobby of being a fitness instructor, weightlifting, running as fast /long as my body would allow me, etc.
The next ten years I spent raising two (step)sons and spending time with my wife while still working out after I got (re)married.
For the last year, my wife and I have been planning our “hybrid digital nomad” life where we will be staying in our own vacation home/investment property half the year and flying across the US the other half.
I feel the same way, but I want to caution people: this only works if you have already achieved some measure of success in your career and respect from your peers.
It's easy to be egoless if you're already working at a FAANG, just as it's easy to not care about money if you're already rich.
Still, it's worth trying to remove your ego from the equation, even if you're a struggling student trying to get your first job, just as you should care about things other than money, even if you're poor.
> It's easy to be egoless if you're already working at a FAANG
Doesn't amazon hire anyone and everyone these days. They gave me a sde3 350k remote aws job after asking similar sets of basic coding questions and some BS called 'leadership principles'.
I have hard time believing anyone half competent will fail those interviews.
I was just as “egoless” the beginning of 2020 when I was an “enterprise architect” working for a 60 person startup with my big house in the burbs as I am now that I stumbled into a cloud consulting job working remotely at BigTech.
I had no desire to work for a FAANG as a software developer. I enjoyed being able to work at any level of the software delivery process from pre-sales, talking to the customer, system design, development, “DevOps”, etc.
I think the balance of engineering to the point of not over-engineering, and making simple yet efficient programs/code is an art that gets better with practice and experience. Trying to improve your skills do so will of course give you a market advantage. But, I think key to avoiding burnout is to try and have a rich personal life outside the "9 to 5", but also depends on your circumstances. For those younger, probably putting more hours to improve your skills is worthwhile in the long-term.
Yeah, it sounds to me like the article could have been titled "How I learned to stop over-engineering and love to code." The "being vs. doing" duality seems forced to me, and doesn't always align with the overall message of creating solutions that are oriented around solving a problem rather than engineering for its own sake.
I think that the passion that is often sought in hiring candidates is slightly misguided. It's not uncommon to hear that the employer is looking for passionate $language engineers. Although this approach could be helpful in the short term, it's less helpful for the long term. Why? Because organizations and teams generally don't stay on the same technology stack for the long term. And what happens when the particular technology that someone is passionate about is phased out? Instead, I think it's more rational to be passionate about solving certain kinds of problems (not related to a specific language). The other potential downside of passionate developers is that being passionate can make one less objective. I would even argue that the engineering approach would favor dispassionate developers where they're more likely to be objective. FWIW.
I have passion to be a programmer. What companies don't understand is that it doesn't mean I enjoy my job. I stopped programming the things I am passionate about in my 20s because I had to eat. I wouldn't work on your dumb SaaS if I were financially independent.
There are people who will work on the "dumb SaaS" or whatever project/company even though they don't need to financially because they couldn't work on something of similar scale/complexity/impact otherwise. But I suspect that if you gave a sufficiently large amount of money to most people, they'd be out the company's door in a moment even if they were in a senior position.
Where does your passion for programming end, and your disdain for a job begin? Perhaps more important, does this potentially affect the quality of code you produce? In other words, if you discovered a mission-critical bug at 5 pm, would you be more likely to clock out and go home because you didn't like the project? (These are legitimate questions, not trying to be snarky.)
I'd like to hear about how the author's interactions with other coders changed after the transformation from "being a programmer" to "doing programming". In particular with those that are still in the "being a programmer" mindset.
From experience it can be difficult and it's something that a lot of people come across when they join a company for the first time. Particularly people coming from research into industry, or self-taught programmers (like me!) I think there's a lot of nuance around giving and taking criticism and being empathetic to the people you're working with.
I've found both extremes in academia. There are researchers who will throw together absolute spaghetti, publish the paper and repository and move on, never to touch it again. There are researchers who get extremely anxious that anyone will see their spaghetti and never publish the code. There are researchers who are by all accounts good programmers, but are terrible at working with other people because they're not used to it and can be quite opinionated. The latter is also something that industry exposure helps with - e.g. when is "good enough", good enough. Also understanding that prior design decisions were made for a reason and "we had two days" is a valid one!
I have a few projects that I collaborate on with people outside work and by far the most enjoyable are the "passion" ones where there's no pressure, we try to write solid code and we play around with current best practices to see what's feasible to maintain. But we also accept that there will be bugs and laugh it off when someone breaks the build.
I am always thankful when people share their life experiences. I think the post captures the growth that many programmers experience throughout their professional life.
However I do think that the naming is a bit off. I don't think many people would describe a great programmer as someone that chases fassion, drinks kool aid, overengineers things and rejects proven technology and practices.
Their description of their approach now ("I'll do so only when it's the simplest and most maintainable solution to the problem") is much more aligned to what I believe great programmers do.
While I enjoy the overall message, I don’t love the sense of finality in the author’s tone. Makes it sound like it’s an all or nothing thing, where you either identify or you don’t. In reality, it’s a spectrum that we’re always moving back and forth to some degree on
I suspect the author’s mean on this spectrum has shifted and variance has decreased
I don’t trust anyone that says they don’t feel a particular thing anymore and they’ve permanently moved on, especially in the case of the author who had quite the affinity for being a great programmer
I am in the minority I think but I am a passionate programmer. My passion at the moment comes out in several forms such as my side project / personal website (https://dustinbrett.com). But I have loved tech and computers since I was a kid and I love consuming anything about them and I wake up thinking about cool things to do with them. I wouldn't want to live without some kind of passion to drive my interests.
That’s the first website I’ve seen in a really long time that made me smile. Nice work, I’m jealous. Did you build this with some kind of exotic UI library or just a lot of elbow grease?
> But I'll do so only when it's the simplest and most maintainable solution to the problem, and not because I want to be the greatest of programmers in my or other people's eyes.
The problem I run into is the simplest and easiest modification, the yagni for any one ticket, if sufficiently small seems to be a great algorithm to find local maximas in the design.
But if you keep with good design principles from ticket to ticket the end result is better.
This reads to me like a "stay away! don't hire that guy" warning. When things get tough, who is going to put in the work to make the project a success:
a) The person with the "it's just an activity" attitude
b) The person who tied his/her self-worth to delivering a good result on time
I don't agree. I think being able to decouple your ego from the things you accomplish, while still feeling good about it, is a form of personal growth.
That word: "passion" doesn't mean what HR people seem to think it means.
"Passion" is like making out in the broom closet. Highly emotional.
That is NOT how anyone should approach S/W development.
I've had the same reaction to that word, until I actually looked it up and it's more about you care about something so much you're willing to suffer for it. Soo... a little different than the colloquial version. I still dislike it and think it's overused, but am now slightly more comfortable if people describe me as "passionate".
"Passion" can be defined as "a strong liking or desire for or devotion to some activity, object, or concept": https://www.merriam-webster.com/dictionary/passion The point is that HR people mean "passion" to be you're highly motivated, or driven, to do it. Emotions don't necessarily come in to play the way you're suggesting.
[+] [-] dvt|3 years ago|reply
Unpopular opinion: pride and ego actually drive personal ambition, technological achievements, and human progress. No one accidentally stumbles over being "passionate" and no one truly passionate divorces their personal identity from their work. That's why some of the most successful people in their respective fields also are often the most egotistical. There should obviously be some checks and balances there that everyone needs to take stock of, but that's just my two cents.
[+] [-] loandbehold|3 years ago|reply
[+] [-] thejackgoode|3 years ago|reply
[+] [-] mykowebhn|3 years ago|reply
Yes, for the 0.0001 percent of us that actually do something monumental and worthwhile. For the rest of us who are working in a glorified ad agency, it's just pride and ego if we think otherwise.
--Realistic cynic
[+] [-] scarface74|3 years ago|reply
Software development is a means to exchange labor for money and to support my addiction to food and shelter.
The list of things I’m more passionate about than software development is a mile long.
I haven’t written a single line of code that wasn’t in direct service to exchanging my time for money since 1996. I was “passionate” from the time I was 12 until I graduated from college.
[+] [-] moonchrome|3 years ago|reply
Nowadays I get paid to solve trivial problems, self-inflicted complexity, and work in problem domains I have no interest in. But it gets me a nice living.
[+] [-] sircastor|3 years ago|reply
Incidentally, I feel like this is why I gave up on running OpenWRT on my routers, or FreeNAS on my NAS, and why I don't end up sticking with Linux on my personal computers. I enjoy computing, but it's not my hobby. My hobbies are things that I do with my computer.
[+] [-] nkozyra|3 years ago|reply
I think getting really pulpy, difficult problems is a rarity even at the top of the field. I don't think that should be the goal and particularly not most of your time (it would probably drive us insane)
What we can do is solve trivial (or easy) problems in ways that are elegant and robust and easy for other developers to understand. That in itself is a challenge.
[+] [-] xupybd|3 years ago|reply
[+] [-] dekhn|3 years ago|reply
At some point I realized I'm not going to be the equal of Lord British or Jeff Dean. This was a huge blow to my ego. Like the author, this had huge impacts on me. So instead, I worked harder: more hours spent programming, tediously working through all the bits and pieces that smarter people can solve quickly. And that taught me something: grinding like that comes at a price (life satisfaction).
What drives me still is passion: the desire to be able to do something I know is possible, with my own hands.
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] DustinBrett|3 years ago|reply
[+] [-] DotaFan|3 years ago|reply
[+] [-] scarface74|3 years ago|reply
The next ten years I spent raising two (step)sons and spending time with my wife while still working out after I got (re)married.
For the last year, my wife and I have been planning our “hybrid digital nomad” life where we will be staying in our own vacation home/investment property half the year and flying across the US the other half.
We started that life last month.
[+] [-] GMoromisato|3 years ago|reply
It's easy to be egoless if you're already working at a FAANG, just as it's easy to not care about money if you're already rich.
Still, it's worth trying to remove your ego from the equation, even if you're a struggling student trying to get your first job, just as you should care about things other than money, even if you're poor.
[+] [-] mythhouse|3 years ago|reply
Doesn't amazon hire anyone and everyone these days. They gave me a sde3 350k remote aws job after asking similar sets of basic coding questions and some BS called 'leadership principles'. I have hard time believing anyone half competent will fail those interviews.
[+] [-] scarface74|3 years ago|reply
I had no desire to work for a FAANG as a software developer. I enjoyed being able to work at any level of the software delivery process from pre-sales, talking to the customer, system design, development, “DevOps”, etc.
I was not “rich” by any means.
[+] [-] deepzn|3 years ago|reply
[+] [-] kmoser|3 years ago|reply
[+] [-] xupybd|3 years ago|reply
[+] [-] simonblack|3 years ago|reply
In reality, you are competing only against yourself. Can you force the machine to conform to your will, or will you not be successful at that?
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] pauldardeau|3 years ago|reply
[+] [-] mkl95|3 years ago|reply
[+] [-] ghaff|3 years ago|reply
[+] [-] kmoser|3 years ago|reply
[+] [-] nuancebydefault|3 years ago|reply
[+] [-] ryan-duve|3 years ago|reply
[+] [-] joshvm|3 years ago|reply
I've found both extremes in academia. There are researchers who will throw together absolute spaghetti, publish the paper and repository and move on, never to touch it again. There are researchers who get extremely anxious that anyone will see their spaghetti and never publish the code. There are researchers who are by all accounts good programmers, but are terrible at working with other people because they're not used to it and can be quite opinionated. The latter is also something that industry exposure helps with - e.g. when is "good enough", good enough. Also understanding that prior design decisions were made for a reason and "we had two days" is a valid one!
I have a few projects that I collaborate on with people outside work and by far the most enjoyable are the "passion" ones where there's no pressure, we try to write solid code and we play around with current best practices to see what's feasible to maintain. But we also accept that there will be bugs and laugh it off when someone breaks the build.
[+] [-] senko|3 years ago|reply
However I do think that the naming is a bit off. I don't think many people would describe a great programmer as someone that chases fassion, drinks kool aid, overengineers things and rejects proven technology and practices.
Their description of their approach now ("I'll do so only when it's the simplest and most maintainable solution to the problem") is much more aligned to what I believe great programmers do.
[+] [-] meken|3 years ago|reply
I suspect the author’s mean on this spectrum has shifted and variance has decreased
I don’t trust anyone that says they don’t feel a particular thing anymore and they’ve permanently moved on, especially in the case of the author who had quite the affinity for being a great programmer
[+] [-] DustinBrett|3 years ago|reply
[+] [-] horns4lyfe|3 years ago|reply
[+] [-] rileymat2|3 years ago|reply
The problem I run into is the simplest and easiest modification, the yagni for any one ticket, if sufficiently small seems to be a great algorithm to find local maximas in the design.
But if you keep with good design principles from ticket to ticket the end result is better.
[+] [-] cosmojg|3 years ago|reply
Cultivate the passion to do cool shit, and just do it. No need for titles.
[+] [-] fxtentacle|3 years ago|reply
a) The person with the "it's just an activity" attitude
b) The person who tied his/her self-worth to delivering a good result on time
;)
[+] [-] nuancebydefault|3 years ago|reply
[+] [-] johnea|3 years ago|reply
[+] [-] 1auralynn|3 years ago|reply
[+] [-] kmoser|3 years ago|reply
[+] [-] coldtea|3 years ago|reply
But it very much is a great way to approach S/W development - just not for corporate drones
[+] [-] aappleby|3 years ago|reply
[+] [-] tasuki|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]