

Ask HN: How should I pursue my passion? - jlongster

Dear HN,<p>As a community of creative, passionate, and ambitious people, I have a question for HN.<p>I am at an interesting point in life.  I am 25 yrs. old, and I am a programmer.  I know what I want to pursue, but I don't know how to do it.  I have tried.  I saved up money and quit my job 2 months ago to pursue my passion.  I am going to move to a different city in a few months anyway, so that decision was low risk and easy to make.<p>My "passion" has many sides.  I love 2d/3d real-time graphics.  I also love programming language design.  I am deeply devoted to the Scheme programming language, and I love using it to construct 2d/3d worlds which I can interact with.  I like games, and obviously I should be working with games, but I definitely don't enjoy game programming (game logic, AI, etc.).<p>My love for programming language design leads me to compilers, syntactual abstraction, macro transformers, etc.  I believe that graphics programming is currently bulky and complicated, and I would like to see more languages compiling itself into vertex/geometry/fragment shaders, scene graphs, etc.<p>It's been 2 months.  I have found that I haven't even been able to work on the things I'm interested in - I have to make products that sell, right?  I've been developing an iPhone game, and 95% of the work has been making 3d models, putting graphics together, marketing, integrating audio, developing a menu system, integrating fonts, and building the actual game logic.<p>It's a struggle.  I want to do research, and I think I'd be good at it.  But I have to make money.  It's either one or the other, I can't possibly do both at the same time, unless I get paid to do the research I want to do.  I'm going to finish my iPhone game, but I doubt I'll make much off it.  From here, my options are, in order of preference:<p>* Work on a graphics engine and do the interesting work.  License it and sell it for something like $100/license.<p>* Find contracting work to do graphics programming for games.<p>* Look for part-time contracting work and work on the interesting stuff on the side.<p>* Get a normal full-time programming job and try to be satisfied.<p>These are in order of "passion &#60;=&#62; practicality".  The problem is that there's a linear correspondence to "lack of money &#60;=&#62; money".<p>With all that said, I truly do believe that if I was somehow funded for a few years, my passionate work would truly pay off and I could start making money off of it.  It's a bootstrapping problem.<p>I would also love to meet people with my interests and/or passion.  I know you are out there, those who can either supplement or complement me with the same or different talents, and I want to be shaped and inspired by you.<p>I hope this doesn't sound like I'm whining.  I think it's extremely important that you figure out how to do what you LOVE in life, even if it takes a long time to build up to it.  I'm not looking for quick solutions, I just want to know how I can build up to it.  Any advice?<p>You can see the work that I've been doing here: http://jlongster.com/blog/
======
tjic
IMO, your passion is far too broad. You like graphics, programming language
design, research, and three other things.

To be brutal, it sounds like what you're in love with is noodling around, with
no particular deliverable.

As Jobs said "real artists ship".

My two pieces of advice:

1) keep honing your ideas until you've got something that is: * bounded *
achievable * of interest to someone else ...then try to develop and productize
that

2) in the mean time, keep the lights on and Ramen cooking by doing some
contract work. It's a challenge to keep booked up 40 hrs/week, even if you're
trying, so you shouldn't have trouble keeping it down to 20 hrs/week, and
working on your passion in the other 20-40.

~~~
jlongster
Thanks. I completely agree. I have downplayed the option of part-time contract
work for some reason. That's probably the best fit fore my life right now.

Thanks to everyone else as well, it's great to get feedback. I won't respond
to everyone's post, but it's all good ideas. I mainly want to contribute
valuable work to the field of CS, so doing either part-time work or graduate
school is good for now.

------
diiq
As an artist, I can offer a third option: don't try to make money doing what
you love.

I laid out a budget that would keep me alive --- food, shelter, etc.
Essentially, what it would take to be personally ramen-profitable.

Then I made a budget of what it would take, minimally, to keep me doing what I
think is important.

I added them together, then looked for a job that wouldn't exhaust me, and
would leave me with that much money. For me, that amount is below the poverty
line --- so it's not that hard to find a fast-food job that will keep me above
my personal happiness line without wasting too much of my energy. And when I
sell some of my art, that money is bonus.

I think that if you've discovered the contribution you _want_ to make to
society, and if society isn't willing to pay you for it, then don't, for the
love of god, cave in! Just give society something that it wants (burgers
flipped) and leave your mind and body available for what you know is
important.

And if something better comes along, you have no reason to regret leaving your
job. You can always get another just like it.

[edit] If tjic is right, and he might be, then I am wrong. If you're going to
do what I just said, be sure that the product of your passion will be worth
removing your talents from the market.

------
prospero
It sounds like we have similar interests; I've been working on a library for
Clojure which wraps OpenGL and allows for shader programming in an idiomatic
DSL. It's been a lot of fun to develop, and I agree that graphics programming
has a tremendous amount of incidental complexity. Trimming away the fat is a
deeply satisfying experience.

I don't really have the same commercial ambitions as you, but a few things to
consider w.r.t. your first option (developing a graphics engine):

* Lots of people have a vague ambition to create a game. The number of those who will spend money towards that end is much, much smaller.

* Any graphics engine worth purchasing will need to implement a lot of "boring" stuff. You can probably punt on AI, but fonts, audio, and menu systems are non-negotiable.

* It will be pretty hard to sell a graphics engine if there's not a prominent success story to go along with it. That means you'll have to create a popular-ish game, or convince someone else to.

If you can support yourself on part-time consulting, go for it. But make sure
any work you do on your own time is worthwhile in and of itself, rather than
with respect to some future payoff that may never happen.

~~~
jlongster
Interesting, is your Clojure code released?

You are right about the boring stuff. It's overwhelming, of course, but if I
truly went down the route of developing a graphics engine, I would take the
risk of investing lots of money and time for implementing both the
"interesting" and the "boring" parts. Fonts, menus, etc. aren't that hard, but
it just sucks to be doing it _instead_ of the interesting stuff. Doing both
would be alright.

But in the end, you're right. For now, I'll probably start implementing my
ideas purely by themselves. It'll be great fun doing so, and if I think any of
them are worth pursuing, I can flesh it out with the boring stuff.

~~~
prospero
<http://github.com/ztellman/penumbra/>

It's very much a work in progress, but there some interesting stuff in there.
Especially of note is the GPU-driven Mandelbrot viewer
([http://github.com/ztellman/penumbra/blob/master/src/example/...](http://github.com/ztellman/penumbra/blob/master/src/example/gpgpu/mandelbrot.clj)),
where the shaders are syntactically and idiomatically indistinguishable from
the rest of the code.

Every graphics engine I've seen focuses on performance rather than
expressiveness. With current trends in graphics cards, that seems more a
matter of custom than necessity. It's an exciting time to be working on this
stuff; there's huge swaths of unexplored territory out there.

~~~
jlongster
Very interesting, thanks. I'll be thinking about this more. I was thinking of
building a compiler which compiles sexprs down to something like GLSL or
possibly even lower (GPU assembly).

------
maxklein
Well, if you're interested in programming 2d running games like Mario or
Canabalt with cocos2d, I'd be interested in a partnership. I have a powerful
cross-promotion network to push any game. Also have some funds for purchasing
graphics, and have hands for manual labour.

I think the side-scroller market is a good area to be in in games.

~~~
jlongster
I would definitely be interested. Sending you an email now.

------
csomar
Having passion is not enough, you should work something.

I love philosophy and wants to do some free mind thinking, but I couldn't do
it all the time. I just take few hours each month, I like playing with Dog, it
takes few other hours also.

So do whatever thing you like, there's no problem with it. If you don't want
to get a 9-5 job, that's Okay, work as a freelance.

You can make a lot building apps for iphone, software for windows and services
for the web. This will make you busy and you'll work on things you love since
it's you who decide which thing to build/code and you are taking %100 profit
from it (and it's yours!! yay)

In your free time (will depend on your earnings), you can either build the
next big thing (startup) if your dream is to become a millionaire, or just
spend time studying gravity and other things you may love.

------
jeromec
I'm a big believer that passion can translate into making money on the
Internet. Passionately working on something is inherently valuable - that is,
it's at least valuable to the designer and others possibly as well. The trick
is merging passion with something either highly valuable, or having value to
many people. For example, being passionate about how bacteria forms on pennies
may not yield much future by itself, but tweaking that passion to possibly an
area of study for solutions to handling germ ridden objects like money could
be quite profitable. You already have one of the best things I can suggest: a
blog. This enables your potential value to be found. (one note: try having at
least one picture for every entry) Next, think of how you might fit your
passion in with existing lucrative areas. Last, continue to network/reach out
to others, including those that might back your passion financially. It may
take months, or years to cash in, but chances are you'd work on your passion
anyway, and I believe that's a great precursor to success.

------
nzmsv
There might also be the option of going to graduate school and working on
graphics. A language for geometry/scene graphs sounds like a plausible
research project.

------
messel
I'd keep shaving at the one thing that draws your interest the most with every
spare moment until it's super sharp. Whether it's redesigning a graphics
engine with Scheme or otherwise.

In the meantime, work with a friendly startup and start building up your
skills/network, or consult to pay the bills. I'd avoid a big company job
unless the culture is super.

------
barmstrong
This is a classic dilema: what you love doesn't pay well.

The solution is to try to AUTOMATE your income so you can spend time doing
what you love, whether it pays or not.

You can automate it by putting in the grunt work up front to build something
passive or save enough money to live off your net worth (rental properties,
investment income, etc).

I've explored this topic in depth on my blog,
<http://www.StartBreakingFree.com> if you're interested. Sounds like you're
off to a great start though, you're not alone!

------
andrewcooke
random probably impractical suggestion, but if you like scheme, maybe you'd
like smalltalk (they're both "purist" languages). and, if so, maybe research
at wherever alan kay is these days. at one point that's what he was doing
(interactive 3d worlds etc).

[edit: ps, also, if you don't have kids and are experienced you can actually
do pretty well at a day job _plus_ your own projects. i do it, and as far as i
know the people i work for are happy. my day job is contracting, but on long
projects and it's typically a mix of "the usual" and stuff that requires
fairly serious thought (typically numerical). at the same time i have worked
on side projects pretty much constantly - on the python parser "lepl" for over
a year, most recently. obviously if you have a partner they have to be
understanding (and/or equally obsessed with their own thing). i think one
helps the other - when work is tedious, side projects stop me from going
crazy; when work requires effort side projects get work on web design... i
enjoy both. i may be the very lucky expception, of course.]

------
vital101
I was lucky enough to find a job doing something that I love. Have you given
much thought to finding a full-time job where you could do 2D/3D real time
graphics? At the very least, you could be satisfied with the work you're doing
AND have money to live on. You could even go to grad school part-time and get
started on that research you are so passionate about. In any case, best of
luck.

~~~
absconditus
The problem with this is that his "research" work may be directly applicable
to his paid work. This might make things difficult depending on the employer.

