Hack Your Own Computer Science Degree

We ran across something interesting on GitHub of all places. The “Open Source Society University” has a list of resources to use if you want to teach yourself computer science for free. We found it interesting because there are so many resources available it can be hard to pick and choose. Of course, you can always pick a track from one school, but it was interesting to see what [Eric Douglas] and contributors thought would be a good foundation.

If you dig down, there are really a few potential benefits from going to college. One is you might learn something — although we’ve found that isn’t always a given, surprisingly. The second is you can get a piece of paper to frame that impresses most people, especially those that want to hire you but can’t determine if you know what you are talking about or not. Lastly, if you go to the right school you can meet people that might be useful to know in the future for different reasons.

The Internet has really changed all of those things, you can network pretty easily these days without a class ring, and there are lots of ways to earn accredited diplomas online. If you are interested in what we think is the most important part — the education — there are many options for that too.

One of the problems with self-education, is that it is sometimes hard to know what you want to study. If you want to be on par with students graduating from brick and mortar schools, something like this program can help you sort out your options and at least see what areas you ought to be studying.

This initiative is far from unique, but we found it interesting that it is hosted on GitHub and uses other online tools like Trello. We’ve been big fans of MITx (and the related EDx). We’ve also stolen learning materials from the military.

While some people (and employers) will never accept the autodidactic, we think it shows initiative when it is done right. Just don’t tell us you were the valedictorian of your class of one.

38 thoughts on “Hack Your Own Computer Science Degree

  1. “One of the problems with self-education, is that it is sometimes hard to know what you want to study. If you want to be on par with students graduating from brick and mortar schools, something like this program can help you sort out your options and at least see what areas you ought to be studying.”

    The other is that self-education only works if one has the discipline, just like telecommuting. Not to mention we all learn differently.

        1. I’m not sure I follow you here. Are you suggesting picking a field of study based on potential employment opportunities (I.E. money) vs something you have an actual interest? Because that sounds like a recipe for a lifetime of depression and a steady supply of disinterested employees.

          1. For some it’s not a choice between what’s lucrative and actual interest, but between multiple actual interests, some lucrative and some not.

            One thing about paying tuition at an accredited university, it tends to weed out some of the students who have only chosen the field in the hope of getting a high-paying job.

          2. @JDX — I’m not sure I agree. I think the tuition is a bad discriminator for that. I think for engineering, calculus classes server that function. I’ve often lamented that the loss of the slide rule was bad for that. When you had to use a slide rule, you had to have some “on the ball” for math or you could not get the right answer. That weeded out a lot of freshmen.

          3. I think their point was It may be really interesting to study a new language but you also need to understand matrix math, Kirchhoff’s laws, . Or even the opposite, You may find Elliptic Curve mathematics to be the most interesting thing on the planet and devote much of your study time to it, but if you can’t write a lick of code you’re probably not gonna get hired as a computer programmer / scientist.
            Knowing what to study is just as important as making sure you study. What languages are used in the field you’re interested in, you may love BrainFuck but it’s not used by any production team so why spend time learning if your goal is to get a job programming? Learn it all you want in your free time or after you get hired, but don’t spend ‘class time’ on something that isn’t useful to your goal.

            If you’re not going to go to an accredited program, you need to have a pretty good handle on what is expected of people in the job you want so you can prepare. If nothing else find a syllabus from a University and follow that after you throw out the GenEd requirements.

    1. All education only works if one has discipline. As I see it, one of the primary purposes of elementary education is to teach students the value of hard work and dedication. Discipline must be reinforced.

          1. “Free” with fixed multi-year indentured servitude and real possibility of loss of life or crippling injury.
            Sure you’re probably not gonna get killed if you’re a tech expert or cook (or live in a country not involved in any conflicts), but all it takes is a wrong turn of your convoy and all of the sudden you’re in an ambush.

            Nothing wrong with getting your training from the military or their contracts but the risks and getting moved around to different bases IMO put it far from free. If you’re not paying for it, you are the product being sold.

    2. Strange, that is how I started out in Computer Science – only it wasn’t called computer science in the time frame of 1969-1972 when I did this. My cousin was in an Explorer post on computers so he somehow got a variety of books on programming computers. I learned COBOL, PL/1, IBM 360 assembly language as well as a number of other programming languages this way. I learned BASIC from a computer I had access to in my high school. I started out looking at how to program something simple, three dimension tic tac toe – man against the computer. It used a 10 or 11 deep strategy that almost guaranteed the computer would always win, except if you knew how the computer won all the time, you could beat it. I think this program had about 9 levels of loop within loop within loop within loop within loop … This made the program excruciatingly slow when run with an interpreted language. Note by the time I entered college, I knew far more about programming than the professor that taught the FORTRAN class. At the time, we used a Fortran compiler from the University of Waterloo that would attempt to correct some of your mistakes, which often
      resulted in a working program even though it had some mistakes in it. I never got college credit for all those programming languages I already knew. I got something better – recognition that I knew more than most people about computers – they chose me to be the student representative on a panel of professors that did stuff on Computing at University of Michigan Dearborn. I don’t remember what the panel did though.

      Scott Holland – website : electronicscomputers20934240.wordpress.com

  2. “One is you might learn something — although we’ve found that isn’t always a given, surprisingly.”

    There are so many useless degrees, especially from “liberal arts” schools. Find out what people and companies are willing to pay for, then take classes to learn that. Otherwise you’ll probably be ‘occupying; someplace, holding your iPhone your parents bought you or you spent part of your school loan on, and complaining that those corporate fatcats won’t hire you and pay you lotsa money. There has to be some job for a person who majored in the languages of ancient mesopotamia…

    What is neat about online learning is that some universities have video courses that are free. Some even give you a free certificate of completion – but if you want the diploma or degree paper you have to pay and take tests, though the cost is usually far less than going to the school to take classes in person.

    I wonder if any companies are hiring based on CoC’s for free courses?

    1. > There has to be some job for a person who majored in the languages of ancient mesopotamia.

      A guy who lives down the street from me has a funded chair (that means a professorship with the funders name on it) in the history department at U.C. Davis in just that sort of topic.

      And of course I’ve done pretty well with my Communication Arts background and no computer science courses whatsoever. Including management positions at major corporations and national grants to teach at colleges.

      1. Back in the expert systems AI summer, I attended a seminar on that subject. Most of the audience were technologists and their managers. The speaker asked for a show of hands, “Who is doing work that has nothing to do with what they majored in?”–around half of those attending put a hand up.

        1. My brother, a CPA, attended a conference of CPA’s years ago. When the room of over 300 CPA’s was asked “Stand up, if you would want your children to become a CPA.”, only 3 people stood up.

    2. Sorry I have to wonder about your intent when you place quotation marks around liberal arts. I wonder because many use liberal in a pejorative sense to disparage a liberal arts education. What is or isn’t useless is generally a matter of opinion. An actual classic liberal arts education can be extremely useful, not only when one pursues a particular field, it’s useful in being a good citizen. Problem is getting young students to understand that. Ideally anyone leaving the 12th grade should be well on their way in regards to a liberal arts education, but that most likely will never happen in the US, because our government of merchants is more interested in getting labor and the consumer in acting against their best interest.

      1. “What is or isn’t useless is generally a matter of opinion. An actual classic liberal arts education can be extremely useful, not only when one pursues a particular field, it’s useful in being a good citizen.”

        I don’t think your making your case any stronger with logic like that. It’s not really a matter of opinion that the US desperately needs more engineers and scientists to stay competitive globally. Or that while an art degree might at least keep your resume out of the trash, a degree in something more practical would absolutely put it higher in the stack.

        Conversely, an excellent example of an opinion is the assertion that a good use of time and money is spending 4 years at college with end goal no more concrete than “being a good citizen”.

        This isn’t ancient Rome or something where you could reasonably devote a lifetime to philosophy and navel gazing. We’re a society on the cusp of interplanetary travel and artificial intelligence, we badly need more people who can build and fix things.

        1. Your comments demeaning Roman education reveal your lack of “liberal” education. The majority of people in Rome were slaves. Only a tiny population of the upper cruft would have been citizens. As I agree with you that we need more people going into trade schools, we also need them to be educated about history, pholosophy, and formal writing skills so they can communicate with the people above them in the chain of command, and prevent us from becoming a more classist society like Rome.

        2. Debate about the relative merits of Rome aside, I think there’s an even more important reason for people to have more science/technology education today. That’s public policy. We aspire to have a government that represents the people. When the highest tech you had was a steam locomotive, most people probably understood most of what was important. Today, we need government to decide on things like energy policy, global warming, cancer treatments, genetic research, etc. Yet how many of even us in the hacker community have enough background to have an independent opinion about much of this? Do you have your own opinion on global warming or are you just repeating one side or the other?

          People need more science and technology education today because our everyday life is full of science and technology compared to even a few decades ago.

          As far a liberal arts go, I think you can go too far with anything. We shouldn’t turn out engineers that don’t know anything but engineering, but we also shouldn’t matriculate fine art majors that can’t use a computer or make reasonable decisions about cybersecurity.

        3. Here’s the thing, there are a lot of people doing technological work that give absolutely no thought about the impact of their work. Ethics classes are not generally thought of as a tech skill, even though the tech community badly needs education on the subject. Other classes that are considered liberal arts and thus derided in the original comment apply as well. Even if it can’t directly apply as a job skill, there should be more to life than just job skills. I can’t decide if we are slowly turning into the Ferengi or the Klingons, but either way isn’t a healthy direction for our country.
          Philosophy and so-called “navel gazing” as you derisively put it, are equally as important as hard skills like programming.

  3. Having done both (taught myself computer skills, and then getting a CS degree just before I retired) I can say there is something to be said for both. Ultimately the student must do the learning. And if you are able to self motivate, teaching yourself is by far the best path. But having a sheepskin to wave under someones nose counts for a lot. Not that I have ever shown anyone any of my diplomas. I just indicate my degrees on my resume or application and as far as I know, nobody has every questioned or verified any of it.

    That aside, one thing about classes and a required course of study is that you end up having to learn things you might just avoid left to yourself. And many times this is good, not in the sens of swallowing nasty medicine that is good for you, but because you discover things you enjoy that you never dreamed that you would. But I will tell you one thing. Pick the class not so much for the subject but for the instructor. Some instructors are so good they shouldn’t be missed. And a bad instructor teaching your pet subject is the worst possible thing. Ask around.

    1. “And a bad instructor teaching your pet subject is the worst possible thing.”

      Yeah. Like being taught Electronics by an ex-USAF Laser Tech / ex-cop / idiot who keeps making the same damned joke about “siemens”. That diploma mill’s budget wasn’t going toward good faculty. They’re closed now.

    2. I will not mention the University but I can confirm your comments about a bad instructor may times over. My wife took a Computer class on designing computers. Guess what – the computer the instructor started with – a five stage pipelined computer that had a stage that fetched instructions, a stage that fetched the operands from memory, a stage that executed the instruction and a stage that wrote the result back to either a register or to memory. Now I learned on a bicycle instead of a Porshe. My wife and a friend of hers were having a terrible time understanding what the instructor was talking about. I had been in the process of writing the microcode for just such a computer the instructor was talking about. I saw his approach, told my wife he was stupid and began to teach my wife and her friend the right way.

      I started out with a simple bit slice design using 2901 bit slices and a 2911 controller based micro sequencer. This probably only makes sense to those of you who did design in the 60s through the 80’s. I showed my wife(and friend) how this basic design worked then I helped her to understand the multistage pipelined computer.

      Guess what! She and her friend understood how I presented it. They went back to class and started asking questions. They were no longer naive. They actually asked intelligent questions. At that time everyone knew that women could not understand computers. This instructor heard their questions and initially dismissed them, but then he realized they actually understood the information the instructor was trying to snow all the students with. That stupid idiot didn’t realize that an education is actually supposed to teach the students something. I use the term stupid to recognize this instructors ability to teach, not his knowledge of multi-staged pipelined computers.

      Enough said, never get a stupid (see my def. above) teacher. If you do get a “stupid” teacher, find a tutor that knows the material better than the stupid teacher.

  4. I went to a freelance site and they had tests you could take for qualifications.I passed the C test but failed the electronics test. This is confusing because I have an associates degreee in electronics but I am self taught in C. I think the electronics test was too hard. It would be easy money if someone needed an arduino program or a simple opamp circuit but I found too many more qualified engineers ready to grab those types of jobs.

    I consider Github my resume.

    1. As it stands today (California) the transfer of “Class Credits” is dependent on the receiving school to approve.
      This is why it’s so difficult. The New school wants to sell class time instead of agreeing to old credits.

      1. There are several schools who are very liberal about taking credits from accredited schools. Thomas Edison State University is one and has several technical fields of study.

  5. I am now retired and work on whatever I want, No one tells me what to do, what to design or how to design it – unless I ask for their help. That piece of paper is now what it has always been, just something to help start a fire with. Knowledge has always held the power, I don’t care that my school of hard knocks doesn’t give me a diploma, I know what I know – My skill and ability far exceeds most college professors in the fields I care about. That doesn’t mean I consider a degree useless – it does make it easier for that poor HR rep at a company that is supposed to look like he knows something pick out people that can most likely succeed. Of course, the reliance on that degree from an accredited university does limit that HR person, it means he may look beyond the best person for a job since he is not able to evaluate them properly. How many people do you know that are capable of teaching themselves? That HR person probably doesn’t know any, thats because he would never hire them.

Leave a Reply to Bruce Perens K6BPCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.