Hacker Newsnew | past | comments | ask | show | jobs | submit | koz_'s commentslogin

> Power naps started working for me nicely once I removed the stressful requirement of actually having to sleep.

This is a lesson I keep having to relearn, that rest without sleep is still beneficial. And of course there's always a reward for 'failing' to fall asleep - then I get to do something interesting!

Lately I've had some success in making a game of cultivating enjoyable, productive thoughts while I lie there unable to fall asleep, rather than indulging in the usual anxious worry / regret cycle.


Love this. How much suffering have I inflicted on myself from the sheer refusal to accept that forces other than my own will play a part in determining my destiny?


> 'In the beginner's mind, there are many possibilities, in the expert's mind there are few'

This is a great quote. Once one knows how to do something the "right" way it becomes very difficult to do it any other way. That said, perhaps true expertise isn't about knowing the correct solution to a given problem, and is rather about realising that problems themselves can be changed in order to permit different, more desirable solutions.

I think one of the most common ways in which programmers fail is by immediately accepting a problem as a given and jumping into the solution space. So often we will come up with a perfect solution to a stated problem, when a slightly different problem has a 10x cheaper / safer / faster solution.


And that's the reason 10x programmers exist!

I sometimes get support questions in the form of "I need feature X". I ask "what problem are you trying to solve." They tell me, and I say "oh, just do this" and the problem is solved.


I remember getting a new lease on life with Factorio when I gave myself permission to start again as much as I wanted. Before that I would overcommit to every base, thinking that the "real game" only began after you get past the bootstrap phase, but in fact there is a lot of joy in just putting marks on the page.

Also, having things be small enough to fit in your head, as things tend to be at the beginning, is a boon for learning. I thought the early game was pointless, but in fact working with small factories made me realise that there were foundational practices that I had yet to learn which helped me to level up significantly at the game.


The time based badges are a great help here. If you try to get one, you have to restart all the time. It's at least a great perfectionism unlearning tool.

Maybe I should apply the lesson on some of my personal projects. Say at the start "this project should take X days", and if it's obvious it won't, restart or redesign.


This sort of reminds me of this story:

https://www.folklore.org/StoryView.py?story=Make_a_Mess,_Cle...

...a non-standard but apparently effective way to progress in a game.


Great insights, thanks! Definitely agree on the value of starting small - that has broad applications.


This definitely applies to programming as well. It's not uncommon to see people happily churning out mountains of highly redundant and repetitive code, or zealously pursuing far-reaching nit-picky refactors of dubious benefit and I think it's simply because the act of writing code and running tests and watching them go green is fun.


By that logic one shouldn't ever criticise let's say, Google (a separate entity), because in theory one could get a job there, work their way up to be CEO and then change how the company works. In fact, why ever criticise anything or express any opinion when instead you could be 'doing something about it'?

I think it's okay for people to express their opinion on the internet, and it's not a moral failing that they are doing that instead of, as you suggest elsewhere, running for office, getting elected, writing a bill and finding allies.


I used to suffer from regret a lot and I'm not entirely sure how I got over it. It could be just that I'm older and have had more opportunities to see that no matter how many of my dreams I achieve there is always room for perfectionism and regret to wedge their way in and dominate my thinking.

One's life isn't supposed to look a particular way, and international recognition and fame isn't a prerequisite for living a fulfilled and meaningful life. Fulfilment and meaning come not from making all the right choices every second of the day, but rather from just spending more of one's time following one's joy (and expanding the set of things that one finds joy in).

If gaming used to bring you joy but now programming does, then great, do programming. It will take you places and you don't have to worry about where, exactly. Just a high level directive like "this seems like it will be more productive than that, in general" is sufficient direction.


Smart people are just as given as anybody to the idea that happiness is about controlling outcomes, hence they are no happier. The desire to control outcomes is correlated with unhappiness because that very desire is predicated on the belief that happiness is a small target - if one would be happy with any outcome then there'd be no need to control which one eventuates. Put another way: happy people aren't the ones who win every game of chess, happy people just like playing chess.

Another aspect of this is that smart people - people good at solving well-defined problems - tend to see well-defined problems everywhere, tend to try and reduce things to well-defined problems, so that they can apply their unique gifts. This manifests as an apparent discomfort with ambiguity, which poses a problem, because comfort with, or at least an openness to, ambiguity is a prerequisite for happiness. The analytical mind is quick to label things and categorise them, including whether they are good or bad, but I find that happiness is more about refraining from applying such labels to things.

It's like with dealing with an incident. The unhappy say "the website is down, this is terrible", whereas the happy merely say "the website is down".


I don't know, is it more precise to say words like "encapsulated", "testable", "mockable" and "reusable"? Aren't these all essentially the same thing? Suppose you have a class that is technically testable, because you can control all of its inputs, but it has ten thousand methods. Is it really testable if it's so poorly encapsulated?

I feel like good code is just decoupled code that lends itself to composition. Most writing about code is just about how to achieve that quality, not about identifying all these different and conflicting qualities and finding balance between them.

> “I like solution X. It decouples the error message presentation from the core logic. It’s easier to understand, because you don’t have to consider both at the same time. This separation also unlocks some testability, as we can mock either object whilst testing the other. It does come at the expense of requiring the parent object to inject the dependencies, but that’s a worthwhile tradeoff for the testability.”

Take this passage - is it saying anything other than "I identified two independently meaningful components here where you have one". What else can you do to clean up code other than separate things that don't have to go together?


Your comment describes my perspective almost to a T. I used to put a lot of stock in the idea of retiring early and then being free to do whatever I wanted, but what I want is to build interesting things as a team, i.e., exactly what I have always done.

I think many people are trapped by this dream of attaining financial freedom so they can escape work, but in a way that is a cynical take because it presumes that if you are getting paid to do something then it must be something bad that you wouldn't do otherwise.

Such a mindset is unfortunate because harbouring escapist fantasies is a really good way to undermine one's ability to find the joy in what they "have" to do. I spent over a decade not realising that I wasn't suffering from work, but from my hangups about work.

My advice to those who hate not only their job but any conceivable job, and who nonetheless have a job, is to get as good an understanding about why that is as possible. Reflect on it. Try moving around and changing your environment. Try different jobs. Try jobs that have one redeeming thing about them and seem awful in other ways.

The goal isn't to find the perfect job, i.e., the one that fits all your preconceived notions of what you want out of life, but rather to develop an understanding of what your assumptions are and where they come from. It is a useful mindset to be open-minded about what you really want and how you might get that.


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

Search: