Andrew Heins

skills

Unconventional Skills and Tactics

Becoming a Self-Taught Developer 2


This post is the second in a series about Teaching Yourself Web Development. If you haven’t yet, you might want to go back and read the first post

In brief, within a month of being hired, I spent two weeks building a web page instead of doing the job I was paid to do. The demo to a room full of execs worked as intended, but everyone seemed to hate it. I didn’t hear anything from my boss for days.

 

I don’t actually remember being told that I was now getting paid to do web work. They didn’t change my title, and they didn’t remove me from the sales rankings (even though my sales were always $0).

In fact, the only follow-up I remember about that meeting was the Director of Marketing coming over after a few isolated days and telling me, “We want you to redesign our lead-generator landing page for next week.”

This new project would require:

  • Making the form more usable
  • JavaScript validation
  • Alteration of some ASP.net code
  • Email confirmations

Brain: “NO!!! NO NO NO N…”
Mouth: “I can do that. Yes.”
Brain: “…”

An Unconventional Skill Set

If you ask people what skills you need to be a software developer, they’ll probably give you a list like this:

  • Attention to Detail
  • Abstract Thinking
  • Logic

Don’t get me wrong, those skills help, but I’ve tended to rely on a couple of other things:

  • Perseverance
  • Coercion
  • Delegation

It was these 3 things that saved my job that week, and probably still account for the majority of my success moving into web development full-time.

Perseverance

The role of Perseverance is fairly obvious. When you take on a completely new field, you spend all your time learning.  In fact, more than any other field I can think of, web development moves fast, which means you’re always chasing a moving target.

Worse than that, learning is hard, you actually kind of suck, and you know it.

Ira Glass has a great quote about perseverance (paraphrased for programming),

… For the first couple years you make stuff, and it’s just not that good. It’s trying to be good, it has potential, but it’s not. [...] A lot of people never get past this phase. They quit. [...] We all go through this. And if you are just starting out or you are still in this phase, you gotta know it’s normal and the most important thing you can do is do a lot of work. Put yourself on a deadline so that every week you will finish one [thing]. It is only by going through a volume of work that you will close that gap, and your work will be as good as your ambitions. [...] It’s gonna take awhile. It’s normal to take awhile. You’ve just gotta fight your way through.

I don’t think I could put it any better than that. To bring that a little closer to web development, the best way to learn is to build.

Web Development is all about solving problems. When you start building something, you start solving problems. Your basic knowledge like programming syntax will naturally grow as you bash your head against your particular app or website’s dilemmas.

If you’d asked me if you can learn HTML and CSS in two weeks, I’d probably have told you no. But in the context of a project, you don’t really have a choice. You can’t back away from the bits you’re having trouble with. You have to get it done, and so you do, and you learn.

Of course, sometimes even perseverance doesn’t work, which means you need a fall-back.

Coercion

Coercion is the skill of getting people to agree to things that they don’t want to. It’s a required business skill. Getting that sale from a hesitant customer; getting resources from a stingy manager; getting that meeting from a busy exec.

But before any of that, it plays a critical role in your transition to developer.

In short:

You’ll never move from hobbyist to working developer until you manage to convince someone with money that you can do something you’ve never actually done before. When I said I could redesign the lead-generator page, I had no friggin idea how I was going to make it work, but I was able to look my Director in the eye and say I did.

Now I’ve got a more difficult project, a shorter timeline, emerging HTML skills, and just enough metaphorical rope to hang myself. Now what?

Well coercion ties in nicely with our next skill:

Delegation

Some things you can persevere through, but some things you just can’t. I can’t learn to hack C# and redesign the page and learn JavaScript validation and update the form fields in a week.

So I went delegating.

All of our paid designers were busy, but one of the other sales agents had a decent eye for design and was constantly Photoshopping other employees into funny photos and sending them around. I explained the project, asked for help, and he was nice enough to help me out.

Next on the list was hacking the .Net code. This was simply out of my league. My only recourse here was to go back to the Director of Software Development for help.

I had a fairly antagonistic relationship with the Director of Software when I first started. It was no fault of his, I was constantly meddling with his stuff.

But he was a fantastic guy at heart. He also had a philosophy of under-promise and over-deliver. He told me he wouldn’t change the .Net code, but I got an email an hour or so after work that day with a link to a development server with an unstyled new form with extra fields and an email confirmation system.

Finally, I had to implement the new design on the form and figure out validation. HTML forms weren’t too far out of reach for my meager skills, and JavaScript form validation is not an arcane art – it’s well documented online. jQuery didn’t exist yet, but tutorials did.

I got to work.

Humble Beginnings

It’s not so pretty, is it?

It’s not an epic picture of noble man-against-machine feats of programming fury. A lot of it comes down to relying on people.

I mean really, what have I done, here? I’ve done some HTML, CSS and JavaScript for a couple of simple web pages, while heavily leaning on people of greater skill than I. This isn’t exactly solving P = NP.

And yet, it can work. These first simple projects gave me confidence and credibility within the organization to get stuff done, and that started my transition from sales agent to web developer.

You’ll learn over the course of your journey that the money isn’t in knowing how to do something, but in finding a way to make it happen.

Sure, there are the top 50 tech companies where you have to be a rockstar engineer to solve the problems they’re facing, but for the other 50,000,000 small and medium sized businesses, you can provide value with simpler means.

If you can show enthusiasm and drive, get cooperation from your colleagues, and (usually) deliver on time, your actual technical chops start to matter less.

Sometimes you just have to take the jump.

 

Job Descriptions Lie. Sometimes the job you want actually doesn’t exist yet. There’s no job title for “Marketing’s Non-IT Web Hooligan”, but that doesn’t mean that skill set can’t work for the organization. Next time we’ll talk about building the job you want in the organization you’ve got.

Photo By ROSS HONG KONG


  • Jesse says:

    Can you tell me exactly what resources you used to learn HTML, CSS, Javascript etc. I know you link to the HTML, CSS book, but what other resources? Thanks

    • andrewheins says:

      There are so many more resources available now than there was when I started learning. I spent most of my time learning from http://www.w3schools.com/, which I wouldn’t recommend now.

      The best place to start, quite honestly, now is something like Treehouse. Yes, it costs money, but the curriculum is pretty fantastic, and it takes you through each step. If you’re serious about this, I’d go with them.

      For the frugal, there’s an incredible array of resources at CSS-Tricks.com. Chris creates an insanely good set of resources for the beginner, with videos, code snippets, articles and more. I have a total man-crush on Chris and his work.

      Hope that helps.

  • Nassosdim says:

    First I have to admit that reading both of your posts so far was the most motivational thing in 2012 for me, even more than quotations of famous people and /r/getmotivated.

    Maybe because I always kept on hearing about people who made the career transition and was afraid to ask or look for them and in the back of my head I doubted that they existed.

    But once you find someone who has done it… Someone who literally “man up” and decided to make the path… The game changes. And, to be honest, minutes before I open your blog I was the person that had second thoughts about it. I was trying to find excuses, blame stuff and bad decisions. Long story short, I couldn’t get my eyes off your post. I had to read it. And that’s the proof I wanted for me to realize that I still want this and I have to take the challenge.

    Thank you very much!

  • JD says:

    It is great to have a story like this to read.

    I have been making a silly attempt at learning Ruby for a few months now. I was planning on quitting / making the transition to web development as best I could in the summer. Turns out I ‘got quit’ at the beginning of this month because they eliminated my position. Since the first week of January learning programming has been top priority and it is the most fun I have had for years.

    The first time I ever touched code was to redevelop the website of a Theatre. I learned CSS and rebuilt the entire website in a week. Nothing fancy, but it was usable and up to date. It was day and night for seven days. Exhausting but rewarding.

    Reading about your experience only reinforces my recent realization that diving into programming / web development is all about Carpe Diem.

    Thanks again for sharing your experience.

  • Brian says:

    Sounds fairly close to my current situation myself, but with far less company resources lol

    I like this blog so far, it’s inspiring.

Join the Conversation!