Which Did I Pick?

Post #07

Ways to learn software development: bonus

Hopefully after reading the “Ways to Learn Software Development” series, you know the ways available to learn to become a software developer and what each of those ways entail. I thought as a little bit of a bonus piece to this series I would write about my thought process when deciding which of the three paths to take when starting to learn how to become a software developer. I’ll touch on the following parts of my story and the bearing these aspects had on my overall decision. 

What options I was considering and were available
What i wanted from my learning path
the challenges of choosing
the financials
the finial decision

In the post “Why Software Development” I went over a few reasons as to why someone might want to pursue a career in software. I also touch on my personal reasons as to why I decided I needed a career transition. So, to avoid being at risk of rewriting those reasons, I’ll just say I was in a position that I didn’t see having the ability to keep me interesting in what I was doing, nor was it something I could have seen myself doing as a long term career. So, software development it was.

What options are there?

I didn’t know much about the different ways of learning the skills I needed to become a software developer. I thought the only way, like many trades or further education, learning software developer was going to require some traditional schooling. Not only did I think I was going to have to attend college or university to become a developer but, I thought that to become a “software engineer” I was going to have to spend a minimum of 4 years and more money than I would have cared to in university. I started and continued looking at the different university courses for computer science in my local area and decided that software engineering was simply too much money and would take far to long for me. I continued to search for something else that I could see myself doing for the rest of my life but, again and again, I found myself studying and debating myself on computer science. It seemed interesting, it seemed like something I could do as a long-term career, but I just couldn’t bring myself to make the financial or the time commitment that would be required of university. I wanted whatever I did to take as little time as possible from deciding on what to transition to, to looking for a job in that field. I also didn’t want to spend a small fortune either. I thought, rather hoped, that there might be something in college a little less expensive and a little faster to get through than your average university course. So, I searched my local colleges’ websites and asked around to see if anyone knew anything or anyone who had done something like software development in hopes of getting some guidance. My question really was is university the only way to learn to become a developer? Was all that money going to be worth it? Or was I simply debating on whether to throw away tens of thousands of dollars on a piece of paper I get at the end of a four-year program that reads “You’re an idiot” and hang it on my wall?

To my surprise and delight, I did know someone that knew a little more about software development than what I did. As a matter of fact, someone she knew is a software engineer. What advice did I get? Screw school, teach yourself how to code! Wait…What?! Teach myself? Never in a million years did I expect anyone to tell me that teaching yourself how to write software, to become a software engineer was a possibility or anyone other than the insanely smart… or just insane. What I learned was there are quite several software developers out there that never went to any kind of traditional schools rather, taught themselves to code. There’s no other way to describe how I felt about this self-teaching way of learning to code other than baffled. Sure, I thought, someone might be able to teach themselves to code to some degree but, can someone really teach themselves all the skills that I would be taught in the courses I found offered by my local college? I didn’t think there was anything that could substitute college or university given credentials. Then again, I was still stuck on the idea that software developers were engineers. After all, the only term I had ever heard for developers was “software engineer”. Again, to my pleasant surprise, I came to find out that not only was it entirely possible to teach yourself all the skills you need to become a developer, but many of those self-taught developers are some of the best. I thought about that for a while. I remembered hearing in grade school how useless computer courses were in university when talking about our future studies. It was said that because technology moved so fast that everything you learn in the first 3 years of university will be outdated by the time you finish your fourth year. Or something like that anyway. So, I supposed that if I was to take it upon myself to self-teach code, I would be able to learn the most reliant stuff going. We all know that if it’s out there, it’s very likely on the internet.

At the time I was making my decision and thinking on what route I was going to take to learn to become a developer, I had no knowledge of what bootcamps were, so they were never taken into consideration. Nevertheless, I now had another option that required some deep thought. University, in-person college courses, online college courses, and now teaching myself to code were all options that needed consideration. After all, whatever I decided on was going to determine the skills I would have when starting my hunt for my lifelong career. But which option offered the most benefits? Which one would offer me the skills I needed to become a professional software developer, to get that job that I’ve never had before, the one I could be happy with for the rest of my life and still be within my ability to achieve?

what I wanted from my learning path

Needless to say, at the end of this learning to become a software developer stuff, I wanted to be able to get a decent enough paying job and, something I wouldn’t dread going to after a couple years. Not something I think, anyone choosing a career to spend the rest of their foreseeable future, wouldn’t want. I knew what my general end goal was. A good paying job that I could look forward to going to every day. What I didn’t know was what I needed to do to reach that goal. I obviously had to learn how to code and now, I had another option that made my already hard decision even harder. I can learn to code on my own? For free, or whatever I see fit to pay?

Aside from what my end goal was as far as what I wanted from a career, but I also had some requirements that needed to be met when deciding how I was even going to become a developer. Time and cost were two huge factors in my decision making. Really, the only two that I took into consideration. If I could get through learning to become a developer quickly and affordably, I didn’t care if I had to move to the moon or part the Atlantic Ocean. My biggest concern was getting the skills I needed as fast as humanly possible.

At the time I decided to make a career transition, I was beyond sick of waking up to go to work every morning. I literally hated it. I counted the seconds grinding going by when I was at work and the speeding hours go by when I got home before I had to go back. Work for me was almost toxic. In the beginning, the job I was working was only supposed to be a temporary thing until I could find something better to do. The better part of three years later and my blood pressure would rise every time I thought about going into work every morning. After some drama and a long story however, I didn’t mind showing up to work but, the long-term viability of what I was doing wouldn’t change. I couldn’t see any possible future in the job I was doing where I would be able to enjoy life the way I wanted to.

Still, getting all tooled up and ready to take on the world of software development as quickly as possible was at the forefront of my mind. Along with that, I didn’t want to spend a fortune on going to school. I mean, who really wants to go to school, spend a ton of money, maybe go in debt, and get little more than a piece of paper and an entry-level job if you’re lucky or, get a job behind the gas station counter. No offence to those gas station attendants, I was there right along with you. I’ve always been the type of person that would say they’re going to buy something a hundred times but couldn’t bring myself to buy it if I didn’t really need it. Even when I did, I was always looking for the best bang of my buck. I wouldn’t say I’m cheap to the point where I squeak when I walk, but I never was a fan of watching the bank balance go down and certainly dreaded the idea of finding myself in debt. But spending money on learning to become a software developer was necessary. Despite my unwillingness to spend money, I had a deeper unwillingness to work a job that I felt wouldn’t provide me with the ability to live the life I wanted to live or go to work and enjoy what I did. As always though, I didn’t want to spend a pile of money on something if it wasn’t going to be worth my time or money for what I could get out of it. Which is a huge reason why teaching myself to code was something I really had to think about. Not only could I spend whatever I wanted on learning, but I could even continue working and not forfeit my income from work by having to sit in a classroom during work hours. The idea was enticing, not the only thing I had to take into consideration.          

the challenges of choosing

I had an end goal in mind, I had some metrics to weight each of the three paths I could take to learn to become a developer. Teaching myself to code was super enticing to me. Like I said I could still work, it would be far less expensive than going to college or university and I could do it during my free time after work. There were a couple things that scared me about self-learning code. I had tried to investigate this process of teaching myself how to code. Pretty much all I knew at the time was it’s possible and that there were lots of resources I could get online that would help me accomplish what I was trying to do. Little did I know, saying there was “a lot of resources out there” was the biggest understatement of the millennium. A quick Google search lead me to a bombardment of a ton of different websites advertising their “learn to code for free” resources. I never really realized how broad software development was at the time, or really,

 Secondly, up until this point I never had much of anything to do after work other than come home and well… do whatever I damn well pleased. Play video games, do some blacksmithing, or just take it easy. Would I really be able to come home from working 8 or more hours every day and be able to sit down for a few hours each night trying to learn how to code? I’ve never been the best managing my free time when it came to going outside or dedicating some time to do my homework assignments. Even when I did, working on whatever homework needed to be done would almost always quickly devolve into playing just one more game, or reading just one more chapter. The was no one that was going to hold me responsible other than myself and, that’s not something I’m good at. Along with that, there was the idea of having to figure out what exactly to learn.

I’d like to think that if I knew what questions to ask about software development that I would have been able to much more easily figure out what it was I would have needed to teach myself. But at this point, I was totally ignorant to a fault. I didn’t even know what a development language was, I didn’t know what specific area of development I wanted to work in and therefore didn’t know what skills I would need. Instead, I searched for how to teach yourself to become a software engineer and got a ton of different results. So many that after looking at the sea of results for about a half-hour, I realized there were so many things that I could learn and had so little knowledge on what I needed to learn. It scared me from the idea of teaching myself how to code. But, 6 months into learning to code via a college course I wish I had my time back and took this route. This is why I stress in previous posts to have a more specific end goal in mind. Know what area of software development you want to work in when you’re finished your first round of learning. That way you’ll make your search for the skills you need to learn much narrower. Unlike me, you’ll know what languages are before you start, what tools you’ll need to become successful or at least, break into the specific field of software development you want to enter.

My biggest fear of teaching myself code was my partly my expected inability to not only figure out what to learn but I didn’t have the confidence I’d need when learning something. I thought I’d constantly be wondering if I was learning the right thing if I was learning that thing right and if I was just wasting my time learning useless skills. Again, that could have been remedied with a little research and educating myself a little more on the general topic of software development. I didn’t want to spend a bunch of time and a huge amount of effort learning something I wasn’t sure was even worth learning. Because I loved the idea of becoming a software developer so much, I didn’t want to be discouraged in that way. I wanted to be positive, 110% sure that what I was putting my time and effort to would give me some amount of skills I’d need in the workforce.

the financials

Another one of my biggest concerns when deciding which learning path to take was cost. Like all of us, the cost of something has some varying degree of importance. When talking about going to college or university, that importance was, for me, extremely important. I’m someone that I’m confident in saying, keeps an eye on every dollar coming in and going out and what I spend that money on. When talking about spending thousands or tens of thousands of dollars if I decided to go the university route, I wanted to make sure that my dollars were going the best possible use. Along with that, I had a few financial requirements that whatever I decided to do had to meet. Firstly, going into debt was not an option for me. I was going to learn to become a developer debt and loan free. Secondly, if at all possible, I wanted to be able to continue working. I didn’t like the idea of quitting my job, starting my learning journey, and not having any source of reliable income. We all know the bills don’t stop just because life happens and I didn’t want to have to go through learning development and, looking for a job in the field all while not having an income. It, I thought, was bad enough having to pay for whichever option I chose to go through with let alone all of life’s other expenses.

Not wanting to go into debt highly limited my university options. Not going into debt was non-negotiable. With there only being two local university options at roughly 15 – $20,000 price tag, university quickly got ruled out. At this point, I left with either teaching myself to code or, going to a cheaper, quicker college. I tended to lean toward traditional schooling when thinking about learning to become a developer because that’s simply what I felt most comfortable with. However, finding a course that met both my financial needs seemed like it was going to be quite a trick. I didn’t really want to spend $10,000+ on a two-year course that I would have had to quit my job to complete which seemed my best college option. So, I started looking for online course offerings by both college and other less traditional online sources. Teaching myself to code seemed more and more appealing to me. It is, of course, the most affordable and flexible way to learn to get the skills I would need and met both my financial requirements with flying colours. No, I would never need to take out a loan if I taught myself and, I could have worked at my own pace meaning I wouldn’t have had to make any income sacrifices while learning to code. But, the fact that I would have totally been on my own, creating my own curriculum, making and maintaining a learning schedule, figuring out the skills I would need to learn all with the very limited knowledge I had on the subject at the time still made me shy away from the option. Instead, I started looking more for online or part-time college solutions. I thought there might have been a chance that college offered some online or evening classes that might suit my needs and luckily, I was right.

the finial decision

After two months or so of debating, searching, weighing my options, and debating some more, I had narrowed it down to two options.

1) Teaching myself to code

To anyone looking in from the outside teaching yourself to code would seem like the perfect option for anyone that’s looking to break into the software development field. However, if you’ve happened to skip the blog posts where we talked about where to start when thinking about learning software development, you might have found yourself in a similar situation as I did. Google searching your way into a sea of options effectively leaving you with an abundance of doubt and worry about what might happen if you did go down that path. But maybe you did read those posts and gained the confidence and knowledge about what you want to learn to tackle teaching yourself to code. In that case, going through school for thousands of dollars might seem crazy unless you’re gunning for a computer science degree. Teaching yourself offers you the most flexible schedule you’ll ever have when learning something. It allows you to keep working your 9-5, take care of whatever responsibilities, learn when you want, and do it all for whatever price you see fit to pay.

2) Attending an online or part-time college program

If you’re like I was at the beginning, teaching yourself to code would seem like an impossible task. I found comfort in knowing that college offers a clear learning path for me to follow and I wouldn’t have to worry about figuring out what to learn or if what I was learning would be of any use to me when I went looking for my first dev job. At least, not as much as I would have if I had taught myself to code. I managed to find an online course that would have allowed me to keep working which made it a little easier to swallow that $4500 price tag that came along with that comfortable learning path. Because I could keep working and because college took away the worry of wondering what skills I needed to learn and everything else associated with teaching myself to code, I was a little more willing to… well bend over and take it in the wallet.

In the end, I opted for the online college course. It offered much the same freedom of teaching myself to code without many of the stresses that come along with teaching yourself. Taking away that stress though came with a heavy price tag that learning on your own wouldn’t have. $4500 is about $4500 more than I probably would have spent teaching myself, give or take a hundred bucks. But I really thought to learn to code would have been a much more massive undertaking that it turned out to be. Before signing up for my college courses, I thought it would be a good idea to try to teach myself a little bit of Java (the language taught in my college course) just to see how I would do with it. It turns out, the handful of hours of video that came with that free course would not only get me through the first 2/3 Java programming courses offered by my college but the 3 prerequisites as well. Imagine that? A free course that taught me everything I needed to know to get through what college valued at more than $2700. This is why I wish I had my time back. You might be thinking that the college I decided to attend must be garbage if I can learn everything, I would have been taught in 5 college courses in one free online video course, you might be right. I’ll save my review of my college experience for another post for now though.

The online college course offered me the freedom to learn at my own pace, met my financial needs, I’d get a piece of paper saying I know what I’m doing at the end, and I didn’t have to create my own learning plan. It was far more costly than teaching myself would have been but at the time I was happy to make that trade-off. My advice to anyone thinking about which learning path is best for them would be this. If you don’t need a degree in computer science, and your only goal is to learn the skills you’ll need to become a software developer that could be considered a practitioner, look into teaching yourself. Assuming you’ve done the prerequisite research and know what you need to learn for the specific field you want to work in, give it a shot. Spend the 10 or $20 it would take to get several hours of online videos, go through them and see how you feel. Learning the art of software development is a never-ending process. You’ll always have to keep learning new skills and ways of doing things except, when you’re out there in the real world you’re not going to be sent to school and have a teacher hold your hand through the whole process. You’re going to be, for the most part, left to your own devices. So, I think you might as well get used to the idea of teaching yourself the skills you’ll need right of the start. Granted, I know being brand new to software development, this might sound like crazy talk but give it a shot and see how it goes. If you think you’ll be able to continue teaching yourself the skills you’ll need to become a developer I think you should. You’ll save yourself a ton of money, and, you’ll have proven your drive to be a software developer. I mean, not every Joe blow takes it upon themselves to learn a skill like software development by themselves, it’s a good look of dedication and perseverance on your resume.

That’s a little bit about my thought process when I was deciding on what learning path to take in my journey to becoming a software developer. I hoped to provide you with some insight in a little more personal light. So, you could see one persons’ thought processes and the reasons behind my decisions and, recommendations that I think I did right or could have done better had I been given my time back. If you’ve enjoyed the article and think someone you know might as well, don’t forget to share. You can keep up to date with other articles and anything else JTSD is doing by following us on twitter. Until next time remember, always learn, code, create!

-Dorian

One thought on “Which Did I Pick?

Leave a comment