July 23, 2015 Learning to Code in School vs. Learning to Code Online
Sometimes, when I’m doing homework that requires me to use the internet, I marvel at the fact that people in the past only had books to rely on. If I’m looking for a certain function to help me complete a part of my program, I can just jump on the internet and quickly find what I’m looking for. If the same exact question wasn’t already asked on Stackoverflow, which is rather rare, I can browse reddit’s programming subreddits, peruse Github for similar programs that had to tackle what I’m dealing with, or do a quick search of the language’s documentation pages. In the pre-internet days, you either had to have a physical copy of the documentation or reference materials, which you then had to rifle through page by page, or sit there and chip away at the problem bit by bit until you came across an epiphany.
The point is, the internet has changed the way we learn. In some cases, it can certainly be argued that the materials available on the internet can take the place of a traditional education. In this post, I’ll be looking at education in school versus online from the perspective of programming.
Code in School: Pros and Cons
There’s no substitute for a good professor. If you’re fortunate enough to land a professor who’s not only knowledgeable but also a good teacher, then you’re going to have an amazing time learning the subject. Good professors make you love what you’re doing and inspire you to delve deeper into the material, which enables you to gain a greater mastery of it. All of this may come together to be a life-changing experience, which is something you’d never get from reading text online or watching a prerecorded video.
Learning to code in school also gives you consistent deadlines to hit. While some people may dislike this kind of rigid adherence to a schedule and would prefer to work at their own pace, there are others who, without strict guidelines, would simply fall off the map and cease to learn how to code. School helps keep many people on track and focused, which is important in getting started with programming.
Schools also have established, time-tested curricula. All the classes you take have been reviewed by a group of professors who have probably been coding for longer than you’ve been alive. While it’s possible that you may know more effective ways to educate yourself in the art of programming, it’s more probable that these professors who, after years and years of teaching, have more wisdom to impart than you might imagine. You might be able to teach yourself some parts of coding, but the reality is, many schools like UC Berkeley and Stanford have been pumping out qualified programmers for years and years, sculpting them from their curricula. That’s a pretty good track record that may be hard to beat on your own.
However, degree programs are highly expensive, and there’s no guarantee that you’ll end up with an amazing professor. For every professor that changes his or her students’ lives, there are probably three to five professors that couldn’t care less about teaching and only want to focus on their research. Granted, students still get through these schools, and their diplomas are proof that they can do what an employer asks of them, but all of this still requires a careful evaluation – at the end of the day, is it really worth the price of admission?
Code Online: Pros and Cons
You can work at your own pace. For those who are self-motivated and driven, this is perhaps the greatest part of self-studying programming. You’re not constrained to a set schedule that may move too fast or too slow for you. You can pace yourself, expand and contract your own curriculum as you see fit, and tailor what you learn to what you think you can do. University curriculums have solid results, but they’re not for everyone. If you don’t think the rigidity of degree programs are for you, then you might want to look online.
Learning to code online can also be much, much cheaper. Paying tens of thousands of dollars per year to learn how to program may not be worth it if you’re in a financial pinch. Many online coding programs such as Team Treehouse, CodeSchool, and Code Academy offer good primers on learning how to code without eviscerating your bank account. Furthermore, schools like Stanford and MIT have released many of their course materials online for free, meaning that if you were among the most motivated, you could theoretically give yourself a top-notch education for pennies on the dollar (these pennies, of course, being utilities bills).
If you learn to code online, you also won’t have to be bound to a curriculum, so you can take however many courses you want. This means that if you just want to learn how to be an app or web developer, you won’t have to learn languages like C or Assembly, which are not necessarily applicable to what you wish to do. Programming purists and electrical engineers may disagree with me here, but it’s not truly necessary for everyone to learn those languages. It might sound like programming heresy, but if someone just wanted to design websites for a living, that person would only really need to know languages specific to that, such as HTML, CSS, and Javascript. In terms of practical application, what good would learning manual memory allocation or MIPS be if all your job wanted from you was a nice-looking website? For someone who knows exactly what they want to do as a career (which is rare, I might add), taking classes they don’t need may be an unnecessary hassle or a hellish slog. In school, this is unavoidable, but online, this is easily circumvented – just don’t open the web page.
The unavoidable negative of learning to code online is that it’s not in a school. You can tell your employer that you completed a course from Stanford online, or that you have certificates of achievement from various online coding programs, but your employer may not be as receptive to that as they would be to an actual degree from a school they recognize. Because of this, you might have a harder time convincing employers of your worth and finding a job. This doesn’t necessarily undermine the quality of your education; rather, it’s just an aspect of the way jobs and hiring for them work.
Closing Remarks
Ultimately, it’s hard to find a best fit. People don’t learn in the same ways, and it’s important to try and find what works best for you. For those who prefer a more traditional, organized approach, learning to program in school may be their best option. For others who like to take things at their own pace and rue micromanagement, learning online is the better choice. However, it would definitely be worth your while to try both. Combining different learning methodologies may help you maximize your education and make you get the most out of what you want to learn.