# Programming Innocence

By Randall Degges · January 11, 2011 · https://rdegges.com/2011/programming-innocence/

> New programmers code without fear. Then worry about best practices, tools, deadlines, and critics creeps in. How I try to get that fearless hacking back.

![Warrior Sketch][]


I've been programming for a long time.  When I first started programming, I
would spend as long as I humanely could on the computer writing code.  Sure, my
code sucked, but I was having fun, and I was learning a lot.  Over the years,
this programming innocence left me.

The one true thing that can strip a programmer of his innocence is fear.  Fear
of not knowing the best way to do things (best practices).  Fear of not using
the right tools and languages.  Fear of errors (especially compiler errors).
Fear of schedules.  Fear of publicity (what will other programmers think about
this code?).  I suspect that all programmers experience those fears in greater
and greater amounts as they become better and better.

Programming innocence is a powerful thing.  When reflecting about this topic
in my head over the past week or so, I immediately began thinking of the best
programmers I know.  What do I respect about them?  What makes them so great?
I believe that in most cases, their greatness can be directly correlated to
their innocence.  The best programmers I know are the ones who naively charge
into battle: fearlessly removing code, spending days in complete isolation
getting a prototype hacked together, ignoring all critics and outside
influences.  These guys are my heroes.  They code ruthlessly in order to solve
their problems.  They yield for nothing.

So how can you regain your programming innocence once it has been lost?

Just Say "fuck it"

-   Found a more efficient way to write your code?  Implement that shit!  Don't
    make yourself worry about all you have to learn, just learn it.  Code can
    be enhanced over time, so don't worry that learning new things in the
    future will waste your time now.  Every time you write code, you grow.
-   Worried that your library / programming language / etc. will be outdated in
    the next few years?  Don't be.  Think agile.  When things change, change
    your code with it.
-   Feeling stressed out by that deadline?  Fuck it.  You are a hacking god.
    If you stare at the computer hard enough, the code will practically write
    itself.  Be confident in your abilities, and never be afraid to completely
    isolate yourself from the world, and code like an animal.
-   Do you worry what other programmers will say about your code?  Don't let
    that stop you.  If other people have a problem with your code, have them
    send you a pull request.

The moral is: when things bring you down, instead of letting them best you,
remain innocent.  Hack your heart out every day, and don't forget that the only
thing that really matters is how much fun you have along the way.


[Warrior Sketch]: warrior-sketch.png "Warrior Sketch"
