Thursday, February 13, 2014

How to know if you are cut out to be a developer

On days like this when there is lots of snow on the ground I used to fire up my forge, heat the horseshoes red hot, warm my hands and make special handmade forged clips on the horseshoes.

After 5+ years of shoeing horses full time for a living, I began to wonder if this was all there was for me, could I be anything different. I wasn't like the other redneck tobacco chewing, drinking farriers, I'd never worn a cowboy hat, or ridden a bull, but I longed to know more, be more and do more.

After making the switch to development almost 7 months ago, I have been emailed hundreds of times by people asking my advice on how to become a junior developer and also how to know if they are cut out to be a developer.

Here are 7 traits that I have observed the best developers I work with and know personally all have in common:

1)  Attention to detail, especially the smallest of details.

The old saying that 'almost' and 'close' only count in horseshoes and hand grenades is true, in development getting something 95% correct is still not going to work, a method that 'almost' works or a Css rule that has an image centered 'close' will not work. It's that extra 5% of effort to get things right that really counts and makes the difference.

«««  If you hate details, then you might not want to be a developer.

2)  Learning ALL the time.

At first this sounds sexy, your like AWESOME! I love learning new things! Especially if you come from a boring job or something that never changes like horseshoeing =-)  After a while though, it becomes a steady stream of knowledge, and if you don't like water, it will feel like you are stuck in a never ending, never knowing enough waterfall of learning that just won't stop. I literally learn 10 - 20 little new things every single day and I love it! My brother wants things that don't change and are consistent, he has told me he wouldn't ever want to learn how to code.

«««  If you don't like constantly having to learn new things just to keep up in an ever changing field, then you might not want to be a developer.

3)  Handle pressure, stress, and deadlines.

Yes everyone loves USING apps, but how about meeting business time lines, deadlines, and goals? When will this be done? How long is this going to take? Can we do more of these in this amount of time? Now remember the attention to detail? What are you going to do, hurry? Rush through your work and hope it's close enough? In a perfect world coding is so much fun, let's write some code that does something cool, eat pizza and have a coke. In real life there can be stress, not all the time, but it is VERY different then simply doing an online 30 minute tutorial. I love being pushed to my limits and I want to grow and become a better developer so I don't mind.

««« How are you at time lines and working under pressure? If you tend to shutdown under stress, then you might not want to be a developer.

4)  Organized

Now I know a lot of messy developers, who could SEEM unorganized, but what I am talking about is the ability to have an organized work flow. Meaning can you find how to do something on your computer easily and quickly? The good developers I know are usually able to quickly locate what file they need or have a built in alias or script to do tedious tasks, it's all about efficiently.

««« If you learn something new, do you write it down, or figure out a way to be able to repeat the same procedure? Can you organize a lot of different tasks? If not, then you might not want to be a developer.

5) Extremely inquisitive

When I was a teenager, a lady at the church I attended would tell me probably once a month, that I needed to STOP asking SO many questions and that it could be annoying. Although offended at first, I've come to realize that the best developers are always asking 'why'? Whether it's how a new app works or the way a building is being built across the street. Conversations around developers can always be heard starting with: " I wonder why they did it that way...?" I used to feel like I was weird when I would ask lots of questions, but I see now, that at least in development, it is a good trait to have.

«««  Do things that you don't understand making you curious? Do new things excite you to figure them out? If you don't have at least some level of natural curiosity, then you might not want to be a developer.

6)  Self taught

Yes I know many developers come from colleges and great schools, but that's not what I mean. Great developers are always looking up code samples or documentation to learn how something works, they don't knock on the bosses office and say: "We need a corporate training class for this new software". Good developers are constantly learning and figuring out things on their own, whether they have no degree or 5 degrees.

«««  if you need someone to train you or are waiting to take the 'perfect' class to learn something, then you might not want to be a developer.

7) People skills

This is not a common trait among developers, the truly great ones do have good people skills, but the vast majority don't. If you can get along with people, your boss and the business side of the company will love you for your ability to communicate and not look down on the rest of the world because they can't code.

««« If you hate people and have a hard time getting along with others, then you might not want to be a developer.


  1. Hi Josh,

    I really think it's great that you are giving advice to many junior developers and they can learn from your story and improve on their skill sets. I would classify you as one who "made it" and has a wealth of knowledge and information that you can share with so many others.

    I know you remember me contacting you a few months ago about an opportunity to work as a Junior RoR developer at my company. Although you landed a new gig, I must admit, it was refreshing to see a developer who was truly passionate about development and worked on numerous projects which wasn't "required" in a classroom setting or a simple tutorial-based-app.

    And that's why I really really liked you for our company.

    If I can be honest, my frustration as an employer is that unfortunately, there are too many junior developers that lack this drive and passion to really learn development not just for to land a solid job, but for inner growth. When you have code because you have a natural love for it, employers (and those annoying recruiters- which I’m not) will drop their panties (or briefs) for you. You will have 3 solid job offers with nice salaries after a round of interviews (trust me, I’ve seen it happen). Companies will fly you out, give you bonuses, do anything to get you on their team. Why? Because we want to hire innovators, lovers of programming, and, essentially, caretakers of our pride and joy, our meat and bones which makes our products/services sell, our web applications.

    So my 2 cents to junior folks would be..
    1. Embrace the fact that you ARE junior. Employers nowadays could care less. If you are geeking out in your basement / living room learning new code and developing cool apps, and you love and dream this stuff, you have motivation and drive, we WANT you. If you're too senior, there's probably more of a chance that you're a pre-madonna, too expensive, and too particular on what you will and will not do in any role (this of course is a stereotype - not necessarily always the case).
    2. Post Your Resume - But You Must Include Your Personal Projects. If you only have 1 mini app, this doesn't apply to you. But if you've developed some pretty cool stuff, then put it on your resume! When I am looking to add someone to my team, you're only as good as paper until I have a conversation with you. I need to read what you've done. And be upfront, if you’ve only worked on a tutorial based app or were in a team of 6 developers and you only did testing, spell it out. That way I don't waste my time or yours. Some employers will think you're good enough, others may think you're not. But don't over or under sell your resume. And post to Dice, Monster, CareerBuilder, AND Indeed. We can't find you if you're hiding. Indicate on LinkedIn if you're looking as well. Oh, and if you're not looking anymore, do us all a favor and take your resume down! Why tease or even worse, get billions of calls from recruiters and employers??


  2. Thanks for sharing. For point 1, this is most difficult one for me. Others are fine.

  3. @Shannon, THANKS for sharing this, I think it's SOO good that you shared with everyone your perspective as a recruiter. Thank you! :-)

  4. This information which you provided is very much useful for us.It was very interesting and useful for qa online training.We also providing qa online training institute in USA.

  5. Compared with the glass reactor with jacket, the high quality stone crusher has wide applications. Here: Generally speaking, the stone crusher machine may include vibrating feeder, stone jaw crusher, pex jaw crusher, vertical shaft impact crusher, vibrating screen, sand washing machine etc.