Why I thought I couldn't code

At Write Speak Code’s Own Your Expertise workshop, we did an exercise where we had to say one true thing about ourselves: something we were proud of, without the use of dissembling language. No trying to explain why it wasn’t really true, wasn’t REALLY that great of an accomplishment.

Mine was: “I’ve been building things on the web for 19 years.”

Which is totally true. I used the editor that shipped with Netscape navigator. I included a little “hand coded with Notepad” badge with my sites at one point, because I wanted to show off that my code wasn’t generated. I remember when tables were the way. I am a veteran of the Browser Wars.

But I didn’t venture into what I might call dynamic programming logic until about 4 years ago, though, which is the number I usually throw out there in conversation.

I love programming now. It feels like home.

I guess the reason I don’t say I have 19 years of experience is:

15 years is a long time to be aware of something and not try it. Sometimes I want to kick myself for not jumping into development sooner.

I thought it might be helpful for others just starting on the path to revisit all the fears that kept me from getting into dev sooner.

Here are the things that held me back:

I thought I didn’t really “understand” the programming classes I took.

In order to say I “knew” something, I thought had to understand it on a level that I completely internalized, and could explain it to someone else easily. This isn’t a terrible policy, necessarily – for defining mastery of a concept.

That is not a requirement for a beginner level knowledge of something.

I was able to complete the programming assignments I had in sophomore year – they were in BASIC, I think? I would get the right result for each problem.

But the constructs made no sense. Why were we looping things? Why would you want to do the same thing over and over again?

They were isolated modules – this is a variable. This is a function. It wasn’t building to anything.

There was no explanation of any of these things might be used practically, no class project to sum everything up. I thought I must be missing something – why would anyone need to know this?

I tried to teach myself how to execute scripts using CGI-BIN in an independent study in senior year, but I got frustrated, and no one at the school could help me. I tried to find resources online, but Google didn’t even exist at this point – I had no idea what to do. So I just… stopped.

I never really questioned that maybe the resources for programming weren’t good enough, maybe I was doing just fine with what was available. I thought I was stupid, that I didn’t “get it.” Which leads me to:

I thought I was not technical enough / not smart enough.

I went to an advanced math science high school, which was sort of a blessing and a curse.

I got exposed to some really cool stuff that I would never have gotten to see / check out otherwise.

But with my already dismally low self-esteem, being around people who were naturally gifted with AP calculus just made me feel like an idiot. I struggled. Surely that meant I was terrible at this. Surely I was not technical enough to be here.

I had already started getting pulled in by the arts, and this just solidified my judgement of myself – I was meant to be a “creative,” not a smart person. Those were two separate identities. I dropped my interest in math and science and became a theatre major in college.

No one told me that being successful in STEM fields required creativity – and that creativity often flourished when you had constraints.

I didn’t see any overlap in those personas. But there is a TON. I really wish I had known that.

Not to mention – CALCULUS IS FLIPPING HARD, especially at 16. It’s OK to struggle sometimes – you frequently learn more when you struggle.

I thought what I was doing already wasn’t really “programming”

Even after I was getting jobs as a web designer, I remember so many occasions when I said “Oh, I can’t do the interactive parts, I just do the look and feel.”

Which, in retrospect, is nuts. I was building the HTML, and later, complex CSS. What was hovering on links, if not a form of interaction? What was clicking?

But I told myself it wasn’t “real” development.

So if you are defining anything as not “real” – why?

Is your editor invisible? Do you sites not actually work? Are you using a fake language no one but you understands? No? Then it is real.

I remember when a company I worked for needed help with a Flash game, and though I protested my lack of “programming” ability, I thought I might check it out. I used Green Sock Animation Platform for Actionscript 3 and created a proof of concept. Soon those games became a regular part of my job, though I would always pad the deadlines and warn people I “might not be able to do it.”

I was telling people I couldn’t do it WHILE I WAS ALREADY DOING IT.

So for goodness sake, don’t necessarily trust yourself to define what you can and can’t do. You don’t know until you try, and sometimes when you succeed, you might not realize it.

I was afraid of screwing up

This is at the heart of it. All of it. I think I was just sure if people saw me struggle, saw me get something wrong, even once, they would know I was a phony. Not just at that one thing: at everything.

Not to mention real consequences: if I got something wrong in class, would that mean a lower grade? Would a lower grade mean not getting into the best college, not getting a scholarship? What if I did some scripting wrong: would I break my computer?

Looking back it seems stupid, but at the time, the consequences seemed so dire. It wasn’t worth the risks. I was terrified.

I sort of wish I had had more bad things happen – maybe then I would have seen it wasn’t the end of the world. A broken computer could have been fixed. College isn’t everything. Lately I’m not sure it’s worth anything. But as it was, it was sort of an infinite loop – I kept playing it safe, and doing okay and continuing down that path. For a long, long time.

Don’t do what I did. Take risks. Push. What is literally (not figuratively literally, literally literally) the worst that could happen?

Would it be so bad?

Well, even though I tried to debunk those negative thoughts – and I do hope it helped – it was sort of a downer for me to write. So I’m going to follow up with a positive post on why I did start learning dynamic programming, and why I liked (and continue to like!) it so much.