You've probably heard about stories from the Dot-com bubble where companies were giving away BMW Roadsters as signing bonuses and developers were turning down jobs because the company didn't (yet) have a foosball table. Even now, LinkedIn advertisers are pushing developer positions that claim average salaries are over $130k. Silicon Valley is reportedly paying upwards of $1 million over 3 years to key developers in acquired companies to retain them.
But somehow it all seems to have missed you. You're a software developer! Maybe you learned your craft in college, or maybe you just picked it up in your free time. Now, when everyone else is receiving cash deposits from a dump truck, you can't even find a job. Life just isn't fair.
Well, maybe life isn't fair, but that doesn't mean you can't jump start your career in a hurry. Here are some real life steps you can take right now and get your career on the fast track.
#1 - Start or Join a Project
You already learned to code, or you're in the process of learning right now. As you'll see in my article about hiring developers, I encourage business owners to hire developers who are passionate about what they do. My dirty little secret? I would write software for the rest of my life, even if no one ever paid me another dime. If you're truly passionate about writing software, then you feel the same way, so why aren't you actually writing software?
Too many people think they need to have some big, complex project -- or, someone else assigning them tasks. Trust me, when you start working for someone and they're assigning you tasks all day you'll wish you had weeks of freedom to do whatever you want. Take advantage of that now!
#2 - Initiating a Creative Project
Have you had a business idea that you have thought of for years, and never got started on it? Give it a try! Think about existing products that you'd like to make "suck less" and just go for it. This is the best stage in the world to be in, you can't fail! Challenge Google's dominance in the search engine market. It's not necessarily about how well it works, it's more about what you learn in the process.
Interested in the Internet of Things? Take a dive into the Beaglebone Blackfor $55. This is a computer that fits inside an Altoids case. If you can't think of something interesting to do with that, just go be a chef! (Ok, or you can go to theCapes page, which will give you enough add-ons that you can create your own chef!)
The path couldn't be easier for those wanting to do app development. Walk to your local grocery store and you're likely to hear 3 new app ideas. Go create them. You aren't worried about success or fail, you're looking for a way to give yourself a focused purpose that let's you explore some aspect of computer science for it's learning experience. If it works so well that you're making thousands per day in the app store, then you've solved your own job problem and can start hiring others!
There are a thousand terrible web apps waiting to be improved. Write a time tracker, or create a catalog for your favorite collectibles. There are a lot of existing APIs with tons of data that you can use. Take a look at ProgrammableWeb to see some of the APIs available and come up with ideas of what you can do with all that data.
#3 - When You Can't Beat 'Em, Join 'Em!
Sometimes it's difficult to come up with a new project, but you just need to dig in and do something. There are plenty of open source projects that are looking for developers. This is an easy one for me, because if I had free time I would pick up about a dozen of these projects myself. Content Management Systems like Drupal or Wordpress have lots of Open source modules that are in desperate need of your coding skills.
Enjoy doing 3D work, how about jumping in to help a great resource called Blender. They even have a page to help new developers get started. Looking for more engineering type problems to solve, go find a Linux kernel driver that is getting a lot of complaints online, or a device you own yourself that's having issues. The Linux kernel mailing list is a very helpful place if you listen for a while first and learn how to ask a question.
#4 - Line Up the Resources
Web Developers - Setup an Amazon EC2 cloud instance under the free tier. Or find a cheap hosting solution. You don't care about bandwidth right now, you just need SSH access and a couple of gigabytes to start your project.
If you're thinking about IoT, but need something a little easier than the BeagleBone Black, then take a look at the Raspberry Pi for $35. The coding language is a little simpler, but if you're more mechanical engineer than software engineer, there are a lot of hardware extensions that will let you experiment. You can even search the Internet for other ideas and try to recreate them. Remember, it's all about the learning, so your idea doesn't have to be unique, the world over.
Whether your code is for web, Windows, Linux, mobile, or something completely different, there are some great common places to host your source code. GitHub is probably chief among them, if for no other reason than that they're popular and employers will know how to find your code there easily. It's free to host Open source projects, and if you want employers to see your code then it should be Open source anyway. Besides helping present your source code, GitHub will help you learn how to revise your source code with a tool called git. One more notch to add to your resume and one more skill that will be uber helpful to your new employer.
#5 - Don't Wait!
This I can't stress enough. Even if you can't do anything else, setup a profile on oDesk, Elance, or one of the other software freelance sites. It will take some work to setup a profile, but show future employers that you have initiative. In fact, you might even find your future employer after you've worked a few jobs for them online first. It's not uncommon to get hired into a company on a job that first started out as a simple freelancer position.
Another basic way to get started is to begin reading the topics on stackoverflow. There are some really brilliant people who are active on that site and you can learn a lot of insight about your language or platform just by reading the questions and answers of others. In fact, you might even run into a few questions that give you some ideas for what project you can start.
When you get started with these things online, don't expect to make a lot of money right away. In fact, set your cost very low and work for peanuts. You aren't doing this for the money, you're doing it for the experience. Get the experience and money will show up.
Honestly, the biggest part of all of this is that you're doing something. That's really valuable to an employer. When employers see that you're so passionate about software that you're doing it on your own, your resume will start to turn heads. But by that time, you may have already accidentally started your own billion-dollar enterprise.
Other articles in this section
A good user interface is an essential part of great software development. A user interface is the “front-end” that allows the user to easily interact with your software.
IoT can be an amazing enabler for your product, but it’s important to make sure you get the architecture right.
Developments within the Internet of Things (IoT) space are happening at tremendous speed, but the pace of this change creates challenges from a security standpoint.
Brian is a life-long software developer who loves to help others succeed. A frequent source for media outlets, such as BBC, Entrepreneur and Bloomberg, Brian also frequently speaks at universities, conferences and the like. His new book, "Unravelling the Internet of Things" will be available soon on Amazon.com.