Apparently I am one of those kind of people that everyone likes to ask career advice. "I make no money in my line of work and I hate it, what can I do?", "How did you get to where you are in your career?", "I wish I could switch jobs with you" are among some things I've been hearing since I was a year out of college. I am a .NET Technical Lead and have been slinging code now for over a decade. I used to think this career took vast intelligence, skill, and discipline. Looking back on my life and colleagues I've met, I now realize that anyone with a bit of determination, an available internet connection, and a shred of intelligence CAN write software. Not everyone has to be Picasso with a keyboard, the industry has a demand for anyone who can logically think through a simple task.
So why am I bothering to write this article? The software industry in most areas is in dire straights. We have a surplus of jobs with very few people determined enough to fill the seats. It has created a bidding war between companies for talent and caused endless unpaid overtime for nearly anyone with "Developer", "Engineer", or "Architect" in their title. Not that I have minded the bidding war for talent but the overtime starts to wear you down after a few years. You could say that I'm here talent scouting but doing so for an entire industry.
How can you get started? For starters the largest growth in software development is in 2 areas. B2B web applications and mobile applications. I personally am a web developer before all others and I find it incredibly rewarding. Web development's largest growth are in 2 areas: C# .NET and Node.js. Both of which are entirely free to learn! Mobile application development takes a bit of an investment but you can always start with Web. Mobile you have the two titans iOS (Apple products) and Android (Google and Friends) with a growing threat from WP8 (Microsoft). WP8 is almost entirely the same skill set you would use for web development if you went the C# route. iOS (discounting applications like phone gap) has no parallel and is written in Objective C. If it were not for iOS's popularity I would discount Objective C entirely as I personally hate the language but it is a valid career move. Finally you have Android which is Java. Java is still used in the industry but is losing ground in web development and is more a maintenance language these days than a "new application" language.
With that being said you can choose your path with a few google searches but the path I'm going to explain how to learn is C# Web development.
"But nobody will hire me without a college degree!" This is the biggest untruth I have ever heard. All you need on your resume is a demonstration that you can do the work. Yes, this does mean having your own website but there are free ways to showcase what you can do, I will get to this later.
Start with the basics, software all boils down to a few basic concepts, no matter what language you use these are the same. The basic "Hello World" program is the scourge of the industry and is the first application almost everyone learns how to write. I find it tedious and boring so I'll provide alternatives.
Lets launch into your tools first:
You will need a version of Visual Studio Express, preferably Web Developer
That's it :-) Yes, 1 tool and a free one at that.
Next you need to find a tutorial. You can start with the above hello world tutorial but if you want to get into the meat of programming faster start with MVC and start delving right into web!
Getting Started with MVC is the tutorial we will use here. It gets you ramped up on some web terminology and breaks the ice with the tool set.
So these are the first steps, learn the technology. Once you have began to build out and start making the tutorials your own you can start publishing it out to the world! There are a few ideas you will need to grapple with to be taken seriously. The first is Source Control or Version Control. In the C# arena this is mostly be Team Foundation Server but any experience with version control will work. The free one I recommend is either GitHub or Bit Bucket. Next step is to find free hosting. With C# and .NET there is really no contest. App Harbor is free, integrates with both Bit Bucket and Git Hub, reliable, and scale-able.
The final step is to build out a portfolio and showcase what you can do. Without a degree your website(s) you make have to speak strongly enough to what you are capable of to get you noticed. This is where and why many developers will say "Nobody will hire you without a degree" and why they are wrong. You cannot send in a resume without proof that you actually know something. You have two ways to accomplish this, $50,000+ over 4 years having some professors spoon feed you basics while still not really knowing anything pertinent for the real world. Or you can have enough discipline to learn it yourself and build samples of your work for free.
The internet is teeming with people willing to share their knowledge on software. All it requires is some dedication, an open mind, and a search engine. Software development may not be for everyone but for those that enjoy it, it can be very rewarding. Give it a try, it's free and you never know.. You might like it! Always keep pushing the boundaries and never stop learning!