Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Outstanding Programmers
82 points by polycaster 7 months ago | hide | past | favorite | 94 comments
After reading today's post "Curl is just the hobby," I stumbled upon Ludvig Strigeus while researching Daniel Stenberg (connection: both have won the Polhem Prize). I'm somewhat astonished by his life's work so far. Here are some of his key creations:

    μTorrent - a small footprint BitTorrent client for Microsoft Windows and OS X
    ScummVM - an interpreter for adventure game engines, notably LucasArts's SCUMM
    OpenTTD - a reverse-engineered game engine of Transport Tycoon, which led to numerous ports and improvements over the original
    Ports of Dr. Mario and Kwirk for the TI-89 calculator
    "The Idiot" - a card game for Windows
    WebWorks - a text HTML editor
    Spotify - a commercial music streaming service
    Spotiamp - a lightweight Spotify Premium client for Windows, created as a tribute to Winamp
    TunSafe - a VPN client for Windows using the WireGuard protocol
It's clear that some programmers have far-above-average productivity and a keen sense for solutions that the world still needs. Having success with one program might be luck or coincidence, but there seems to be a system to this series of successes. Any of the above programs could easily become the life's work for many developers.

What's the secret?




> What's the secret?

I am not an Outstanding Programmer, but I like the advice on productivity from Jonathan Blow, paraphrased: "you don't need time management or productivity tips. If you want to complete a project, maximise the time you spend sat on your chair, with the editor open." That's all there is to it.

The best way to build a cathedral is one brick at a time. Effort and consistency trumps all. Being a 10x developer has no effect whatsoever on what you can accomplish in work or in life.


To each their own.

Committed sitting in a chair works well. But it's not the only option. When my kid was born it completely destroyed the routine of long uninterrupted coding sessions. However it also made me realize that you can prototype and refactor in your head while pushing a stroller. Then you get back to the computer and just flush it all in its final form. The cherry on top is that, end to end, this takes less time than sitting in front of a machine and coding and re-coding.

But, again, this worked for me because of how I code. Sitting in chair worked for Blow because of how he codes. So YMMV.


The chair is also a metaphor. Planning a project in a hammock is as much work as typing on Emacs.

But googling productivity advice, asking people what should they work on, and faffing about on HN is NOT work. Jumping on another project instead of taking one to completion as soon as it starts to get unfun is NOT work (which is OK for a hobby, but work gets harder the closer you are to completion)

In any case, you can do a lot of work away from the keyboard, but until you type it in in your editor, it's just an idea that exists in your head, and those are worthless.



It has got to be more than that. I almost always have an editor open, working on some ambitious project. Without bashing myself too much, I have have 96 original Github projects, 90% of which unfinished.

All the finished ones are either tiny, or in such a small niche no one would ever use them or pay attention to them. Of the unfinished ones, they're all so unfinished that even if there would be something worthy of note in there, it would not be in a state that's marketable to anyone.

Of course I finished everything I worked on professionally, and there's some cool products amongst those, but no one ever paid me to work on something with global/cultural impact.

I'm not complaining at all by the way. I'm always having fun when I'm coding. But there's a definite difference between what I do, and what someone like Ludwig, or mitchellh, or Linus Torvalds, or Bellard, etc is doing.

At the very least, there's some focus and speed. I was pretty close to finishing my non standard conforming C compiler, and then Rust came out and it did everything I wanted to do in my C compiler and more. And then a couple years later I was pretty close to finishing my ECS system in Rust, and then my day job became super stressful for a couple months, making me too tired to code at night, and then SPECS was released which basically did what I was trying to do.

My favourite OSS project I ever finished was a Ruby framework for writing an AI for the Starcraft: Broodwar game. The amount of active people in the BWAPI community at that point was definitely less than 50. Most of them either did it in Java, or just in C++ directly, I'm pretty sure everyone raised their eyebrows at someone going through the effort of making Ruby bindings.


>It has got to be more than that. I almost always have an editor open, working on some ambitious project. Without bashing myself too much, I have have 96 original Github projects, 90% of which unfinished. All the finished ones are either tiny, or which such a small niche no one would ever use them or pay attention to them. Of the unfinished ones, they're all so unfinished that even if there would be something worthy of note in there, it would not be in a state that's marketable to anyone.

I'll bring up a remark John Carmack made (paraphrasing): "All the small games we made for Softdisk were not worth remembering, but I'd like to think that the work that we've put during that time was what ultimately allowed us to build better games".

With that I mean, we romanticize programmers to the point where we forget what they made them great. They worked and made stuff no one will ever remember or know, but it was NECESSARY work that led them to build the stuff worth remembering.


There is a little bit more. Look up the concepts of social proof and compound interest.

Here's a helpful piece on compound interest: https://tynan.com/thekey/

As for social proof, here's the concept: your reputation consists of your greatest achievements, not your greatest failures. I'll use Jonathan Blow as an example. He's the creator of Braid. He will always be known as the creator of Braid. One huge massively loved breakout hit is all you need to cement your reputation as an outstanding programmer. You could work on a dozen things nobody's ever heard of before and after that breakout hit and it doesn't matter.

The tricky thing is you never know what's going to be big and successful and what's going to be forgotten. That's why most outstanding programmers swing for the fences. They make things that are BIG. They're ambitious. You're not going to become recognized for outstanding work by making yet another ECS system in Rust. It has to be a step above in some way.

That said, to make a big, ambitious, impressive ECS system in Rust, you need to understand the problem extremely well. You do that by making unimpressive ECS systems in Rust. See previous point about compound interest.


I remember he made Braid, but I'm more interested in Jai.

I also don't think they make it for the fame, they make it because they can see that it could be made, or at least should be attempted, as it's better and hasn't been done.


The Unreasonable Effectiveness of Just Showing Up

https://news.ycombinator.com/item?id=27833064


What you say is true, but not enough. It is also essential to have a clear idea of what you are trying to build and how you are going to build it. Without those, time in the chair is not going to be used well.


Agreed. I've showed up nearly every saturday and sunday morning for the past decade, and I'm still working on the same stupid side project because I keep rethinking the fundamentals and going back to the drawing board. I'm finally nearing completion, but looking back, some time management and a clearer vision would have radically improved the outcome of my life thus far.


Absolutely correct. At a minimum you need:

- the vision of what you want to achieve

- the skill to achieve it

- the time to build it

I find that time is the most difficult problem to solve, especially since I had a family.


Apply that to a larger scope than writing a program.

Your family is something that you're trying to build. Put into that the time needed. If you wind up with not enough time for writing a program, that's fine. In the battle for time between your family and your program, the program should lose.

One of my biggest failures was focusing too much on my pet projects when I had small children.


It is always difficult to balance our internal drives with the needs of those around us; both spending too much time on ourselves, and denying ourselves an outlet for creativity, can lead to resentment one way or the other.

I would say that I have been “lucky” that my childhood was a bit more difficult than some, so I had a clear vision of who I didn’t want to be, and that meant some personal sacrifices, especially around hobby projects.

I hope you’ve managed to rebalance now your kids are presumably a bit older.


Why not? You just have to use the time in the chair to sketch out a clear idea of how/what you are trying to build first.


I don't completely disagree with that, it's just that the ones who are really familiar with their tools will also iterate on half -baked ideas faster, because there are many things that come come up while on the chair.

And this is something that I actually intended to bring this point up in a thread I saw yesterday regarding thinking time and typing time but I procrastinated on it until today.

I follow the same principle whenever I type a reply. I'm not gonna pretend that the text I'm currently typing is a draft, but thinking about the things that are worth mentioning is something that I can afford after I started typing a response to your comment, if that makes sense.


Yeah, that's definitely true. I find that I'll often be excited about an idea and immediately start putting in the time to build a rough prototype. Once I realize the true scale of the effort involved I second-guess my commitment to the idea - is this really something I want to spend the next year+ working on? I think having that clear vision and enough conviction that the results will be worthwhile is very important and definitely something I struggle with.


Focus is incredibly underrated and probably why a bunch of us are on ADHD medication, but I'll also highlight the importance of _environment_ that allows focus.

Disruption-based workflows, lack of direction, applied pressure on developers that leads to stress can all kill even the most productive dev. I've worked places (most of my career) where that space to fail and space to take a bit longer on things that have value not immediately visible and produced a lot and a couple places where negative attributes have killed the momentum that can come from the general joy & excitement of development.

A lot of these 'outstanding' people work within an environment where development is mostly joy. Where spending 3 days on a small problem incites a drive to tackle more. They're either established and trusted, wealthy enough to not be affected by these things, or just work within another flexible space.

It makes development pleasurable and as a result the output maximizes over time.


^ this but it’s very hard to keep that editor open all the time if you’re not “obsessed” with what you are doing.


Agreed. Also, caring is another high order bit in your output and growth. Butt-in-seat time can be extremely wasteful if you are not engaged with or invested in your work. If you are passionate about what you're working on, it can be a huge productivity multiplier.


I agree with the general ethos - good code doesn't get written by attending meetings all day, or fiddling with org mode. But like all advice, it needs caveats. If you're on a brownfield project where you have very little knowledge of the domain or legacy code, just jumping straight in and spending lots of time in your editor is probably going to result in a lot of frustration and wasted effort.


Googled this guy to look into his background. Time-in-chair is definitely something he's got an edge on over the average person


Yep, I'm not sure Blow is the person I would take productivity advice from, to put it mildly.


I don't know about you, but he's shipped more than most people on here have done. I guess two award winning games and a programming language is not good enough for some of you.

Or are you trying to say he is too successful to take any advice on success from?


And Chris Roberts shipped 4-5 successful games. Would you take productivity or project management advice from him, now?


Background: He is wheelchair-bound.


That’s not true. He lives in SF and enjoys going out dancing.


I apologize if that was wrong, but this article on wired.com mentions that he is “confined to a wheelchair by a rare muscular disease”. https://www.wired.com/2010/12/mf-spotify/


There is no mention of the word Blow in your link. Are you an LLM that is hallucinating?

EDIT: "Ludvig Strigeus is wheelchair bound." Did you miss that the quote you were replying to is from Jonathan Blow, not Strigeus? FWIW, you still have not passed the Turing test, as you got confused by tangentially related inputs ;)


I accidentially hit the reply button on a reply of the post I was actually referring to. Parent was about Strigeus. Besides: Since every mid-sized LLM appears to pass the test I’m not even trying anymore.


> Effort and consistency trumps all. Being a 10x developer has no effect whatsoever on what you can accomplish in work or in life.

Ehhh. There may be issues with the term 10x developer, but if you're using it then it literally means developers that are more productive than most other developers.


I would encourage people to not waste time searching for secrets and shortcuts through life. "Formulas for success" are highly-dependent on too many factors to replicate, and often are specific to the person who used it to their advantage.

The overwhelming vast majority of people (in any industry, art or craft) will never achieve fame, fortune and recognition, and many that DO actually find it to be an empty, existentially-void experience. Others receive it posthumously, at which point you could argue 'does it even matter?'

Just write programs if you love to do it! Your ideas aren't that good (mine aren't either), and you aren't special (nor am I), but plenty of 'unremarkable' people have conjured pure magic out of seemingly-mediocre concepts that end up helping people solve a problem, or bring them delight, or impact their lives positively.

I personally believe anybody can find success if they just focus on the journey and the joy of coding, make sure they show up and participate, be present, stay curious and playful, and don't expect any rewards for their efforts. The real reward is having fun and feeling fulfilled while you're creating something.


This is ultimately the highest quality advice, though I think many will not be primed to receive it. It’s like diet fads, or the quest for the meaning of life. Many people want to believe there is some secret that some people know and others don’t.


I think you're the only one that really answered OP's question.


Don't build one project. You'll be forever putting it off or finding excuses not to work on it.

Build two. Then you can procrastinate on each by working on the other.


I'm Swedish. We have quite a few of these guys. For every "public" one of these, there are many that are absolute monster programmers that don't market themselves at all. I've worked with a few.

I'm just gonna throw in this link because I think it's great:

https://internetmuseum.se/english/

Among other crazy stories, Daniel is featured there. My favourite story is that the TLD .se was was ran by a guy in in his living room for years until The Swedish Internet foundation took it over.

There's also Kazaa and the guys behind The Pirate Bay. Real OG hackers from that era.

W.r.t. to your question I think it's relevant to say that "most things invented then" were "simple" ideas but hard to implement due to the tooling in that time and lack of programmers. But if you were good, you could go at it alone or with a small team. I think that it's a little bit inverted now: finding good, novel ideas in the space that can be done by one person or a small team is hard, but building and shipping it, if you do, is probably a lot easier due to OSS.

Oh and naturally the all-Swedish version is better at https://internetmuseum.se/


Regarding Kazaa (and also later, Skype), the OG developers were all Estonian. Zennström and Friis were the business people (and Friis is Danish).


I'm just a tryhard. However, I've been coding since a child out of a weird love/obsession. Nothing super successful in the public space, but I retired at 40 to spend time building my cathedral: https://www.adama-platform.com/

my history: https://www.adama-platform.com/2024/01/28/euler.html


This is next level. Have you heard of Rama by Redplanetlabs?


Some time ago, yes. Found it interesting.


I'd avoid hero worshiping someone's life given how much of success revolves around being smart enough to be able to take advantage of opportunities, whilst also not suffer from physical, mental or familial setbacks whilst being born into a class/race/gender that promotes you. All the while not being distracted by things such as family goals, drugs/vices or commitments and having time, experience and most critically reputation which can be used to snowball into greater achievements.

To take nothing from Ludvig, simply explaining why not everyone can be him.


Most also look like hobby projects more than professional, so I would imagine having a lot of free time is a prerequisite. I don't know anything about the guy but all of the things you listed are reimplementing something that already existed, which is faster given at least the requirements are very clear.


Reading through the comments, it seems a significant factor in success is perceived to be the availability of free time. This aligns with my own observations. However, as a father of young children, I wonder if there are examples of life plans that successfully combine family with exciting, successful software projects. I can only think of outstanding programmers who, during the prime of their creative work, were (apparently) free, unattached individuals without (forgive my blunt assumption) significant family ties. Am I mistaken? Are there counterexamples? In my experience, the most relevant skill one develops (and must develop) as a father is discipline and time management. Surely, that has to count for something, right?


I haven’t built amazing things, but I had opportunity for success even though I had children early in life. I’m now 48 and my youngest child moved out last weekend. Being an empty nester will give me even more opportunities.

A few tips off the top of my head…

Always set aside a “space” for your work. Mine has been as small as a drawer dedicated to my laptop and headphones. The more comfortable your space the better but it doesn’t need to be complex.

When my children were very young, my wife and I decided to get them in the habit of going to bed early. This gave us a couple hours of free time every night.

I’m a morning person so I wake up early, before everyone else in my house. I still get 7 or 8 hours of sleep. I’m most productive these two morning hours.

Dedicate some work time. For me, it’s morning.

Try to read more or do something else that stimulates your brain. My brain is much more active when I’m reading. I know, this is time you could be working, but for me it gets the mind moving. This should probably NOT be during your work time though.

I’ve had some mild success that I now consider failures. See my post, How to Lose Money With 25 Years of Failed Businesses:

https://joeldare.com/how-to-lose-money-with-25-years-of-fail...


I think it's more-or-less accepted that most extraordinarily accomplished people remained single throughout their lives. Intuitively it makes sense, though it doesn't mean you can't become greatly successful even with family commitments.

Off the top of my head, I can think of at least two people who are very successful and prolific, who also have several children.


Writers are the most common counter-example I can think of for this. There were many prolific, successful writers who had multiple children.


I know one who is outstanding, not a 10x but a 100x. Here's a short and incomplete list of some of the things he did:

    Publish games (with an 's') on 16 bit computers when he was a teenagers (and good games at that)

    Industrial software to minimize cuts and losses when cutting sheets of metal

    Write tools easing the creation of games for smartphone when they came out and put a commercial game in the top 3 of the Apple appstore

    Before that : he wrote several apps for Nokia phones (pre Android era) and serve them using a provisioning server he wrote and hosted himself

    Write code to port Java code to COBOL for legacy bank infrastructure

    Write some sort of Google maps before the days, from aerial pictures he managed to fetch through some people he knew

    Created a software company, got funding

    Got interested I cryptocurrencies, wrote several wallets, including for smartphones

    Wrote servers transcoding videos in real time

    Wrote an Amiga mod player for the Atari ST (that one was really cool

    Find and write detailed reports about JVM bugs

    There are many standards he knows by heart

    Countless websites

    He was doing ML before it LLM broke through: teaching 3D "things" to learn to move

    Monitoring and visualization on embedded devices for solar panels/micro inverters efficiency
He moved to devops and loves it. And he still codes.

His secret is a life of passion for the trade.

There s nothing he s worked on that didn't become faster, cleaner. There s not a single place he s been too where he didn't have things to teach people (and things to learn too: passion and curiosity).

He knows so many languages: from assembly to C to C++ to Java to Kotlin to Lua to ML languages to so many scripting languages.

Front end, back end, from huge servers to tiny embedded stuff. Dumbphones. Smartphones.

The only family of language I know he s never done is Lisp (so I get some creds).

He s not just a developer: he manages servers too, both for fun and professionally... and found a recent love for devops (working for a major payment processor as I type this).

He s 50 y/o and he ll kick your sorry ass like you have no idea.

He happens to be a very good friend of mine and when I hear that there are no 10x programmers I cannot help but laugh in a condescending manner.

He is, unlike me, humble. He ll say he doesn't know much. He s always got a desire to learn.

And I think most of all: when he was 30 he thought programmers who were 50 had many things to teach him.


So basically a real world Gilfoyle.

I do not doubt that 100x exist but I anecdotally I've seen that 10x do exist.

This 10x was actually married which I've found the most incredible part.


Chuck Norris?


I no longer work much in the ruby world, but when I did I would run into libraries by @ankane on almost a weekly basis. Prolific, and covering a bunch of academic fields and languages. It felt a bit like every area I became interested in, he was already out on the edge.

https://github.com/ankane?tab=repositories&type=source


Firstly im not comparing myself to that guy, but you could say i have similar “odds” with starting companies and having them succeed, and I'm a solo developer.

Ive build close to 100 projects and companies that have generated over 1B in revenue combined with only one other person (the non-tech owner). I dont have a team, I just build alone on all these.

A few notes:

I have programmed for over 30,000 hours. 3x what people say the time is to mastery is

I look at things in a way that i haven’t really ever heard anyone else explain. I’m not sure if it’s unique but it IS the reason. Everything in my mind is a complex web of cause and effect down to the most nuanced level. In my mind it has a visual aspect even. You have causes (knobs and dials you can turn) to produce effects.

Part of meditation is that you can learn an idea more deeply (insight). This same idea sort of applies to what I said above. People miss the magnitude of this cause and effect statement. I’ve told many people and they’re like sure cool. In my mind this statement is like standing next to the tallest mountain. The magnitude and depth is profound. It’s of this magnitude because it means you are in direct control of your own outcomes. Anything you want, is a solvable puzzle. Literally. And the deeper level of insight you feel about this idea the more you are capable of.

Now for the actual process of how to navigate this cause and effect. My mind operates on a value formula. Every single decision, word, line of code, micro decision is basically a tradeoff decision. Not in terms of code performance but in terms of this cause and effect web, of EVERY action in physical reality. I have excellent ability to “project” causes outward and then find the “end result”, and essentially find the fastest path from A->B to get there. And this value formula always optimizes RESULTS over other things many other great programmers optimize for like knowledge. I just have a different style. So basically I'm always analyzing every single tradeoff as if I see “threads” of reality extending from every decision and what path I go down. As a simple example I might learn linear algebra and Bayesian statistics extremely intensely for 7 days to learn or build an algorithm, but then I hit a diminishing return where I will switch to something else knowing i can hire someone later to teach me and fill in gaps.

This is an extremely simple contrived example. In real life, instead of there being 2 variables there would be like 50.


Thanks for the insights. It seems to me that this interesting explanation focuses primarily on the tactical level. On a strategic level: What drives you? That is, what criteria do you use to apply the thought process you described above?


I'm extremely motivated by 2 things: 1) solving puzzles 2) freedom (and by proxy, money)

First, when a puzzle gets in my head its extremely extremely difficult not to solve it. I love architecting solutions to complex problems in ways that are simple and elegant. I find it difficult to sleep, eat, or do anything else.

Similar to when I was a kid and I realized I might be capable of doing a backflip on a trampoline, the very moment I had the idea that I COULD do it, i got sick to my stomach and laid on the ground wrestling with fear, but it consumed me for hours and hours until I just got on the trampoline and did it. I dont know what that is, but the same thing applies to puzzles, just without the fear.

I also have a friendly relationship with money. I absolutely love it, because it gives me freedom. freedom to wake up whenever, focus on whatever, do whatever, travel whatever, learn whatever, help whoever, etc etc.

These 2 things added together I think are a good combo for "success" (by my definition)


I thought of one other thing thats very important... ill write it as a reply to another commenter.


Do you do this all in your head, or do you document it anywhere? How much time (or what percentage of the time) do you spend strategizing?


Ive never really written it online, but I have spent dozens and dozens of hours trying to explain it to people on the phone.

I don't spend any conscious time strategizing, as if it's a separate thing. It happens 24/7 on autopilot where I cannot "turn it off".

Its more like putting on magic glasses which show you the future, as if you could see colored lines sweeping outward from your decisions... and you move your hand and the path arcs a different way where you can see how a decision affects a future outcome, kind of like a game of hot or cold.

It's not actually like that of course, but that's a good analogy. It's something that I cant UNSEE and therefor every action I take has this value formula calculation / cause effect projection "baked in" such that I dont have to "do" anything.


Super interesting. How do you approach the marketing and finding the first customers for your businesses?


Thats what the other non-tech person I mentioned is for. Personally, I don't like that stuff. If you are a really good programmer, find a marketer and just make a 2 man team.

In general the formula boils down to him managing a team of media buyers though.

We also don't usually do projects that don't have an aspect of certainty from the start. For example, lots of people just build Saas products and wait years for customers.

We will generally look for entry points where we either know some privileged piece of intel, a person, a relationship, an account, etc. It will never be the thing that causes success, but it's the "certainty" aspect that gives you a lot better odds than just picking an idea and hammering away at it with ads.


Are you able to share a concrete example of this process in action to help us 1x plebs understand better?


I could if you really want, but let me give you something (hopefully) more useful. In my many hours trying to help friends and people I know there is 1 idea that I repeatedly come back to.

First though, I recently learned lots of people cant do this... but I can easily visualize a large future outcome that to other people they would say "thats too far from where I am at to think about that"

And not visualize in the sense of "if i visualize it it will come", but if as if I said "picture yourself making a sandwich". This reality is not foreign, so people can do it. You need to do that same thing but with ANY big outcome. The only difference is that there might be more knobs to turn to get there... nothing else.

When talking about this stuff, I get this insanely deep feeling of "magnitude". It happens every time, and its extremely difficult to convey. It's as if in my vision, certain statements are MULTIPLE orders of magnitude more powerful for someone to understand, and i can see that magnitude, but I cant always explain it because what I say gets "flattened" from my minds eye into just a conversation where I can only use the words "IMPORTANT" or capitalize things or raise my voice to emphasize it, and those only convey a 2x important and not a 100000x importance. I encounter this idea a lot and its very frustrating, because I often see how people can evaporate their own problems SO simply, but they just cant "see" it. And even if I tell them over and over, they will still not see it. So, I don't know if this makes sense by what I'm about to say, imagine this as a 1000000x thing. Read through my words into the "infinite void" beyond to grasp in the dark at the importance.

I would say, almost all peoples problems & dreams are solvable if they realize that the shortest path from A->B is a straight line, and that all things are solvable. At any given moment, if you can picture some outcome, you have the capability of performing the actions to produce that outcome. It's really that simple. This is why I said the meditation reference about deeper layers of insight at the beginning, because the statement itself is not profound at all, but in practice its the most profound thing in life ive ever experienced. Its the idea i can do anything, simply by doing it. there is "nothing else". all "problems" are basically self created barring extreme medical conditions and such. I say this because at the end of the day youre capable of performing actions that yield outcomes, and it always falls back to that. there is nothing that escapes this mechanism.

One might say "but my motivation... job... circumstances... focus level... no ideas... too much emotion... fear... etc etc" I have heard them all. They're all solvable by realizing the shortest path is to just do it/not do it, and then deal with all the side effects as separate easily solvable discrete puzzles. Everything that gets in the way is a fallacy created by your own mind to protect you.

Now this is definitely easier said than done, but just like meditation "insight", You learn deeper insight and deeper insight over and over again about the same idea. Each time you learn the same lessen again, you add another magnitude to your own realization of it. You are literally capable of anything. Start with being able to visualize the "perfect" life. if you cant, then dissect why and work backwards, because you most definitely CAN. All your "but I..." are most likely made up bullshit that is actually easily solvable.

I can try to help more later as well, I literally just woke up so my thoughts are not 100% clear. ive written about this in the past in much more clear ways, but I can give you better examples if thats what you want, but ill wait for my mind to wake up first!


A big part of my thirties has been making peace with the reality that I'm not that guy, and trying to balance that with still wanting to excel in the ways I can.

I don't have a better answer for you than the ones already posted here, but I am genuinely curious to read the responses to this.


Better to put it to yourself as - I am like that guy but on my own scale around my own interests.

If you can't yield things that half of the world adores, yield smaller ones.

If you can't yield smaller ones, yield one liners.

You have to have some way of yielding stuff that you fall in love with - even if it's flat directory with one liner scripts.

Practice is all there is to it. People have problems with it because they want to bite gigantic pieces in one day. It's more about falling in love with practice than falling in love with end result.

ps. pro tip - every time you solved some kind of problem - an issue you've been struggling for longer, a bug or whatever that didn't work - stop, go back in time, imagine yourself replaying it again - ask yourself questions - knowing the answer now, what could have I done/checked/asked/whatever that would have led me to solution faster? What did I miss at the beginning? Which were dead ends that I knew were wrong but I did them anyway etc. - you just need to do it couple of dozen of times to see substantial improvements in your skills.


Focus.

Another well-known example: https://bellard.org/


The quality and depth of Fabrice's output is insane.


Motivation to succeed.

I'm a very good programmer, but not that motivated. Given the right effort I'm reasonably sure I could build a number of successful apps. I just don't want to spend my life doing that. Instead I'm a hobbyist creative writer, an excellent cook, a father who's there for his kids, and a helpful husband. After I'm through with those things, there isn't much time left to build anything.

Others want to build software products and make money from them, and those who have the motivation to do this, usually do.

You only get one life, choose wisely.


Rome wasn't built in a day and it wasn't built alone. IMO the best programmers are the ones that can build a community around a shared vision. By this metric, Andreas Kling has done an incredible job with the Serenity project. Although he's a certainly a good programmer, I believe the project succeeded because of his EQ and general kindness. Too many brilliant programmers are lacking in that department.

You can be a brilliant programmer, but there's zero hope of building anything like Serenity as a one man band.


Because I was curious "why", I searched and found this[0] which doesn't sound all that different from the OP examples.

> Why create SerenityOS?

> When I asked Kling why he decided to write an operating system entirely from scratch, he had two answers. The first, pragmatic answer was he wanted a daily driver operating system for himself, by himself. Other users and developers were welcome, but—initially—they were largely showing up for the ride.

> The second answer is that SerenityOS started as a personal therapy project. Kling is a recovering addict, and he decided to build an operating system as a long-term project to focus his mind and occupy his time, similar to the way someone else might decide to build a car or house.

> Although Kling still considers SerenityOS to be his eventual daily driver, he's expanded the scope of "who it's for" from "me" to "us"—where "us" includes all the people who have shown up, taken a liking to the project, and decided to pitch in.

[0] https://arstechnica.com/gadgets/2021/08/not-a-linux-distro-r...


Keeping focus is definitely key here. I also program a lot and I also develop open source stuff but develop software without a company/people that drive the features is really hard. When I developed a product for my mother I also had better focus. And having a huge amount of games in my Steam library makes it even more difficult. Not to mention my need to watch lists of multiple steaming services...


What's your favourite item to steam (with your steaming services, to be clear) ;)


Yeah sorry that should be streaming services. Somehow editing does not work on this app.


Enjoying programming and having the time outside of work. When it's a passion it all becomes a lot easier.

The problem is that most developers see programming as their 9 to 5 and outside of that, in little free time they have, they have other pursuits and hobbies.

When you see what other programmers achieve who have the time and treat it as an art (Vs work) it's natural for them to have higher productivity.


"problem" is perhaps not the ideal choice of word here. There's nothing inherently wrong with treating programming as a job and doing something else outside that in your free time, in the same way that we don't all have to be accomplished amateur wood-carvers or poets.


Wrong choice of word maybe, but without dedication to the craft outside of the limited work skill set you can't truly expect to expand your skills.

I keep getting asked at appraisals "rate out of 10 your ability to develop new skills", and every time I rate it 6 because I'm not learning anything new. I learnt new skills outside of work because my company doesn't see value in non work related skills.

ML and LLMs was one such skill I picked up in 2022, nobody else was interested when I attempted to start conversations and provided a demo to the department. Roll onto the end of 2023 and it became a hot skill that got me large pay rise and now I'm apparently the expert.

Currently I'm learning new system architectures (e.g dbos.dev) and new programming languages (ts, rust, haxe), again no value because we already have a barely scalable but stable old system arch, and we're a Java only shop by virtue of that being the only skill other staff know or want to know.

Is that inherently wrong? No. Is it a problem? Well that depends on your perspective.


I kinda give up looking up to those people. It's probably just my excuses but I believe some people have the right combination of hard work, intelligence, persistence and luck to make it work.

IMHO, the more you look up to those people, the more agony you shoot at yourself. You can't "learn" what is natural to these guys.

Just don't do it. Don't even read about those guys -- ordinary programmers don't understand them anyway. Find some happiness FIRST.

Maybe block HN. Why am I even here?


Do what you are passionate about, despite the odds and what other think of your skill level. Your skills will shine throughout all aspects!


OpenTDD is so great. I played the original when i was a kid. As a 35 yr adult i found OpenTDD and can i just say i love its multiplayer…


Not a programmer, but this book helped me pretend I am one from time to time. The tips are useful for any kind of learning: https://pragprog.com/titles/ahptl/pragmatic-thinking-and-lea...


Ludde is really a star as well as a great guy but he also dedicates his life to programming due to his disabilities (he's wheelchair bound), if one of the few ways you could distract yourself was through coding you could also probably build a lot of stuff if putting in the effort day in day out.


What makes you say that these are all Stenbergs creations?

Could it be that these are just projects that use libcurl in some way?

I'm having trouble finding any sources that say that Daniel Stenberg actually worked on spotify, utorrent or openttd directly - just to test three of them.


> I stumbled upon Ludvig Strigeus while researching Daniel Stenberg

I believe the list is for Ludvig.


Read the post again.

These are Ludvig Strigeus's projects.


You misread the OP.


You didn't read the post... try again.


Do what you are passionate about, despite the odds or what other people think about you. People will acknowledge your skill whether they see them or not. Stay hungry, and stay humble!


"the secret" is spending a long serial period of time deep in architecting solutions because the time you spend doing that kind of work compounds like interest.



not having 996 job

not having unpaid oncall forcing you to wake up 3 times on Friday night for years

having enough savings and legal residence status to be able to take risks

not working for compulsory military substitution without option to quit for years

not having your government to kidnap males in broad daylight to be sent to die in trenches at war


Millions of people are in this situation, most of them not outstanding programmers.

But for an anecdote, Fabrice Bellard, one of the best known outstanding programmers (see for yourself here https://bellard.org/ ) is a graduate from Ecole Polytechnique, one of the best (if not the best) engineering school in France. It is a military school, and it starts with 3 weeks of soldier-style training. It is also state sponsored and students are paid, not the other around, and in counterpart, graduates are due for 10 years of work for the state, usually as a high ranking civil servant, though you can "escape" this by paying.


I guess my point is we don't have millions of outstanding programmers for this reason.

That Ecole school does not look as bad. What I am referring to common practice of working for virtually free in government assigned contracts that you can't even quit for 3 years, this is happening South Korea and CIS countries. And those places are far from elite French schools.

Lots of people so dragged down by bad work and government they can't fully flourish into Outstanding Programmers and make good projects.

That being said, there is something those individuals still can do, albeit little and low chances, to improve their odds and just have, like, physical time to survive and make some good stuff.

Some examples,

https://en.wikipedia.org/wiki/George_Kistiakowsky

Russian joined Anti-Communist White Army during Russian Revolution at WWI, fought for two years, got wounded, escaped to Turkey, got into USA, become professor of chemistry at Harvard, become important member of team that built atomic bomb in WWII. Was leading USA mission to Soviet for military scientific exchange as asked by Roosevelt. When first atomic bomb went off, he was not in bunker, but outside for “better view”. After WWII served scientific adviser to USA president.

https://en.wikipedia.org/wiki/Alexander_M._Poniatoff

Some Russian guy out of nowhere in Tundra, in cold trip got told a story of a beautiful place, weather is always nice, and lots of opportunity — San Francisco. So he decided to move there. He made it to Shanghai. Then moved to San Francisco in 1927 and made company and equipment for audio recordings AMPEX in 1944 — his initials plus “x” for “excellence”. This company later created VR-1000 video-tape recorder.


> What's the secret?

Probably just time. If we assume that the time frame for all of this was 30 years, this means that he completed one of this projects aprox. every 3 years. This does not look that exceptional to me. The question is, what else he did during this time. In order to assess his work efficiency, we would need to know how many hours he really had to spend on this projects.


von Neumann could do calculus when he was 8. Some people are just born that way


Sentence two does not follow from sentence one.

https://www.theintrinsicperspective.com/p/why-we-stopped-mak...


Justine Tunney: https://justine.lol/


What is an outstanding programmer? There are two answers depending upon whom you ask.

There are people who can build ambitious things at higher performance and durability while expending dramatically low comparative effort. Then there are people with influence.

It’s typically the later group that gets 80% of the attention because it’s challenging to discern expertise without being an expert yourself. So, forget all that if you want to become a much better programmer.

How to become an expert (many comments here already mention this)?

- know your compile target

- know your current projects goal

- write code

- provide iterative improvements

Where most people fail is impatience, as in skipping directly to the end state, probably by skinning some prior existing solution. This is bad because you’ve learned nothing and released a solution where everything that doesn’t scale.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: