
Ask HN: what was the best life/programming choice you ever made? - batgaijin
For me:<p>Life: deciding that I wanted to take care of my body.<p>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.
======
scottmagdalein
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.

~~~
dissapointed
You are a weak man!

~~~
msutherl
No, he is a strong man.

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

------
kenjackson
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.

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

~~~
adimitrov
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.)

------
DanielBMarkham
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.

~~~
fatalerrorx3
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

~~~
merepro
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

~~~
fatalerrorx3
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

------
lhnz
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._

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

~~~
lhnz
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. :)

------
marcamillion
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!

~~~
brotchie
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.

~~~
marcamillion
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 :)

------
beagle3
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.

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

~~~
sonier
agree

------
lifehouse67
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.

~~~
itg
Are some people seriously downvoting this?

~~~
Anderkent
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'.

~~~
caw
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.

------
kstenerud
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.

~~~
msutherl
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...](http://academic.brooklyn.cuny.edu/core9/phalsall/texts/taote-v3.html)

------
jeremiep
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!

~~~
nsm
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....](http://www.ted.com/talks/dave_meslin_the_antidote_to_apathy.html)
[2]
[http://www.ted.com/talks/eli_pariser_beware_online_filter_bu...](http://www.ted.com/talks/eli_pariser_beware_online_filter_bubbles.html)

~~~
rwallace
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.

------
graeme
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.

~~~
da3da
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>

------
kamaal
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.

~~~
oz
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.

~~~
kamaal
Mailed you, Hope you will get it soon.

------
sokoloff
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.

------
daleharvey
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.

------
biscarch
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...](http://christopherbiscardi.github.com/blog//coursera/2012/11/30/the-
coursera-experiment.html))

Programming: Lisp.

------
akie
Life: Leaving my comfort zone and moving abroad.

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

------
emp_
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.

------
stickhandle
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%.

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

------
suhailpatel
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.

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

------
japhyr
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.

~~~
eshvk
> 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?

~~~
japhyr
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.

------
donnfelker
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.

~~~
fjordan
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?

------
jondot
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.

------
jacquesm
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

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

------
GojiMan
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.

------
j2labs
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.

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

~~~
sejje
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.

~~~
marcamillion
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.

------
rickdale
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.

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

~~~
donnfelker
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.

~~~
sejje
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.

~~~
gaustin
A good diet does not imply being calorie deficient.

------
lumberjack
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.

------
gaza3g
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.

------
meaty
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.

------
lazyjones
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)

~~~
ph0rcyas
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.

~~~
napoleond
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.

~~~
lazyjones
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.

------
talkingquickly
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.

------
ph0rcyas
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.

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

------
ajdecon
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.

~~~
vpans
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?

~~~
ajdecon
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.

------
anujkk
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.

------
davewasthere
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...

------
w33ble
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.

------
karterk
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.

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

~~~
anujkk
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.

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

------
Ixiaus
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.

~~~
ethanbird
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.

------
gregfjohnson
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.

------
crucio
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

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

programming: going to college

------
michielb
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.

------
TeMPOraL
_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.

------
brettkw
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.

------
shad0wfax
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]

------
Throw654-
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.

------
moco85
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.

------
kaii
Life:

\- 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.

------
theslay
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.

------
thiderman
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.

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

~~~
GFischer
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.

~~~
sivakumar_k
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.

~~~
bcambel
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.

------
jwmoz
Life: moving to London.

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

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

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

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

------
sfo2mnl
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.

------
dylanhassinger
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.

------
prezjordan
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.

------
meimnot
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.

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

------
delwin
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.

------
puzzlesky
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.

------
zem
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.

------
pknerd
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.

------
jjcm
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.

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

Programming: switching back into programming from management

------
namank
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.

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

------
mclemme
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

------
ishbits
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.

------
DividesByZero
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.

------
frostmatthew
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

------
notdonspaulding
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.

------
noinput
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.

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

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

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

------
egfx
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.

------
EddieB
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.

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

------
elorant
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.

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

~~~
joshuakarjala
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...](http://www.amazon.com/This-Modern-Art-
Matthew-Collings/dp/1841881007)

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

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

------
Achshar
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.

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

------
ChuckMcM
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.

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

------
earllee
This should be on Quora.

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

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

------
riffraff
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.

------
general_failure
Life: Immigration

Programming: Embracing the cloud

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

Programming: Learn python

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

Programming: Stopped being scared.

------
franze
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)

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

------
dsirijus
Life: Saying no.

Programming: Saying no.

------
nemoto
Live: being honest

Programming: Learn how to program.

------
syamks
Programming : learn javascript

------
rooshdi
Life: Lived what I wanted.

Programming: Programmed what I wanted.

