Teach Yourself To Be A Software Developer

Do you believe it’s possible to educate yourself sufficiently enough to get a high-paying job as a software developer without a college degree?

If you look at the cost of tuition even at a state school, you’re looking at, bare minimum for in-state, $2,500 per semester, or $5,000 per year, assuming there are two terms per year. Assuming you never fail a class, and take a full load (i.e. little time for work to support yourself), then you can finish in 4 years.

Here’s an alternative. Do it yourself, and even get an entry-level job while you’re still self-learning in order to begin building your experience and resum√©.

Let’s assume you’re just a computer user (Facebook, Email, Web, Word, video games). No programming experience (or what you know is baaaaaaaaad–haha). Okay, that describes most high school grads. Here’s what you need to know:

1) Systems
2) Languages
3) Methodologies
4) Databases

1) SYSTEMS. Refers to knowing the basic administrative tasks of an operating system, like in Windows, using the Administrative Center, Defragmenter, Add/Remove Programs, and being able to install and configure complex software yourself like Visual Studio, Office, and the like. Also a basic proficiency with the Command Prompt, also called Windows Scripting, is necessary. Admins don’t use the Start menu! They fire up CMD, or run DXDIAG, or REGEDIT! Being able to create system backups and restores. Installing and managing anti-virus software. If you’re going for more of an Oracle/PHP/Java developer, then learn Linux and master the shell script like an admin!

Okay, WHY? These skills are essential on the job and will get you into potentially very lucrative jobs that just “programming” skills alone would not suffice, like a smaller company in need of an “IT person” as well as a programmer, to manage their web site, for instance, and set up new PCs with software. Being versatile, a value to the employer. This borders on “I.T.” rather than “I.S.” but every serious professional I have ever worked with has these skills just because they make life easier on the job and improve your overall value.

2) LANGUAGES. Depending on whether you want to use Microsoft tools, Oracle tools, or IBM tools, it really helps to specialize here because it’s hard if not impossible to be proficient in every language. In the Microsoft camp there’s VB first, C# second, and C++ rarely comes up. VB and C# assume you also know the .NET Framework well enough to crank out code using IntelliSense without too much trouble, though it’s normal and expected to have reference books handy. You might not hear this in gaming circles, but VB still runs the business world, and C# is just a quirk–depends on the dept manager or charismatic lead developer rather than any technical reason. Windows Forms and ASP.NET. And, ASP.NET is really quite complex so give it due attention.

But if you’re going for the “other path”, you’ll want to know PHP, Perl, Python, C++, Java, to name the most important skills. You can get by with PHP as the counter to ASP.NET, and Java as the counter to VB, just be very, very good at it… not just book learning, but practiced. Build your own custom web site or app using these tools if you don’t have real experience yet.

3) METHODOLOGIES. This term is important because most jobs require that you know about Agile Development, and usually focus on SCRUM. You will also hear terms like SDLC–Systems Development Life Cycle. The software you’ll end up using on the job will be tools like Subversion (SVN) and Microsoft Team Foundation Server (TFS) (which, by the way, replaced SourceSafe). You’ll need very strong object oriented programming (OOP) knowledge. But that isn’t hard, it’s a natural way to program, in my opinion!

4) DATABASES. The two big players today are Oracle 11g and Microsoft SQL Server 2008, with various other releases that are very similar in functionality, so once you know one, you’re good. IBM DB2 is also a player but not as common, declining in favor. Oracle tends to be used for extremely large database servers, while Microsoft’s tends to be more common in the small- to medium-sized companies, but of course it’s all about preference. The language of Oracle is PL/SQL, and the language of Microsoft SQL Server is T-SQL (Transact-SQL), and they are NOT COMPATIBLE. Despite there being a SQL standard, these two variants are as different as King’s English is to Southern American or Outback Australian (haha). That is, you might be able to communicate but much is misunderstood. The same with these two database languages, so it’s rare to find both being used in one data center. IBM DB2 is also a relational database using SQL and a worthy skill to learn if you want to pursue it, I just can’t comment since it’s been unusual in my experience.


I’m not going to actually list book titles here, but rather show you my search criteria. First, I do a broad search on Amazon for the subject, narrow it down to “paperbacks”, and sort by relevance (the default). The first 10 or so books listed will be the top sellers with top ratings.

Start by learning the topics described under #1 above, Systems. Learn Windows Scripting (i.e. MS-DOS command-line), both from single instructions to writing .bat and .cmd script files with loops and processes, and the pipe symbol and so forth. For example, go to Amazon, search for “windows scripting”. On the left side will be departments. Choose “computer programming” or “microsoft operating systems” to narrow down the list. Look down to the Format and choose “paperback”. Then scroll down to Language and choose “English”. Now you can narrow down the subject further but the Amazon search engine should have listed the most important books already at the top of your page.

Now look at the ones with the most reviews or top reviews. Alt-click each book title to open it up in a new tab, and continue on down the list until you’ve chosen about 20 books on that subject. Then, one by one, go through the tabs, do a little work reading reviews, checking the publishing date, the software version, etc, and if a book is reasonable, add it to a wishlist (you need an Amazon account). Don’t obsess too much over each book as this is only the first pass. After adding a book to the list, check the recommended books Amazon displays for other good potentials. Skip certification books. That could be a goal for later on, not right now.

After you’re done, open up the wishlist and check the USED prices. Eliminate any book with an excessive price, by a scalper or just inflated retail without any used copies available. There are enough books to not have to worry about it. When you’re done, you may have cut about half of the list and should have maybe a dozen books for a very affordable price on the subject you want to learn about. Now, sort them based on cost and by which ones you’d like to read first. Use the priority feature (on the right side “Add comments, quantity & priority”). Make a few to high priority, leave the rest alone.

Now, every few days, go over your wishlist to look for great deals by used resellers. I often find books for $3.00-4.00. Shipping is $3.99 so for about $10.00 you’re getting a darned good education–and can’t complain even if the book isn’t “great”. So what? You will be reading about a half dozen books on that one subject for the price of one at full retail.

I usually do this to where I have a new book arrive in the mail about every week to two weeks or longer if it’s a busy month. I make a habit of actually reading it at my desk with the PC on and working on actual examples. But, I try not to get side-tracked and focus on the material, because this isn’t the only book. What you want to do is SATURATE yourself with the content of multiple books on one subject, not necessarily to try to master it from just one book. Don’t worry too much about the author, and publication date also isn’t as important if the subject is still relevant (for instance I’m reading a SQL Server 2000 book right now, even though I’m using 2008 at work). The SATURATION concept is my own as a result of teaching computer science for 5 years, and feeling that each class was just too much of a rush to have long-term value. Instead, consume multiple experts on a subject on your own time and in your own way! Your mind will store the information better that way.

Do this with a group of books on each of the 4 main subjects above: Systems, Languages, Methodologies, Databases. You will have read perhaps 2-3 books on each subject, at least? Perhaps more, but at least 2-3. And, don’t stop there, continue going through your list, picking up books whenever you find a good price, while keeping an eye on new ones being published. As you gain knowledge you’ll be ready for more advanced books on the same topics. Remember, the key is to consume, not obsess. Gobble up a book, move on, don’t worry if it wasn’t a good read, just glean what you can and go to the next one, like snacks at a party. Be thankful for the good price you got and don’t hate on authors when you only paid $5.00 for a book! haha.


If you go the Microsoft path, you should have several books on these subjects which I’ll show you as search terms you can use on Amazon:

windows scripting
windows command prompt
advanced windows
windows administrator
visual basic 2010
visual C# 2010
visual studio 2010
visual basic database
vb programming
asp.net programming
agile development
systems development
agile scrum
microsoft access 2010
microsoft sql server 2008 programming
microsoft sql server 2012 programming
microsoft team foundation

I STILL manage a wishlist in order to continue to stay current, so if you want to see my own wishlist for reference here is the link: http://www.amazon.com/gp/registry/wishlist/26R0EMZDZB73X/.

Let’s say you end up with 20 books on these four main categories that I’ve recommended, and you read them and feel confident with the information. That’s equivalent to a bachelor’s degree in information systems. Because, there are no general education classes involved. I did this myself, ironically, while going to college, and so many of my costly classes felt redundant, which I feel is proof positive that self learning is valid.

Now what about all this software? Well, did you know Microsoft gives away most of it for free nowadays? Go get the SQL Server Express Edition! Picket up VB Express, VC# Express. Some tools aren’t available, obviously, since they’re enterprise-level products (like Team Foundation plug-in for Visual Studio). But you can come close and work with most of the tools at any rate that suits you.


I’ve kind of focused on the I.T. developer since that’s “my thing”, but you could also take another route such as “business analyst” or “office developer”, where you’re working with tools like Microsoft Access 2010–a worthy and excellent small database application! If you don’t want to go all-out “data center” , then replace the SQL Server/Oracle recommendations with Microsoft Access, as many of the queries will be similar. Access is similar enough to T-SQL but it does not have the administrative features. ¬†The great thing about Access is, you can still write VB database apps to build up that skill but using Access as the back-end rather than SQL Server. Ironically, there’s a free version of SQL Server, but Access is not free! haha.

I hope this is useful to someone. Please comment if you have any thoughts to share.


1 Response

Leave a Reply