No one is ever really prepared to start a degree in CS, it would seem. This has been a recurring theme for me, watching the intro classes in my program, and it’s not always in the way you might think. Sure, for many it’s a wild new concept that’s very challenging but you also have students who have been at it awhile and are just seeking the piece of paper. Even among the latter, there’s often a wide variety of skill and humility/willingness to learn. I feel like I hit a bit of a sweet spot coming in though. I had enough knowledge that programming wasn’t new to me but I certainly wasn’t set in my ways either. So how does a student starting out achieve this balance? It’s hard to get started by yourself, to be honest. I was fortunate enough to have someone to guide me, but even then I was super prepared for only some things. It made me overly confident in my abilities to the point I procrastinated into my own personal hell with the OSU Online CS subreddit-infamous doodlebugs assignment, sometimes affectionately referred to as doodledicks. Now, looking at the assignment as an outsider, it may not seem terribly difficult but it was riddled with problems – the worst of which being that to implement it easily required concepts that hadn’t yet been covered in the material.
Start here, it will make development environments so much easier:
https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-1
Intro to CS in C and more, someday I will go back and finish this:
https://www.edx.org/course/introduction-computer-science-harvardx-cs50x
Intro to CS in Python, great intro to O notation, trees are hard: https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11
Not necessarily for intro, but looks like some of it would be helpful for algorithms:
https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-6
I can’t say that it’s impossible to jump into a CS program knowing nothing, but it is certainly much easier on you to get a head start! What I can tell you is that I’m 6 months from graduating and I still haven’t had enough time to work on outside projects to really hone in on what I want to do with my degree. 🙂 Work on what interests you most – it doesn’t have to be something here. Most of what I learned was directly applicable to something I could use at work or, in the case of the intro to python class, I was able to use it to start working through Project Euler.