slow progress but progress nonetheless

So….., since last week I’ve attempted to make progress on learning how to code.  The car business that I currently work in has slowed down heavily allowing me a lot more free time to learn or do whatever I want lately, the only drawback is obviously a drop in income.  I’ve taken a few introductory C programming courses during undergrad.  It was fairly boring, dry and I couldn’t see the financial benefit to learning it.  Obviously ever since web 2.0 things have changed.

I’m following Natasha the robot’s study plan and starting with the Stanford CS 106A Java course.  The course at least so far has been using Karel the robot to teach the basics of coding.  It focuses less so on the syntax and more instead on the logical reasoning and algorithmic design to solve the problems they give you.  I really like this approach.  It focuses on the reasoning rather than the syntax.  I remember in the past being bogged down with learning syntax and thus hampering my learning of design.  I also like that I can see the robot move around in it’s own little world versus a regular programming class that would show a black screen and have only text input and outputs.  I am definitely a visual learner.  I visualize when information is passed from one section of a program to another.  I wasn’t a huge fan of abstract concepts.  I preferred physics much more than math.  I preferred civil engineering over electrical since I could visualize everything that was happening.  It made intuitive sense to me.  I finished the first 2 problems of the first assignment.  I did have to look at the answers for the first problem.  The 2nd problem, I solved on my own.  I did have to spend about an hour trying to debug it.  The process to debugging felt pretty similar to solving an engineering problem.  Solving problems is kind of fun, I just wish I could get paid for it immediately lol.

Here is a link to the Stanford CS 106A class on Java programming.  The link contains the software needed to get started.

http://www.stanford.edu/class/cs106a/software.html

Hopefully, none of you guys will run into the problem that I had with the Java versions.  The Stanford CS 106A course uses a program called Eclipse to run the homework assignments. Try to download the newest version of Eclipse.  I had used an older version which kept giving errors where the program would not even start.  It uses some type of java software version 1.6  that you need to download.  Version 1.7 will not make Eclipse work correctly.  I had ver 1.7 installed and after compiling the pop up screen would be blank.  So I went into the control panel and manually uninstalled ver 1.7 of java.  Then I reinstalled ver 1.6 from the stanford CS 106a link.  After that I went back into control panel, searched for java and clicked it open.  Then I unchecked the box where it automatically updates.  I do not want automatic updates to a newer version of Java as that would make Eclipse work incorrectly.  I had to google around to figure out why i was getting all these errors and then a blank compiler screen, took me about 1.5 hours.  Very fucking annoying…

Anyways, I do plan to finish the CS 106A course in it’s entirety.  It’s pretty important to have a strong fundamental base of knowledge of programming techniques.  After this, I would probably head straight into learning ruby online.

I’ve made a github account but haven’t uploaded anything yet.  I might have to download some type of github for windows clone or whatever that is.  I’m little hesitant to do that, since I have a pretty old laptop.  If i really end up enjoying coding, I might have to splurge on a macbook air in a few months.

another thing to do is to learn how to use more features of wordpress.  it seems the proofread feature only highlights the typos unlike microsoft Word which prompts you to correct each typo.

I want to note a very useful piece of info from the CS 106a course.  Decomposition is very important.  This is a concept that is new to me despite having gone through almost 90% of the ruby course on code academy.  I was never taught this in my undergrad intro to programming courses.

Decomposition:

a.) a method solves 1 problem

b.) methods should be roughly 1-15 lines

c.) have good names, i.e. the name should describe the method

d.) use comments, preferably use pre and post conditions within comments

So, until next time.  May the odds be ever in my favor.

Leave a comment