Archive | September 2013

OOP

So I finished the PHP track on Codecademy which was an optional part of our pre-work.  Great that I am now familiar at least a little with all these different languages, and it’s very clear that the basic concepts are very similar throughout and it’s just a matter of learning the individual syntax.  So between JavaScript, Ruby, PHP, and Python, I’ve now gotten some exposure to what Object-Oriented Programming is 4 times though really it’s been a similarly low-level basic exposure all 4 times, and I’m thinking I’ll really need to use it to really understand it.  I’ve created objects and classes and properties and methods and made subclasses inherit from their superclasses, etc., but it’s mostly been in these stand-alone examples that don’t quite provide any deep understanding.  I think I’ve used it a little in my Web Development Udacity class – at least there are classes in that code.  Even if I don’t understand 100% of everything, that’s why that class is so great – because I’m actually applying what I’ve learned and doing something real – so little by little the understanding will seep in.  Vs. Codecademy which is more just getting exposure to the general concepts and coding syntax and getting a little practice in stand-alone examples.  Though I’m definitely glad to have all this exposure pre-Coding Dojo.  My next thing is I need to come up with project ideas and use Balsamiq to create wireframe mock-ups for the projects.  Maybe I’ve been putting that off a little, but now I really want to spend some time brainstorming ideas, learning Balsamiq, and creating the wireframes.

2 more weeks…

Moving along doing some of my pre-work and some of my own stuff.  I finished the JavaScript track on Codecademy, which was fine.  After doing so much more Python on Udacity, I feel way better about Python – and I guess it’s just more intuitive anyway.  But it’s definitely good for me to be learning some of all of these.  I finished the Intro CS class on Udacity which really was quite a great experience, and I really feel like I learned a lot.  Now I’m on to my next Udacity class – Web Development – which involves creating an actual web app and putting it online via Google App Engine.  So far I’ve built a basic page that transforms any text 13 characters forward in the alphabet (aka ROT13, a Caesar cipher), and I’ve built a basic sign-up page where a user inputs a username, password, password confirmation, and email, including all the appropriate error messages when any of their input is not valid.  It’s pretty basic, and I don’t understand 100% of everything I’m doing since for some of it I’m just copying code from their templates (though that is seriously still not always straightforward), but it’s also just about the process and learning to figure things out as I go and develop little bits at a time and then test them and fix things when I get an error message.  Overall it seems like this is great experience, and it’s pretty thrilling!  I’m actually creating a simple back-end of something!  Plus the teacher is one of the co-founders of Reddit, so that’s kind of cool.  Now I have 2 more weeks until I start Coding Dojo, and I am going to just keep trying to learn all that I can on my own before then…!

Making a decision was only the beginning of things.  When someone makes a decision, he is really diving into a strong current that will carry him to places he had never dreamed of when he first made the decision.
–Paolo Coelho, The Alchemist

Udacity

I’ve been working my way through the Intro to Computer Science course on Udacity, and I’ve been loving it.  This is really the ideal type of class that I was looking for to begin with to introduce basic topics of CS at the right level of difficulty and in a real programming language.  The Coursera intro class was good too and maybe it’s because it was still so new to me, but the processes involving images that it was teaching didn’t seem quite as directly applicable (though still taught concepts like for loops), and it was in a simplified JavaScript variation, not even the real thing, so I didn’t even feel like I could come out of it able to do something “real.”  (It did also separately talk more about computers themselves vs. programming with topics like computer history, hardware, software, networking, and security.)  But in this Udacity class I feel like I’m learning a surprising amount and am really getting some of these basics down.  It teaches Python, so that’s my first exposure to that, but I’m really liking it, and remaining focused on the one language, adding in new concepts one at a time building on the old ones, I feel like I’m really learning it.  (While also forgetting or somewhat overwriting what I learned in Ruby!  Ruby seemed elegant to me, but Python does too!  Needing “end” to mark the end of a method definition or if statement?  In Ruby it seemed an elegant bookend to clearly mark it, but in Python it seems equally elegant that spacing and indentation can achieve the same purpose.)  And the structure of the Udacity course is great with many many bite-sized pieces – short explanation videos interspersed with quizzes that have intro videos and videos explaining the solutions, plus homework problem sets with more video explanations.  It’s broken up into small pieces so it feels manageable, but the frequent quizzing means you’re always directly applying what you just learned to make sure you understand it, and if you don’t, the video will explain it to you!  There is always a range of level of difficulty in the quizzes so some are super easy just to make sure you understand the basic syntax that was just introduced, and some are way harder requiring that you combine many different concepts that you’ve learned over the course thus far.  There’s also a range in the quizzes between conceptual-type questions to make sure you understand the big picture ideas and programming questions where you write actual code.  In general I’m amazed at the amount of content included.  I’ve finished the end of Unit 3 (which really means having finished 4 full units because there was an added in quite long Unit 2.5), and I feel like I’ve spent *a lot* of time on it already and still have such a long way to go.  (And then there are a ton more Udacity courses that I would want to do afterwards and hopefully they are of similar quality – I could really learn a lot this way!)  I’m just very impressed by the content and the quality.  I’m even skipping the optional problem sets, which was a somewhat hard decision to make for the “completist” person that I am – but there are these additional problems that are often quite difficult and so take a lot of time, and they don’t have solution videos or even official solutions posted I don’t think – you just have to rely on the forums.  So I felt like I was getting too bogged down in spending a lot of time trying to solve a hard problem and then not having a satisfying way of seeing a correct answer, and although there is certainly a major value in spending time on hard problems like that, I really just want to keep proceeding through the class – and there are enough hard problems in the official homework with solution videos that that’s enough for me.  [Again trying not to let the perfect be the enemy of the good…!]  So yeah, overall I’m pretty pleased and I feel like I’m learning a lot!

I just got my official Coding Dojo pre-work too, so I’ll need to start working on that.  I had read enough other people’s blogs that I pretty much knew what it was going to be, so I’ve been somewhat mentally planning for what to do when.  So I’ll have to decide because I want the things they require to be freshest in my mind right before the program starts, but I also don’t want to run out of time!  And there are all these other things I still want to do myself like these Udacity classes, so we’ll see.  The good news is I will have lots of time to devote before the program starts, and maybe my preparation plans are more than is necessary in same ways, but I want to go in with some good foundations.  I just realized today’s date – September 7th – so in one month exactly my program will start.  One more month to prepare!  But definitely a good sign that I’m liking this Udacity course and sometimes feeling truly energized by it (though also sometimes feeling frustrated) – good preparation for what’s to come…  :-)