

Ask YC: "Get things done" Motivation? - brooksbp

about: undergrad CS/ECE. summer internship developing code for routers/switches.  involves kernel-level programming in C with networking emphasis.<p>problem: I know, feature-wise, what I have to achieve.  Though, it's in C, so I don't quite have the experience to judge how much code or time it will take; have a good estimate, but no super-god-like hacker experience.  But the work is really boring.  It's like implementing network protocols in C and doing other boring OS-level programming.  Project is spec'd out.  Waterfall dev model.  The whole shabam.<p>I CAN'T GET MOTIVATED. I've written ~700 lines of code, roughly 30% done.  I feel that if it was in a higher-level language I could just suck it up and hack it out within a week.  But every time I try to muster up motivation I can't keep it up; and C really, really doesn't help.  Feel like packing bits and not really achieving anything via my code.<p>Is this just the consequence of an academic-oriented, theoretical mind taking up a typical SE internship? Or am I really just inexperienced and whiny?  What do you do or what have you done in the past to overcome projects that you know will take ~1-3 months of really boring work (dead-line driven)?
======
brooksbp
EDIT:

The only really thing I've been trying to do that will keep me focused is
trying to learn C better. Writing more elegant code, reading books like
"Expert C Programming", etc... but at times, I feel like this might be counter
productive because it's not really helping me get work done, it's just helping
me understand the code and refactor it in a better form. It doesn't
necessarily boost my short-term productivity, but good for knowledge of C and
long-term benefits.

I am a language-junkie though, and still relatively young in academia world. I
feel as though if I'm not reading papers published on SIGPLAN, reading RSS
(reddit, news.yc), doing school-related work, doing research, talking to
professors, etc... then I'm not that excited.

Maybe software engineering isn't for me? Or is this project/company just too
PHB-like and traditional? Thoughts? experiences?

Thanks for the feedback because I've been wondering this for a while and
always doubting myself, but I love CS... just would like to hear what other
people have to say about this.

------
qhoxie
Well, I tend to do the work - pleasure - work cycle as much as possible, just
to keep myself balanced. On top of that, since you mention you enjoy working
in higher-level languages more than C, here is a recommendation that has
worked well for me: When you get stumped by a function or the like, pull out
your favorite scripting language, and write up a solution in it. After that,
adapt it to C. This process gets more and more efficient as you do it.

~~~
brooksbp
I wrote a prototype in Perl ~300 lines within a few days. The C implementation
is just taking forever and involving too much pure software engineering
overhead that I can't stand. It's driving me away. I can't get motivated. Too
boring, too simple.

It's like trying to find a needle in a haystack (extremely boring task that
will take a while without proper tools)... but every time I start looking, I
start wondering how I would construct the barn differently, or how the stack
of hay came to be, if it could be organized to find the needle more
efficiently, or who owns the barn and what they plan on doing with the barn
and the needle and the hay... etc...

you see?

------
noodle
the hard reality is that the environment you land in after academia is a grab
bag. you won't know what you're getting, for the most part, until you're
sitting in your cube, doing work. it might be familiar and easy, it might not.
you're in an internship, so ride it out and if you don't like the work when
you're done, go somewhere else.

pounding out work is difficult. schedule a timer like studying where you
_must_ sit and do work for a half our and give yourself a 10-15 minute break
to do whatever you want. keeps your mind fresh.

------
prakash
<http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive>

look under giving up and lifestyle.

------
DanielBMarkham
In the interest of brevity: Suck it up, kid.

There are two types of work: stuff you do because you love and they would have
to pull you kicking and screaming from, and stuff that needs to get done that
nobody else is doing.

Startups (and the rest of the real world) are a combination of both. It's
perfectly fine to pursue your dream, count your daisies, run with the wolves,
or whatever else metaphor you want to use for having more control of your
life. But guess what? When you get there, some bozo has to write the C
protocol code, or something similar.

Get used to doing sucky things to the point that you don't let you boredom or
lack of motivation keep you from chasing your dreams. It ain't nothing but a
thing. Do it well. Learn the Zen of programming.

So much for brevity. (grin)

