Codecademy tutorials

I've been having fun going through the tutorials on Codecademy because I was intrigued by what kind of teaching approach they would use. Short lessons of reading text,and  requiring the student to type code into a window to prove their understanding seems to be a great approach to keep a student's attention and momentum going. The speed and pace of how quickly I've been going through these JavaScript tutorials has been satisfying, and goes to show that once one knows a programming language, learning other languages is easier.

For the novice programmer, an understanding of the fundamentals is the key to understanding all the other languages out there: creating/manipulating variables, iterating through arrays, using functions to modularize code, knowing there may be a library of pre-written code that you can use to solve your problem, etc. There's no need to feel anxiety or frustration. Just start learning one language, and understand it as best you can. 

From the SICP perspective, a langauge can be understood by knowing its primitives, the means of combination, and the means of abstraction.

Once you know this, you know the rules of the game.

Dreaming of Model-View-Controller

A few days ago, I had a dream about doing something in Ruby on Rails (RoR). From what I remember, I was working somewhere, and was compelled to write an app to solve some problem. Once I started digging into it, it was over, and the dream ended.

It's strange to dream of stuff like this, but does make some sense because it occurred 1 week ago today, on the day I wrote about the stuff I was working on, and that doing web apps, and understanding the MVC development model wasn't a priority of mine.

So while I de-prioritized learning this, my subconscious was telling me that I should. So from it, I took what I already knew and started digging into Django's documentation, reading the beta second edition of the Django book here, and following the examples. And what a challenge it is working with beta documentation, and figuring stuff out on your own!

Why didn't I follow what the dream said, and dig into RoR? Well, I felt I needed to start on familiar footing, and with already knowing Python, Django seemed like a good start, aside from the many stalled attempts last year to figure it out. I'm not knocking RoR are in any way. It's just that I'll get around to it, in time.

It's been a very productive week, and things have really started to click-in. Sometimes, I have trouble with the fundamentals of learning new mental models. In this case, I think it's especially difficult, or almost impossible to understand something like this without having some prior programming experience. I'm just glad Project Euler gave me an outlet to solve actual problems, and get a better feel for a langauge. The end result is a greater understanding of these higher-level concepts, without being overwhelmed by the code, it's placement, or its syntax.

This is a big milestone because MVC is the basis for these web frameworks, and also is the model for writing Cocoa/iOS applications. While my journeys, and experiments in parallel learning continue, I hope to get through enough of it so that I can start creating, and deploying stuff.

Exercise and Insomnia?

It's true, and it happens. If you've started a serious exercise routine, and have sleep problems, look at this:

http://paleohacks.com/questions/7494/exercise-induced-insomnia

I had trouble sleeping during the first round of P90X because I was on a low carb diet, and wasn't eating enough. It started happening again in the second round, and is one of the worst feelings to have because the body is never comfortable lying down. I tend to believe this was one of the reasons why I didn't get the results I was expecting, because I wasn't getting good quality rest.

I tried exercising today, but had to stop because I was still incredibly sore from the Back & Chest, and Plyometrics exercise earlier this week. Even taking the stairs was tough.

So make sure you eat a lot, and get some carbs and fluids in you before sleeping. I may resort to using 5-HTP + Melatonin if things don't improve.

It makes sense that you have to eat and drink a lot in these programs because of the calorie burn that depletes you of everything, and having to take in more nutrients to get everything you lost, and hope to have some energy in reserve.

So, don't feel bad. Eat more!

Add the occasional exercise tip to the blog too. It feels right.

Current Projects

Here are the long-term coding projects in my pipeline of stuff:

Python

I've been using Python for about 2 years, and would say that I'm ok with it. The jobs I had didn't have much opportunities for programming in the language, so I had to find ways outside of work to work on non-trivial code. Project Euler has been great, especially for those with an interest in Math. The goal is to solve 1 Project Euler problem monthly. Anything more is bonus.

here was also a repeatedly stalled effort to write web apps in Django, but the lack of motivation to design the backend and front-end made it a chore. I'll get around to it someday, just not the right time for it. Add Ruby on Rails to the mix as well.

Objective-C

My knowledge in Obj-C is limited at present, but decided to dig in by learning the fundamentals. I read Kernighan & Ritchie C over the holidays, and now reading Cocoa and Objective-C: Up and Running by Scott Stevenson. Guess I'm at the stage where I just don't get it yet, and hope that once this hurdle is overcome, I can dig into writing apps, starting off with simple ridiculous ones. Afterwards, the books from the Big Nerd Ranch seem to be the logical next step, digging into iOS's APIs.

Lisp

I've played around with Scheme a little bit, and have watched the Lisp class taught by Abelson & Sussman. It really piques my curiosity, with its application in AI research, and that pg used it to make Viaweb.

But I have to wonder if Lispers are also big fans of HP RPN calculators.

Introduction

I stopped blogging a few years ago because I felt the writings had no sense of direction, was unfocused, and the process unnatural. The best I could do was write a weekly essay for about six months straight on a variety of subjects before running on empty.

Now that I've had time to think about what to write about, I thought it would be nice to keep it within the realms of Science, Technology, a touch of Philosophy, and my journeys in programming. That's about it.

The intended audience of this blog is mostly for me. It's to keep a log of stuff I'm doing, to write aloud, talk about the ebbs and flows of problem solving, and working on projects. I've benefitted tremendously over the years from Googling so many things, usually landing on someone's blog that had the answers I was looking for. I want to give back, and hope that in time, it will help someone in their research across the Interwebs.

There's also an element of keeping productivty up, staying accountable, and self-managing oneself. I hope to establish some correlation between the frequency/volume of postings, to a matching level of productivity.

Let's begin.