Introduction
Introduction Statistics Contact Development Disclaimer Help
----------------------------------------
computer science
February 02nd, 2022
----------------------------------------
I came across one of those lists of free computer science classes
curated in a github gist or some other such place. I knocked it
around in my tabs for a couple hours and let my mind go back to my
own CS education.
I started at Rowan University in 1998 in the Computer Science
department following the coattails of a friend from Boy Scouts who
had been doing well for a year already. In high school I didn't
really have any direction at all or idea of what I wanted to do.
Computers happened to be a thing I was familiar with, spent a bit
of time on, and it appeared likely to have a future that paid
well. My dad's only restriction on my choice was, "No art."
He had gone to Kent State and studied in the Visual Communications
department there and was unable to turn that into a career. He
instead took the long way through a retail job and eventually into
sales. Because of his experience he hoped to save me the trouble.
The thing is, had he not had that restriction I likely would have
gone into some form of art education. It was the course track
I enjoyed most in school, continuously excelled in, and got me
motivated. But, in the long run the joke is on both of us. As I'll
explain in a moment. But first, back to Computer Science!
In 1998 I got my start. I had some great introduction to
programming classes that dove right into C. I had a killer lab
techniques practical course that taught me the ins and outs of the
command line, jobs, rediection of outputs, and all sorts of mighty
cool things I use every day. I also had some heavy-duty math
classes which bored the ever-living snot out of me.
My first semester went well. My second semester saw a marked dip
in my grades, though. I was getting involved in stuff that was
taking my focus away from class, and part way through that year
I developed an extreme clinical depression and insomnia. Entering
my sophomore years I find it difficult to relate details because
I have some intense memory loss due to the insomnia. I basically
accomplished nothing is school, failed everything, and was on the
edge of academic probation when I somehow signed up to enlist in
the US Navy. That gave me an excuse for a leave-of-asence from
school (delaying repaying those loans!) and in a matter of weeks
I was gone.
All in all my computer science education is the equivalent of two
pretty solid semesters of foundations.
In the Navy I was a nuclear electronics technician, so I picked up
more skills in hardware which was really cool, but didn't do much
to further my computer expertise.
Finally, after the Navy, I ended up returning to school and
beginning anew at Indiana University. I transfered pretty much
nothing from my first school as I wasn't going into a CS
department. I think 2 of my math classes may have worked and
that's it. But, this time around I had a Navy work ethic and also
the a limited time payment due to my medical discharge. The Navy
had me covered for about 3 years of school, so I went to town.
I managed to go from nothing at all to a masters degree in those
three years. Fun part about it? It was in this lovely new program
that just launched called "New Media". It was, in fact, a visual
communications degree + computers. Hah!
So, as I'm remember all this stuff I'm also lementing how I can
whiz through and code really well and professionally at a senior
level in a few niche areas, but if you need skills that get past,
say, data structures and algorithms level, I never learned it.
Systems programming? No idea. Operating systems? Nope. Parallel
computing? Huh?
I'll sum it up this way: I never got to learn how to link to
a system library. Not sure what to do to make that happen.
I can muddle around in about 15 languages, but without that
conceptual level to fall back on there's not a lot I can actually
DO outside of the web.
So yeah, I need more education. And here are all these free
courses. My formal education was a quarter century ago, so I'm not
going to rely on memory. I've decided to start from the beginning.
The following is a list of courses with video lections I found
which roughly run in linear order. I may end up shuffling one or
two things later on, but for now I'm just watching lectures one by
one and soaking it in. I'm pretty sure I won't need any note
taking for the first couple of courses, but we'll see.
Stanford CS106A - Programming Methodology
Stanford CS106B - Programming Abstractions
Stanford CS107 - Programming Paradigms
Stanford CS110 - Principals of Computer Systems
MIT - Mathematics for Computer Science
Wheaton - Discrete Mathematics and Functional Programming
Stanford CS161 - Design and Analysis of Algorithms 1
Stanford CS161 - Design and Analysis of Algorithms 2
Stanford CS261 - A second Course in Algorithms
Stanford EE261 - The Fourier Transform and its Applications
CMU 18-447 - Introduction to Computer Architecture
CMU 15-418 - Parallel Computer Architecture and Programming
CMU 15-721 - Database Systems
CSE 421/521 - Introduction to Operating Systems
Berkeley - SICP Python
MIT - SICP Scheme
The last two entrants are both courses based around SICP. There's
the famous Scheme original from MIT, but also one in Python which
I grok better. In April I'm picking up the Javascript SICP book
too. Between two courses and a book in three different languages
I hope I'll be able to muddle my way through.
I hope I finish it all. I think it's doable. I'll keep pressing
forward as best I can. If you read this and think about it at some
point in the future, feel free to ping me on IRC or Mastodon
sometime and ask how I'm doing. Who knows, I may be stalled and
need a little nudge back on track.
You are viewing proxied material from gopher.black. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.