My College Experience

Post #09

In previous articles we’ve talked about the different ways you can go about learning to code, taking an in-depth look at coding bootcamps, self-starting, and attending a college or university. Last month I discussed the learning path I decided to take and the reasons for my decision. In this article, I thought I would delve a little bit deeper into my experience thus far in my schooling. I’ll talk about everything from the courses I’ve taken and am going to take, to my expectations as to what I could have expected from college versus reality. I think this is going to be a good read for anyone that was in much that same situation I was in and, are considering taking an online college course like I did.

In the Beginning

I’ll start with a quick recap of why I decided to get into tech and why I made my decision to ultimately enroll in an online course offered by my local college to learn to become a software developer. My decision to get into tech primarily stemmed from my current job. Roughly 2 years previous to my decision, I was a truck driver driving around the city delivering propane day in day out. It was a repetitive job and not something that I could see sustaining me for the rest of my life. I didn’t enjoy it. I needed something that would challenge me, something that would make me think and something I thought I would feel good about doing along with something I could look forward to getting up every morning and going to work (as much as anyone can look forward to going to work). So I knew, after a couple of years driving truck, that this wasn’t for me and that I needed something different to pursue a career in.

Like the last time I was making the “what am I going to do for the rest of my life” decision, I was thinking about only two things. Money, and time to enter the field. Meaning, the time it would take from saying to myself “okay, this is what I’m going to do” to the time that I would have all the skills needed to enter the field and begin working toward a life long career in that field. After a couple of months of doing that, to no avail, and realizing that, that approach doesn’t quite work, I decided to take a different approach. Instead of taking such a narrow look at my options I thought it would be a better idea to take a look at what I enjoyed doing on time away from work and try to find a job description to fit that instead of just a paycheque. Long story short there, software development seemed to fit in with my love for tinkering, building, solving problems, and an absolute love for technology.

At this point, I knew that I needed a career change, and what I wanted to transition to but, I wasn’t quite sure how I was going to go about doing that. I wasn’t quite sure how to go about getting the skills I needed to become a developer. I thought I did at first, well, to be honest, I thought I knew how to go about it a couple of times. First, my impression was anything that has engineering in the job title was something I was going to have to sit in class for 4 years. I thought there had to be another way and I was right. I started looking at local colleges, thinking if I couldn’t take the university route then college would be my last hope. Then after talking to some people that knew more about software development than I did, it came to my attention that it was actually possible to teach yourself to become a developer and be successful through online and other learning resources. Coding bootcamps never really came across my radar as a third option until a few months into my college courses. Even so, they wouldn’t have been much of an option for me because of location and cost.

Two options. Teaching myself to code or sit in a college classroom for two years. I loved the idea of being able to learn from home and teach myself to code at whatever cost I found necessary. However, the biggest downfall of doing this was just the sheer undertaking and how overwhelming it was to me being someone that had no experience and knew limited people working in the industry that could have helped me along the way. There were so many options, so many places offering a million different learning resources. Teaching myself to code also offered me little in the line of a curriculum. I had no idea the difference between coding languages, let alone what kinds of technology I should be teaching myself. I thought that it would be all to easy for me to get lost in the vastness of development technologies and waste a lot of time and energy learning something that might never be useful to me. Then I took a look at what college had to offer. I didn’t like the idea of having to quit my job and attend a full-time course. But, the fact that I would have some sort of diploma or certificate saying that I went through a software development program alongside knowing that I would have a group of people working toward the same goal, have a curriculum, and an instructor made the idea of college very tempting.

In the end I was able to find something that offered me the best of both worlds. One of my local colleges offered online or, distance delivery courses for software development. This wasn’t a diploma or anything of the sort. Rather, it was just a certificate saying that I completed a course at that college which was fine. I figured that at the very least, it would give me a solid starting point. It allowed me to work at my own pace, for the most part, keep my job, not have to sit in a classroom, offered a structured learning path with peers and instructors to lean on if I needed help. This I decided, is where I would start my journey to becoming a software developer.

Expectations


Naturally, I had some expectations of what these courses had to offer going into it. Of course, I was going to pay close to $600 for each of the 7 courses that I was going to have to go through before I completed the program. I thought it was a little bit expensive considering everything was online so maybe my expectations were set a little too high. I’ll list some of the things I expected from this course and go into detail about how well those expectations were met and some other things that happened throughout my learning that I didn’t expect.

Firstly, I thought that there would be a learning curriculum and that I would be taught things geared toward a total software newbie. Now, considering I was taking a college course that one wasn’t hard to meet. All I wanted was a clear way to go about learning the things I needed to become a developer. For the most part, the things that I’ve learned I can see being mostly relevant to the things I might do in the software developer day-to-day, but more on that later.

Second, I expected the courses to be in-depth. I didn’t know exactly what that meant, but I knew that I expected the courses to give me more than just an extremely basic understanding of Java (my coding language of choice). Between the course and program outlines, I was under the impression that by taking this course and learning all the material, I would be taken from a totally green developer to an intermediate Java developer. That was something that I could get on board with.

Third, I thought that I would be offered far more resources if I needed help on a problem or needed a question answered about something I was working on. At least, far more than I otherwise would if I was teaching myself to code. I thought there would be several other students that I could rely on, to work together to reach our common goal and, at the very least an instructor who would be able to answer whatever questions I might have about software development or course material I was learning.

Those were the main handful of things that I expected to get from going through these courses. After all, like I said I was going to be paying quite a penny for these courses. I feel like my expectations weren’t set somewhere up in the heavens but, I expected at least a far deal more than I could have if I taught myself to code with no other help than my own determination and research. So, what was my experience with taking these online college courses? Was it really worth it? Allow me to break down for you how I felt about my experience and what you might need to be prepared for if you decide to take the same learning path I did.

The Classes

Going into this I expected simply to start with something like learning what a software developer did. Or, what a language was in the world of software development and then graduate to learning the tools and technology I’d need to be able to write code and, eventually learn how to write programs. This was not the case and, I think that taking the courses in the way that I did, for the most part, was to my benefit.

The classes required were as follow.

Business Analyst Intro


This was geared toward the business part of software development. Remember, I’ve mentioned before how software is usually used to add value to a business or solve some sort of business problem. This course taught me everything from why we develop software, the business decisions involved in the development life cycle, to the methodologies used when developing software. There’s no way around it. Software is meant to add value to something someone somewhere is doing. Whether that be in a business environment or otherwise, time and money put in needs to maximize the value taken out. This course offered an introductory look into the business of software development.

I didn’t expect this course to be among the required courses because I suppose I never really realized how close the relationship between business and software development were. I never really thought there could have been as much to it as there is. Granted, as a software developer I’m probably not going to be making any spreadsheets as to why a program has to be written or, do a cost vs. benefit analysis. Nevertheless, I think learning the business aspects of software development can potentially be invaluable especially to an aspiring entrepreneur or someone looking to enter the start-up world.

SQL Fundamentals (Standard Query Language)


Everyone’s heard the word database(DB), so it should come as no surprise that software developers at one point or another, are going to have to deal with databases. They’re everywhere. So much information is stored in DBs from your log-in information for your favourite game to your banking information. This course offered an introductory look at working with relational databases (RDBs). It took you from not knowing anything about databases and got you familiar with creating databases, getting information from those databases in different ways, the relationships of the information within the database, and how to manipulate that information.

Software Development Fundamentals


This course didn’t teach me what the name of the course might lead you to believe. I suppose this was something used to teach TDD or test-driven development and the very very basics of object oriented programming (OOP). I was taught to use Visual Studio in combination with the Visual Basic programming language to write test code and build a console, web, and desktop applications using the same source code. I, as you might imagine, have a lot to say about the value of this course so I’ll save that for the value discussion.

Java Programming 1&2


Finally, I came to the point to learn what I thought I was signing up for. Java-1 was geared toward teaching how to make things work. There wasn’t any low level looks at how many bits and bytes were in an int or a long variable. This course took you by the hand showing you what an IDE (integrated development environment), and slowly moving you up to writing your first bit of Java code. In Java-2 the process got a little more complicated, introducing a little more complicated for loops and using different Java packages like scanners. Throughout Java-1 and 2 I was expected to write simple programs like leap year calculators, simple programs implementing inheritance and methods, and eventually moving up to making simple thread programs and, programming databases and manipulating the information with Java and the JBDC.

Java 3&4


The last two courses were geared toward preparing to write the Oracle programmer exams for Java SE 8 at both the beginner level then, in Java-4 the intermediate level. Even though I haven’t gotten through to Java-4 at the time of this article, the course outline is exactly the same as Java-3 and, I would imagine the material is the same as well(but I’ll be sure to update if that’s not the case). In Java-3, the course material consists of text-book study followed by a test and assignment consisting of a write up of 3 important topics in that chapter, research on the topic, and sample code. Followed by an exam at the end in prep for the Oracle exam.

The Course Material

I’ve got a lot to say here about the course material, and the quality of it but, for the sake of making my doc 20 pages, and putting you to sleep, I’ll try to keep it short and to the point. The course material, for the most part, I found to be of varying degrees of value. I’ve probably given you a good idea of what I thought about the business analyst course. Even though I might not need the skills or be able to put the information I learned in that class to good use, I still think it taught valuable lessons. The course material was engaging, creative, and with a mixture of outside resources (such as YouTube videos and websites), the course material was both valuable and extremely well done. Props to the creator of the course and the material therein.

Again, SQL Fundamentals was a valuable course. Learning about databases especially when learning a language like Java can easily go hand in hand. This course offered a solid enough foundation of databases where I was able to create some databases for my personal use much to my delight. However, I don’t think that I’m going to be put in charge of any big databases as an admin any time soon. Nevertheless, it offered a strong starting point to get an idea of what databases are all about.

The next courses I have a little more criticism about. Starting with Software Development Fundamentals and learning Visual Basic. Do I need to go any farther than that? I mean really, there was nothing here that was offered to the student that couldn’t and wasn’t accomplished by other courses (Java-1). Except perhaps, introducing us to Visual Studio and Visual Basic… The most valuable thing that was learned here was TDD but again, nothing that couldn’t have been easily covered in the Java portion of the program. All in all, without going into too much detail about this course, it’s safe to say that they could Google+ this course and the students would be no worse off. Actually, they would probably be better off(more on that later). Not only was this course of zero importance, but I also spent a pile of money just to, when it all boiled down, watch these YouTube videos and do these assignments. The hardest work that had to be done by anyone involved in this course from a staff standpoint, was taking my money.

Java 1-2 offered the student a ton of good information. It taught the basics of Java fundamentals and got you writing code almost immediately. There were great beginner coding assignments that could ease a beginner into the Java world while still being challenging enough to feel like you were making real progress. Although I thought the course was decent for a beginner, I still thought these courses lacked value. Keep in mind, I spent over $1100 on both of these courses. As good as I might say the course material was, it wasn’t anything that couldn’t have been found on free online videos. As a matter of fact, I was able to get through both of these courses without paying much attention to the course material just based on what I learned in a free Udemy course. Overall I don’t really have anything bad to say other than being a little bit bitter about the price. All in all, good stuff.

Java 3-4 however important it might be to aspiring Java developers, I thought was another course that wanted me to pay a bunch of money so they could tell me to go read a book. $600 later to be told to march out and buy a book and read it. In this course, there was exactly zero useful original course material. Read the book, do a little write-up and do a self-test. A little bit of a letdown, however, it may serve as a benefit as an exam prep. How exactly it adds any value to my learning aside from reading the book I was told to read, I’m not so sure.

All- in all, the course material was about a 50/50 split between very good, well created and presented, useful material, and absolute let downs. The courses that were letdowns could have essentially be removed from the program and I wouldn’t have had any issues with it. The ones that were of value, aside from Business Analyst, could have been mostly boiled down to a series of free online links. For example, the SQL course was made up almost entirely of Microsoft educational videos.

The Teaching

I thought that going into college would offer me at the very least a network of students and teachers that I would be able to work together with to learn the material and, in the case of other students, work together to reach a common goal. Boy oh boy was I in for a rude awakening. Initially, I thought sure, it’s an online course. I don’t expect real-time answers from a teacher but I figured I’d be able to shoot an e-mail and get a thoughtful answer a day or two later in response. In Business Analyst Intro and the first two Java Programming courses, this was, for the most part, the case. As a matter of fact, I was extremely impressed with both instructors’ ability to accommodate me both with answers to questions and timely grading. They also knew the material inside and out and weren’t shy about talking to me about related, but topics a little outside the scope of the course.

For SQL Fundamentals and Software Development Fundamentals I feel like there isn’t a single good thing I could say about the help and support offered by the instructor. I would go so far as to say if there wasn’t an instructor and students were aware that there was going to be no help offered, it would have saved a lot of students a lot of money. Firstly the sub-par course material in no way helps students in completing the cryptically written assignments.

Most of the assignments in both courses were mainly coding based. Write code that does X with a database, create a database, write a program following these step by step instructions and so forth. SQL, the second of the 7 courses, wasn’t too bad. The assignments were well written but the course material left for gaps in the students’ knowledge and ability to complete some assignments. Let’s face it. Coding is hard and you’re going to get stuck. If you don’t you’re doing it wrong. A handful of times I needed clarification on a question being asked or, on rarer occasions, I needed help understanding what was wrong with my code or if I was going about coding the wrong way. If my question required anything more than a simple yes or no answer, I would end up waiting at times, weeks on end. Not only would I be left waiting weeks on end, pulling my hair out all the while trying to figure out the answer for myself, but I also waited for nothing. Less than nothing to be more accurate. I would spend paragraphs asking and explaining my question in the best possible detail humanly possible. This was usually met by a confusing one-liner that left me with more questions and ultimately ignoring the response and continuing to pull my hair out.

Java 3-4 on the other hand, I’ve never really needed to reach out to the instructor but one time for something not exactly course material related. However, based on my one and only interaction I think it’s safe to assume that I would have no complaints about the help there.

Eventually, after coming to Software Development Fundamentals and getting extremely stuck between just starting to learn to code, bad course material, cryptic assignment outlines and less than useful instructor help, I reached out to the students. I figured that there was no way everyone wasn’t stuck on this assignment and I imagine no one was getting help from the teacher. So I reached out and started a Discord channel where, I thought, we could work together and maybe between whoever was in the course, we could figure it out. For the most part, I was wrong but, I will say that I met some students online that for months we’ve been helping each other out with not only school work but, side programming projects. All the other courses after SDF though only had 2-3 students, including me. For the most part though, without any instructor help, minimal student community, I was left to my own devices.

Conclusion


Although I may sound like a furious bitchy student (I’ll admit that’s partly true) that didn’t get what he expected, there was a point to all of this reading. I was paying for what I thought was going to boil down to be, a structured curriculum, a mentor in the way of a teacher, a student community, and relevant, thought out and original course material provided by the college. I did expect something and what I got was not at all what I expected. Prepare yourself to be put in the same situation as I was if you’re planning on enrolling in an online course with a college or university. What I experienced I couldn’t imagine being much worse. Prepare to be left with assignments that have step by step instruction that even 10-year veteran developers won’t be able to pick any sense of. Be prepared to research topics in-depth because the course material that was offered to you left you with less knowledge than you need to complete your tasks. Be prepared to bang your head off the keyboard for hours wondering why your code doesn’t work.

I don’t say this to deter anyone from going to school for software development rather, to start thinking hey, there might be a lot of roadblocks in my way here and I need to be prepared for it. I know for a fact students in my course dropped out of the course due, in part, to the lack of instructor help and confusing assignments. They, I would imagine, were the type that couldn’t, didn’t, or wouldn’t put in the effort and percipience needed to get through. It’s a case of preparing for the worst and hoping for the best. I many of you will have the same misfortune I did with school but, just be ready for the off chance you do. If you can take it upon yourself to learn whatever course material you’re learning, go above and beyond to learn more, find the resources you need to help you get the job done you’ll be fine. Not only will you get through schooling but I’d be willing to bet you’ll make a damn good developer that won’t be stopped by having to do a little bit of research on how to solve the code problem you have at work. And that, is valuable.

That’s a little bit about my school experience. If you’d like to know more I’ll be writing a review focused on those local to my area that might be considering taking the same course I did. I’ll talk about each course more in-depth and I’ll even include a PDF file of this cryptic assignment I was raging on about. I was as objective as I possibly could be here. Like I said I wanted to give an example of probably the worst experience you could have with an online course. Prepare for the worst hope for the best but don’t be scared or hesitant to dig down and learn what you need to, to get that shiny paper with your name and developer on it at the end of whatever course you’re taking. Don’t forget to like the article and share it with any aspiring developers you know if you liked what you’ve read! You can follow JTSD on Twitter, or email us with your feedback via the Contact page. Most importantly and as always keep learning, coding, and creating!

-Dorian

Leave a comment