Friday, July 17, 2015

Day 117: Chapter 31 of the JavaScript Book

I started the day on Chapter 31 Getting the Current Date and Time.  We worked with new Date() which creates a Date Object.  We converted it to a string with .toString() and we also made arrays to convert the 0 - 1 number it returns when you use .getDay() to get a day into a day like Monday, Tuesday, etc.

Next was Chapter 32 Extracting Parts of the Date and Time.  After that, i worked on Chapter 33 Specifying a Date and Time.  Next was Chapter 34, Changing Elements of Date and Time.  When counting seconds, remember that there's no 60th second, there's a 59th second, and then the next second after that is the 0 second of the next minute.  Minutes go from 0 to 59 and hours from 0 to 23.  Weeks from 0 to 6, and months from 0 to 11. 

And it's done!  

I'm now on Chapter 35 Functions!  My next session will be great.  Once I get a grip on functions, I'll give Euler Problem 3 another shot!  It would be great if I could solve it after I finish the next 4 chapters, all of which go over functions.  The chapter noted that functions are typically stored in the same place as the main code, in an external JavaScript file, at the end of the HTML body section, or in the HTML head section.  So happy today! 

Well, I felt like doing some more work today so I finished Chapter 35 Functions already.  The next chapter is Chapter 36 Functions Passing Them Data.

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 89)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today: 3
Total Hours Coding: 560

Thursday, July 16, 2015

Day 116: Chapter 27 of the Javascript Book

I started the day on Chapter 27 Generating Random Numbers.  Here's the code we used to generate a random number from 1 through 6:

var bigDecimal = Math.random(); 
var improvedNum = (bigDecimal * 6) + 1;
var numberOfStars = Math.floor(improvedNum);

The first line generates a 16 place decimal and assigns it to the variable.
The second line converts the 16 place decimal to a number ranging from 0.00 to 5.99, then adds 1, so the range ends up as 1.00 through 6.99 (there's many more zeros that I am not typing, 16 zeros/decimal places, to be exact).  The third line rounds the value represented by the new variable down to the nearest integer that ranges from 1 through 6.

Let me practice that again:

var x = Math.random();
var y = (x * 6) + 1;
var z = Math.floor(y);

O.k., moving on to Chapter 28 Converting Strings to Integers and Decimals.  We used parseInt() and parseFloat(), which convert strings to numbers.  Int will chop off (it does NOT round, it chops off) any decimals, leaving only whole integers, and Float will get the exact decimals.

I finished chapter 29 Converting Strings to Numbers and Numbers to Strings, and I'm on Chapter 30 Controlling the Length of Decimals now.  I've noticed that these are methods (you put the item to be modified before the method):

.toString()

And these are functions (you put the item to be modified within the parentheses):

Number() 

Just a note.  

I finished Chapter 30, and now I'm on Chapter 31 Getting the Current Date and Time.  I'm stopping here so I can do all the time chapters tomorrow, and then move on to functions!  Yeah!

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 89)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today: 2
Total Hours Coding: 557

Wednesday, July 15, 2015

Day 115: More of the Javascript Book

Chapter 23 is a bit confusing, so I was re-reading it yesterday, and that's where I started today.  I re-read the code that begins the chapter (well, this is my version of it, but it works too):

var text = "Hello, this is sample lorem impsum text that I am typing in order to have a paragraph of text to fill out the text variable.  Basically this paragraph deals with World War II.  We are not supposed to use that name, and the code below should change it to Second World War.  Let's see if it does!";

for (var i = 0; i < text.length; i++) {
  if (text.slice(i, i + 12) === "World War II") {
    text = text.slice(0, i) + "the Second World War" +
  text.slice(i + 12);
  }
};


And this time I understood it.  Where text is redefined, the new definition concatenates everything before the insertion, the insertion, and everything after the insertion.  

It helps a lot when, before you start reading, you say to yourself: "I will read this, and I will pay attention, and I will understand it, and if I don't, i will read it again until I do."  I find that what happens a lot when I do that is that I understand it the first time.  Focus is key to this stuff.  

I completed Chapter 23, and am now on Chapter 24.  I completed Chapter 24 and now I'm on Chapter 25.  Here, I learned the replace method, which works like so:

var newText = text.replace("World War II", "the Second World War");

That's much more efficient than the for loop and slice approach or the indexOf and slice approach (the one with the !== - 1 as the condition for the for loop).  That will replace only the first instance.  If you want to replace all instances, the code is like so:


var newText = text.replace(/"World War II"/g, "the Second World War");

If we use a new variable on the right, then the original variable will remain the same.  If we use the same variable, like so, then the original will be changed:

var text = text.replace(/World War II/g, "the Second World War");

Notice that the quotation marks are removed from the first string.  

I finished Chapter 25 and am now on Chapter 26 Rounding Numbers.  The Math.round function rounds up.  The M must be capitalized.  For example, .5 would be rounded up to 1, while -1.5 would be rounded up to -1.  Math.ceil rounds up to the nearest integer no matter what, so .000001 becomes 1, while -1.0000005 becomes -1 and so on.  Math.floor does the opposite, it rounds down to the nearest integer, so .000001 becomes 0, while -1.000005 becomes -2.

I finished Chapter 26 and am now on Chapter 27.

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 89)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today: 2
Total Hours Coding: 555

Tuesday, July 14, 2015

Day 114: Continuing with the Javascript Book

I started today by working on the quiz questions for Chapter 22.  Once I finish those, I'll move on to the next chapter, until I finish the book and solve Euler Problem 3.  I finished chapter 22, and now I'm on Chapter 23.  Chapter 23 is a bit confusing, so I'm re-reading it.

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 78)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today:2
Total Hours Coding: 553

Monday, July 13, 2015

Day 113: Back to The Odin Project and the Javascript Book

Quite a bit has happened since my last post.  I went on vacation to South Texas for about a month to spend some time with my family.  While there, I took advantage of the trip to go to Mexico to get two teeth pulled and braces installed.  Now I'm back in Austin and ready go back to coding!  

I can continue with Ruby and do the Prep Work, but since the deadline for the application has passed for this cycle, I'm going to go back and continue with Javascript.  I want to solve the third Euler Problem.  During that one month break due to the move to South Texas and the frequent trips back and forth to Mexico related to my braces, I figured out the Javascript code for determining whether a number is a prime number or not.  I used my previous find (the pseudocode posted earlier) as a base.  Here's the Javascript code:

var a = 8;
var b = a - 1;
var IsPrime = true;
while (b !== 1) {
  if (a % b === 0)
    IsPrime = false;
    b = b - 1;
}

if (IsPrime === true) {
  console.log("Prime");
}
else {
  console.log("Not Prime");
}

So now, what I need is to master functions in Javascript so that I can combine the code above with a function to solve Euler Problem 3.  In order to do that, I'm going to continue working on the Javascript book, then follow The Odin Project's coursework where I left off.  I've learned to use new software tools like Balsamiq, problem solving tools like pseudo code, and project management methodologies like AGILE due to the prep work, and all of these tools have given me a much better understanding of the bigger picture.

I'm at 545 hours now.  I'm pretty proud of that, but at the same time, I'd like that number to be 1000+ sooner rather than later.  I'm thinking I will reward myself with another trip to Asia once I hit 1000 hours, then come back to America again after that, and I should be ready for an entry level position, or close to it, at that point.  Things are looking great!

I decided to avoid news sites from now on, and that's been a really good decision, as I'm interacting with family and friends more, going out for more walks, and just feeling better from not reading all the bad news that comes out every day.  It's difficult for me because I'm a political science major, so I love reading the news and keeping up with world events, but really, it's detrimental to my personal development, there just isn't a return on investment there.

I need the internet in order to learn to code, but at the same time, it's so easy to get sucked into that no-productivity black hole consisting of news sites.  So, no more of that, I'll try to be much more mindful of where I spend my online time at.

There's a couple of coding schools that are now open or have opened up in Austin, and I'll consider attending them, but unless their pay is tied to your outcome, they may just be degree mills, like many universities are, so I'd only consider them after doing quite a bit of research.  That's the thing about the Viking Code School, you only pay if you get a job, which means the incentive to have you be a competent web dev when you graduate is pretty high.

So, I read pages 1 to 74 of the Javascript book again, and I'm on pg 78 now, which is Chapter 22, Strings: Measuring Length and Extracting Parts.  Strings are indexed like arrays, so you can slice them, and they begin at 0, just like arrays.

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 78)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today: 6
Total Hours Coding: 551

Wednesday, May 13, 2015

Day 112: Coding Module, Intro to Ruby, Hackerspace Meetup, and LinkedIn

O.k., I'm finally on Module 4, "Web Markup and Coding."  Now, I've already spent quite a bit of time coding up web pages using HTML and CSS on Treehouse and on The Odin Project, so I have a solid grasp of HTML and CSS.  Because of this, and because I received the email recently from the Viking Code School letting me know time is of the essence, I'm skipping the HTML and CSS part of the module for now and focusing 100% on Ruby.

So, now that I understand what the prep work is really about, here's the plan for passing that test:

1.  Skip the HTML and CSS sections of Module 4 for now.  I already know HTML and CSS, and completing the HTML and CSS work in the module now would take away valuable time from me, time which I need to invest in learning Ruby.
2.  Start on Chapter 11, "What is Ruby," and blaze through the module, thinking, eating, and breathing Ruby.
3.  Take the test once I have solved Euler Problems 1 through 4 in Ruby, as well as completed the project at the end of the module.
4.  Stay focused, and put in 12 hours a day until this is done.

That's the plan.

O.k., I started with Chapter 11, "What is Ruby?"  The chapter was a brief introduction to Ruby and Ruby on Rails.  Next was Chapter 12, "From Pseudocode to Ruby."  The instructor ended up translating this pseudocode:




To this actual Ruby code:




That's neat.  I copied and pasted the Ruby code into the terminal on my mac and then entered deaf_grandma into the terminal to run the program.  It worked!

Next was Chapter 13, "A Taste of Ruby."  For that chapter, I went over some exercises at tryruby.org.  In one of the exercises, we used the .reverse method, so for example:

"Jimmy".reverse

Would output:

"yimmiJ"

That's awesome, because I know that Euler Problem 4 has to do with palindromes, so that will help me solve that one.  For a number, we can do:

40.to_s.reverse

Which will return "04".  "40".reverse will also return "04".  These methods allow us to convert values to other types of values"

to_s converts values to strings
to_i converts values to integers
to_a converts values to arrays

.max right after an array will return the highest number in the array.
.sort right after an array will return a copy of the original array, sorted from lowest number to highest number, in order, but will leave the original array alone.
.sort! right after an array will modify and return the original array, sorted from lowest number to highest number, in order.

An exclamation point at the end of a method means to impact the current data, instead of making a copy.  So, if there is no exclamation mark, the output is a copy, if there is an exclamation mark, the original data is actually being modified.

poem.include? "something"

The code above will tell you if the poem includes the "something" string.  Here's a list of the complete list of methods for stings:

http://ruby-doc.org/core-2.2.2/String.html

Hashes are used to pair up a key and a value, they are not used for keeping things in order.  For example:




The hash was created in the first line.  The lines after that entered keys into the hash and gave them values. The link below goes into hashes in depth:

http://ruby-doc.org/core-2.2.2/Hash.html

I attended a Hispanic Hackers Meetup today at Hackerspace.  It was fun, I learned about ways to optimize a LinkedIn profile (I didn't even have one, so I created a LinkedIn account) and met other Hispanic web developers, including one who used to work as a journalist, went to a coding school, and has now landed a web developer position.  I also learned a little more about Capital Factory, a startup incubator space here in Austin, TX.  

All in all, it was a great day.

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 72)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today: 7
Total Hours Coding: 545

Monday, May 11, 2015

Day 111: Engineering Module

O.k., back at it, I started the day by reading a long blog post by a google employee about SOA, then watched the SOA video I watched yesterday again.  Now, moving on to Chapter 20, "Characteristics of Good Systems." 

After reading that chapter, which went over the ideal characteristics of modular systems, I moved on to Chapter 21, "SOLID Design principles."  This is great, i'm one chapter away now from the module project, and once I'm done with that, there will only be one more module left before I take the test.

Here's the components of the SOLID acronym:




Finished that chapter, now I'm moving on to Chapter 22, "Pseudocoding Modular Design."  I'm so close to completing the module!

O.k., so for chapter 22, our assignment is to write up an elevator program by working with pseudocode, with a focus on breaking code into modules.  

I ended up working on the elevator problem for about 9 hours on and off over the past week and came up with many different versions, but none of them were really fully functional, due to the problem of setting up some kind of queue to hold floor pick-up requests and floor drop-off requests.  Here are my notes, I did so much more, but ended up deleting and rewriting code many, many times:

PROGRAM Elevator:
    IF (up or down call button is pressed)
        IF (elevator is stopped on that floor)
            THEN OpenElevatorDoor;
            THEN DestinationFloor;
        IF (elevator is not stopped on that floor)
        THEN go full speed to that floor, and SlowDownIfNecessary
            IF (elevator is moving OR stopped between floors) 
                THEN do not open elevator door;
            END
        THEN OpenElevatorDoor;
        THEN DestinationFloor;
    ELSE stay in idle mode;
END

PROGRAM SlowDownIfNecessary:
    IF (we are traveling up at full speed)
        IF (we are only 1 floor away from the lowest destination floor OR there is a pending destination floor in the destination floor queue one floor away or more that has been pressed between the current floor and the destination floor going in the same direction the elevator is going)
            THEN slow down;
        END
    ELSE IF (we are traveling down at full speed)
        IF (we are only 1 floor away from the highest destination floor OR there is a call button 1 floor away or more that has been pressed between the current floor and the destination floor going in the same direction the elevator is going)
            THEN slow down;
        END
    END
END

PROGRAM OpenElevatorDoor:
    IF (the elevator is stopped at the destination floor OR stopped at a floor on the way to the destination floor)
        THEN open elevator door;
        THEN wait 30 seconds;
    While (there is a human in the door closing path)
        THEN open elevator door;
    THEN close elevator door;

PROGRAM DestinationFloor:
    READ destination floor in queue;
    IF (user selects a destination floor that is higher than the current floor)
        THEN go up full speed to that floor and SlowDownIfNecessary
            IF (elevator is moving OR stopped between floors) 
                THEN do not open elevator door;
            ELSE IF (elevator is currently stopped at the destination floor)
                THEN OpenElevatorDoor;
    ELSE IF (user selects a destination floor that is lower than the current floor)
        THEN go down full speed to that floor and SlowDownIfNecessary;
            IF (elevator is moving OR stopped between floors) 
                THEN do not open elevator door;
            ELSE IF (elevator is currently stopped at the destination floor)
                THEN OpenElevatorDoor;
    ELSE (OpenElevatorDoor)
END

PROGRAM FloorQueue (very rough draft)
IF (a up or down call button is pressed OR a floor button inside the elevator is pressed)
    THEN add a destination floor in a queue corresponding to the button pressed;
WHILE (there are destination floors in the queue)
    THEN keep going until there are no destination floors left in the queue;
IF (the elevator stops at a floor)
    THEN remove any matching destination floor(s) from the queue;

I could keep working on the elevator problem, and then work on the project for the module, but the thing is, I received an email from the Viking Code School yesterday letting me know that my application will be deleted if I don't let them know that I am still working on things.  So, I let them know to keep my application active, because I am still working on the pre work, but in order to get to actual Ruby code as soon as possible, which I need to know in order to take the exam, I'm moving on ahead to the next module.  
I did get a ton of practice pseudocoding, though, because I worked on that elevator problem for what seemed like forever.  The notes I posted are just a small part of all the variations I went through while working on it, so I did find this chapter extremely helpful, even if I am not posting a fully functional elevator.  That said, posting a fully functional elevator wasn't actually the assignment (there are entire books on this), but rather, the assignment was to work with breaking code up into modules, and that I did many times as I went through different iterations of my attempt at an elevator program.  

O.k., I read through chapters 23, 24, 25, AND 26, and now I'm moving on to the final module.  I'm thinking once I learn Ruby I'll come back to the elevator problem and try it again, armed with more coding concepts!  :)

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 72)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Over the Past Week:1 1
Total Hours Coding: 538