So when can I call myself a developer?

I wrote my first line of HTML in 2013 in a technical writing course at Utah State University. I had no idea what I was doing, but it was pretty awesome writing `<h1>Hello World</h1>` and seeing it show up on a webpage.

Now, it’s 2017 and I just finished writing my first WordPress plugin from scratch. I used PHP, JavaScript, Vue.js, HTML, CSS, and jQuery and several other technologies. Yet, I still wonder if I’m considered a developer.

(If you’re already bored, scroll to the bottom where I’ve thrown together a TL;DR paragraph. Or if you’d rather avoid a really nerdy article about coding.)

After my basic — and I mean basic — HTML course in 2013, I wanted to learn how to actually code rather than just writing some markup that could show up in a .html file.

I took an HTML & CSS course through Codecademy, and tried to build some simple websites. However, school work was demanding and in the technical writing program at USU, there was very little opportunity for coding (I hope this changes in the future with the tech comm program). In addition, I was working a couple of jobs to help pay for school and rent. So, learning to code got put back on the back burner until I decided to change my minor from marketing to computer science.

Computer science is a much different program than what I was used to. I was all of a sudden surrounded by some of the smartest kids at the university, and many of them had been writing code since they were 14. Several students in my intro to CS class had built entire programs from scratch. I had written probably 30 lines of basic HTML in my entire life. I was behind from day one.

I quickly learned that the CS program required hours upon hours of homework and learning. Before any of my CS courses, probably the most time I had spent on an assignment in college was 2, maybe 3 hours. Now in my intro to CS class, I was spending over 5 hours on coding assignments. In my second CS class, I had coding projects that took me 10+ hours to complete.

It was incredibly hard, and most the time I felt like I was just staying afloat rather than actually learning how to code. When I entered the program, I thought I would be learning how to build websites. Instead, I was learning how to implement binary search trees in C++. Sure, that was useful for the kid that was on his way to becoming Google’s next software engineer, but for me, it was just way over my head.

By the time I was in my final computer science class as a senior, I didn’t feel like I knew anything about coding. A lot of this was due to imposter syndrome. I realize looking back that I did create a solid base for learning programming, but I just felt way behind everyone else in my class. That’s what happens when you start comparing yourself to everyone around you.

To make a long story a littler shorter than it needs to be, I did eventually get my minor in computer science. I took 6 computer science classes and learned C++, Java, and got a tiny taste of JavaScript . When it was all said and done, I felt really accomplished getting that minor. I spent more time on my minor than my major in my last 2 years at USU, and I gained a ton of respect for anyone majoring in CS. Seriously, if you’re a CS major, I applaud you and also I’ll tell you good luck if you’re just starting out.

Many times during my degree, I had the thought “there is no way in hell I want to code for a living. I hate this.” However, every time I would stop coding and think about pursuing something else, I would almost instantly want to start writing code again. It was weird, and addicting for some reason. I can’t even really explain it, but if you’re a programmer, you’ll get it.

And here’s the craziest thing about it. I’m not that good at coding. It’s hard. In fact, one might even say I suck at it. I cringe at the words data structure and linear search, even though those are fundamental ideas in computer science. I get confused quickly and I doubt myself over and over again. I get stuck on a problem and want to give up. I’ll look something up on Stack Overflow, look through someone else’s code, and think to myself “I have no idea what any of this means”.

However when my code finally compiles and I figure out the problem at hand, I feel like a genius and I start looking for recruiting emails from Facebook’s engineering department. It’s a pretty cool feeling when your code works like you want it to and you look back and realize you built the entire thing. Building something from the ground up that you had an idea for is pretty thrilling (is this article nerdy enough yet?)

I still feel really inadequate at times when it comes to web development. Yeah I feel really confident with HTML and CSS and I’m comfortable piecing together some jQuery to get a website to function right. And yeah, I’m starting to figure out PHP to the point where I can write a script to write to a database. But I still feel lost, a lot. And you know what, that might not go away for awhile.

I almost went through a coding bootcamp so that I could graduate and finally call myself a “developer” and feel good about it. In fact, I did sign up for an online coding school called Bloc. I paid a deposit and had a start date picked out. And it was not cheap. However, I know that even upon graduating from one of these programs, I’d still have feelings of doubt and inadequacy.

Instead of going through with Bloc, I decided to look at other options. First, I talked with my boss. Lucky for me, I have an awesome boss that understands that in order to keep employees happy, you need to allow them to grow in a position. I sat down with him and explained where I was at with my career and what I wanted to do next. He told me that he would be happy to help me fill more of a developer role at the company rather than just designing WordPress websites with a prebuilt theme, which is what I’ve been doing at Kite Media. I’d probably be considered a web designer and digital marketer more than anything.

I expressed to him that I’d like to actually develop themes and plugins from scratch, rather than just using a prebuilt theme for everything. So essentially, I’d be writing all the code for custom themes and plugins. He was really cool about it and said he’d love to make that happen. This would of course help the company as well since we could offer more custom options when it comes to building websites and plugins for our clients. Instead of saying, “here are some of the websites we’ve built”, we can say, “tell us anything you want for your website and we will build it from scratch.”

I still have the responsibility of building websites for our clients, and I’m still using prebuilt themes and plugins for the most part. A big reason for this though is convenience and making sure our clients get a solid result. I do write quite a bit of CSS in a child theme, and I jump on any opportunity I have to tweak some WordPress functions.

But now with every spare second I have at work, I’m putting time into building custom plugins/themes for clients, or learning more about PHP and JavaScript. And if I’m not doing that, I’m reading an article about WordPress theme development or watching a video on Treehouse.

In the last two months or so that I’ve been in this position, I’ve learned more about coding than I did in the previous 4 years of just dabbling. The biggest reason for that is now I’m building real projects rather than just getting me feet wet. The difficulty comes with me being the only developer — there’s that word again — at my company, so I am basically on my own when I run into questions.

So have I made it?

Am I developer? Does building a WordPress plugin and writing some PHP scripts make me a developer? Does knowing ‘if else statements’ and ‘arrays’ allow me to put down ‘JavaScript’ as a skill on my resume?

The more I’ve thought about it, the fact that I’m writing code, building projects, and constantly thinking about how to make a certain app work, make me realize that I’m more of a developer than I realized. Maybe my problem is more that I’m not sure the exact point when you go from student to developer.

And maybe the biggest reason for that is that point doesn’t exist. Programming is a never ending learning experience. You’ve never reached a point where you know everything. And if you do feel like you’ve mastered something, wait a week and a new framework or even an entirely new programming language will be made available.

So for now on, yeah, I’m calling myself a developer. The 20-year software engineer on Stack Overflow who knows ASP.NET, C++, Python and Linux might get upset about that, but I just wrote over 1,000 lines of code in a week. So dammit, I’m calling myself a developer.

TL;DR

I sometimes feel awkward calling myself a developer because I have SO much to learn still. Imposter syndrome gets me down. But, what do I do? I write code. I think like a programmer. I build stuff. So yeah, I’m calling a developer.