
How do I keep the passion and energy up after 17 years of writing software? - marcopolis
http://workplace.stackexchange.com/questions/18345/how-do-i-keep-the-passion-and-energy-up-after-17-years-of-writing-software
======
wpietri
Interesting question!

As somebody in a similar age bracket, the things I do:

Stay healthy. My energy levels are generally great if I am getting plenty of
exercise and good sleep. And avoid eating junk, throwing off my sleep
schedule, or having big worries.

Do things that matter to me. A few years back I was doing consulting that I
got burnt out on. So despite a very lucrative bill rate, I said, "fuck it" and
joined a friend in a startup. He had a problem that I really wanted to see
solved.

Work with people I like. If I'm going to spend most of my daylight around
people, I want to enjoy it. I generally like people, so this one isn't too
hard for me.

Serve people I like. If I'm making something for people I care about, this is
a big motivator for me. It definitely helps for me to actually meet users,
watch user tests, and see stats that demonstrate that what we ship is making a
difference.

Minimize my commute. I know that some people don't mind long drives in
traffic, but I'm not one of them. I live in SF and have occasionally done gigs
down the peninsula; it quickly drains not just my enthusiasm, but my will to
live. I want to spend my energy on things that are actually productive, and
rush-hour traffic is not one of them.

I look forward to seeing what others say.

~~~
gorbachev
+1 on minimizing the commute. I switched jobs some time ago in large part
because my commute was slowly killing me. I couldn't be happier.

------
lambdasquirrel
You ever listen to the first movement of Mozart's 25th symphony? And then
contrast that with the second movement of his clarinet concerto? His 25th
symphony was one of his earlier works and his clarinet concerto was one of his
last. His clarinet concerto is a technically more interesting piece, but would
you say that you think the latter piece is more than the other, based on those
technical grounds? I like both pieces for different, indescribable reasons
that go beyond technical depth.

I think one of the problems of creatively-oriented endeavors is that we
confuse mastery with fulfillment. The smarter and more talented you are, the
easier it is to fall into this trap. We chase hard problems instead of
noticing the interesting problems that lie at our feet, hidden in plain sight
amongst our daily dirty work. We chase braggable successes instead of
indescribable play. And then we get bored and quit, sometimes without
accomplishing much depth at all, and it's not obvious until you step away from
it all to take stock of it. At least that's my two cents on it.

------
Thiz
After 20 years of programming ten hours a day I took a two year break. Didn't
code a single line all this time. Now Android got my interest picked again and
been having fun learning all I can like in good old days. Ten tabs open in
StackOverflow looking for answers, another ten tabs in android docs, ten more
with samples and widgets, oh boy, that's my kind of coding fun.

So, take a break, do something entirely different, then come back refreshed.
There will always be something new to learn waiting for you.

------
jmcdowell
I'm still very young compared to the original poster on stackexchange, however
a comment in that thread reminded me of something I did myself which filled me
with motivation.

"And finally, if you get a chance, help students with things. For example I
judge and coach for Imagine Cup (sponsored by Microsoft) but I am sure there
are equivalent things in whatever tech field you're in. This is a self-
selected group of passionate and innovative young people who are building
something they think will change the world and make them rich, and spending
some time with them will get you fired up again, I guarantee! My first judging
trip left me feeling ten years younger, so now I'm hooked." \- Kate Gregory

I helped out at CoderDojo ([http://coderdojo.com/](http://coderdojo.com/))
whose primary participants on the days I helped were 10-15. I helped the kids
out with programming, learning myself and helping them program quadcopters
amongst other things. Seeing the enthusiasm the kids showed and hearing what
they were trying to build in their own time was incredibly inspiring. If you
can, see if there is a local club teaching kids programming, I'm still only a
university student but the club I helped out at were incredibly eager for
anyone with coding experience to come in and help out. I can only imagine how
happy they would be with someone with that much experience helping out.

------
jakejake
I actually find this a really interesting question and as an older programmer
I'm interst... QUESTION CLOSED. TOO BROAD.

------
gorbachev
I've been around about the same time as the OP. I've had ups and downs, but
honestly this is a GREAT time to be a software developer.

I can't remember a time where there has been such a large number of truly
interesting technologies around. And there are open source solutions to
everything.

You can pretty much pick a new thing every week and you'd be still learning
something new next year.

And with the way the job market is these days, you don't have to settle for
that boring tech job either. Get out there, get yourself into a job that lets
you work with exciting stuff.

------
zinssmeister
I think a few months or a year (depending on your cash in bank) of
traveling/exploring other things aka a sabbatical to recharge the batteries is
great.

------
tluyben2
I use a mix of things after 20+ years of fulltime code:

Exercise: I don't sit during coding for the last 3-4 years and I will never go
back; I walk behind a standing table, I set up a small gym in the garage I use
30 min / day and I take walks with the dogs for 1-2 hours/day.

Do new things: these might be considered risks but I don't really care; I need
new tech to keep learning; I know my company would benefit most from doing the
same Java enterprise web stuff forever, so I sold my shares and went on to
something else. I probably would've been depressed and bored by now if I
hadn't done that.

Lot's of hobbies: even if they are computer related, they will feel like
something completely different. I restore/upgrade old (end 70s/80s/begin 90s)
hardware and program software for it; it feels like working on an old relic
and getting it to life.

I happily walk behind my computer and write code after 20 years, still in
amazement how we can create so much something out of nothing.

------
wsc981
I agree with most people here: stay healthy and keep learning new things. To
me the learning process is quite fun every single time. And often you'll find
while learning that you don't like some kind of technology, but at least you
can reason why. But the few times you do like the new tech, you might expand
your options to whole new horizons.

Currently I've learned:

\- TI Basic (when I was very young, for the TI-99/4a)

\- LotusScript (ancient tech, yay!)

\- Visual Basic (the horror!)

\- Objective-C (cool language)

\- C# (sweet language)

\- Java (yuck! - the crappy version of C#)

\- a bit of HTML / JavaScript (hate browser differences)

\- Python (pretty nice language, except for the indent requirements)

\- Django (pretty cool framework, but eventually didn't "click" with me)

\- C (cool language due to very small library, still need to figure out some
pet project to use it on).

\- Xamarin (very nice to build iOS / Android / WinPhone apps with 1 language
but still optimised UI per platform)

\- SQL (I know enough to get around databases, but don't particularly enjoy
this)

Hoping to pick up Lua in the future, perhaps in combination with a C or
Objective-C program. Dabbled a bit in OpenGL, would like to make a real game
with it one day, not just the very lame Pong clone I created.

If you don't enjoy learning new stuff, better move out of software development
I think. Cause you won't invest your free time which means you'll get behind
on other software developers who take their job more seriously. This in turn
might make you much harder to employ.

Also: put stuff out on Github, be active on StackOverflow. Since I've put
several (mainly abandoned) products om my Github this week, it seems a lot
more recruiters have shown an interest in me. Though maybe it's just
coincidence, I'll have to see how it works out in the long term ... Anyway,
having some pet projects in different languages that interest you on your
Github, might make it easier for you to pivot into new areas.

~~~
JackMorgan
If you are looking for new languages, you should check out this list.
[http://norvig.com/21-days.html](http://norvig.com/21-days.html)

I was finding diminishing returns learning languages that were really just
slightly different notations: Java, C#, VB, Perl, Python, Ruby, PHP. Each new
notation felt more tedious and less thrilling. Then I started struggling with
deep questions like, "these are so similar, why do they all even exist?"
(Which is a great way to make new enemies).

Then I found that list and started with lisps. That's kept me fascinated for
at least 3 years, learning macros from Let Over Lambda, abstractions and FP/OO
from SICP, interpreters from PLAI, and syntax from Clojure Programming.

I just started learning type theory from F# Programming and Real World
Haskell. I'm hoping to get bitten by the "Types Bug" just like I've been
bitten by the macros bug.

Next after that I'm going to start learning APL/Q, and read the dragon
compilers book, but at my current rate that'll be a few years out still.

I think it's entirely possible to keep circling around, learning new notations
for the same old Java-like and Perl-like paradigms, and it's good to know
what's out there in those domains, but don't stop with just those two!

------
Nursie
Work with good people. Work for yourself (own projects, freelance,
consultancy). Use your experience to work smarter than the young ones (and
your peers if you can). Take adequate downtime. Travel the world. Specialise
in technologies you find interesting.

Seems to be working for me :)

------
WalterBright
Invent a new programming language.

~~~
jbrooksuk
Been there, done that. Wasn't as fun as I thought it'd be.

------
lectrick
Learn functional programming, then apply those techniques to your language of
choice.

------
plg
Do something for the fun of it and/or the challenge, or to see "what if",
without worrying about whether you can monetize it. This is of course assuming
you've paid your bills already ;)

------
kamalhussain
Exercise regularly, eat organic, pray, meditate, attend good conferences, pick
up a new domain such as "Internet of things" and create beautiful products
that inspire you.

------
coldcode
Keep doing something new. After 32 years, I still love it.

------
paulhauggis
I don't know how you do it when you work for someone else. I've been
developing software for 15 years and mis-management, ridiculous corporate
culture, and being forced to work weekends to make up for the mistakes of my
superiors nearly drove me from development completely.

Things got better when I started my own company.

------
squirejons
in this thread, a lot of rationalizing going on, trying to avoid the basic
truth that IT/programming is for the most part well-paid wage slavery, and
working at a desk/cubicle 40 hours a week, 50 weeks a year, year after year,
decade after decade is an unnatural condition, akin to a form of torture.

