Adventures in code

Classroom vs. Bedroom vs. Lecture Hall

At one time or another I have experienced all major ways of learning computer science: self study, university classes, and the group-oriented classroom. This gives me an unique ability to examine the pros and cons of each style.

Lecture Hall aka University

Lecture hall

No one is a stranger to the classic college formula these days: lecture on monday, test on friday. While University teaching works to educate a large number of students in a (relatively) short time, it does have a few drawbacks.


  1. Large class sizes
    • hard to reach professors
    • little to no sense of ‘comradery’
    • slows down the class
    • hard for professors to give meaningful feedback
  2. Emphasis on tests
    • completely academic
      • no real world analogies
    • leads to a ‘get an A’ mentality rather than a ‘learn this shit’ mentality
  3. Bureaucracy
    • hard for professors to change class content
    • professors tend to burn out from dealing with bureaucracy
    • leads to stagnation
    • forms, hoops, and permissions for every decision
  4. Cost
    • average cost of four year degree: $21,657
    • this number increases every year
    • takes four years of your life
  5. Focused on theory
    • great foundations
    • does not really prepare you to develop


  1. Degree
    • an accredited university provides formal proof of completion
    • required by some organisations
    • most provide an excellent foundation in theory
  2. College experience
    • a large community leads to networking opportunites
    • achieve a working knowledge in a variety of subjects

To conclude:

Overall I dislike the current way computer science is taught in universities. In the current environment it is almost impossible for professors to teach full time and keep up with the changing field of computer science. This forces a greater emphasis on theory which leads to graduates that can explain the O(n) of an algorithm they outlined, but have no idea how to launch a web server or an application.