I never thought I was gonna go to university, simply didn’t believe it was worth the time investment, let alone any potential cost (it’s free in Denmark). To anyone thinking about taking a CS degree, I would suggest you think long and hard about what value it will bring you. Generally you will be better off by jumping in the deep end. Start coding and get a job. Don’t put off charging people money, you will be adding value before you feel it (Imposter syndrome is a thing).
But given the increased difficulty associated with moving to the US without a degree and my fondness for living in the Valley, I decided it was worth it after all.
I’ve been attending University of Copenhagen studying Computer Science for a year now. Although the course is a regular in-person course, I’m attending it remotely from London where I work. People thought I was crazy for attempting this, but here’s my thoughts 12 months in.
Students have it easy
Considering how many people warned me it would be impossible to study remotely and maintain my day job, I’m delighted to report that it’s been relatively easy.
I would say I’ve spent 2-3 hours a week on it on average, but it’s been lumped in larger chunks meaning most weeks were uni free while others involved 8-12 hours of cramming to get a big project finished. It would be interesting to have a log of how many hours I use for next year, as I have a strong bias for remembering these numbers as lower than the actual time usage. I seemingly only used 100 hours, let’s say 150 for any bias of mine, on a 1600 hour course load — not bad. Something suggests to me that students could be pushed more, although my prior knowledge of computer science obviously is a huge unfair advantage.
I’m starting to appreciate the value CS fundamentals
I’m still bullish on university being an ineffective use of time. But it does force you to learn non immediately practical skills that I’ve come to appreciate.
It forces you to read/write new languages. Last year the only new language I picked up outside of university was Swift which honestly isn’t that big of a divergence from my past experience. At university I’ve been forced to write more F# and Python that I ever otherwise would have. It’s been interesting to spend some time in a functional language and it definitely forced me to think differently about writing code.
It forces you to do math. I’m not gonna claim that I will apply much of this in my day-to-day life. But it’s certainly been interesting although challenging at times to expand my horizon mathematically. I’m probably not gonna write an induction proof for my code ever again, but having a better grasp of Vectors and Matrix’s have already come in handy when discussing Data Science and Machine learning.
It forces you to read algorithms. Depending on what kind of programming you do the particular algorithms might seldom be useful. But to grasp and discuss algorithms you need an understanding of Big O and data structures that’s incredible useful. “incredible useful” remember most apps can scale pretty far with the most basic of engineering, but obviously there’s some personal pride in doing things in a better way.
It forces you to read. Granted I skipped a lot of the course material. But I did enjoy books like Agile Principles, Patterns, and Practices in C#, Introduction to Algorithms and Code Complete. I probably wouldn’t have taken the time to read them otherwise, at least not this year.
Universities are run by students
It’s been very surprising to me that I’m almost exclusively contacting TA’s when I want to get information about the course that isn’t available online. Luckily for me this makes it super easy to fly under the radar when it comes to never going to class.
I do find it interesting how bad the online tooling is at my university. Since it’s free in Denmark you would think they have an incentive to publish lecture video’s and materials freely online. That is certainly not the case, and I would honestly prefer a FTP server to their intranet software. I think it’s a huge lost marketing opportunity, not to mention an opportunity for improving society.
Education is ripe for disruption
Fundamentally what you need to learn is a curriculum and social pressure to finish — that’s it. The curriculum can be produced once and shared world-wide and the social pressure can be designed and crowdsourced. The incumbents cost THOUSANDS of dollars and takes far longer than necessary. There are loads of coding schools out there. Udemy and Khan Academy are doing great things as well.
Khan Academy is the best source I found for learning math. My problem with Khan Academy is that the courses are not granular enough, don’t provide enough background on why subjects should be learned and doesn’t have enough assignments to secure retention. Also it doesn’t provide social pressure, but that’s not its goal either.
I think someone has the opportunity to create a self-sustaining community of students that offers:
A broad and incredibly deep curriculum by stitching together what already exists out there in a more pedagogical way. The key is to have courses that are 80% overlapping, but really focus on engaging the students for what they’re specifically trying to learn in the last 20%.
Social pressure through peer-to-peer assessments and weekly group sessions.
Perhaps a thought for the future, I know lots of smart people are working on the problem.