Every day, like clockwork, I get emails from various free online course platforms to try out a new coding class. Like my CMB app, each email I receive is telling me that this course is the one. As with online dating, sometimes I wonder if the more options there are for these courses, the harder it is to gauge where I stand.
Don't get me wrong, having options is a good thing because it means I won't settle, and I like having tons of free resources at my disposal when it comes learning. However, it also means that every option is different--good and bad--in its own way, and it almost feels like I'm comparing apples to oranges.
When I first decided that I would delve deeper into the world of coding, I didn't know where I should pick up from where I left off a decade ago. Much of the code I knew, like my GeoCities page, had become obsolete (e.g., since when did <i> to Italicize words become <em> in HTML?). I had taken a course here and there on Coursera back in 2014, which to its credit has a great library of free classes from top notch universities, but an ambiguity in measuring a potential gap in knowledge when transitioning from one skill level to another. In other words, if you're taking Stanford's Intro to XX in one semester, how do you know you can pick up right where you leave off at Carnegie Mellon's Intermediate XX in the next?
After doing a quick Google search on free, self-paced online coding courses I stumbled across Codecademy, which was the perfect platform to segue into a variety languages without being confused by different built-in interpreters and such. There is simply one window where you write your code, one button to run your code, one to reset your code, and one window to display the output of your code.
After refreshing my rusty HTML & CSS skills in one Codecademy course and introducing myself to Javascript in another, I couldn't help but wonder--how does the pace and content of Codecademy stack up against other online courses? Was it simpler, more in depth, did it focus more on certain topics over others?
I went ahead and completed 60% of the Python course before I decided to explore what other introductory level Python courses were teaching, all the while reading How to Think Like a Computer Scientist on and off on my morning BART rides to work. I was at the point in the Codecademy course where they were giving me one exercise after another just for practice, so I figured I could always go back whenever I wanted to.
I've heard of the Google Python Class by Nick Parlante here and there and decided to give it a shot. It's definitely a breath of fresh air to put a face to an actual instructor, although I do have to admit that while Parlante's enthusiasm for the language and class is endearing, I would have been extremely lost if I didn't have prior exposure to the language before, .
Everything is simplified in a way, and so are the exercises, but there are certain snippets of code and syntax rules that aren't explained very well, or simply glossed over. Much of the "standard" running code is already filled in the exercises, and all you need to do is input code where instructed. There is a lot of "there's xxx code here, but we'll get to this later", and "this" ends up never materializing in the course again, or so I'm guessing. So far I've made it through Day 1's lecture videos, and will be working through the reading material of dictionary before starting the exercises.
Perhaps this Google Python course was designed for people who have good experience with other languages and can easily translate that to Python without needing the know-how's and why's of all the code that ties a program together to make it work., nevertheless I'm determined to finish this course just to cross it off the list. If I really get stuck, I'll probably bring it up to one of the TAs at the PyLadies study groups.
Speaking of PyLadies, I just attended my first Meetup in this group last Monday. It was a Beginner's Workshop that focused on material and exercises from How to Think Like a Computer Scientist, which was great because after months of reading the book on my phone during my morning commute, I could finally see what these exercises were about.
Like Codecademy, this book/course hybrid has its own built-in platform where you can input code and run it on the same window to see the output. The Turtles exercises reminded me a lot of Scratch, which I had to use back in UCSD for an Intro to Comp Sci class, dragging and dropping snippets of code to build out a program. It's a great way to visually map how a programmer should think about arranging their code, but not so much in giving you practice in hands-on writing code. Then again, I guess that is the point of the book, right? How to think like a computer scientist before your start writing like one.
Much of what I read during those two hours I already knew, but that's probably because I keep going back to the beginning by trying out different courses to see if the knowledge I'm being taught is even across the board. Makes me wonder, at what point do you progress from intro level to intermediate? Do programmers even define it this way? It's intimidating to think about joining study groups that are considered non-intro level because there's no way I can tell what level I am. For now I think it's fair enough to just say I'm intro level until I finish the Codecademy, Google, and How to Think Like a Scientist Python courses.
Anyway, at the end of the study group, I met three great Hackbright alumn ladies, who told me a bit about their experience at Hackbright and the admissions process. It was great talking to them because I'd attended a Hackbright Admissions info session a few months ago, but didn't get to really talk to the alums. Again with the theme of the night, they said their experience admissions really wasn't about how much they knew beforehand, but how they knew.
More on that in the coming blog posts. I have another PyLadies beginner's study group today. We'll see how that goes!