Hacker News new | comments | show | ask | jobs | submit login
Ask HN: what was the best life/programming choice you ever made?
193 points by batgaijin 1397 days ago | hide | past | web | 223 comments | favorite
For me:

Life: deciding that I wanted to take care of my body.

Programming: deciding that I wanted to master 1 new tool and a language every year. Last year was Python/Emacs and this year it is Rust/DTrace.

Life: forgiving my wife after she had an affair. It was hard, but a single mistake doesn't negate the fact that she is a great mom, we are good together and our son deserves a shot at having his dad in the house.

Programming: learning by doing instead of by reading. I started learning Rails when I wanted to build PicDigest and the mistakes I've made have helped me learn faster on a broader foundation.

I am a little dissapointed you are catching some flak. It is your life, do what you think is right.

Kudos to you for your decision. A book was written about marriage, long term monogamy, and (at least for me) showed that maybe sex shouldn't be this huge deal we currently make it out to be. It's called Sex at Dawn by Christopher Ryan and Cacilda Jetha.


I hope you're posting under a pseudonym. Revealing that one's wife had an affair is no small potatoes.

Nope. I'm Scott. It's public knowledge. We were separated for eight months as a result of the affair. Everyone who knows us knows the reason for the separation.

If you've really forgiven her then maybe you shouldn't be telling the rest of the world too.

Publicly acknowledging his wife's affair could be seen as an act of forgiveness- he is showing that he isn't ashamed his wife had an affair. Protecting secrets implies the past affair is shameful even today, that his wife needs to feel constantly ashamed, and gives those who discover the secret the power to embarrass or emotionally attack him and his wife. Refusing to hide it is a public declaration that it really doesn't matter today.

Absolutely forgiven her. It's something we talk about. We help other couples dealing with the same type of hardship. Keeping it to ourselves doesn't prove forgiveness and it keeps us from helping others.

Humans are capable of incredible self-deception a la Robert Trivers:


You're most likely fighting your genes (or perhaps you're a mutant): maybe you'll win and maybe you won't. Here the _you_ I refer to here is that part which believes it has free will and can override the other (genetic) part.

Fighting the genes is in our genes and this is simply our ability to adapt, which is generally a good thing - though it is too often manifesting as counter-productively.

So "fighting the genes" is sometimes not bad at all but I agree that most of the time it may be.

I don't understand what you're saying.

You could always look up Trivers' work.

Apparently some other people think that they do understand what I'm saying but they don't like it and have consequently downgraded my post!

It's the old "nature vs nurture" thing: those who don't like my posting are "nurturists" and believe that we're born as tabulae rasae, empty slates that learn all behavior; I'm seen as the "naturist" who believes that we're totally gene-controlled.

I mean, what am I overriding in my nature? Maybe you mean forgiveness is overriding my nature to seek revenge or hold a grudge for some wrong doing. If that's the case, then yes I'm going against my nature.

But nature is terrible at defining and shaping human relationships. We confuse "love" with affinity. "Love" is more like a verb that entails sacrifice, acceptance, and patience...along with affinity in a marital relationship, of course.

I admire (and even envy) your ability to be transparent, although it has left me questioning the purpose of social taboos and whether or not the custom of attempting to keep knowledge of things like extramarital affairs private is beneficial or not.

As 'jaquesm points out above, publicising it could be seen as a form of "public shaming". Attempting to hide it, however, leads to people in your community speaking in hushed tones behind your back, which is annoying and possibly a greater net negative in the long term. I realise that this may be more than you care to divulge, and I don't want to focus too much on your personal situation, but is there any particular reasoning or philosophy behind your unusual (I think it's fair to call it that) approach?

Being open about the affair has many benefits.

It cripples the rumor mill, taking away the secretive intrigue. If it's out in the open, people have less to speculate about and less to talk about.

It makes it possible for us to help other couples going through it. Dealing with this can be an incredibly lonely experience. We want to help make it less lonely for couples.

Keeping it a secret doesn't help anyone and it's only built on the social need to keep up appearances. That's useless in a world where the only people's opinions that I care about are my family's.

I can only hope to be as level-headed as you seem to be when life throws a new wrench my way. Good for you, and thanks.

I first read it as "when life throws a new wench my way", and had to read it again since that would have been a clever pun.

It would be a taboo and Scott's character could be questioned if his wife did not agree with the disclosure. That doesn't seem to be the case.

Our social system could use more people like Scott and his (reformed) wife. To me, they look like leaders in personal development and growth, let alone relationships.

Nice to hear you forgave your wife afyer an affair, i can't imagine how you felt

A really hard decision, I think he is a man with brave heart.

Thank you for post, I think you are incredibly brave to disclose such information with your name behind it. I'm always paranoid of a similar thing happening to me. What do you think could have prevented this from happening?

I think if the couple can come to terms between themselves, then forgiving one affair could be a good thing. But only one.

This is great, thanks for sharing.

This would've been a great comment if it hadn't have your real name attached to it.

Why? What if someone is going through it and wants to talk about it with someone else who's experienced it? I'd LOVE to help them. My wife would LOVE to help them. We can't do that very well if we keep it a secret or speak about it anonymously.

Why would you feel awkward? She made a mistake. She stopped, asked for forgiveness, and we are very happy. The "sin" has been rectified.

Because I would feel odd knowing what you just disclosed if I were to ever cross paths with your wife. Your wife might be OK with it, but that's not an issue. How other people feel about it is.

To put it bluntly - nudism belongs to a nudist beach.

What are the odds you'll cross paths with the wife of a random person from the internet?

Your comments (and the others saying this should have been anonymous) are really saying that you think scottmagdalein should feel ashamed about this part of his life -- in his replies he's telling you that he doesn't. It's worth reflecting on why you feel that way.

No, I am not saying or implying this. Who am I to say what he should be ashamed of? What I am saying that this is a matter that perceived as private and sensitive by many, and that I would personally prefer for it to stay that way.

I agree with the point.

You are a weak man!

Are you serious? I think he is a very strong man. He rose above petty concerns, like how his masculinity will be judged in a public forum, to forgive his wife and then share the fact.

No, he is a strong man.

he is, who he chooses to be, instead of a sterotype

Life: Having a child. The first six months were mad hard. But he's been what gets me up in the morning now... Literally

Programming: Not caring about trends. I've realized I can learn pretty much anything on demand. So I find interesting problems and try to solve them, rather than spend alot of time learning frameworks and languages and hope to apply them. And I've found learning on demand for real problems causes me to learn In a way that sticks better too.

Oh man, having a kid was and is amazing. I used to hate kids, but I can't stand being away from my son now. My wife and I were just talking this morning about having another.

The first six months will be over in ten days for my fiancé and I…and damn are we excited about her future!

> I've realized I can learn pretty much anything on demand. So I find interesting problems and try to solve them, rather than spend alot of time learning frameworks and languages and hope to apply them.

I find this to be a very good approach and it applies to me as well.

Everything I know about "programming" I learned because I needed something done. 10+ years ago I wanted a website, so I learned HTML. Then I wanted a dynamic website, so I learned ASP and SQL. Then I needed some cool interactions, so I learned JavaScript. Then I wanted to create a web app, so I learned Python & Django. When the time comes to build a chat application, I'll learn Node.

This approach enabled me to have much more time to learn new stuff and learn them well enough so as to build production-ready stuff, because that's the goal at the end of day.

The downside is that I rarely have time or energy to just experiment with something new just for the fun of it. It evens out though because I have fun at work learning and doing stuff I actually need to be doing.

Having a kid was amazing for life and didn't affect my programming at all... they sleep a lot :)

Here's a thought: you probably have an awesome spouse.

Which is not to say your spouse is doing all the work for you (I don't know that. Maybe they are, maybe they're not.) But when a couple works well together as a team, that's when they can be relaxed about having kids. Unfortunately, many people don't work well together (and don't know it until they actually have to do something major together.)

I barely find time to do the things I want. I can't conciliate the idea of having to take care of a kid right now.

Perhaps having a kid would make me stop wasting time on useless stuff though.

Giving up video games in my 20s.

If I hadn't done that, I'd still be stuck in front of a game somewhere.

Those things will eat your life.

Everything in moderation. Video games can eat your life but so can anything else, it's all about how much self control you have. I still play a lot of games because, hey, I have to do something with my spare time (and having spare time is essential), and I find it to be one of the more engaging things I can do. Not to mention multiplayer games are the only way to do anything with a lot of my friends, as they live in different states.

An additional thought on this is that not only my own time went into games, but my competitive spirit did too. After dropping games, my hunger for being competitive and becoming more skilled did go into computer science, and my rate of improvement and excitement shot up with it.

Playing videogames, I used to have thoughts like, "It'd be cool you could level up like this in the real world to become uber powerful by just training a lot like this". It turns out you can [in our industry].

I still do enjoy videogames a bit, but not with any sorts of long term thinking with it. It acts as the chill-out activity now.

Interesting TED talk on this recently, albiet at a self organized conference. Presenter makes the case for video games making you smarter.


Smart people can waste time too.

Agree with this. Recently stopped (around 6 month ago), games just look boring now and they waste so much of you're time.

I don't even try to play multiplayer games anymore, as within moments I get the feeling of time wasted. I do however, from time to time, play single-player games (like Portal, or Modern Warfare series, or more recently, Bioshock) for their artistic / story value. The best games have stories much better and deeper than most of the movies, so I find them important intellectually and artisticly.

I'm not sure if this is up your alley, but, the game 'Spec Ops: The Line' is one of the most intellectually stimulating games I have played in a long while.

Spec Ops: The Line is one of the first games I've really seen traverse from the collection of descriptors we normally use for video games (childish, immature, time waster, brainless fun, etc) into the realm of what I'll call "deep media". I'll define deep media as the collection of literary and artistic work which is created not with the primary goal of entertainment, but with conveying an outlook or a perspective of the world.

Spec Ops: The Line is not a pretty, nor particularly fun game, but by golly is it good.

Spec Ops: The Line is not a pretty, nor particularly fun game, but by golly is it good.

That's probably a good indicator of deep media. Not whether something is entertaining, or was created for entertainment, but whether it can be considered good regardless of entertainment value (ignoring technical value, which is generally only useful to a small subgroup of consumers).

I'd recommend playing Mark of the Ninja. I sat there, thinking for a long time at the end.

And if you like puzzles, there's spacechem.

I'll check out Mark of the Ninja, thanks.

SpaceChem is awesome, I played it a lot on PC and also now on tablet (it's more playable with mouse, though).

Also worth checking are all other games by Zachronics Industries (maker of SpaceChem)[0] - I particularly liked "The Bureau of Steam Engineering", where the goal is to route steam via pipes, valves, etc. inside a mech to make it fight other mechs.

[0] - http://www.zachtronicsindustries.com/

I would probably be thinking the same thing right now if all I knew about was mindless, addictive games like World of Warcraft, League of Legends, or Call of Duty. I fully agree that pouring hundreds of hours into games like that will "eat your life" and give very little back for the small fix of short-term enjoyment. I've seen it happen to friends.

However, there are several ways to enjoy video games these days that involve a community and are much healthier. And I am not talking about a massively multiplayer game where the "community" is really just another gameplay element pulling you in. I'm talking about an external community that draws you to actively participate, to enjoy the game for something more than what it is at face value. This comes in many different forms, and I think most people would be hard pressed to say that they are "eating the life" of anyone. Maybe I can just list a few of them and let you decide:

1. Speedrunning community. I list this first because it's my favorite. Speedrunners revitalize games old and new by practicing and playing them to almost complete technical perfection. The communities are large, positive, supportive, and full of energy. Both speedrunners and viewers get to enjoy games they already loved in a completely new way, and engage in a meta-competition that is much more tangible and community-oriented than numbers on a screen beside user IDs. There are large communities in both Japan and the US/Europe (though the two don't interact much). The Japanese community generally interacts in the form of videos posted on Nico Nico [1]. The Western community has a forum and video site at Speed Demos Archive [2]. To give an example of the size and positivity of SDA, in particular, they run several marathons a year like this one [3] that draw thousands of viewers and raise tens of thousands of dollars for charity.

2. Indie game development. I don't think I need to say a lot about this; this community interacts enough with HN for its vitality to be clear enough. Even for lone developers, the creative aspect makes this a healthy pursuit.

3. Romhacking community. This is related to the indie game development community in spirit, but on a much more casual level. Using tools built to quickly make levels for games like Sonic and Super Mario World, members of these communities make completely new games out of old engines and assets. These new games - called "romhacks" because of the way they are made - are often posted on forums or at sites like SMW Central [4] or Sonic Retro [5]. It's a very unique kind of community that draws together creativity and games. This one is also related to #4:

4. "Let's Play" community, probably the youngest of these. Much like speedrunning, this community aims to revitalize games by playing them in an entertaining way and publishing the videos (which are then called "Let's Play"s or LPs). These videos were usually posted on forums like Something Awful, but increasingly these communities are centered on Youtube. Very often the games played are indie games or even romhacks.

Edit: There is also a community related to #1, the Tool-Assisted Speedrun community [6] that aims to play games to literal technical perfection with the benefit of tools like savestates, frame-advance, and recording provided by emulators like zsnes. Such tools are obviously frowned upon in the normal speedrunning community.

[1]: http://www.nicovideo.jp/

[2]: http://speeddemosarchive.com/

[3]: http://marathon.speeddemosarchive.com/

[4]: http://www.smwcentral.net/

[5]: http://info.sonicretro.org/Sonic_hacks

[6]: http://tasvideos.org/

I don't know whether you'd classify enjoying Interactive Fiction as "gaming", but if you did, it'd definitely fall under the "indie" label. The community[1] is quite vibrant, and the games (which are no longer commercially viable, of course) are even better and more literary than they were during the commercial heyday of the genre. If you haven't touched a text adventure in a while (or haven't experienced one ever), play "Slouching Toward Bedlam"[2].

The interactive fiction community has also produced one of the strangest useful programming languages of all time, Inform 7[3].

[1] http://www.ifwiki.org/index.php/Main_Page

[2] http://playthisthing.com/slouching-towards-bedlam

[3] https://en.wikipedia.org/wiki/Inform#Example_game_2

Those things eat your life if you allow them to. Yes, having self-control while gaming is really hard, but I've found succss in that area to some extent. I fix slots throughout the day for gaming. And I MOSTLY follow them.

I only gave up video games because my favorite game got shut down...Tanarus - anyone ever heard of this game? It was run by Sony Online Entertainment during the last years of it's existence but it was put out by Verant Interactive in the mid 90's...probably one of the most addictive "FPS" tank games of it's day...was fun as hell

I played a bit of Tanarus but never excelled at it. I was however much better at Infantry, and kept up with the game from when I was in 3rd grade up until early college

I got really good at it lol..it did have a steep learning curve though, I remember when I was in 5th and 6th grade, it was literally my life, I sucked so bad when I first started so I would play from the time I got home from school until I went to bed every day for over a year...my summer was spent playing all day...and I ended up getting really good at it, and it was at that time that the player counts started going down by the time I got to highschool...was a fun game while it lasted though

Ah yes, I remember those days. SOE had Tanarus, Infantry, and Cosmic Rift out, which were all fun in their own way.

Cosmic Rift was amazing. I loved that game.

I don't think I can give them up entirely. I find them to be a valuable pastime and an occasional source of inspiration. I have always had a tendency to limit myself to putting any real time into a few (2) big games a year. The number of games that I find worthy of my time also diminishes as I get older.

Life: starting to read again and reading broadly: psychology, architecture, software, theatre, business, anthropology, great literature, philosophy, linguistics.

Work: realising that I am not stupid and that I can make a difference, I began to apply a three-word philosophy to life: "Belief, Thought, Action." All beliefs that withstand scrutiny must be acted upon.

You should write and if you do I want to know where you put your writing.

I don't write enough unfortunately. I have something like 20+ text files in a folder on my machine with notes... that I'm meant to at some point turn into blog posts. :)

lhnz's profile > http://sebinsua.com/

Life: Doing my MBA - hear me out before you guys go all nuts. I have a BA in Computer Science and I wanted to learn more about business, so I chose to do an MBA in Finance.

Best. Decision. Ever.

The reason being is that I now see the world through a different lens. For instance, when everybody blames bond markets for trashing the bonds of Greece or Argentina - I understand why it is the fault of the government and the markets are just speaking truth to power.

I also understand why populism is so dangerous.

Understanding economics & finance has liberated me. It is easy to be conspiratorial about the world and the things you see happening on the news - but once you have a solid Econ & Finance foundation it is interesting how different you look at everything.

So even though I am a hacker, I am glad I now have the glasses of 'objectivity' for world affairs - that I don't think I would have had without my MBA.

Programming: Deciding to learn to Ruby & Rails (it is the first time that I can say that I can 'program', despite having a BA in Comp Sci and learning C, C++, Java, etc.).

I hated those languages in school and while I did good in my classes, because I was always a geek and it didn't come particularly hard for me, I hated working in them. So after I graduated I gave them up, for a few years as I worked as a project manager.

The best decision I ever made was to learn it all on my own. It has been the hardest 2 years of my life, but easily some of the most rewarding.

Now I can build anything I want - that is the 2nd most liberating feel ever!

Studying a small amount of economics will also give you this perspective, far more cheaply. (My GF is an economist.)

Where did you get your MBA? I have heard that getting an MBA is more about the connections you make than what you learn. Which school would you recommend if someone wanted to learn all of those things and didn't care about the connections? Preferably somewhere without a 200k price tag.

It is popular to 'bash' MBAs, so everybody says that - in defense of the MBA. But I am fairly certain that most MBA programs will cover this stuff.

I did mine at the University of Tampa, but I don't think you need to necessarily go there to have the same experience I did.

Once you go with an open-mind, I would encourage you to take Econ, Accounting & Finance courses. You don't have to go nuts with these courses either, you can take the other management courses....but the ones that provided the most value to me are those.

Learning to think like someone on Wall Street - with respect to seeing the world as it is, not seeing it how I want it to be - is the most valuable thing I learned.

That being said, the connections are good too - but I am yet to have to draw on them.

Given that I am in the tech startup industry, I don't suppose they will help me much right now. But who knows what the future will hold.

Also, for what it's worth, understanding finance and not being intimidated by legal contracts is also very useful in a startup environment. Every dime I earn, I can visualize my financial statements in my head - which I guess is a good thing.

I guess the trick is to just want to learn these stuff, and in most reputable programs, you will.

It's easy to get into the "I just want to get an A" mindset - don't do that.

Hey, I'd like to know a bit more about how you look differently with a finance foundation. Are there any resources you could recommend for a laymen? I have some basic economics but not much else.

It's kinda hard to quantify exactly - but I look at many things differently. For instance, when I see a product (say in a store, or on TV or something) one of the first things I think about is margins. As in, I immediately start to try and figure out if the margins are fat or thin. Thin margins means that the manufacturer is selling it at barely above cost (which is bad, in my humble opinion - but it depends on your perspective and your goal for that product, because Amazon sells all its hardware on thin margins because that fits into a broader goal which is to sell digital products to you once you own their hardware).

I like to see high-quality products that can command a fat margin in the marketplace, because it usually means that the company will be profitable and can continue making high-quality products (all other things being equal - like they don't commit PR suicide or they don't fumble on the production, etc.).

So that's one subtle way, another way is by evaluating public figures.

One of the most eye-opening things I have experienced is seeing "knowledgeable" people talk absolute garbage and many people listening to them without questioning what they are saying.

One such example is when Jack Welch did his rant about the jobs numbers right before the elections. I am not even talking about from a political perspective, but here you have a "world renowned" ex-CEO of a large company (one of the largest on the planet) and he is talking shit. He knows that the numbers can't be fabricated easily because of the way the system is setup, he also knows that any candidate that fudges the numbers has more to lose than to gain. As in, if Obama did fudge the numbers and the word got out, that would be the end of him. Period. No questions asked. The risk is too large for the reward.

But there are many people that would see who he is, and what he did and assume that he is speaking gospel. But because they don't understand the way the system works, and the incentives at play (Welch is going to be hit with much higher taxes, so obviously he has a vested interest in attacking Obama) they are oblivious and they believe him. Obama "must be" fudging the numbers. It doesn't quite work like that.

Yes, gov'ts do hide things and there are stuff they do that they don't want to get out - but when you understand the incentives that reporters/journalists (and more recently bloggers and every day ppl with smartphones, etc.) have to break "huge stories" you appreciate that it is harder to keep "huge" things secret.

Plus, I see startup ideas and companies differently - again...one of the most drastic changes is that I look at margins more, because they kinda tell you what type of company you have to build. In a thin margin company, there is very little room for error....because the profit you earn on each transaction is so small, so it takes you longer to build up a buffer to help you weather storms. Whereas if you have fat margins, you are more likely to be able to weather winds that will kill thinner margin companies.

One glaring example is looking at the differences in margins of two large companies. Walmart & Apple.

Walmart - $445B in revenues in the last reported year, $15.7B in profits. Apple - $156B in revenues, $41.7B in profits.

So Apple did 1/3rd the revenues, but 3X the profits.

I would much rather run Apple than Walmart. That's just a personal preference. Many people thrive in the low-margin business....Walmart & Amazon are.

That decision, dictates the culture of the company you create. With a fat-margin business, you can invest more liberally in innovation and pay a premium for talent - it's much harder to do that (at the same scale) as with a fat-margin business.

Hope that provides some clarity, let me know if you have any other questions.

Edit 1: As for resources, I would check the finance & economics section of Khan Academy for starters. Then from there just do some reading on the various topics you have learned and start to consume quality journalism like the Financial Times or the Economist. It is staggering the garbage printed/shown elsewhere. Also, try to turn off CNN if you can.

Life: Quitting a stable software job to do a PhD in Finance. The additional technical skills (Writing, Mathematics, Finance, Law, Accounting) and interpersonal skills (Networking, Explaining complex topics) I've gained have been invaluable. I now look at the world in an entirely different way.

I share the same feelings as marcamillion regarding having the "veil" lifted on world affairs. I have a BEng in Aerospace Avionics (Electrical Engineering for air and space craft) but have always worked as a Software Engineer / Developer. After a few years of working full time (big multinational then small ~20 person company) I was wondering "there has to be more to life than this."

While reading online I came across recommendations to read this weekly magazine called "The Economist". It was super hard to get through at first: I didn't know the people, some of the countries, or the financial jargon. But I persisted and each week I'd go and buy it at the newsagent. I'd systematically read each issue from cover to cover. Those first ~15 issues looked like a rainbow; multicoloured post-it notes fanning out from three sides. Whenever I came across a person, word, country, concept I didn't recognize I'd write it on a post-it and affix it to the page. Later, I'd systematically revisit the notes and resolve my ignorance using Google + Wikipedia.

A lot of the time I didn't want to read the whole thing, only the Business, Finance, and Technology sections. However, I forced myself to read about issues in Sudan, or Kyrgyzstan, or politics in South America. I am now so much more aware of the way the world works, what's happening in world politics, financial markets, business, literature. As marcamillion mentions, acquiring this knowledge was liberating.

Programming: Persisting with Haskell until it "clicked".

Over the past 5 years I've revisited Haskell a number of times. Reading tutorials and books; watching videos. I "got" Monads as a mathematical concept, but didn't have a strong grasp of how and why they should be used.

On about 6th crack at it I just sat down and read code. Thousands and thousands of lines of code. Once I'd "groked" a concept from seeing how it was used in real world code I'd go and implement it from scratch. I'd recreate Maybe, then build the Monad typeclass, and finally implement the Monad typeclass for Maybe. I'd do this for Monad transformers, Monoids, Applicative, etc. This was really hard for me. Looking back I realise I was optimizing my learning by always pushing the edge of what I could do.

Over time I gradually became competent at writing Haskell as well as reading and understanding other people code. This additional understanding of functional programming has dramatically change my programming style. I now create a lot more immutable data types. In C++ I'll liberally use const, in Python namedtuples. I get frustrated when a language prevents me from easily mapping and composing functions. I really really value algebraic data types and use them wherever I can.

tl;dr Read The Economist and went to grad school. Learned Haskell and now use immutability and pure functions much more often.

Funnily enough, now that you mentioned it, The Economist did the same for me too. So both my MBA and The Economist completely changed my world view.

One tip is, I actually find the magazines hard to read. Something about the typeface and spacing just screams "dense" to me.

But...what I have done is get the audio version. They are hella long, like 3.5 hours total, but so well produced and VERY nice to consume. Each "article" is about 4 - 7 mins on average, then there are a handful that are 20 minute special reports.

When I think of product/market fit, I think of my addiction to The Economist. I don't think there is a price they could raise it to, that I wouldn't buy it at. And...if I couldn't afford it, I would definitely pirate it :)

I don't think you need to learn Haskell to understand the benefits of immutability. Debugging the java code of someone who wrote big classes with lots of functions changing members of the class did the trick for me.

On the other hand, kudos for going through the hardship of learning Haskell, I will try it at some point.

Life: Start questioning everything. That is, questioning accepted wisdom with respect to nutrition, medicine, sport and everything, accepting things I can verify myself, but most importantly, disregarding things I can disprove myself. I'm healthier, wealthier and happier as a result.

Programming: Same; in this respect, that's ignoring common wisdom about OO and TDD. These things have value, but not of the type (and not really the magnitude) that they are assumed to have. It's much more mainstream now, but 10 years ago, I was considered a crazy heretic.

Your ideas intrigue me sir, and I wish to subscribe to your newsletter.


Life: Exactly the same as above.

Programming: I'm still 20 and in the uni, haven't had much experience to have had a best decision about this.

Life: Accepting Jesus as saviour. I have prayed for wisdom and understanding. This has helped me to deal and understand every kind pf situation am facing and also understand people.

Programming: Having an understanding of every situation i face.

Are some people seriously downvoting this?

I'm not surprised if they are. 'Programming: Having an understanding of every situation i face.' - that's not a decision, that's preaching. 'Look I am religious and magically understand every situation I face'.

If you take the programming statement to be "take the time to get an understanding of situations" then that is a pretty good change. It would imply that previously the GP made decisions rashly, based on a programming ideology, or without all of the facts.

If the statement means exactly what it says, then you're correct.

Life: The day I learned to stop worrying and love the chaos.

Programming: The day I pulled my head out of my ass and started learning from my peers.

Yes! A close friend told me a few years ago: "life is chaos". At the time I didn't understand how this shed any insight. My immediate reaction was to think: "but life is a mixture of order and disorder – is not your statement obviously false?" A year later it hit me. Perhaps this is not what she meant, but I formulated it for myself as follows:

"The universe has absolutely no compulsion to be orderly or just."

Your life will be a mess. The world will be incredibly unjust. Billions do and will suffer. You are helpless to affect this in any meaningful way. Your task is to learn to cope with all this and find path to inner serenity.


Reading Stephen Mitchell's translation of the Tao Te Ching helped form some structure around this idea for me by fitting it into a framework for positive action and providing a number of helpful mantras: http://academic.brooklyn.cuny.edu/core9/phalsall/texts/taote...

> The day I learned to stop worrying and love the chaos.

That was the one of the greatest turning point in my life too.

Life: dropped the TV subscription, stopped reading newspapers and generally disconnected myself from the mainstream world. Thinking outside the box becomes natural then.

Programming: Teaching myself Lisp and Emacs, dropping Agile methodologies, ditching OOP for functional, writing my code as if I'm replaceable and the next guy needs to pick up where I left without any trouble. The last point actually gives me more value in the eyes of my employer!

Not questioning your choice, I disconnected myself from the mainstream world once as well. But now I'm starting to think that our tendency to do this (specifically stop reading newspapers) may be leading to a disconnect from participating in the community. Which leads to a lot of decisions being made against the interests of the community due to people not participating in local governance issues. This combined with the fact that governments don't particularly attract attention to issues [1] is leading to serious problems in society. Also, aren't you worried about being trapped in a filter bubble [2] by sticking to your own world? Looking for your thoughts.

[1] http://www.ted.com/talks/dave_meslin_the_antidote_to_apathy.... [2] http://www.ted.com/talks/eli_pariser_beware_online_filter_bu...

There is positive value in participating in the community, but negative value in reading newspapers or listening to the news on TV or radio; those things will make your decisions worse not better. (An analogy: news media are like a bottling company that takes a thousand liters of slightly dirty water, separates it into 999 liters of pure water and one liter of concentrated poison - and throws away the pure water and sells the poison.) Much better to spend your time instead doing something that will bring you into contact with people in real life.

For one, I would say that mainstream is the filter bubble; big media doesn't have freedom of speech whatsoever. Newspapers are especially boring repeating the same rehashed stories everyday. For most of the mainstream community, this is all they know. I would argue this is the cause of our society's serious problems.

I'm a programmer so for me mainstream translates to Singleton<FilteredWorldEventsStream> mainStream; and that's, as Steve Yegge would say[1], a case of the Simpleton pattern; as a fun note, it's about the appropriate LISP to C++ translation too!

If this were the only API offered to you, you'd probably hack your unfiltered stream library on the side too; oh but it's C++ and everything useful is private under proprietary licensing, good luck. Isn't that how open-source was born in the first place? It seems to be doing pretty well compared to proprietary mainstream software nowadays.

Secondly, I believe sticking to your own world is a very good thing. This is where your imagination lives, this is where you create links between ideas to better picture them and therefore understand them. Be it for art, science or faith, this is where fresh ideas comes from to then be adopted by the mainstream, who forgot they too have this ability.

People don't participate in governance because they believe it isn't their 'job', they did vote and it ends there for them; they just had a hard day and want to spend the evening watching American Idol, the results of a consumption society. Our society is based on work for money, not work for the bettering of said society. Otherwise we wouldn't need marketing, public relations, sales, and other jobs we had to came up with to keep the illusion of it all going on.

This led me to disconnecting from the mainstream. However, you don't really disconnect from the community since the internet provides an open and free media platform to build your own filters upon; it also happens to build critical thinking. What you disconnect from is the endless stream of bullshit goods and services produced for the sole purpose of profits going through the mainstream pipes.

I've always liked to view capitalism as a dog chasing it's own tail; produce goods or services to make money, to spend on goods and services. If it does so for a while, you'll notice all the money going to the center due to the centripetal force of its circular motion. Why isn't society about collectively working to go forward instead of in circles? Mainstream.

I'm not for anarchy either, that's just as bad on the opposite end of the spectrum. But the open source model would definitely be interesting to apply to society as a whole; drop the ideas of government and corporations, structure society as an hierarchical flatland and let everyone contribute to everything they want to.

Until then, I'll be quietly hacking away since I actually learn useful things that way, which I can then use to help create a better world.

[1] https://sites.google.com/site/steveyegge2/singleton-consider...

I love it lol, I'm disconnected and off the grid in so many ways...I do still have TV, but I do not have a facebook account but used to... It may prevent me from getting a job at facebook but that only matters if you're not planning on creating the next big something yourself.

Although don't you think that by reading HN you could end up being part of a "group think" mentality since most of all of us here are involved in IT?

I don't think so, I love HN especially for the comments because a lot of smart people are voicing their opinions here. It goes to the point that comments are often more interesting than the linked article!

Not a programmer, but may be of use:

Life: continuous learning, whether it be a new language, a new skill, travel. Whatever I learn usually produces benefits in unexpected ways, years down the road.

Runner-up: barbell weight-lifting, three times per week. If you've never been strong, you owe it to yourself to try. You get a physical sense of capacity to match whatever mental sense of capacity you've achieved.

Work: Trying my own thing. I had no clear plan, but I had criteria to evaluate whether what I worked on was paying off.

Two years out, I've got steady monthly passive income, and am working for a startup doing work I'm passionate about (selling an online LSAT course) while continuing to pursue my own projects.

Casting off the set path of law school/a job opened my mind to new possibilities and forced me to find my own way.

I want to second your weight lifting suggestion. Also, when you're strong, people treat you better. It's probably related to the halo effect surrounding attractive people. [1]

[1] https://en.wikipedia.org/wiki/Halo_effect

Life: To get a early realization, that money is the most important thing in life.

Work: To work towards the 'Life' goal. To work smart, and make clever savings and investment moves.

I've read enough of the 'money is not everything' quotes. Its almost a given and keeps coming back to me from my own experiences and from what others tell, Money is definitely the most important thing in your life. Having lots of it means most of your needs, wants and requirements taken care of. You realize this more as you age, having lots of money to never work puts you in a far more better situation than getting up every day and running to work regardless sun, rain and cold. No matter what your work is, no matter how passionate it is.

Having financial security will alone change you life so drastically, you will never worry about having to take risks, failing and putting pieces together after that. You will never have to worry about getting fired, reporting to office despite your highest dislike on a day. You will never worry about 'What if' scenarios. You will never have to worry about paying your bills, sending your kids to school etc.

So the most important thing to realize in the early part of your life is to get to financial security.

And yes tool religion, micro optimization craze, technical pedantry isn't much of value while the other part of the world is building stuff and making millions with duct tape.

As a programmer your job is to worry about solving problems which people need solutions to, and then monetize it.

I think as you grow older you will realize the opposite, that in fact this is not the case. As a human being, you will never stop to worry. If you have financial security you might stop worrying about the things you mentioned, but you will also have a lot of new things you worry about, its natural.

Also id argue, not having to worry about failing or taking risks will make you much less likely to succeed in such a scenario, from a statistical point of view.

While i agree that money is of very high importance in todays world, it still doesnt make you happy even if that sounds banal, its true. It makes certain things in life alot easier, so everybody should strive for financial security but saying it is ultimately the most important thing in everybody's live is a very broad statement to make.

I had the same realization at about 23 (I'm 26 now). I'd like to talk. What's your email? It's not in your profile.

Mailed you, Hope you will get it soon.

Life: Learned a little bit late to stop being a totally selfish/asshole boyfriend, leaving me open to finding a great relationship and now two kids. It's helped other relationships as well, and there's a few exes to whom I should apologize if it weren't so socially inappropriate to do so. :)

Programming: leaving a couple of fun and well-paying jobs to go to places where I wasn't the best at everything. Learning from others (and teaching others in areas where I excel) has given me more happiness/satisfaction/growth than any single language, project or other discrete event.

Life: Realising that I am in a privileged position and have the freedom to do what I want / where I want, and realising that although I love my job, the bugs will still be there if I leave the computer for a couple of days.

Programming: Deciding that I only wanted to work on open source software, Its not global to open source, but the culture of sharing, building on top of giants, and encouraging + learning from each other has been incredible.

Life: Learning how to break psychological barriers so I can pursue my interests culminating in living a happier life. (examples: Public Speaking, Schooling level as a self-value system). By doing this I seem to have created a self-selection process for my potential social circles. (example: some people I've met seem to equate dropping out of college with being an utter failure. They usually never contact me again.)

Also for Life: Learning how to Learn. (Currently putting this to the test: http://christopherbiscardi.github.com/blog//coursera/2012/11...)

Programming: Lisp.

Life: Leaving my comfort zone and moving abroad.

Professional: Working as an independent developer, instead of as a wage slave.

Programming: embracing the fact I came from a design background instead of trying to hide it so I wouldn't get cast out as a jack of all trades, I now do exactly that and love it -- and knowing you can deliver end-to-end solutions is very empowering and casts a new light on deciding who you should be working with since you don't need the other roles you can simply try and work with people you like.

Life: {I'll put the family stuff aside, since its my wife saying Yes and the arrival of our kids is just beyond best, but probably not the intent of the question} Working abroad with an IT consultancy. After school I intentionally sought out a consulting gig in Germany. This produced 2 great changes that profoundly affected the rest of my life. (1) Working/living in another culture changes you forever in so many ways ... politics, patience, view of humanity. Big changes. (2) I encourage young programmers to get consulting jobs early on. Exposure to problems. Exposure to mentors. Exposure to systems. Exposure to corp politics. Exposure to business. Exposure. All these will make you less dogmatic and more of a problem solver. When it's time to leave (go contract, start a business, join a company/startup full time) your abilities and, importantly, confidence will be high.

Programming: Get meta. Whether it be programming languages or frameworks or methodologies, at some meta level they are all 90% the same. They desire to the same result. That 10% is for ninjas and specialists ... which is great. But the world needs more of the meta folks. Once you "get" it, all fear of taking on something new changes, and you feel totally cool with trying it out. Immerse in anything for a while and you start to get the other 10%.

Flying across the country to meet the girl I met online. We've been married for 15 years.

Life: Getting fitter. I wasn't too overweight at my peak weight but I was getting a beer belly from sitting all day, feeling extremely tired at the end of each day (I'm only 20 years of age and it's not normal) and I decided to do something about it. I've always been intimidated by what other people think which is why I didn't join the gym earlier but I sucked up and joined 11 weeks ago and it's the best choice i've ever made. It's motivated me so much.

Work: Scoping out and learning new technologies. I've been iPhone programming for ages and realised I hadn't really dived into other stacks such as Rails or JS programming. Definitely need to do more of this though.

My advice: start climbing. It's like going to the gym but fun.

Living on my bicycle for a year instead of going straight to graduate school.

I bicycled across the US each summer for two years, and the next summer took a full year off. I rode from Seattle to Maine, down to Florida, over to California, and all the way north to Alaska. It was the classic "find yourself" adventure of a 20-something. It has grounded me in everything I have ever done since.

Facing a grizzly at four feet, alone in the middle of the Yukon, really does put everything else in perspective for the rest of your life.

Programming: Build something that people use, and start freelancing. I am not a full-time programmer, so I could have gone the rest of my life only programming for my own intellectual satisfaction. But I watched my dad pass away never having polished any of his projects, and that made me commit to releasing code. Programming has been much harder, but much more satisfying, since I made that decision.

Freelancing has let me ease into using my technical knowledge professionally, while maintaining my day job as a high school teacher.

> Facing a grizzly at four feet, alone in the middle of the Yukon, really does put everything else in perspective for the rest of your life.

That sounds incredible! I am going to sound incredibly stupid but that would be something to experience. Details?

I was heading north on the Cassiar Highway in BC, a mostly dirt road which parallels the more heavily-traveled AK highway. I had been seeing black bears every day from a fair distance.

I was on a flat stretch of road with grassy banks. I saw a matted-down patch on my right and thought to myself, that looks like a bear slid down on its butt right there. Then I glanced to my left and found myself face to face with a grizzly.

It's funny, I knew what I was supposed to do from reading and talking about bears. But it was my experience responding to stray dogs that had trained me in how to respond. I just stayed calm and kept pedaling, same speed. It stepped into the road and huffed in my direction, but it didn't start chasing me.

I have kept that moment in mind during every "stressful" situation in my life since then.

Life: Going Paleo (not 100% strict but maybe 80%) and focusing on everything that alters my mood and testing it to see if removing it makes a difference (alcohol, caffeine, excess sugar, etc)

Programming: focusing on building a business with software and not getting so anal about every line of code. Learning to be lean in all ways possible really helped here.

This is very interesting. I have been able to tell that so many foods, not just alcohol, caffeine, and sugar are able to impact my mind and mood. Specifically, I am referring to different amounts and types of fat as well as the effects of different foods based on the glycemic index spectrum.

What effects have you noticed?

Life: Don't generate human waste - be lean. Make everything you do have a value (even if its gaming - it has mental value). Stop watching syndication TV/Facebook/IM etc.

Programming: Be very aggressive with learning. Set a goal of books to read, programming languages to learn, per half a year. Read a TON of code in the process.

Hard to put just one, so I'll cheat.

Life: having a family, emigration, travel, stop caring about money beyond what I need for day to day living

programming: read more code instead of writing more code

My most important decision was having a child. Returning to my first love, Lisp, pales in comparison.

Life: Leaving financial services voluntarily, never taking unemployment while I was without work, and going all in on whatever future that meant for me.

Programming: Committing to the idea that ideas must, must, must be expressed cleanly.

Never taking unemployment while without work -- may I ask why?

I took a healthy severance from a company that bought my previous employer with government backing.

It felt like I was already given unemployment.

In addition to that, other people surely needed the funds, which seemed limited at the time, more than I did.

I also would never take unemployment, and it's because I don't believe it's the role of the state to provide for me.

I am sure this means that you've never been starving with all your help fully tapped out.

Until you reach that point, please don't make such concrete declarations.

Life: Slow carb diet and P90x. (a little embarrassing, but true)

Programming: Diving farther into photoshop. I know thats not programming, but I really like to play around in photoshop during long code sessions. It helps my brain relax.

I want to try P90X soon and was wondering if you've felt it's made a difference?

P90x will work, but the key is diet. CrossFit will work too, but again the key is diet. P90x provides that meal planning. Stick to that and workout and it will work. Or go slow carb and hit up CrossFit. But the key thing to remember is that you can't out train a bad diet. Garbage in == garbage out.

Diet does not build muscle.

Maybe you're talking about losing body fat. I'm not sure why you're preaching about that, though, since the parent/GP didn't mention weight loss being a goal.

A good diet does not imply being calorie deficient.

I enjoy P90x because I do it in my small home office. Its perfect for the non gym goer in my opinion. The results are good. I just do the slow carb diet with it. I hate looking at a 'diet plan'. I lost over 50lbs this year. Right at 15%bf now. Good stuff.

Life: (1) Learning to choose the most productive and rewarding options even (for example I could spend a day tinkering on the next ProjectEuler.net problem or I could focus that effort on studying or finishing my latest project). (2) Learning never to cease working. This is subjective but personally I tend to find it hard to start working after a long break but once I get the momentum I can keep it up very well without stress. (3) Opening my mind up to the possibilities. Learning and knowledge are never bad and it's not healthy to be overly sure of yourself.

Programming: (1) Getting into the functional programming mindset. I am not going to completely ditch OOp but there are times when I find functional programming much more intuitive. (2) Getting the basics of algorithms and data structures. This was a long time ago but I remember it affecting my whole perspective of what programming was about. (3) Implementing non-intuitive algorithms to solve hard problems, mostly still considered as research areas. For once the solutions were not "obvious" and a mechanical approach, however complex, was not enough. I started with game theory, and am now trying to get into machine learning and overall I'm finding this experience a very pleasant. (4) Tools wise, discovering the free software "ecosystem", especially GNU/Linux, vim, tmux, tiling wms, learning to use the shell and utilities productively...etc I still have a long way to go but these tools are already paying off.

Life: Giving up the entire notion of a proper job being a 9 to 5 daily grind in the office. Have not had a 'proper job' for a while and instead I have been doing freelancing/contracting which gives me more time to try out and learn new things.

Also, like the OP, taking good care of my body which means quitting cigarettes, 2-mile runs every day and watching what I eat.

Programming: I'm lucky enough at this point of my life to be able to choose the projects that I take on. These few years have thought me never again will I compromise on my promise to deliver quality projects to people. It really stresses me out when bosses change deadlines on a whim and expect you to meet it. Now that I'm older, I would tell them respectfully to get someone else if they really need to meet that target that bad.

In my experience, 90% of the time, nothing good ever came out of imposing stupid/unrealistic deadline. All you get are burnt out programmers, code which resembles a travesty rather than a working application and a mountain of technical debt.

At the end of the day, some people measure themselves from the car they drive, the houses they live in, how much money they make and to me, that's perfectly fine(whatever motivates you, man).

For me, just being able to help people with projects that are meaningful to me, and not having to stay at a job because I needed the money is to me, the best thing in the world right now.

Life: stopped doing overtime, stopped eating meat and started living minimally (items I own total expenditure of £600).

Programming: ignoring fads and applying engineering discipline to problems.

Life: leaving the academic world and doing things that actually affect / matter to people.

Programming: writing an Atari ST emulator (it landed me a job offer by a prestigious game company)

I feel you on the 'life' part. Only people that have been deeply commited to academia, and realizing its role in this era, can understand the emotional impact on this choice.

Quick question for you and the GP, if you would be so kind:

I'm currently working on a project which is set to become my master's thesis (I'm writing my final undergrad exams this month). I started it a few weeks ago; before that I never thought I would go to grad school and I had a severe distaste for academia.

Now I'm feeling academia suck me in. It's hard to describe, but I'm "good" at the aspects of academia that I hate--the bizarre politics of it, for one. I also really enjoy having the freedom to work on hard problems without any immediate paths to monetisation.

Do I get out now? Is it okay to do this for a while? I am obviously not asking strangers on a message board to make my life decisions for me, but I'm very curious to hear your thoughts.

An academic career was my dream job while I was an undergrad, but it disappointed me later when I actually reached that goal. I'd say go for it if you feel it'll be rewarding, but don't stick with it out of stubbornness when it no longer makes you happy. There's more freedom waiting elsewhere if you don't shun the responsibility (in entrepreneurship). But just because it didn't work for me, it doesn't mean it's generally bad. Many people seem to be quite happy working in academia.

Could you explain what you mean by "its role in this era"? Do you believe academic institutions are becoming more or less relevant?

got any tips/resources for an aspiring emulator programmer? I find emulation fascinating, I've always wanted to write an emulator for my favorite console (neo geo) but I'm mostly a CRUD programmer without a lot of comp architecture knowledge.

You'll need precise and complete documentation of the CPU and other hardware, which is not too hard to find nowdays (17 years ago it was mostly books and they were incomplete/wrong).

You can probably go a long way just by programming by the specifications with some literature on designing interpreters, but good assembly language skills on the emulated system will be extremely useful, because that's what you'll be looking at all the time while debugging.

Life: Realising that the worst that can happen is almost always "not that much" and that by giving something a go, even if it doesn't work out, you're still a long way ahead of a lot of people.

Programming: Focussing on the end product at least as much as technical elegance.

Life: Knowing life is pointless, and it's completely up to you to make a point.

Programming: Common Lisp. And... not being overzealous about it.

I started caring more about what the code does than how the code works or what it looks like.

Realizing that being happy was more important than achieving an arbitrary goal (a PhD) that was (a) making me miserable, and (b) didn't matter to anyone but me. Getting past that mental block was basically necessary for a lot of amazing things that have happened since, both in work and life.

As someone doing a PhD who only got into it because I didn't know what else to do really... this really hits home. What changes did you make?

Basically, I wrote a Masters thesis and exited my program with as much grace as possible. I actually managed to tie up a fun side project and assist with a couple of other students' projects on my way out (more productive than my PhD thesis!), but the most important thing is that I left.

Second-order results were an awesome new job doing something more fun; a huge increase in my day-to-day happiness and satisfaction; getting married; and an even more awesome job, and a move to California.

Life : To stop taking things too seriously, enjoying the ups and downs of life, and making little progress every day in various roles I play in life.

Programming : Working for myself and not for a monthly pay-check. To do work that I enjoy doing while earning enough for day to day living.

Life: Taking a few months off work to do something creative, fulfilling, relaxing, exciting...etc.. I work less (but since I'm consulting my yearly take is about the same, if not more). But the biggest difference is down-shifting. I've gone from spending 90% of what I earn, to about 25%. And, if anything, I do far more travelling...

Programming: Quitting my permy job, then starting my own consultancy has given me so much more autonomy. It's scary, but fun. And while I'm still selling my time for money, I am transitioning to doing my own thing. Still blown away that people pay me money to do something I love so much...

Life: Reading more books. I've read more book in the last two years than I have in the rest of my life, both in physical and in audio forms. It's amazing what little bits of information you pick up from all kinds of different books.

Programming: Learning Node. It got me excited about development again, which caused me to get out and meet other developers in my community. I was so enamored with it that I quit my day job in order to have more time to learn Node and many other new web technologies. As a bonus, I used the stuff I learned in that time to get a new job that I like more and make nearly twice the income at.

Life: Deciding to view large decisions/situations with "Whats the worse that can happen?" And finding solutions to all of the worse case scenarios. All of a sudden, things you thought were scary and impossible become approachable and you almost feel dumb for not doing it for so long.

Programming: When I decided to stop focus on being a "Programmer" and focus on being a business owner. My code isn't what gets me paid. I still do all the programming at my company, but now I do the minimum that needs to be done that will still allow me to make changes. I'm in the business of making money, not pull requests.

To never get overly attached to my tools - programming languages, frameworks, paradigms, patterns etc. and to always choose the right tool for the right job, by putting aside my own personal bias.

I'd like to do that but could never actually achieve it.

I have an exactly opposite problem. I always want to work in a new language/tool. Once I learn the language/tool I lose interest in it unless the work I am doing is challenging in itself.

True, that also happens to me. The grass is always greener even as I move from my house to my neighbours, and back.

This is a great comment and I can echo much of its sentiment.

Another commenter wrote something very similar to mine.

There are three things that I consider to have had the largest impact on my life:

1. Learning to Learn - sounds obvious and simple but it truly isn't. There's a lot of un-learning that generally happens first before you can truly become someone that loves to learn on their own or with a partenaire dans le crime.

2. Crossfit - which introduced me to powerlifting and olympic lifting - the combination of diet (keto, paleo, zone), metabolic conditioning, and strength is basically hacking your body. My quality of life in a very physical existence has improved tremendously by becoming more athletic and much stronger.

3. Co-founding a technology company. This one most people here should relate to the most.

To elaborate a teensy bit on these points; none of these convictions/events/understandings happened at once, it was a gradual aggregation of different experiences and micro-choices along the way that ultimately culminated in these distinct three "pieces".

I also find it mildly interesting that I've after the fact identified these "three". What happens to be the most stable configuration in our physical environment? THREE! The tripod, three perceivable dimensions, blablabla; I might write about this now.

My biggest issue powerlifting/weightlifting is the amount of time it takes. I've had to cut back for other things because it's hard to have the time to get 8+ hours of sleep.

I love lifting but I'm curious how it has affected you when starting company, something (from what I've read here) is notoriously time consuming.

Life: Making the decision last year to do things outside of my comfort zone in an attempt to bring them inside. I went travelling for a few months, moved to London, and now have a lot of paths open for work

Programming: attempting to build an MMO each year and getting further each time. The problems are hard and very interesting to me, so I love to learn in this area

Life: It's all about love, not personal ambition. I love and am loved by my family. I do meditation and find there that I love and am loved by my higher power. I love others I don't know (and possibly even some I do know) by writing software for intensive-case unit medical devices. Finding a way to use my programming skills to selflessly help others has been transformative.

Programming: Two for the price of one:

1) Really understanding locality of concerns. I.e., creating and using granite-like abstractions so that when I use them I don't have to think at all about what is under the hood. So, when I need to reason through a given piece of code, I have a local and finite amount of the rest of the system that I have to load into my finite brain. I can inductively assume that the abstractions I am viewing as primitives are themselves reliable.

2) Beginning programmers write simple code. Intermediate programmers write complex code. Master programmers write simple code.

Life: Quitting my graduate studies in astrophysics in 96 to start a company, which ended up growing to 125 people in 7 countries and being acquired. Making the decision to leave the cool yet predictable world of science in favor of a startup took some hard thinking and talking, but looking back this obviously was the biggest career choice I ever made.

Second biggest choice probably was to leave said acquiring company, to venture out again. I can't say I found my next big project yet and leaving the new comfort zone definitely took away some comfort, but I felt it was the right choice. Like Steve said: Never settle ;-)

Programming: Taking a week-long course by BNR to learn iOS programming. Following an intense week-long program is very different from working through a book in your own pace, learning alone. Having a neighbour asking you things, or to ask things, makes learning incredibly more effective.

Life: ultimately not caring about what I'm told to learn/do, but instead learning what I'm interested in. My current career started as an impicit decision that "math homework is boring" and "making games is fun". I was 13 then. This choice led me to programming, to technology and made me a man I now am. (Maths grades did suffer and never recovered even until university - I ended up learning everything anyway, but usually a year too late; but there were also many bits, mostly related to game programming, I knew years before I should have)

Programming: Discovering Lisp 3 years ago. It turned my programming upside-down, gave me a job in Erlang (that I had since quitted) and seriously expanded my thinking. Also led me to pg's essays, HackerNews and LessWrong, all of which transformed my way of thinking and - I feel - made me much more rational person than I was.

Life: Quitting an MMORPG when I was 13(nearly 13 years ago) and deciding never to play one again. I can't imagine how I would have ended up if I hadn't.

Programming: Finally deciding to just dive into a project rather than continually reading books. I'm not a very good programmer by any means though so take that as you will.

life: read Walden. http://blog.fogus.me/2006/10/26/the-floating-books/

programming: going to college

Life: Figured out the loud "noises" in my life that were pinning me down. - Day job and unwanted social relationships. Gave up television, politics and anything that seem to bring a very high bias into thinking. The best outcome has been that it has helped me leave my comfort zone time and again.

Programming: A worry of mine was how much was I thinking about things, that needed a deeper/rigorous computer science understanding. Coursera and some other courses have been a life saver here (in my case). Have been taking courses that I felt I needed to understand better conceptually. This seems like being in a maze that leads all the way to very basic fundamentals that I have forgotten; So adding math skills now (Calculus, linear algebra etc). I hope connect the dots.

[Edit: Grammar]

Life: Trying LSD. Gave me a new perspective. Allowed me to fix relationships.

Programming: Reading research papers and the academic basics, and learning functional programming. Gave me the ability to go far beyond simple apps on frameworks, and tackle problems I thought out of my league.

Life: After a certain age you stop working to better your life and start working to better your children's.

Programming: Working on side projects that use technology I want to work with. It gets out that urge to do your own thing and employers love to see your side projects.


- Reflecting myself constantly. (Looking at things from another perspective often allows you to learn not only from your own, but also from other peoples mistakes)

- Completely turning off TV and other mainstream media for several years.

- Starting to leave my comfort zone occasionally to extend it constantly.

Programming / Profession:

- Accepting the fact that, although being good as a programmer, I'm even better in managing things and mentoring/coaching. (accepting this was hard: i love doing programming)

- Focussing on the big picture and final results instead of wasting time with unimportant details.

- Reading/Reviewing/Discussing more code than you write actually results in writing better code and being more productive.

Life: Knowing who I really am. Like I thought I could be like every other kid on the block but I later accepted the fact that I'm just a geek with not much of a social life and I'll be acknowledged if I do what I do best

Programmimg: I wasn't offered computer science in college(my country has a bad system). Rather I was offered math. I didn't see myself good enough in math so I decided to give up on programming for a while. I later read the quote "never stop doing what you love doing best". It really told me I made a fool out of my self. Now, I'm back to the keyboard.

Life: Started getting up early and going to the gym every morning. I wake up at 0530 and then I go to the gym, shower, and eat breakfast before I leave for work at about 0800. Having that much time in the morning greatly reduces stress, so I do it even if I skip working out for a day.

Programming: Joining the local meetup groups, attending both areas where I am very knowledgeable and areas I want to know more about. I've learned a lot and I've met hundreds of inspiring people. Giving talks at the meetup groups is also very rewarding and highly recommended.

Life: Moving to Netherlands Programming: Leaving .NET behind after 6 years.

What language(s) did you leave .NET for? I'm still stuck on .NET (and I like it) but I know I can't build decent web or mobile applications with it.

I use .Net and Java stack, I don't want to start a war here but I never felt held back due to any reason for developing web apps in either of the two. For mobile apps, its a different story, I stick to phonegap.

I don't know that much about Java world, however what I can say about Windows + .NET is you are less productive. Why ? 1. Linux > Windows ( For .NET ) 2. Python + Django/Flask are really powerful. Ruby & Rails as well. 3. You're basically writing and reading more code. Most of them is unnecessary. .NET is designed for enterprises. 4. Especially for startups, time & speed matters a lot. I also think some of the above reasons applies for the Java world as well. Fantastic OS projects though in Java world.

I'm pretty sure you can make great web apps with .NET, but I don't get the impression that the ecosystem is very supportive.

I found a lot more support online for other stacks.

For example, I wanted to do a tiny webpage, and host it online cheap or for free. The cheapest options were Google App Engine and AWS.

I looked into Azure pricing and ran away. I'm probably ignorant of the best solutions (Rackspace seems to have a startup program, there was a .NET hosting I liked, there's also BizSpark), but most .NET hosting was a lot more expensive than I wanted, and not supportive of "weekend project" types.

Ruby & Python

Life: moving to London.

Programming: quitting permie jobs and going for a contract in London.

Having just quit my job for a contractor role in London, I am so glad to see this here.

Also a Londoner here and would love to go into contracting sometime in the not too distant future. Please keep us updated on progress

Well if that's not an invitation to finally start my blog, I don't know what is.

Life: Quitting Google in 2007 after only 7 months of employment to do my first startup. I was 24 years old, I had spent almost one full year applying to Google and while I didn't have my dream job, I was certainly at my dream company. I was approached by a previous colleague to do a startup in the Philippines and I spent a couple weeks thinking about it before deciding that I was going to leave Google and do a startup. I was 24, if I failed at the startup, I could always try to go back.

7 years later, leaving Google was the best choice I've ever made.

Life: starting to exercise regularly, going on paleo/slow-carb diet

Programming: hmm, not sure. but the worse choices are 1) not blogging more, and 2) not learning a full stack backend language.

Life: Haven't really figured it out yet, I'm only 20.

Programming: I remember thinking "I mean I guess it's neat I can draw snowflakes with computer code, but isn't this a waste of time?" when I was around 11 or 12. I'm glad I stuck with it. There was a simple enjoyment and feeling of achievement even though I was just drawing simple shapes with QBASIC - I didn't really know why. But it felt good, so I kept doing it. I learned a lot, and it's gotten me to some pretty interesting places.

Life: Meditation. Zazen practice specifically. Redefined my values and "self" through introspection.

Programming: Realizing I'm not so great at it, moving towards programming as a hobby.

Yes. Zazen... If I could go back in time and give myself any advice, it would be the daily practice of silence.

So what have you changed your career for ? A job relating to programming, or something completely different ?

I'm only 20, not sure I have a lot to say, but here it is so far:

Life: Deciding to stay with my girlfriend through a long-distance relationship. It's hard, but definitely worth it. We've not seen it all the way through yet, though, so it's hard to say yet if it really is a good decision.

Programming: Getting into game programming. That's where I started six years ago, and although I've moved on, if it weren't for the joy of making my own 3D games, I would have never dug deeper.

Life: Seeking help for depression, seeing a psychologist after years of trying to battle it alone.

Programming: Building stuff and learning by doing rather than reading text books.

Hard to say what my best life choice was, I tend to live my life as a series of small choices rather than one or two overarching big ones.

But programming - definitely the decision (back in college) to actively commit my hobby and professional life to the linux (and concomitant open source) ecosystem. I can still look around today and marvel at how much it has enriched not just my overall career, but the day-to-day experience of being at work.

Life: Very recently I learn that relatives is not all about those people who are "Imposed" by nature on you but those who remember you and take care of when you are in trouble. I had been going thru family and financial crisis when all so called blood(sucking) relatives tried to make life hell of me and my wife and some strangers came forward and tried to help us out.

No wonder Humanity is not property of family relatives only.

Teaching myself photoshop when I was 9.

A family friend gave me a copy of photoshop 4, and I kind of got addicted to it. From there I grew a love for art and design, which I did as a hobby for quite some time. After I graduated college with a CS degree, I had a ton of design experience and a solid programming background. The two together have really done well for me, for obvious reasons.

Life: incorporating exercise into my daily routine in a way that I enjoy (walking, biking)

Programming: switching back into programming from management

Taking a year off school to do a startup.

Didn't work out but allowed to filter life and actually figure myself out. This allowed me to restructure my degree/education/learning to support the rest of my life and not just my next startup.

You'll ask this again in 5 years and hopefully my answer wouldn't have changed much.

Programming: never saying no. Biting off more than I thought I could chew.

Accepting that there are better programmers than myself, and subsequently listening to what they were saying a bit more closely :)

Life: Giving up WoW and starting to socialize instead

Programming: The 2½ years I spent at a small startup as the only full time developer

Giving up a stable job as a sr. dev at a good company with interesting projects to co-found a startup in a competitive market. All with a 1 year old at home, a second on the way and no savings other than some assurances from my previous employer that they would take me back should things fail.

It was scary at the time. But worth it.

Life: To buy only the minimum number of things I need, and work out the rest as I go along.

Programming: The realisation that once you understand the same basic structures (declarations, loops, recursion, data types) and the underlying paradigm in one programming language, you can easily learn any other programming language.

Life: switching careers from hospitality management to software development (I don't think any developer who has never been anything else can really appreciate how great we have it)

Programming: learning C++, even though at work we use Java and Ruby, I feel the more I learn C++ the better I become at higher level languages

I know I'm late to the party, but...

Life: Believing Jesus actually said "I am the way, and the truth, and the life. No one comes to the Father except through me." http://esv.to/john+14

Programming: Leaving a Megacorp to work for a small development shop to do Python work.

Life: work for and achieve Eagle Scout as a kid. Not only did it keep me focused, I got to spend every weekend with my father who unfortunately passed away early.

Code: listened to The Dip from Seth Godin and followed his advice. Dropping everything I wasn't the best at and focusing on just what I was.

Life choice : better internship over grades. Programming choice : giving up php in favour of python.

Getting married to a women who drives me to be better person. Has improved every aspect of my life.

Congrats Bro! I did marry one 3 years back who brought nothing but good changes in me.

Programming: Had an idea and spent over a year learning how to code while implementing the project to completion. Gave up QA testing after working at cool game companies like Blizzard, wasn't making the salary I deserved. Now I am.

Life: Quitting my my full time dev job to go freelance (less money, but I've always got a smile on my face now)

Programming: Putting aside spending all my time learning best practices and paradigms and just creating something I have in my head.

Life: Moving to the United States Programming: Discovering Lisp after 15 years.

Starting to learn about art (aka going to Museums, art galleries, reading art books). It soothes my soul. By far the most intellectual challenging activity I've ever done.

Would also love to hear about how you started learning, I've been working with a team on a product to try and make art galleries more accesible to "none arty" people so any pointers on the type of thing you found helpful would be really interesting.

Making art.sy I see?

Not quite although have a massive amount of respect for what the art.sy guys are doing. We (inguide.co.uk) are trying to put together a guide book platform which spans multiple art galleries and museums then learns about you and tailors the interpretation and info offered to the users level of expertise.

Could you recommend some introductory books? I've always felt bad not having clue about art.

A great light-handed introduction to Modern Art was produced by the BBC in 1999: This is Modern Art: http://www.youtube.com/watch?v=yoSjRRv6ZrE

A book was also written by Matthew Collings: http://www.amazon.com/This-Modern-Art-Matthew-Collings/dp/18...

vist a museum and read the 'Agony and the Ecstasy' and 'Lust for Life' by Irving Stone. The first book is on Michealangelo and the second is on the life of Vincent Van Gogh.

Life: Deciding that my family was more important than my job title.

Programming: Getting a degree in hardware even though I was pretty sure I wanted to write code.

Life: finding/having exercise related & outdoor hobbies (snowboarding & rock climbing)

Programming: switching to Linux at ~16 and recently making the move to a Macbook

programming/life: taking up a project i thought i would never be able to pull off but now am 70% done after almost 9 months and countless new stuff learned.

Life: Letting go Programming: Choosing to learn simple code before going to complex ones. Revisiting code I do not understand and learning the logic.

Life: Doing what I loved first, consistently and without fear. Programming: Switching to emacs and dvorak.

This should be on Quora.

Life: Deciding that I want to make a difference in the world. Programming: To start programming.

Probably beginning to practice Judo in 2003. I dropped 50 lbs and changed the trajectory of my life.

life: going to study abroad as an exchange student.

programming: learning ruby in 2001. Not the language per se, but the community at the time was full of smart people (lispers, smalltalkers, random PL geeks) and dumber people like me would learn a lot.

Life: Immigration

Programming: Embracing the cloud

Life: While I still play sometimes, I have almost left computer games behind.

Programming: Learn python

Life: Losing money in a scam. Disillusionment is the greatest gift.

Programming: Stopped being scared.

life: becoming a father, stick with it and try my best (i was twenty)

coding / professionally: just say yes, you cant fail - and if you fail its much much better than having said no from the get go. (oh, and know your pricetag)

Started riding motorbikes. I never knew such fun could be had.

Life: Saying no.

Programming: Saying no.

Live: being honest

Programming: Learn how to program.

Programming : learn javascript

Life: Lived what I wanted.

Programming: Programmed what I wanted.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact