I'm glad I lack passion to be a programmer
blog.miris.design
blog.miris.design
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.
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.
Nobody can or should be passionate about all the things. But we can be thankful for those who are passionate about the domains where we are not, since we collectively benefit from those domains being loved and nurtured. At least in many cases.
I'm not sure how this begs any question. Some baristas work at coffee shops to make ends meet; others want to be the best at what they do and compete in barista competitions, learn to roast, maybe eventually start their own coffee shops, etc. Why some do the former while others do the latter is just a question of priorities, dreams, desires, and so on.
See: the average Meta employee vs passionate successful figures like Carmack or Sweeney who can aggressively push back on ideas they feel are negative for the community. Although the comparison I bring up is a little funny since Carmack did work at Meta...
So I think there is value in wanting to be a passionate successful figure beyond just personal gain.
The question that should be asked is why we cannot have a society that has enough of a safety net for everyone so that they can work on what they care about? If that were to happen, what would you actually be working on? These questions are the reason why a lot of people wind up leaving software once they've accumulated enough of a financial safety net.
You notice he didn’t go after console makers who have the same policies as the mobile app stores because he knew where his money came from.
As for Sweeney he doesn't care about the community, he cares about his bottom line. He may have some goals that overlap with "good for the community" (see challenging apple app store) but he also has goals that are community hostile (see Epic buying exclusives for its own store). Both of which are driven by the bottom line, not a care for the community. Money made by extracting money from literall children with dark pattern and skinner boxes.
The myth of the indie developer being hurt by the App Store tax is just that.
Besides, most businesses other than games that make money from mobile are selling services where money never goes through the App Store.
They statistic you presented does not support that assertion.
30% of your revenue is 30% of your revenue. Indie developers who have fewer distribution channels than a big name like Epic will of course be hurt more by the requirement that they share a big chunk of their revenue with their (often sole) distributor.
There is a reason that in the physical world, smaller sellers, authors, etc use Amazon instead of selling from their own site and use Amazon’s distribution.
How many Indy game developers for PCs try to sell on their own instead of going through the stores?
If I am going to start a business, why wouldn’t I take distribution costs into account and raise my prices?
Another question, Android allows side loading. Why do most app creators still go through Google Play?
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
It is definitely possible that a majority don’t, but my guess would be closer to 60-70% that do. Of course, I also don’t have a source for that, but it is by no means a remotely obvious spread.
I’m genuinely curious about the spread, but without data it is impossible to make even a remotely accurate guess.
Apologies!
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.
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.
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.
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.
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.
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.
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.
No.
Either way, a tiny bit of research reveals that the median compensation for a software engineer is around $120K, and the set of people making $350K per year is relatively small (top 5-10% of all software engineers).
By definition, not everyone can be in the top 10% of their profession.
https://www.glassdoor.com/Salaries/software-engineer-salary-...
And it sounds like in your social circle $350K per year is average. That's great (again--seriously).
But I can imagine that, for the 80% of software engineers who are making less than $350K, saying "I really don't think its really hard to get a job at amazon" sounds at best clueless and at worst insulting.
I really dislike accusations of "privilege", particularly as a way to discount people's personal experience or opinions. I'm not going to wield that here. But at the same time, I think it's helpful to have a clear-eyed view of the world outside our personal bubble.
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.
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?
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.
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.
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
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.
Cultivate the passion to do cool shit, and just do it. No need for titles.
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
;)
But it very much is a great way to approach S/W development - just not for corporate drones
> The removal of the ego from the equation has yielded much more benefits than the passionate pursuit of being a programmer.
I think identifying as a software developer isn't really tied to how ambitious you are; I believe what's actually going on here is people feel some sense of shame to be associated with what they feel the industry has become. (Undoubtedly, I'm right there with them on that.)
Truthfully, while pride and ego need to be tempered, they're just as important as anything else. After all, if you have no pride or ego whatsoever about what you do, it's hard to imagine having a work ethic. And while I am a bit nihilist with regards to life, I still find myself feeling like it matters that people give a shit.
> I'd avoid PHP and jQuery simply because of the popularly negative opinion of them, and not because of any valid technical reasons.
It's good that you stopped doing this, but there's almost a kind of implication that every card-carrying software engineer thinks this way. I don't. In fact, I was a huge PHP user before I was a huge PHP hater, mostly fueled by Wordpress, phpBB, Postnuke, etc. in addition to the widespread availability of PHP as part of the "LAMP" stack (and much cPanel hosting, and development environments like XAMPP.)
In fact, the truth is, modern PHP development has turned around quite a bit. I still think there's more to go before I'd really consider looking back, especially since the world around PHP has improved very fast (Go and Rust especially, but still Python/Django and Ruby/Rails, and of course Dotnet.)
> Rather than write a simple main() method which solves the problem, I'd "architect" code bases that adhere to the SOLID principles, with countless interfaces and factories that ensure flexibility.
Again, not sure what this has to do with passion or pride of programming. I've always been a hard critic of design patterns. My personal anecdote is that using design patterns or systems like SOLID to build software is like using TVTropes to write fiction. Of course I'm not saying that these things are useless, but overconfidence on using them as a tool to build with is something I associate more with consultants than with passionate devs.
> My passion didn't die; instead, it changed priorities. It was no longer about my identity of being a programmer, but rather about my activity of programming. My ideal for software development is to find the simplest solution to the practical problem. I focus on ensuring that I program in such way which adheres to my pillars for a great program: simplicity, maintainability and above all, value.
Maybe there's some truth in here, but I still can't help but feel this is more of a semantics thing. You can pretend you have no ego or pride, but we all do. I would love to be objective. I think objectivity as a concept is useful even if it can never be 100% attained. But at the end of the day, my body is not a cold, careless hunk of silicon, and it'd be silly to pretend that in my desire to use programming to solve problems effectively and write better code, that I am not prideful at all or that I have no ego.
I think this post is more about learning to not fall into groupthink and control pride and ego than it is about a lack of passion or a change of heart.
Perhaps it just manifests itself differently, but things like I've always preferred PHP to RoR because the PHP community is so much more practical and "gett'er done" mentality.
For me it's about knowing I've done good work. I don't need external affirmation, it's about _ME_ knowing I've done good work.
I had a good friend tell an allegory about a bricklayer who refused to build a porch for a house that was run down and when asked why the brick layer said he would not be proud of showing the work to his son.
I once built and maintained a system over a 5 year period that after the first 6 months never went down or stopped working unless external dependencies it relied on went down (think mail server going down causing emails to be unsent). It wasn't a simple system either, it deployed across multiple data centers around the world.
I'm quite proud of that work, what I'm most proud of is that no one ever went to work worried that system may prevent them from doing their job. I'm not saying it was completely bug free at all times, new features are always a risk, but it damned well did the core work day and day out and came to be something most employees of the company relied on every single day. That company was sold about 6 months after I left and the owner told me the system I built was one of the things they wanted access to.
I left my last job because their systems were complete and utter shit and the person who originally wrote them wielded enough power that he actively prevented us from fixing it. My problem wasn't the state of the system, my problem was being told I have to work with it like that without being able to improve it. Just to give you an idea, this guy once told me he had been doing it for 20 years and never needed to test on real data. Which is bullshit, when he did it he had access to everything, including production. I left because I'm not willing to not be able to improve a system that needs it that badly.
Long story short, I don't agree with this person description of what a passionate programmer cares about, at all. It feels like a caricature to me. But the amount of times I've seen complete and utter shit pushed as "it doesn't matter" is too high. system stability absolutely matters.
The bricklayer allegory is interesting. If I were that contractor, I would have said sure I'll do it, and after it was done, I could say that porch is now the nicest part of the house.
[0] https://old.reddit.com/r/oddlysatisfying/comments/lqvtxe/tra...