Ask HN: what was the best life/programming choice you ever made?

193 points by batgaijin ↗ HN
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.

229 comments

[ 3.3 ms ] story [ 270 ms ] thread
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.
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: 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: 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: 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: 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: Leaving my comfort zone and moving abroad.

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

My most important decision was having a child. Returning to my first love, Lisp, pales in comparison.
(comment deleted)
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.
Could you explain what you mean by "its role in this era"? Do you believe academic institutions are becoming more or less relevant?
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.
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: Doing what I loved first, consistently and without fear. Programming: Switching to emacs and dvorak.
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

Life: Moving to the United States Programming: Discovering Lisp after 15 years.
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.

(comment deleted)
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. :)
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: 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: 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: 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.

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

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

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

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

(comment deleted)
Accepting that there are better programmers than myself, and subsequently listening to what they were saying a bit more closely :)
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!