Friday, January 16, 2015

Standing out in a World of Code

This is an interesting question that I've been asked a whole lot recently.  A lot of people want to know how they can make their code stand out for jobs, and what it takes to do so.  The interesting thing is, you don't have to be a fantastic coder to do so.  In fact, standing out is pretty simple in the world of software development, you just have to know yourself fairly well.  So for today's post, I want to go over a few ways that can help you stand out, whether it's at your school, a job interview, or just online in general, here are my top three tips for standing out in today's world of code!

Just Do It

Tons of people have messed with a Kinect before, but
that doesn't make it any less a neat project to do!
I know this might seem a bit odd, and might not sound entirely true, but there is quite a lot of truth behind it I've learned recently: Most programmers don't code outside of their job, and if they do, they don't release what they make, or just release a small part of it.  Don't do this.  When you code a project, release it in full.  Heck, if you can, throw the source code onto Github.  I know so many people who have neat ideas, who understand the concepts, and yet they don't release any kind of code, and it really hurts them come job time.  Imagine two people go in for a job interview.  Candidate A has a Github account full of small projects, and one or two neat apps they made on their phone.  Candidate B can talk about the concepts, and seems to know what he/she is saying, but has nothing to show for it.  Who is more likely to get the job?  Generally, candidate A.  Why?  Because even if they can't talk about it as well as candidate B, they've shown they can use those concepts in an actual project.  Learning proper terminology is something anyone can learn with enough time to memorize, but actually implementing those concepts?  Some people spend their whole life trying to learn it and can't, and that's the main difference.  How best to show that then by just coding some simple projects.  Beware however, that you should NOT post your homework for this.  Homework is a completely separate ballgame, and does not help you to stand out.  In fact, this can hinder you even more so, as it says that you lack creativity on what to make.  Unless you have a new solution that is a mind-blowing way to solve your homework assignment (which you most likely don't), don't list this as a project.  The only exceptions to this are senior projects, as those are generally ideas that you have created on your own.

Do it Right

While it's easy to make a virtual reality app, making
one and maintaining 60 fps is tough but necessary in
the field, especially on a smartphone.
When you code a project, make sure that you are doing it right.  Yes, you can make a game in Python, but should you?  If you plan to go into game design, Python might be a good starting point, but you don't want to show a company like Nintendo a slew of Python made games, because generally that industry is not going to use it for actually making a game.  Know your target industry and know what they use and why.  Don't just blindly write code to write it (unless you specify this was for fun or as an experiment), and don't just write a "hello world" project and expect it to be great.  You want to make sure that when you show off your projects, that you have at least one or two big shiny projects that are done correctly in order to show that you can make code that is semi-unique, not just something that works.  A pong game made in Python isn't going to stand out anywhere near as much as a content management system using a LAMP stack.

Try Something Crazy

While my senior project didn't hold up like I wanted, I
learned a ton of valuable information about indoor
GPS systems, which is something I can now talk
about more as a result.
This is something that is going to be tough, and will surely be the hardest part on this list:  Make something crazy.  Have you always desired a personal quad-copter to bring you food?  Then try and make it.  Want to make R2-D2?  Give it a shot!  Notice that I'm not saying you have to finish these, but just try and make it.  Even if you fail completely, you'll have gained three major things: Knowledge of what went wrong, knowledge of what went right, and the ability to talk about how something like this is easy/hard.  This is a huge point.  One of my favorite sayings is "Shoot for the moon, because even if you miss, you'll land among the stars", and this plays right into that.  Aim big, bring a parachute, and even if you fall, you'll find yourself with a great outcome.

I know a lot of this seems ridiculous, and that if it's that easy, everyone must do it, but in reality, it doesn't happen all that often.  During my time at my university, I'd met very few people who did projects outside of class, and even fewer who put them online.  While following these tips doesn't guarantee you a job, it definitely is a big step in the right direction, and can help get past the resume screening process.  Don't rely on this to get the entire job for you, but use it as a ladder to climb with, and start from there.