Ways to Learn Software Development: COLLEGE/UNIVERSITY

Post #04 Part 1/3

In this three-part series we’ll look at each of the topics we briefly covered in my last post, How to Get Started, where we discussed the potential ways you can get started on your journey to becoming a software developer. In parts 2 and 3 we’ll dive into teaching ourselves to code followed by code bootcamps.

When looking to start or transition into a new career, the most commonly thought of way of accomplishing that is by attending college or university to gain the credentials you need to become successful. We previously looked at the different learning paths available for software development, and hopefully realize that assumption is simply not true. Nevertheless, college or university is an option for you to consider.

When looking to start or transition into a new career, the most commonly thought of way of accomplishing that is by attending college or university to gain the credentials you need to become successful. We previously looked at the different learning paths available for software development, and hopefully realize that assumption is simply not true. Nevertheless, college or university is an option for you to consider.

Why school?

Do you need to go through college or university? I mentioned in previous posts that there is no hard-fast, set in stone rule saying that in order for you to become a successful software developer you need to obtain a computer science degree or any other college/university credential. This is a heavily debated, two-sided coin that requires much more discussion than this short paragraph but for now, just be aware that there are other suitable ways of becoming a developer.

Software development as we know, is a broad topic with many specific fields. The idea of learning a whole plethora of skills that you need or might think you need to become a developer will probably seem a little daunting. Even more of a seemingly monumental task is trying to figure out the best approach to take when learning the skills you need and, the order they should be learned. The idea of college or university taking away those big question marks out of the equation would probably seem like a huge plus when making your learning path decision.

Before anyone thinks to themselves “just because something is being taught by a college or university doesn’t mean it’s the best way” I’d like to stop you right there. You’re right. Just because something is being taught by an official educational institute does not mean the material is being taught in the best way for you to learn. I would argue though, that given the broadness and the huge undertaking that is learning software development, having a concise learning curriculum can be a great help. This is one of the main reasons why I decided to attended school for my studies. I didn’t think I would be able to efficiently use my time, find the skills I needed to learn, build a learning curriculum, and adhere to the curriculum especially with the lack of knowledge I had on the topic of software development. Going through either college or university offers you, the student, a clear path, with a clear result and a schedule you must follow. It offers the guidance I felt, and you might feel you need.

On the other hand, a learning curriculum takes time to create, get approved, fine tune, and put into practice. We all know technology moves at an extremely rapid pace and, because of the long time between course updates, the material you’ll be taught in school is certainly not going to be the most cutting-edge stuff. For example, the courses I’m taking currently looks at Java 7. Currently, Java is on version 12. Needless to say, I’m a little behind the cutting-edge curve but that’s not to say that the skills you’ll learn in school, however (reasonably) outdated they might be, won’t be relevant in some way. You’ll most defiantly be able to put the skills you learn here to good use. The trade off here is obvious. You get a solid guideline you can follow when studying but the material will be a little out-dated but not by any means useless.

Another benefit that you might not take into consideration, but I believe is extremely valuable are your peers and instructors. When learning by yourself you’re, well, just that. By yourself. I’ve found it extremely helpful to have an instructor or mentor that you can rely on when you’re learning anything. This is doubly helpful when learning to code. There will undoubtedly be times where you will get stuck when learning to code. Very stuck. As a matter of fact, I’ve been stuck on something when writing my coding assignments that I contemplated giving up and submitting an uncompleted assignment. This isn’t because I’m about as sharp as your average marble (I’m not). But because that’s simply the nature of the software development beast. There’s a great number of ways to go about building software which can make it, at times, really, really hard stuff. Especially when you’re just learning the ropes. Having a network of fellow students, probably having the same struggles you are, to bounce ideas off, talk through problems, and work together to achieve your goals is extremely valuable and shouldn’t be understated.

Going through school readily offers both an instructor and a network of people that are learning just like you, to help each other through your studies. This is not so easily said when taking the self teaching route. Sure, there are online communities, you might be able to find a mentor, but school offers a sure thing when it comes to the availability of people there to help you out. I mean, some of them are paid for just that!

Speaking of getting paid, something else that some schools you might find offering are work placements or intern programs. It’s one thing to learn all the skills required to become a software developer but finding a job in the field as a hot off the press graduate is not by any stretch an easy task. It wouldn’t be uncommon for a job posting looking for software developers with 3 years experience. Then the age-old question is asked, how to I get any work experience if I need 3 years experience to get an entry level job? Well there are a couple of answers for that however, the easiest would be work placement. Some schools will offer work placements to those students that apply themselves or the top percentage. At the very least this provides you with an opportunity to get some work experience and could even potentially lead to a full-time career.

There are of course more ways to go about building experience for those not offered work placements through school or otherwise but, it is an unquestionable advantage for anyone with the opportunity. You might even make yourself a little money along the way.

As the age old saying goes, it takes money to make money. We all know schooling doesn’t come free (in most cases anyway). Therefore, the cost of going to school must be taken into account. Not in every case but generally, schooling is the most expensive way to learn to become a software developer. Not only is school going to hit the pocketbook it’s probably also going to take far longer to get through than any of the other options we briefly touched on before. Granted, the one-time cost might not be as high as a coding bootcamp however, over time, the bills will rack up when everything is all said and done.

Another benefit going to school offers are certificates, diplomas, degrees and if you’re really ambitious, PhDs. We’ll go into more detail on the importance of school given credentials but for now just keep in mind that these are the things you’ll be working toward when going though school. You probably already know that there’s a good chance that you won’t be getting any PhDs from your local colleges and university offers a little bit more than your average certificate of completion but I’m going to break down some of the more specific differences between college and university to better help you make the decision between the two.

your options

When deciding on what kind of school you should attend, usually your only two options are college or university. To start off this breakdown I’d like to point out that what you can expect from a college and university varies a little bit between different parts of the world. I think for the most part though, the points that I’m going to make here hold true wherever you might be with the potential for some slight variation. With that in mind, I recommend you take what you read here and do a little further investigation for yourself into what your local schools offer. For the next portion I’ll break down the differences between the two options from a Canadian standpoint.

cost

In my opinion, cost is one of the two most important things to take into consideration when deciding which type of school to attend. The cost of tuition and equipment you need to successfully become the next greatest coder is probably the first and only thing that comes to your mind when considering the cost of attending college.

Generally, college is far less expensive than going to university by a very great deal. I for example am looking at a bill just shy of $5000 from the beginning to end of my college course. On the other hand, the cost of just one year of computer sciences at my local university is just over that PER TERM meaning more than double the price per year. For a four-year computer science program, you’re looking at over 40k just for tuition fees. Granted, the things I’m going to get for my $5000 are probably far less than what you might get from a university. Strictly looking at cost though, college is far better and much easier to come out of debt free.

Keep in mind this doesn’t hold true if for example, you’re going to compare the state/provinces top college to a low tier university, the price points will come together a little more. However, you’ll most likely find that college is going to be the cheaper option.

Another cost most people don’t think about when deciding which to attend is time. When going through school whether it be college or university, most people opt for the full-time in class experience. Because of this, it’s going to be extremely hard to keep working your full-time 9-5 job while attending school. There’s going to be a monetary cost associated with time spent not working. Every month or year attending a full-time program is another month or year you are going without a solid, steady income. We all know that just because we don’t have an income because we’re going to school or otherwise, the bills aren’t going to stop. You’ve got take into consideration the time it’s going to take to get through school, the income you’re going to/ not going to be able to make, you’re living expenses for that time and plan ahead.

Your finances and financial future are an extremely important part of your life no matter what your doing and must be taken into consideration when making big life choices like this one. I for example, did not want to pay for a two-year program that required full-time attendance and living expenses without any source of income. My goal was to not only to graduate debt free, but to graduate with a very limited or preferably, non-existent dip in my savings. In order to meet my financial needs, I opted to go for a “at your own pace” distance delivery/online course offered by a local college. This afforded me the opportunity to continue working and go to school without costing myself any lost income.

Many colleges offer online or even evening courses that you can complete from start to finish and get the same credentials you would if you did a full-time course at the same school. This is a great option for anyone wishing to continue working their day job, take care of the kids, or anything else that might prevent you from being able to attend class at the usual business hours. Universities on the other hand, have a limited amount of online course offerings and in many cases require full-time attendance during the finial year or two of your program. It’s not impossible to find a similar university opportunity but it’s much harder to come across.

time

Time as they say, is money and whoever they are, aren’t wrong. Throughout my articles, I’ve stressed time and time again to focus your learning path. Why? Because if you don’t, you’re simply wasting time. If you’re wasting time, you’re wasting another potential day where you could be putting your skills to work for you and make a few dollars. Don’t take what I’m saying to mean that if you’re not making money within the first week of learning to code, you’re not being efficient. What I mean is, spend your time wisely when learning the skills you need to get to your end goal as efficiently as reasonably possible.

I’d be confident in saying that the number of hours you’ll spend completing a college course/program will almost always be significantly less than anything you’ll find in university. The college courses I looked at when making my decision ranged from 1-2 years max. University on the other hand, required a minimum of 4 years to get any credentials. Another bonus of colleges that offer self-directed courses is if you have time, you can work ahead. Currently the self-directed course I’m taking takes a max of just more than 2 years. That figure however is basing the number on 10 hours of course material and 10 hours on homework weekly. I get home from work and I spend roughly 1-3 hours on schoolwork every weekday and 3-5 on weekend days. So, if you have the time, and work hard, you can easily make much faster progress by taking an online course and gain the same credentials you would when taking a full-time course. If you can learn faster, you can put your skills to use faster, and you’ll be making money faster than the person sitting in their underwater basket weaving class just so they can get their creative arts credit needed to get through their computer sciences program.

Before anyone taking or thinking of taking a university course yells at me for that last sentence, let me stop you. I do realize that university courses are valuable and sometimes you do have to sit through that underwater basket weaving course to get your degree, masters, or whatever it is you’re going for and, you might not like that. My point is, if you’re end goal doesn’t include a university education there’s no need for someone to waste time in university. The opposite is true as well. If you’re end goal clearly states “you will not get this job unless you have a computer science degree” than going to college just as much basket weaving in relation to your end goal.

Credentials

Universities and colleges offer different outcomes and credentials upon completion of the course you take. College for example, seldom offers anything more than a certificate saying, “insert name here, completed, insert program here, at, insert college here” there are those however that offer degrees and BAs. The debate about which credentials someone should have when trying to become a software developer, or for that matter, if any official schooling is even needed, is ongoing. However, some employers require potential employees’ particular credentials. Some of which are offered by colleges, some of which only offered by universities.

For jobs requiring college education or certificates they’re typically looking for people to be able to accomplish the practical tasks required to do their job. What I mean is if you’re working for your local dev shop, they’re probably more interested in if you can do a certain task, build a piece of software as timely as possible all the while meeting customer needs. College teaches you the skills you’ll need to accomplish such tasks. You’ll learn how to build software abiding by certain methodologies, best practices and so on. What you won’t do in college though, is spend a full-term learning about memory management or big O notation.

In most cases you won’t need to know how to speed up an action in your software by 1/100th of a second when applying for your first job. That’s not to say that it might not look nice on your resume and sound impressive to your potential employer but, if you can’t pass fizz buzz, your 1/100th of a second won’t mean much. Be aware though, in some cases the opposite is true.

Depending on your end goal after school and what kind of job you want, things offered in college won’t quite cut the mustard. The tech giants of the world like Google, Amazon, Facebook, and so on, won’t so much as have a real person look at your resume if you don’t have some sort of computer science degree or other university level education. That’s partly because these types of companies are looking for people with a more scientific background. Those that do have the ability to analyze code and see how they can make an algorithm work a millionth of a second faster. Not only do these companies have a product to sell, they want to do so in the most technologically efficient and overall best way possible which requires a high-level computer science type education. Having a college certificate won’t quite cut it here so just note, going through college does close some doors, but in many cases, does offer enough to get started. Personally, I’m okay with not starting my first career with a tech giant. There’s always opportunity to acquire the skills needed later in life when you’re ready and willing to make that investment.

in summary

Both college and university have some sort of learning curriculum that you can follow. It takes the question of what you should learn and how should you learn it out of the equation. With some of the other methods I’ll discuss later, this isn’t the case. There are other options out there that will require you to sift through the vast amount of material and resources for you to find the relevant information you’ll need. Creating your own learning path or curriculum is a huge undertaking, and because there’s so much information available out there for you to learn, it might even seem frightening. College and university on the other hand, offer you carefully constructed, and proven learning outcomes and material that you’ll need to reach those outcomes.

I believe this is a huge plus. I couldn’t imagine figuring out what I needed to learn all by myself with no prior knowledge of software development. It’s not impossible though, and creating your own curriculum provides you with the opportunity to learn whatever skills and technologies you want. With schools some of the information you’ll learn will be out-dated. It takes a long time to create, fine tune, and implement a whole course worth of material and it’s not something that changes on a whim. So again, there are pros and cons to this aspect of schooling and depending on which side of the fence you’re on, may or may not seem appealing.

Overall college is generally the cheaper of the two official schooling options. It affords you the ability to not only pay less in tuition fees but is generally a faster process from beginning to end. If you’re not comfortable giving up your job to go to school full-time or simply have other responsibilities that require your attention during the usual business hours, most colleges also offer part-time or online course. This of course comes with its downfalls depending on your circumstances. It may take you longer, it may be faster, and in the case of online schooling there’s more distraction making it sometimes harder to stay focused on your studies. Credentials are always something we take into consideration when looking for a school to attend. College offers the more hands on and less sciency credentials. This will open some doors faster for you and close others. Depending on what you want to do upon graduation, you may need to heavily consider if your college of choice offers you what to need to accomplish your goals. Both options offer a set learning path which allows you to focus on the skills you need to learn to get the credentials you need for your following job. Having to create your own learning path, sift through the unnecessary information, and staying focused on your goal is a huge undertaking and much harder for some people, for others it may not be such a problem.

If you do opt for some higher education through college or university, be sure to know what you’ll get out of going through the programs you’re considering in relation to what you need to achieve your goals. Choose a program that will set you up with useful knowledge you require to be a front-runner as candidate for the job. Remember that despite what circumstances you might be in, there’s more options other than full-time programs to help you get to where you’re going.

In the next article, I’ll talk about what you can expect when considering teaching yourself software development but for now, you have an idea of some of the considerations you need to take into account when thinking about attending a college or university. In the meantime, if you liked what you read, have feedback or ideas about what you’d like to see in upcoming articles feel free to drop an email or follow on twitter and share the article. If you want to keep up to date with what JTSD is doing don’t forget to give us a follow. I’d love to hear your thoughts and stories! Until next time, don’t forget, Learn, Code, Create!

-Dorian

4 thoughts on “Ways to Learn Software Development: COLLEGE/UNIVERSITY

Leave a comment