published almost 6 years ago
In December of 2012, I graduated college with a degree in Communication (read: advertising, journalism, PR, etc). In my heart of hearts, I knew this wasn’t the right field for me. In this vacuous absence of direction, I decided I wanted to learn a highly technical and relevant skill: programming. So nine months ago, I signed up for “Software as a Service: Introduction to Ruby on Rails” via edX.org.
I struggled through the class, not really understanding much of what was going on. But, through some magic, I passed. This process made me realize I needed to go back to square one and learn the fundamentals.
Cue whoosh sound effects for a summary of the next 7 months:
Took an edX Intro to Computer Science (CS) from MIT to wrap my head around the CS fundamentals/vocabulary and how to think computationally. At the same time, I was studying Java and Object Oriented Programming in order to pass the Oracle Java Associate Programmer (OCJAP) certification, as I figured I’d need something concrete for my resume and Java seemed to be a viable choice here in Saint Louis. I started going to usergroups every Thursday and soaking everything in even though I didn’t understand most of what was going on at the beginning. Probably most helpfully, I started pairing with a friend of mine named Mike who develops for Boeing to study for the OCJAP. Seeing how Mike programmed was really where the rubber met the road, and his guidance was invaluable. We both took the exam and passed! This naturally led into us pairing on an app idea I had, and undertaking my first project that solved a real problem people have.
Nine months after deciding I wanted to be a developer, I arrived at a place where I knew my next step was finding an entry level job. Somewhere. Coding something. I think.
So I applied a couple places but heard nothing back. I lacked the relevant experience, but more than that, I didn’t really know how to GET the relevant experience. My mobile app was a step in the right direction, but although the idea was mine, it was my developer friend who was actually implementing it. Then I got a link to the LaunchCode site over Facebook one Saturday night. I cancelled my plans for the night, switched off my phone, and I spent nearly 5 hours painstakingly filling out and revising my application.
This led to me coming in to interview, and my subsequent placement at Efeqdev.
Part of the problem with entering the whole “programming/coding” ecosystem is that the learning barrier to entry is necessarily lengthy (it takes time and consistent effort to learn programming concepts) and the end results are unclear while you’re learning them. In the ten months since graduation, I spent nine of them not knowing if I would ever get a job programming. I just worked part time to keep up with student loans and sacrificed my social life to learn how to program, and all of this occurred on faith; the belief that one day, somehow, this process would bring me good results.
Without the guidance and mentoring of Mike, I would have wasted a huge amount of time on things that didn’t matter. To put it succinctly in gamer dialect, “Everybody starts as a noob.” When you come to the table, you don’t even know what you don’t know. You need somebody already on the inside to show you what the door to get in even looks like.
When I was potentially placed at Efeqdev, I walked into the initial interview with preconceived delusions about what I wanted in a programming job. I’d looked at their website and, at the time, it was unclear what they did and it seemed like it was a small team. In other terms, I walked in looking for reasons to say no since I had some idea in my head about what a programming job should look like.
Throughout and after the interview, my gut said “Chris, this is a good fit.” I now realize throughout those nine months of working on faith, I’d developed a fantasy about what my programming job would be like, except here I was confronted with the real deal and it was nothing like I’d imagined. I’d believed I’d get hired into some big company, become extremely good at at a narrow and technical skillset and have a comfortable, secure and well-paying 9-5 job. Then, eventually, I’d start something on the side and grow that until I could strike out on my own. I was breaking up with my promise to myself about my future. It took me a little while to realize this, but I came around and decided to throw my chips in with them, if they’d take me.
They did :)
On my first day with Efeqdev, I asked them “What do you guys expect of me?” Bredon answered, “By the end of your three month period, we want you to become a ZOMBIE GOD with ruby on rails. I want you to be better at it than me.” They gave me three books to work through, and of course, time pairing with Chris Oliver once I knew enough that it would be the fastest way to learn.
If you haven’t ever had the experience of seeing Chris Oliver or somebody of his caliber write code, I’ll try to describe it for you. You know in movies where hackers type really fast and lots of text whizzes by on the monitor? Well that’s what it looks like when he uses Vim. Code is rapidly written while he tabs back and forth between that and a browser where you can see the website he’s constructing take shape before your eyes. Coming from writing an Android app in Java, it’s akin to watching a building constructed at a time-lapse youtube video speed. This is the ideal I’m working towards.
I worked through a book on Ruby, and I’m starting one on Rails. I’ve spent time pairing with Chris Oliver going through the entire process of building a website for a client, except I got to experience the entire process from the initial client meeting through to the actual construction in code. More than that, because Efeqdev is a smaller shop I get to be involved in every aspect of the software development lifecycle, not just the coding part, which grounds what I code in all the actually relevant concerns of the software.
This job is interesting all day long, there’s a freedom of choice and a stimulating environment far different from me sometimes falling asleep in my chair while watching online classes and feeling braindead. Efeqdev’s take on working is that it’s not about the raw number of hours you put in, but rather the amount of value you can produce in the time you have, and staying happy and balanced so you can consistently put out the highest quality work and stay focused on the most important stuff.
Although I still haven’t quite grasped what Efeqdev does, the best way to put it is that they’re like an amplifier or mic and speaker: put in the somewhat quiet noise of an established business with a specific problem hindering their growth, and Efeqdev will produce a resonant sound an equivalent amount of decibels (aka raw value) greater. What you get out is proportional to how much you put in. The fact of the matter is they do it with software, so the issues of “what to learn” and “what’s required to keep a technical edge” are moot: I know exactly what to focus on learning since I know exactly what problem I’m trying to solve through programming. On top of this, I actually get to interact with the people I’m helping. As a cook, I’d send food out and never get any feedback on how people liked it. Programming isn’t just an activity, it’s an active tool I wield and develop to construct value for other people.
To give you an idea of how great the experience has been so far, I stayed motivated and energized enough to work through a 600 page book in 3 days. There are shorter technical books I’ve started nine months ago that I still haven’t finished. If I had to give my first week here a grade, it would be an A+. It’s a perfect fit. On Thursday, I woke up at 7 am fully energized to get into the EfeqDev office. The next day, I worked a double at my old tide-me-over job (I feel bad calling it that though;its an awesome place I’m still working there once on weekends). When the alarm went off, I reset it and went back to sleep until eventually I had to grudgingly get out of bed to make it on time. But the point is, its kind of mind-bending to suddenly be excited to wake up when you never have before.
I think the LaunchCode effort overall is very valuable. When you’re getting into the field of software programming, you probably DON’T know what you want and don’t even figure it out until you’re inside. But once you’re in, you can look back outside and see exactly how to get in. The frustration is, you can’t lead people along the path. They have to choose it and learn it at their own pace. All you can do is recognize the desire and provide the necessary guidance.
Week one finGo Back