Hacker News new | past | comments | ask | show | jobs | submit login
I'm Slowly Losing My Mind (blackhole12.blogspot.com)
142 points by blackhole on Feb 11, 2013 | hide | past | favorite | 113 comments



Ah the existential crisis that is college graduation. Nothing quite like it. Certainly not for the clever and yet lost ones.

Eric is suffering from a common ailment, lack of an agenda and fear of employment. Suffering from tales of drudgery and pain that is the "9 to 5 job" he dreams of something larger, but because he has no agenda there is nothing to target, nothing to attack. I hope he avoids a game studio initally, they chew up these guys and spit them out as spent rags into the world suffering from post tramautic coding disorder.

Spend the summer after graduation helping people. People with real problems in the real world. Buy a one way ticket to another place and work your way back, drive from the polar circle to the southern tip of Brazil. Engage with the world, find the place where you can apply positive good with your skills and do that for a while. You'll feel better about yourself and the world will be better for it.

Or find someone you respect and you can learn from and join them in their quest to make the world a better place.


> I hope he avoids a game studio initally, they chew up these guys and spit them out as spent rags into the world suffering from post tramautic coding disorder.

I can second that one from experience. On the other hand games are an excellent school and will prepare you for anything from physics to systems programming. Once you get over the burn-out...


Third.

Happened to me on my first real gig. Weekends, nights, 4 all nighters in a row.

Not a game company, but ad agency.


I kind of wonder: what happens to people who start work at a game company, but just clock 9-5 and stubbornly refuse to work more? Are they fired, shunned, badmouthed in the industry? I never hear about them--kind of like I never hear about lazy medical interns, I guess.


It tends to suck you up. You might go there with the intention to do 9-5, but as a project starts to take shape and the deadline looms you can't help but try to do as good as you can and then a little more. I think if you can't stand high pressure environments then you will self-select for something a little bit more leisurely paced.

Surely there are such people in the game industry, it's even possible that whole companies can operate on a 9-5 schedule, just my bad luck that I haven't seen any :)


> I think if you can't stand high pressure environments then you will self-select for something a little bit more leisurely paced.

It's really too bad; I would love to work at a leisurely game company. Maybe I'll have to start one :)


9to5games.com? ;)


I don't know what's normal across the game industry, but I know that Valve uses a stack-ranking system: Every year, the least-productive 10-20% of the company gets fired.


Oh, they figured out how to measure "productivity" in a largely creative line of work? Surely they're not measuring LoC #s?


Recalling another HN article I read on Valve's process, and what Microsoft's own stack-ranking system is like, I think the parent's use of "ranking" is/was literal: each employee lists all the other employees in order of what they think their productivity is. These ranking-vectors are then multiplied together to give an average ranking. So nothing is being "measured" any more than polling the populace about the length of the Emperor's nose is "measuring" it. It's more a way of saying, the justifiably least-popular 10-20% are fired.


It sounds absolutely terrible. What prevents the organization from being filled with evil people just supporting one another? How come a organization filled with quiet hard-working people doesn't outmatch them?


No, they are ranked by their peers.


Do you have a source for that? Gaben is an ex-microsoftie, and I doubt he would repeat their mistakes verbatim.



> Engage with the world, find the place where you can apply positive good with your skills and do that for a while.

Isn't that called getting a job?


Depends on how you define 'job', if its something you do to make money so that you can do the thing you really want to do, no that wasn't what I was suggesting.

Engage with people outside of your Internet friends, you can do that easily at most churches, volunteers are always scarce, or with your any number of organizations in your community.

Depending on your life circumstances and the time of year you might not be in a position to live as inexpensively as you would like but the problem our author has is that he loves to figure out systems (cool) but doesn't have any meaningful systems to figure out (bad) so he's rewriting the systems he can get his hands on to burn up creative energy. And yet there are lots of broken systems that could really really use his help, and they aren't all technical.

Lets talk about Aaron Schwartz for a moment, I met him at a small conference we were both attending and I got to talk with him a bit about his aspirations for making information available. Organizing around that goal gave him tremendous focus. Our author doesn't have a mission yet, that thing he's going to do. He needs to find it, and to find it he has to stop thinking job vs recreation vs my time vs work time. He has to think, goal, requirements to achieve that goal, next one on the list. That will organize his life for him and he won't be going crazy any more.


> Buy a one way ticket to another place and work your way back, drive from the polar circle to the southern tip of Brazil.

Replacing one quixotic fantasy with another will only leave him with the same void inside him when he returns home and finds that he's in the same situation, only a little bit older. "Finding yourself" is a strategy for avoiding having to look at yourself; otherwise you'd simply say "oh, there I am" and be done with it in half a second.

Of course, the half-second version of the existential journey doesn't generate much material for blog posts.


You sound like (younger) me and you seem to be getting some flak here from people who should know better. And if you are like me, I've got some good news and some bad news.

The tl;dr is: Just hold on. It gets better. Much better.

The bad news: You've probably got a good case of ADHD, coupled with mild depression, the usual existential angst, all made worse by a huge impending transition. The "tools" you're building (I was building) were really giant abstraction layers between myself and "the real world" (if that makes any sense). I'd start out with a specific purpose of course, but falter as the scope expanded until I was trying to encapsulate all of reality (or possibility?). I'd get excited when I'd discover parallels between the projects I'd started and excitedly think to myself "wow, when I get this thing done its going to do everything! Its a whole new way to see the entire creative space!" Really they were just all running together like melting crayons in the global namespace of possibility. What you're feeling about these projects is inexperience. I know it doesn't seem like it, but it will looking back.

The hard realization was that the stuff in my head just couldn't be expressed by any real world media, even of my own design. Reality sucks like that. Worse, I only had so much energy in a day, and only so many days to live. If I had 10 lives I still couldn't explore half of what I already wanted to. The worst of all? Lots of people felt just like I did. They were better at most things than I was too. I was no-one special.

The good news: I think you'll probably just outgrow it. And I'm seriously trying not to be condescending here. I think I was about 25 or 26 when I noticed that my mind was starting to get "quiet" for lack of a better term(1). I didn't feel desperately pulled in a thousand directions anymore. All of those world changing projects I'd desperately started and only built 30% of when I was young turned out to be completely useless. But the experience I gained wasn't. The soul-sucking jobs that had seemed so impenetrable were actually made of interesting little problems that were fun to solve. Soon I was comfortable enough to strike out on my own as a consultant, then start a business.

I guess what I'm telling you, hopefully without even a hint of judgment or condescension is to hang on, I think I was a lot like you and it got much better for me through no special effort or grand insight of my own. I think it will for you too. Its just growing up. Not "growing up" in the awful, condescending way people say it when they want something from you. Just what happens. I truly wish the best of luck to you.

(1) Apparently this is fairly common for many adolescent sufferers of ADHD.


I appreciate how you describe what I've struggled to explain to others. The experience is a bit harrowing, and it's easy for a person in that position to discount the "it gets better talk". But it does, and in retrospect obviously so.

Combine your note with ChuckMcM's, and I think you'll come near where I've ended up: there are so many broken systems out there that need someone. In my case, I apply the little tricks I've learned to sidestep engineering problems. I was worried that I'd get stuck in some soul crushing drone job, and instead I found that even the simple systems are pathologically complicated. It's quite nice to know - deep down - that everything really is interesting if you look closely enough (my favorite misquote of Feynman).

Perhaps an alternate worry is that as a person who constructs systems, you'd act as the proverbial person with a (sledge)hammer, foolishly whacking every problem regardless of whether it's a nail or not. But that's just a matter of delicacy: everything improves if it's better understood, but not everything needs to be rebuilt from scratch. I guess experience just tones that down. Or the mind just gets quieter; I occasionally fear that I've lost something in that transition, but I can't seem to support that idea. It's not like the ideas ever go away, they'll just take a different weight, be less horrifically important, blend into the background noise experience and life create. Perspective changes a lot that way.

TL;DR: don't worry about losing your mind, you're neither crazy nor alone (is anyone alone and insane in a global network these days? I hope not!)


>The hard realization was that the stuff in my head just couldn't be expressed by any real world media, even of my own design. Reality sucks like that.

There is a term for this: Weltschmerz.


Ich kenne diesen Begriff.


The other good news, if it's ADHD, is that if it doesn't go away (or you don't want to wait), there's a lot of cheap medicine out there that works really well.


I'm not sure if this a good recommendation. According to this talk: https://www.youtube.com/watch?v=zDZFcDGpL4U ADHD are normal symptoms that occur when a creative mind has to perform dull tasks. ADHD becomes bigger and bigger problem, because today, there are much more stimulants that cause things like traditional school or work to be boring.

According to the speaker, curing ADHD with pills solves the problem by reducing creative potential of a mind. A better approach would be to create an environment where people with ADHD can thrive.

(Note, that I don't have any real experience with ADHD, this comment is based only on the talk).


I have a friend. He has to be listening to music, watching television, reading some article online, chatting with people, and playing some video-game--all simultaneously, all the time--or he feels like his mind is collapsing in on him from the weight of all his thoughts and ideas and ambitions. He often gets drunk just so he can concentrate on only doing one thing--composing a song, say. Even when intensely interested in something--watching a movie with friends, say--he can't actually focus long enough to follow the plot. He ends up having to ask for a summary because he has no idea what happened.

And this is in his optimal environment, completely under his control.

He is not "thriving." He is cache-thrashing.


>According to this talk: https://www.youtube.com/watch?v=zDZFcDGpL4U ADHD are normal symptoms that occur when a creative mind has to perform dull tasks.

Yes, ADHD denial is a very popular position. It has about as much backing in science as climate denial. The idea that ADHD meds reduce the "creative potential" of the mind is pure nonsense.


They did work some for me, but "really well" would be a stretch. Your results may vary...


But that shouldn't dissuade you, or anyone else, from trying. People have a visceral negative reaction to "ADD/ADHD treatment", as far as I can tell, because they think of it in the context of adolescent diagnosis, parents forcing kids onto drugs they don't need that turn them into robots because they aren't doing well in school, etc.

But if you're an adult--if you get to decide what does and does not go into your body--and you find out you might just have so-and-so condition and you could be much better off just taking this-or-that pill every day--and that the worst that can happen is that the pill just doesn't help--then you should forcibly shut down the ugh field[1] associated with the treatment, and just try it. If it helps, keep going. If it doesn't help, stop. If you don't like the way it makes you, stop. Just find out, one way or the other.

1: http://lesswrong.com/lw/21b/ugh_fields/


Depends where in the world you are from. The docs in Sweden told me I have to wait 30-90 days for treatment and that treatment itself will take even longer, and they are strict with prescription, many adults don't get any.


Yikes, that's awful. In that case, I can mark Sweden off of my "possible places to live" list.


It's actually better than 99% of the world. I just dislike it personally.


Sweden is actually on my list of places I'd like to live over all, but being able to get adequate treatment for my ADHD is non-negotiable.


There is a comment by MichaelEGR on the source link that is a good contrast to yours:

"Erik... I haven't had a chance to read much else on your blog, but I too quite likely would be considered a "delusional idealist" by society's standards. You seem to be on the path of the journeyman programmer and one day will be an expert and then some.

For some context I am turning 35 in less than a month and have yet to release my life's work which extends over 11 years of effort after my college degree. A significant amount of my efforts cover similar ground as your aspirations. I still live month to month (~$200 in my bank account right now and significant debt I incurred in following this path I'm still trying to manage). By the time that I do launch my effort I will have spent well over 15k hours on it. I often think about how life would be if I was paid my corporate contract rate for those hours.

While aggressive refactoring may occur in your efforts from time to time I suppose realize that there is an inherent truth and logic in ones work. For me it brings the only solid peace of mind in an uncertain / illogical world. It is the reason I'm writing this right now.

It sounds like you are just finishing up your degree... If possible move back w/ your family. Let me tell you... It sucks, it sucks, it sucks... I did for 3 years after my degree and faced daily admonition & nagging from my parents on why I didn't have a job. It was even harder to deal w/ their assumptions that I was "unemployable" / not good at my chosen path. Despite knowing none of that was true it's still hard when the only understanding most folks understand is your job / title / income one might gain from employment.

I even spoke at various conferences and this had no effect on my families opinion. I suppose you could say I lucked out after my first major tech conference because an O'Reilly editor was in the audience and I got an invite to the '04 Foo Camp. I distinctly remember sitting at a table chatting w/ the "Hot or Not" founders who were quite successful by that time. I remember desperately trying to conceal I was living in my parents basement, had no income, and what not.

Outside funding is going to be a bitch as unfortunately investors do not favor tools development despite how innovative they may be. You'll likely find yourself bootstrapping and need to release your work before you receive any sort of favorable discussion. The upside is that you'll retain 100% ownership.

Does it get better? I'm not going to lie... Things can get pretty shitty and daunting at times from economic to social relationships from friends to potential significant others. You may often find yourself pushed into out-group situations. I recently even faced this by general neighborhood friends of ~5-7 years.. Few people will understand why you may not show up too often on the weekends. It sucks when you stop getting invites to social events and see folks post pictures at them while you are working around the clock late into the evening Friday / Sat night. I can't even mention to potential dates that I run my own long term R&D oriented company and work nights and weekends quite often; doesn't matter if they work in the tech industry either.

Hah.. Well I have to get back to coding as the midnight oil has been burning since last night.

Don't stop... embrace the inherent truth / logic of your efforts... take solace that you can code fearlessly and without requiring permission from anyone else. You will rarely find this freedom as an employee or from inside the industry. Be bold and do things differently. It's not going to be easy by any means."


> For some context I am turning 35 in less than a month and have yet to release my life's work which extends over 11 years of effort after my college degree. A significant amount of my efforts cover similar ground as your aspirations. I still live month to month (~$200 in my bank account right now and significant debt I incurred in following this path I'm still trying to manage).

I think that says it all. The guy had a vision of something he was trying to achieve and fiveteen thousand hours later he is essentially no closer to his goal. Stallman is very idealistic but he managed to change the world. This is an unbalanced approach to life which will only yield pain. Attachment is suffering.


Oh my... Well, meh perhaps this is longer than it needs to be..

I didn't think my post to Erik's blog would be reposted here in entirety. I felt moved to post quickly on Erik's blog FWIW and didn't mince words. His post reminds me of certain aspects of thought regarding where I was at after my degree. The will to create is a mysterious thing.

As things go jrogers65 probably has no idea what I'm trying to accomplish or how far along I actually am or the personal funding I've sunk into this path (everything) over the years.. I too had a deep fascination w/ graphics & audio tech for some time and I knew in advance 10 years ago that I was choosing the harder path to innovate particularly through large scale 2D / 3D spatial audio, upping immersion in games / movies / all media in the home and venues, such that the path was fraught with a long term time span.

In pursuit of this path I assure you I probably have the best hacker den around while also supporting the R&D goals at hand. It wasn't cheap to build or now maintain while bootstrapping and is in a prime SF spot; can support upwards of ~6 initial employees; etc. Indeed this leads to a challenging month to month reality in regard to long term debt / build out costs and trying to free up time (IE rent $$$ in advance) to work in waves unadulterated at the tech at hand.

Besides relentless innovation often comes hand in hand with perfection, but sometimes there is simply just time to get things right. After the general economic dip around '08 it's clear I'm at earliest presently 5 years out to perhaps 10 years w/ my audio aspirations regarding product / market fit just from an economic angle; I can be more specific, but will save it. This general mismatch and the rise of Android being the fortuitous tech occurrence has given me the time to focus on creating middleware tools supporting the long term effort while "doing it right" and taking into consideration the next 10-15 years of software dev.

If one is going to commercialize middleware tools related efforts the bar is high when money is to change hands.. One is free to go the open / social path and release early and evolve an effort in the public eye and likely never gain revenue. This is a valid direction... I however plan to make a long term living from my efforts and the sweat spent now _should_ pay off later. It reminds me of a supposed African proverb, “If you want to go fast, go alone. If you want to go far, go with others.”

One can wish to get funded for something innovative / artistic / complex / before its time; one can wish to be independently wealthy and be free to pursue ones goals. Outside of those two general hypotheticals what is often left from there is just pure dogged persistence and yeah it's not going to be the most balanced life, but them the breaks. I at least love what I do and am fully committed to seeing my long term vision become reality not just for me (it already is here for me!), but for "you" / others; commercially too...

I hope Erik finds his path without losing the will to create something great; individually (at first at least) w/ commercial aims or more publicly via open source during the conception phase, etc.

In short... You do not know what you speak of jrogers65.. ;P


I hope I'm wrong about you and your endevours. I wish you the best of luck with getting your product out there.


>I can't even mention to potential dates that I run my own long term R&D oriented company and work nights and weekends quite often; doesn't matter if they work in the tech industry either.

If you don't mind me asking: why not?

Both you and the author paint a very romantic picture of your work. I can see how it would make maintaining existant relationships difficult, but this kind of thing makes twentysomethings who don't know you swoon in my experience. I'm probably not fully grasping the extent to which these feelings are debilitating. I feel like this as well from time to time, but it always passes quite quickly.

On the bright side: hang around art school kids and you will be worshipped :)


Hours later I regret this comment but it's too late to delete it, so I'll just put here that I now recognise that this is an outrageous humblebrag which adds nothing to the conversation and serves simply to boost my ego. I am ashamed of it and I'll try harder to restrain myself from giving out fatuous advice to people with real problems in future. :(


Art school students and cool.. ;P

There are always trade offs in life.. On the dating front at least. If I spent more time in general hanging out and out and about on weekends goofing around like many folks I'm sure things would work out differently. One has to consider that for me often I'm left to just generally low stakes / OkC derived meet ups.

Statistically speaking at this point I can say that coming across as passionate about ones life's work and mentioning that entails a day job at times and often night / weekend effort doesn't set the tone of being emotionally or otherwise available even though that may not be the case nonetheless it is best to can it on the first meetup... That is all.. It's bad enough being an introvert in an extrovert's world.. :)


I think the issue with the romantic ideal of burning the midnight oil while working on your dream is that it's not very conducive to actual relationship building with dates.

You may find someone special who really digs what you do, but you can only ignore them and keep them at arm's length for so long before they leave to find someone (perhaps less romantic) who will treat them as if /they/ were that important.

Certainly there are exceptions (mariner's wives come to mind) but I think this would be true of your normal random date. So, romantic? Sure. But the appeal has to eventually wear off and then there'd better be a part of you that you can devote to your partner.


I was recently (just a week ago) given notice from a doctor that i might have ADHD, I'm 24, they want to do more research.


I'd say ask people around you (friends/family especially) besides just taking a psychiatrist's or doctor's word. It is very easy to be diagnosed with something you may not really have because it's a complicated thing to tell if someone has a personality disorder and psychiatrists are a bit bias in that they are supposed to notice certain "cues."

Many teenagers or 20 somethings are stressed out from the drama and other junk that goes on during college as well. And feeling depressed is normal sometimes. If you are happy all the time then you probably have a different personality disorder lol.


I have a soapbox here:

AD(H)D is severely underdiagnosed. According to my own psychiatrist, studies have been done to find the base-rate of ADD/ADHD in the population--meaning not the people being treated for it, but the people who perfectly fit all the criteria and would respond excellently to treatment if it were provided--and it seems that only about 7% of the people who are "model candidates" for the disease, know they have it. And these are studies of adults, not children--people who have been living with strong, debilitating ADD/ADHD for years or possibly decades without any awareness or coping strategy.

Honestly, if I get Bill Gates-level rich, I'm going to dump my charity-dollars into ADD/ADHD-awareness. Disregarding how much better my own life has been since I started being treated for it, if all the people who are currently out of the work-force, can't hold a job, or underachieving at their job--who think they're just "naturally lazy"--and who could start achieving the things they want to achieve if they knew they had a treatable condition--got help--well, perhaps it's a bit optimistic, but I like to imagine percentage-point gains in GDP and drops in that mysterious "base unemployment" figure that just never seems to dip below 5%.

---

Also, just as regards "If you are happy all the time then you probably have a different personality disorder": ADD/ADHD is orthogonal to (clinical) depression--though you can certainly be depressed from all the ways your life sucks, and your life is more likely to suck if you can't stay focused and motivated long enough to achieve anything.

However, how I would describe my own state, previous to treatment, was, "perfectly content to be laying in bed all day doing nothing much at all." I had studied Zen long enough to just not be all that worried about doing nothing. There was nothing wrong with doing nothing. And yet, really, I was just avoiding setting goals I knew I couldn't meet, which is to say, any goals at all. Blowing away the fog of demotivation I was wrapped in for most of my life has not suddenly made me upset with the idea of laying around doing nothing--it can't do anything so powerful as changing your mind. But it has made me feel that much more is possible. And that has made me upset with the idea of wasting what is I can suddenly see as my potential.


See http://en.wikipedia.org/w/index.php?title=File:ADHD_Prevalen...

So what do you think the prevalence rate should be? How is it even a disorder if it affects 15%?


(This is a response both to you, and to the sibling comment:)

I would say that the best comparison is nearsightedness.

I imagine humans used to have, on average, pretty excellent distance-vision (we can't know for sure--eyes don't leave fossils--but "seeing clearly" seems to be something with a lot of selective pressure, as far as survival goes.)

But now that that selective pressure is taken away [have you ever thought "they're not attractive, because they need glasses"?] nearsightedness runs rampant, and just keeps getting worse as nearsighted people cross their genes together.

But does it matter? Of course not! The people affected just wear glasses or contacts. And then they're normal.

You wouldn't call a person wearing glasses an "enhanced baseline human." They're obviously the result of something going wrong, somewhere. The glasses are a crutch.

But still, we don't add moral judgement to "having bad vision"; it's not something to be pitied. We don't run donation drives to get poor people glasses.

But on the other hand, living your whole life being unaware that you're nearsighted, and unaware that if you just put on a pair of specs, you could read signs twenty feet away like a regular human being--that's a terrible fate.


  We don't run donation drives to get poor people glasses.
Actually, my church has participated in just such a donation drive. The main difficulty, I think, is that it's hard to get people the correct strength of corrective lenses out of a random bag of glasses. Just FYI, your main points are good.


Two things -

I didn't make a moral judgement on improving baseline humans, I just said it was a different lens to look through as compared to saying someone has a condition.

If ADHD is that prevalent (5-15% and severely underdiagnosed) then having ADHD is actually being a regular human being !

What is baseline or normal is highly subjective. There are enough near-sighted humans in the world to say that sight problems are pretty much just part of the human condition, for pretty much everyone at some point in life. Whether you consider a pair of glasses to be a defect fix or an enhancement is up to you. I place no moral value on either option.

Is this why you (or someone) voted me down? Because you assumed an implied criticism in my looking at ADHD remedies as an enhancement?

You'll find me the last person to argue that enhancing humans is a bad thing. I wanna live forever and have robot parts :)


> I didn't make a moral judgement on improving baseline humans

I meant more, when someone has cancer, that's bad and you pity them. Cancer is an Evil that we should Fight. Whereas we don't tend to think this about nearsightedness. It is, like you say, "part of being human." It's just a screwed-up part of being human that we universally reject and patch over without thinking too much about it. Like having worms[1].

The reason I wouldn't compare it to having robot parts, is that I don't want people to associate it with having robot parts. Because some people don't think we need robot parts.

Imagine if glasses didn't exist, and we had just invented them--with everyone already being as nearsighted as they are. There are some people who would insist--in the mode of thinking of glasses as an "enhancement"--that people should just "learn to cope" with their nearsightedness, and "use their willpower" (that is, squint).

It seems pretty clear to me that there is a distinction between "things people deserve to have to make them functional" (like glasses) and "things people could use to make them even better" (like, say, a Google Glass headset.) I want to be clear that ADD/ADHD medication should be thought of as the former, not the latter.

(And I didn't vote you down, if you're curious.)

1: http://www.radiolab.org/2009/sep/07/sculptors-of-monumental-...


Oh believe me, I know the mindset. It annoys the hell out of me.

As soon as someone mentions (for instance) hypothetical longevity treatments, some talking head pops up to tell you how it needs to be regulated and probably put on hold while we consider the societal ramifications and how fair it all is and really, philosophically aren't we all 'supposed' to live a certain length of time and that gives meaning to our lives?

And mostly I just want to punch them in the face until they shut up, because people that think like that will be the reason I can't get robot parts and live forever :)

So I can understand if you think it's important to frame the debate in a particular way, though I don't really make the distinction myself between your two categories of things.


That was kinda what I was thinking. If it's already at 5-15%, and severely under-diagnosed, maybe ADHD is just part of the human condition.

That's not to say that treating it then won't be beneficial, but it would be a different angle to look at it from - improving baseline humans through medication, rather than fixing some sort of defect.


Clearly some people suffer more from it than others. The question is, is it more like being short, which no one seems to think requires intervention, or like being nearsighted, which everyone does.


Not to mention that it would pretty fucking cool in a sim-city sense to watch what happens when you give a larger population strong stimulants. I remember watching a fascinating that posed the idea that the enlightenment was a result of caffeine becoming a regular part of the European diet. I wonder if you would see another explosive burst of productivity.


Even if it's under-diagnosed, that doesn't mean it's under-treated. The most common prescribed treatment for AD(H)D is a stimulant-- and how many adults do you know drink coffee, tea or soda for its caffeine properties?


Your approach to game development reminds me a bit of:

http://news.quelsolaar.com/#post42

>Game developers Conference was a very strange experience. I used to love going to GDC sessions, because there was so much to learn. As you evolve your skills that cant last, but now it feels like I'm operating on a completely different plane, I cant learn anything because I have nothing in common with anyone in "the industry". Almost no one is talking about programming, and when they do they talk about problems i don't recognize, and techniques i don't use. My "reinvent everything" policy has taken me so far away form what others do that I can no longer relate. I was talking to someone about size of code base and realized that their games code base was ten time the size of mine, yet we couldn't account for the difference in what our engines could do. Am i missing some point? Its like we have developed two completely different branches of evolution to solve the same problem. I found my self sitting in session after session thinking that I would never do anything they would do.

>What strikes me the most is how complicated they have made it. There are managers, producers, directors, scripters, leads, and assistants yet noting seams to become easier. Everyone agrees that's the way to do it, yet no one seams to prove it. Is no one asking why? We are doing the same things in games that we have always done, just now we make it so much more complicated for ourselves. Since what we could easily do in the past is now hard we cant do anything new, and we become stuck. Destructible environments now are hard, yet in Super Mario bros they where easy. We are raising the bar but we less gracefully clear it. We try to tell stories, yet we still cant do better then a text adventure. If we want to tell stories I cant understand why we make games at all.

http://news.quelsolaar.com/#post41


Honestly, it just sounds like you need to practice the art of getting things out there. It's a really hard skill to learn, but you only learn it by releasing little bits as soon as they are at least usable, and never a moment later.

After awhile you'll be more content with imperfection, and you'll realize perfection isn't really worth it (or feasible). And if you do start putting price tags on things, you'll learn how to make your dreams a financial reality.

You are just graduating, many people never learn this. Start shipping something now, because it takes a good amount of time to learn and improve this process.


Word to the wise - just stop. Get a life. Do something else with your time. Go see movies. Spend time with friends. Just sit outside in the sunshine and breathe the air. Do exactly nothing for a while. What are you trying to prove, and who are you trying to prove it to? In all likelihood you are not going to change the world one little bit. Enjoy yourself, it's later than you think.


The good news is that there is a demand for and opportunities for those obsessed with building entire tool chains from top to bottom (or at least with coming to grips with non standard stripped out libraries).

The typical application areas are bespoke high performance robust instrumentation; satellite communications, downhole radar systems, autonomous civilian drone projects, scientific instrumentation. Even gadgets like the recent leap motion device benefit from having custom drivers developed for it that seamlessly and compactly fill the layer between raw hardware and a clean and simple device API.

Erik may never get to reuse and apply the bulk of the code he's already developed but he can leverage the fact that he has built his own components as opposed to simply banging together existing library routines.

One way out of this particular hole might be to join a team with greater breadth and take on their demands as an external driving force.


Eric, I think you need to find your other half. Not a wife or girlfriend but your "Non-Competing Non-Biological Brother". Jobs had Wozniak, Brin has Page, and the list goes on and on from YouTube to Yahoo to Microsoft to Valve. A lot of big things are built when one man finds his non-competing other half. Men need other men to serve as a balancing force for their weaknesses and strengths. Otherwise you're going to end up like Nicoli Tesla and all the other brilliant people who died penniless.


Good art comes by embracing constraints. By obsessively building your own tools you are desperately trying to remove the very constraints that will cause what you create to be amazing.

Try embracing the constraints you so fear and see what you can do with them. Only once you have truly hit the barrier can you truthfully tell yourself the constraint is real and not imaginary, anyway.


A change in perspective can help, too. Instead of aiming for "perfect code", try finding the "perfect compromise" to get to the important work.


The silliest part of this whole article? "I graduate college in 2 months. I'm running out of time." Ah ha! You've got all the time in the world to practice & hone your craft, why the rush? Graduation is just the beginning, not the end.


After you graduate it's a lot harder to get student loans, though. This also initiates the theoretical paying them back phase of your life.


Not to be pedantic, but those who believe their time here is a scarce commodity are often driven to do great things (e.g. Steve Jobs).


why is that pedantic?


This guy needs to build something with the tools he's making. How does he know his tools are going to work well if he doesn't ever use them? I've built many tools in my day, but never in a vacuum.


A normal job will kill you. Source: I have a normal job, and it's killing me.

It's not really fun in the way that hobby programming is fun. What I really live for tho is composing music. So I'm considering either working part time (because I can't compose any more at all, due to tiredness from my job, so maybe I'd relax enough to do it), or switching career entirely and eking out a living doing composition for movies/games/whatever. But then that would turn it into a job, which would probably ruin it for me.


There is huge variability under the term "normal job". My last job (of many years), was starting to drive me batty. It was directly impacting me due to a high work load and travel, and secondarily hitting me with almost constant mental stress.

After making the decision to quit, I specifically sought out jobs within the same field at companies known for a more relaxed cultures. I found one and it has made a world of difference (been there almost 3 years). Top management on down want a "family friendly" environment with reasonable hours and no take home work. I can walk out that door guilt-free at 5pm, along with everyone else, and do my own stuff from then on.

Such a role maybe won't fulfill anyone's dreams or passions, but it might providing funding to pursue such things while maintaining a stable household and not incurring money stresses.


Erik, you commented that you want to do these things before you get tied down by marriage and kids.

In my experience, it does not tie you down; it gives you the most important, defining reason of your existence.

It is a lot easier to change the world when you have someone to change it for.


the phrase i see uttered time and time again throughout his posts (i've read three, now) is "then i realized that <library/component> sucks" followed by a self-indulgent pursuit to make a better <library/component> that ends in failure.

i am the type of programmer who loves to reinvent the wheel (albeit, mostly as a means of exploration) but i never approached it like this. this seems to be very self-destructive behavior rooted in the cop out of the yet-unvalidated claim, "i can make something better."

it seems as though many of his judgements are made before gaining an intimacy with the subject he wishes to work on. i would suggest an investment in actually refining his skill set. he may be able to see the need, but doesn't seem to understand how things got to where they are — an important step in moving forward.

i wanted to sympathize with his plight, but it seemed as though a lot of his suffering was caused by an unchecked ego. i think he'd be happy undertaking and completing some VERY simple projects — perfecting them before moving forward.


I've been much happier since I switched from trying to make a better wheel to simply trying to better understand existing wheels (by reinventing them).


Let's spill bit of hatred on the rooster's nest: "...box2D physics integration,..." Why not make 2D physics engine by yourself? The answer: just because it involves real research and development to make it. Do it well, and you will be praised, and nobody will call you insane. And what the author really does is a poor cock-a-doodle-doo with a custom string class.


Hey Erik,

Once you graduate, take a silly job for a bit (something not brain related) save every penny and then travel for a while. More perspective will help and you can't get that from sitting in one place.


I really want to go traveling. I've already taken a gig being an undergraduate TA this quarter in an effort to save up enough money to take me traveling if my last ditch effort at turning things around fails. One way or another I'm going to see the world before I turn 24.

That's something your little christmas gift helped a lot with - thanks again :)


What I read into this is a feeling I have to fight in my own work: it's easier, in an emotional sense, to fiddle around with your tools than it is to face the real problem. The amazing things you're imagining creating don't really need a replacement for std::vector to succeed -- people make great art with all sorts of tools way worse than the STL.

The way I fight this urge in myself (and balance it against the real need to occasionally improve a tool or library) is to occasionally make a project where I make a point of doing everything the most straightforward/simple/least-clever way possible, even choosing the hackier way when available as it makes me uncomfortable. I find it helps me reset my acceptability meter. Usually I find the project works out just fine, and all the things I imagined needed improvement were just avoidance.


I'm coming really late to this thread, but I'm going to comment anyway.

What I'd like to propose is the idea of the "success loop". It seems to me that you are stuck in this place where you get no positive feedback from your work.

The other way to work is to throw out a lot of small things, and then build on the things which work, and people find valuable. All of my large hacks have turned out to be the result of small hacks, positive feedback and collaboration.

Consider not focusing on the whole vision, but choosing a kernel, just one novel contribution.

The best ideas will attract other people. Once you have a bunch of minds working on things, it becomes like a relay where your analysis paralysis gets "routed around" by someone else.

If you can create this environment for yourself and roll with it, I promise you will have the time of your life.


Some technical advice, since most of the comments here are life advice:

Use higher-level languages like Java or AS3 or Haxe to flesh out new ideas wherever possible. You'll kill yourself using C++ to fully vet crazy new game engine paradigms from scratch, even if it's just the compile time you save. Once you've gone through your umpteenth refactoring in managed code land and are happy, you can do a source to source compile or something similar.

This strategy has really helped me in the past. In fact, one time I wrote a quick 2d Flash application before writing the full 3d C++ version that was my goal (for a haptics-based viscous fluid simulation). It really helped me get a "mile-high" understanding of the challenges before diving into the lower-level jungle.

EDIT: Oh yea, and never write your own GUI library.


Python is often very useful in higher-level language abstractions and has a huge commmunity developing many different things. Many big gaming projects have wrappers for their APIs programmed in python. Python used to be the de-facto for a lot of different gaming companies for the networking especially because it was proven to work.

I know Haxe is a higher-level language and pretty worthwhile, but my god the syntax of it makes me cringe. The portability in my opinion more or less may way out as beneficial for sure, but I'm not so sure I'd expect to give it much of my time.


Tools programmers for games are in demand. If you ever need to work for the man to pay rent you'll be okay.

Realize most people, probably 99%, just go to work ever day. That's it. They aren't revolutionizing industries, they aren't creating a new company every six months. You've been in school getting an applied mathematics degree and you are absolutely despondent that you aren't also running your own successful games company by now. By your senior year of college?

Not all companies are the same BTW, don't generalize your experience at MS to everyone. Apply at Valve: http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf

Or DoubleFine or TellTale games or Majang.


After reading your article, my friend recommended a pertinent Venkatesh Rao column, which you seem to personify to an extreme:

http://www.ribbonfarm.com/2010/03/18/the-turpentine-effect/


this is the blog equivalent to someone blubbering in front of the camera on youtube


Ha, that's true! Thanks for the analogy. Yet I sympathize with him in a way I never would a YouTube blubberer. There's something deeply poetic about a creative genius who can only produce tools. On par with Greek mythology.


I can see how it happens:

You start off trying to solve a specific problem. You then spot all these related problems, that you could solve by generalising your solution. You tell yourself that if you build a tool to solve the general problem, the solution to your original problem is "free", since it is only a single button push or function call away. It seems wasteful to make your code specific, when it can be general.

Before you know it, you are completely bogged down trying to write a general purpose tool and never get to the point where you can push that button, to generate the originally required solution. You are stuck producing tools.

An alternative is to tell yourself, and continually remind yourself, that you don't know enough about the problem space to write a tool. You must solve the original problem, in order to teach yourself about the problem, by example. The solution is a prerequisite to writing the tool. Once you have your solution, you can either a) use the experience gained to generalise your achieved solution, to form a tool, or b) decide that the general solution is not important and move on to the next project.

It seems so easy when written down...


I thought about doing this as well when I was younger in high-school and even in the beginning of college with starting my own company upon graduation where I'd actually get freelancers who wanted to do it just for themselves. It almost completely enveloped my life reprogramming a game to match ideas. I had this mindset that the people who really want to see great games are the players and the players so hellbent and fed up with crap games that they are willing to go to great lengths to program their imaginations.

I was much more on the analysis side of searching for projects that could do things better. I looked high and low for tons of platforms, libraries, and frameworks comparing them and seeing how they implemented the ideas. I came to the conclusion that some of them are pretty decent but almost all of them are rather bulky. And the ones that are not rather bulky in implementation aren't as separable/modular as they should be.

In my opinion it's not necessarily an ADHD thing as it is an creativity with games thing versus the constraining realities of programming (for corporations or not). I don't think I have ADHD I just tend to obsess over certain things for certain periods of time. In fact I like the way I am because I have an undying determination when I am focused on certain things that I do have some control over.

I still like reading programming concepts a lot, just not so much into spending hours upon hours rebuilding everything. Many companies just want something that will work. This is irritating to me as it is to many people, but it's the reality of the situation.

If your still hell bent on releasing some games my suggestion is to open source good parts of the tools you are developing if you haven't already and ask for support from people who really want to make games. I will definitely consider joining in on working on some projects for free if it means that better games are developed.



Thanks for the links, I'll read into them and might write some comments. Do you have an e-mail or skype account for contacts?

I know a friend or two who may also be interested and I'll point them to the projects as well. I think it'd be fun to try something new and create a team if possible.


My e-mail is erik2003 at gmail dot com.

I'd be interesting in starting a project or helping a team out, just be a bit careful because I have midterms this week and will essentially be out of the running until Wednesday.


I'm rather busy this week as well. But I will definitely e-mail you sometime soon. I need to contact some other people see if they are interested.


I took a 10 min break from another all night programming binge to check out HN, found this, realized it sounded like the story of my life, then realized that the majority of the comments are saying "yea that sounds exactly like me". It should make us all feel better to know we are not alone!


I suggest looking at Common Lisp for additional programming power.

May be relevant: http://www.lambdassociates.org/blog/bipolar.htm

"He can see far; further than in fact his strength allows him to travel. He conceives of brilliant ambitious projects requiring great resources, and he embarks on them only to run out of steam. It's not that he's lazy; its just that his resources are insufficient.

And this is where Lisp comes in. Because Lisp, as a tool, is to the mind as the lever is to the arm. It amplifies your power and enables you to embark on projects beyond the scope of lesser languages like C.

Writing in C is like building a mosaic out of lentils using a tweezer and glue.

Lisp is like wielding an air gun with power and precision.

It opens out whole kingdoms shut to other programmers."


Guy says he made an audio engine, graphics engine, game engine, and so on.

In order for these to be useful for a serious, high-quality product, there must be no perceptible pauses induced by garbage collection.

An audio engine in particular seems to need to run extremely quickly--on Mac OS X, at any rate. Perform this experiment: Pick your favorite music player, such as iTunes, play your favorite song, and run this:

  $ for ((;;)); do killall -STOP iTunes; sleep .008; killall -CONT iTunes; sleep .050; done
This simulates 8-millisecond GC pauses. On my fairly fast, modern laptop, this is too much--I hear a bunch of stuttering in the audio. (It's kind of surreal.) I have to cut the pauses down to 5 milliseconds to completely avoid stuttering. This goes for every program that produces audio output that I've tested. It is possible that audio output under other operating systems is handled differently, and that you could install a buffer of sound output for the next 50 or 100 milliseconds or whatever [it may even be possible to do that on OS X--I don't know], but I'm not betting on it. ... Besides audio, usually games want to maintain a certain refresh rate, such as 30 or 60 frames per second. 30 fps is 33 milliseconds per frame. If a pause lasts any longer (in fact, if the pause lasts [33 msec - <time to compute and draw the next frame>]), the drawing will stutter. Maybe you might think, "Eh, who cares? It's just a little stutter from time to time." If I've read this guy right, this is exactly the sort of thing he would not tolerate.

In order for such an audio library to be writable in Common Lisp, Common Lisp compilers/runtime systems will have to get their act together and ensure that the maximum GC pause time is less than 5 milliseconds on my machine, no matter how many objects are allocated by the program using the library.

In the absence of Common Lisp compilers/runtimes that can do this, there are two choices: write it in a different language, such as C or C++ with manual memory management; or write your own Common Lisp runtime + compiler that can.

I have gone down the latter rabbit hole. You may hear if I come out at some point.


You could write bindings for libraries he's wrote and write higher level logic in CL. It also appears (from google searches) there are ways to tweak garbage collectors in some versions of Lisp as well as ways to manually manage some memory? I don't know if they can be applied to writing audio or graphics libraries though.

I've ran your script. Was surprised lower milliseconds I wasn't able to notice the stutter. I'd have thought even 1 ms would be noticeable.

>> Common Lisp runtime + compiler

Would like to hear more about this. Have you written about it in a blog post somewhere?

One more point: Common lisp isn't the only option. There are other powerful functional languages out there. e.g. Ocaml which uses an incremental GC.


This is really ambitious, and fascinating for someone who (like me) has really never done anything serious in an environment that wasn't garbage collected. It brings up a fundamental question: what does it mean to release memory? How long does it take to release memory?

I assume that it involves sending some sort of signal to the surrounding environment. Either that or your program gets two "special" values that it uses to tag memory regions, and the OS periodically truncates (or adds to) your image when those tags reach certain thresholds.

If it's explicit, and a C function call that takes something like a memory address range as an argument what does the kernel do at that point?


How about a C process that only manages audio, which takes instructions over a socket from your Lisp program of what audio to play? You could even stream stuttering audio from Lisp into a user-space buffer written in C that smooths it out.


You like to make things. Good. Now you need to make things that people want to buy. Or go to work for someone who does. That will give you money, which will keep you alive.

And do not underestimate the value of staying alive. Food, insurance, housing, clothing, and the like is very good to have, and many people in the world don't have have enough of it. Your constantly decaying state is what will keep you sane, it's what will keep the pressure on to connect back with the world. Because to make things that people want to buy you have to pay attention to the world, and to other people's problems.

Right now you're consumed by your own problems. If it wasn't for the need to stay alive, I'm sure you'd stay in that head space forever, pretty miserably. Luckily, you get hungry and have to pay rent or the cops will come and force you out.

So you gotta make some money.

Money is not evil. People who give you money of their own free will are usually happy to do so because their other options are worse (such as, for example, not getting their projects done). Pay attention to that when you get a job: they are giving you money so that they can do more projects. That's it. Nothing existentially deep or particularly horrible about that.

The tough thing for a programmer with integrity is to learn to execute projects the wrong way, on purpose. There is a fear that coding the wrong way (the wrong language, wrong architecture, wrong idioms, heck, even the wrong code formatting) will somehow sully you. Nope, it won't. The codebase has momentum that is encoded in this structure and in the processes and people around it. It adds unnecessary, arbitrary complexity to even the most trivial of changes. Almost all installed codebases are this way or will get to be this way at some point.

Don't worry about that. It is not your problem. Your job is to learn to do it the wrong way to the best of your ability, to navigate (and perhaps mitigate) that complexity as best you can. (And don't worry, you'll be figuring out ways to sneak in 'the right way' soon enough.)

This job is going to take 40 hours of your life every week. (If you work for a game company other than Valve, double that.) That leaves about 8 hours of time on the weekdays and all day on the weekends free, plus vacation days. Learn to put your work down and do what you like - work on your pet projects, or your pets. Learn to ski. Buy a dog. Get a girlfriend. Outside of that 40 hours, it's your life, and as a programmer you'll be making good money. Spend it! Buy me a beer!

I would recommend strongly against a startup, given your level of agitation. When you are able to control your own mind so that you are able to focus on work, and then put it aside, then you might try a startup.

There is no need to give up your dream, kid. You just have to learn how to stay alive while you chase it.


> you need to make things that people want to buy.

How about putting it more positively as "things that people find so useful that they'll give you money for them"? Then you wouldn't need the extra paragraph to explain why money is not evil :)


Why does it have to take 40 hours of your life every week? Why not less?


I'm going to assume that your question is well-meaning. While there are indeed ways to make a good living working less than 40 hours a week, given the OP's state of mind, it seems to me that the traditional, straight-forward, easy-to-implement solution of a normal day job is what he needs to hear.

You don't burden someone who is badly in need with options. You give them solutions that work. Optimize later.


I'm questioning the hidden assumption that everyone should work five days a week. If the guy really wants to follow his passion a better solution would be to work (at a reduced wage, sure) part-time and thus have more time to work on his own projects.


Personally, I suggest the solution from the Four Hour Work Week. Paraphrased:

1. Start a company that passively earns money. It doesn't have to earn much, it just has to earn it with no marginal effort on your part. Though, earning more is better: ideally, your audience should be wealthy people in the Western world. Consumers who spend frivolously are good. Businesses are better. Big businesses who don't even remember you're on their balance-sheet are best.

2. Then, go live somewhere not in the US, somewhere with an extremely low cost of living, somewhere where that passive income goes a long way. (The book terms this "travelling", but you don't actually have to keep moving; you can pick one cheap place and stay.)

3. Do your life's work from there.


" By the time I had gotten enough money to "pursue my dreams", I would have gotten married and be tied down by kids."

Dear God, I hope this person never has children; or before he/she does that they have a serious change of heart.


Please, this comes across as quite insensitive.


Blackhole, I have the same problem (slightly):

I once coded std::vector and more why ? Bad education mostly, turn out that stuff is rather good :) Took me the hard way to find that out. I still need to replace all that code.

What I mostly learned: pick ONE thing, and assume you will spend 10 year to complete it as life will keep interrupting.

Also if you ever decide to code an audio engine again, could use some help :p (from a person like you) (find me on freenode.org)


My audio engine is open-source if you want to look through the code: https://sourceforge.net/p/tinyoal/

I rewrote std::vector so I could separate arrays of objects that have constructors/destructors and objects that don't. These are almost always used by other data structures, not by themselves. I still use std::vector when I just need a dynamic array that respects constructors and proper copy semantics. The problem I encountered was that std::vector refuses to integrate nicely with other data structures.

While I'm sure many would still cry foul just because they can and don't understand what I'm doing, I can assure you that my re-implementation of std::vector is purposeful and used in specific circumstances, not as a generalized replacement, which is the real issue.


My project is a bit ambitious, and throws out OpenAL :( And I don't think you'd like my coding style :p


And here I thought I was supposed to be the crazy one :3


I don't understand, why post this on Hacker News? "This is the blog equivalent to someone blubbering in front of the camera on Youtube"


I also often start but never finish a game programming project, and reinvent the wheel a lot (though not as far as reimplementing C++ strings, more like 3D and UI libraries and such).

Don't forget to open source everything, and maybe one of your reinventions of the wheel may land you a good job.

And maybe this means you're meant to be a systems programmer, not a game programmer.


With your amount of passion you can still work on your ideas after marriage and kids.


This story reminds me of the story of Blender http://en.wikipedia.org/wiki/Blender_(software) now one of the best 3D software packages available.


Brings back memories of http://www.imdb.com/title/tt0383028/


So you created your own string class?

Wrapped all the operating system's APIs in your own custom classes?

Built a lot of infrastructure on the theory that you might need it later?

Obsessed over the best way to shave some efficiency yak, without ever measuring whether it mattered?

Relax. You're a normal C++ programmer. I did all the same stuff, years ago. Now get a job at a company that doesn't suck, and relax. Try to get hired at Valve, or Blizzard, or some indie company. Don't work for the people you know suck and you'll be fine.


You sound terrifically smart blackhole, but you took on too big a project. Maybe. Maybe not. Maybe you can get the project outsourced (in pieces or as a whole) to get it done that way and become famous :)

Or continue doing it yourself (not recommended, but hey, if you are deriving some kind of joy from it...).

But whatever you do, take care of you for awhile. Love yourself. You are a good person.


Sounds fun, you are doing what you are enjoying and some aspect of collective consciousness are contradicting with your definitions.

Continue doing what you enjoy until you can't.

Life will provide if you put trust in it, if you don't, heh, it will provide with it also :D


I can relate to everything the guy writes, even in his comments, even in his previous article, http://blackhole12.blogspot.se/2012/12/dreams-of-failure.htm...

Fuck, it's scary.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: