Monday, March 30, 2015

Day 86: More Prep Work (Design), and Planning my Strategy for the Timed Test

My sister flew in from New York (she's in medical school) to visit yesterday, so I took the day off to be a good host.  My brother actually flies in from Thailand tomorrow, and I miss him a lot, as he's been gone for several months, so I'm getting as much done today as I can, and then tomorrow, I'll try to wake up very early to get a lot of work done before his plane lands. 

Today, I started the day by working on The Odin Project's design course, which is the course that follows the Basics course, which I completed yesterday.  So at this point, I have the Design course, the Engineering course, and the Coding course to go through before I take the timed test as part of The Odin Project's interview process.  

So far, the Design course is very high-level, and I'm enjoying it.  It goes over UX (User Experience), which is basically everything that affects the user's interaction with that product.  Sites with good UX allow users to accomplish their goal(s) effectively, efficiently, and with a high degree of satisfaction.  We went over Information Architecture.

The main point that the Design course tries to get across is to always prioritize the user when creating a site.  Think of what the user wants, and give it to him effectively, efficiently, and with satisfaction.  I watched a video that explored the Information Architecture of the soundcloud website. 

The Design Process involves Discovery, Strategy, and Design.  Discovery is the initial phase, where we find out who the user is, what their goals are, and what will make them happy.  Strategy is the second phase, and it's where we plan out the information architecture, navigation and interactions that will bring the users to their goals.  Design, the final phase of the design process, is where we mock up the pages to best serve the user goals. 

I finished the UX section of the Web Design section, and I decided to stop there and focus on coding.  The material is delving into design, which is good, and I look forward to completing it, but I think I will complete it after I take the timed challenge, because I'd like to get that wrapped up as soon as possible, since I can simply go back and finish the rest of the prep work.  I spent some time today weighing the pros and cons of skipping the rest of the prep  work so I can focus on coding (by going further in the Javascript book I was working on when the Viking Blog announced the new coding school), versus spending several more days working on the prep work.

I'm really excited to take the challenge, and I want to prepare specifically for it, so I will switch my focus 100% to actual coding right now, to get in a logical frame of mind.  This is because, going over the email that was sent to me regarding the test, it does specify that the 60 minute timed test will focus only on coding, in particular my understanding of logical structures like basic data types (e.g. integers, strings and arrays), conditional logic, looping and working with methods/functions. After I take the test, I'll complete the two and a half sections I still have left of the prep work, hopefully after I get accepted to The Odin Project's online course, but if I don't get accepted for whatever reason, I will complete the courses anyways, and then keep going through with The Odin Project's curriculum anyways. One way or another, either through an online school, or through my own combination of various study methods and sources, I will become a web developer. :)

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 33)

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: 4
Total Hours Coding: 421

Saturday, March 28, 2015

Day 85: The Odin Project Prep Work, Basics

I started the day on Git Calisthenics.  I used the mkdir command to make a new directory called test.  I also used the rmdir -R command to remove a .git folder I had created.  I crossed my fingers that nothing would go wrong when I did that.  

I used this command:


ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/
bin/subl" /usr/local/bin/subl

To allow me to open a README.txt file straight from the command line.  That was cool.  The command to open the file was subl README.txt.  Since I had already done the git init and created the file and modified it on my computer, after creating a new repository on GitHub, I used these two commands to import the data from my computer up to GitHub (this is called pushing):


git remote add origin https://github.com/Adancode/git_calisthenics.git

git push -u origin master

So now the README.txt file is up on GitHub.  We create a new branch like s:

git checkout -b name_of_a_new_branch

And we jump to a different branch like so:

git checkout name_of_other_branch

To merge branches, first go to the target branch, then merging always happens INTO wherever you are.  So first go to the branch you want to go to, like:

git checkout master

And then:

git merge other_branch_to_merge

I learned that it's actually conventional to merge master into the branch, and once all conflicts are resolved, we then merge the branch into the master.  When looking at a merge conflict, HEAD is the branch we are currently sitting in.  If you are merging master into a branch, then below HEAD, you will see master.  We resolved a merge conflict, then pushed the changes to GitHub.

The next section of the Basics section is a project called "Getting Comfortable with Git and the Command LIne."  Now, the first time i worked on a project using GitHub, I was able to complete the project itself and upload it to GitHub, but I was not able to get my project added to The Odin Project's webpage, I just wasn't sure how to do that.  I'm starting this new project right now, and I'm hoping this project will show me how to do that, and then perhaps I can go back and get my other project posted!  That would be pretty great...all right, let's start.

So, after working through the initial video regarding the new project, I went back and submitted a pull request (the "easy" way) requesting my google-homepage project's inclusion into The Odin Project's webpage.  I'm looking at my open pull request right now...I swear if it actually gets added to the curriculum, if I actually submitted the pull request correctly, I will jump for joy, haha.

O.k., looks like I submitted it correctly and it has been accepted!  However, it's not live on the site yet, but it should be live on the site as soon as The Odin Project's GitHub repo gets pushed/deployed again with all of the latest updates.  I'm stoked.

So then we went over a diagram that shows how GitHub works when you want to update something more complicated than a single file.  I liked the diagram a lot, here it is:























I thought it would be a nice screenshot to have in case I need to quickly refresh myself on the GitHub workflow.  However, due to the fact that many times the repository you initially forked will have changed by the time you are ready to send your pull request, so that your original fork is then out of date, the workflow changes a bit:






















This newer workflow incorporates the git remote add upstream url_of_the_original_repo_on_githup, which will add a new remote repository copying the original.  Then, we run the git pull upstream master command, which does the same thing for the master branch.  I finished the assignment, defining AJAX, Git, and CMS, then forking the necessary repo, cloning it onto my computer, entering the definitions into the readme file, then saving the file and adding it to the staging area, then committing my changes, then adding the upstream master repo to my computer to make sure my fork is still up to date, then merging the upstream/master branch into the branch we are currently on (in this case master).  

I finished the Basics section today, as well as finally getting my google-homepage project added to the student solutions.  I'm really proud of that and looking forward to the website updating with my solution.  That was a lot of GitHub, and I am extremely glad to have all these resources available to facilitate so much learning.  I like GitHub, it's a fantastic tool, and it's also very simple to use, it's just a matter of using it over and over until the steps become second nature.  What a fantastic 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 33)

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: 11
Total Hours Coding: 417

Friday, March 27, 2015

Day 84: The Odin Project Prep Work, Basics

I'm going through The Odin Project's prep work, so I can take the coding challenge!  I started the day going over part 14 of the Basics section, which went over many things, among them POP (point of presence), which allows a device to connect to the ISP, and NAP (Network Access Points), which connect to the Internet Backbone.  There were a couple of short videos going over internet basics like servers, routers, and http, for example.  

I then went over the Command Line, which I'm familiar with due to a Treehouse course I took earlier, but it's great to brush up.  In the command line, capitalization matters, so Documents and documents are not the same.  When naming files in the command line, we should not use spaces, because in order to do so, "My Folder Name" must become "My\ Folder\ Name," which is not ideal.  If we type in "man ls" we get the manual for the ls (list directory contents) command.  Pressing "q" will exit back to the prior part of the command line, if you are in the manual.  The "ls" command will list the folders in the current directory, "ls -a" will show the hidden folders as well, and "ls -l" will show more details on each folder.  The "ls -la" command combines the prior two (you can do this with other commands as well).

The "open" command will open whatever folder it is followed by, so if you follow open with a space and then a "." it will open the current folder (it will open it in the familiar Finder window).  "." represents the current directory, and ".." represents the directory one level up, so if you are currently in ~/Documents/name then ".." represents ~/Documents.  The tilde (~) represents the home directory.  When typing in the command line, the tab key can autocomplete the file name for you.  We went over some shortcuts, like cmd t, which opens a new command line tab.  The cd command will change directories, for example cd .. will take you up one directory, or if you enter a directory after that, it can also take you up one directory and then to the other directory.  "cd" by itself or cd ~ will take you back to your home directory.  Piping "|" and redirection ">" was mentioned briefly.

I opened .bash_profile in the Sublime Text 2 editor by using the subl ~/.bash_profile command.  I had to use a quick fix from Stack Exchange after getting an error message in order to get that to work.  The instructions then had us make some modifications to the bash using the .bash_profile file.


The next section I studied went over web dev terminology.  Next, we went over installations, which, thanks to my having already started on The Odin Project's curriculum earlier, I was already familiar with.  I updated Chrome, The installfest mentioned Nitrous.io, which is a hosted environment, and recommended it for Windows users.  I am not a Windows user at the moment, but I did open a Nitrous.io account anyways, just to familiarize myself with it.  

I went down to the test_app folder I had previously created, entered the heroku open command, and a browser tab opened with the app I had created a while back!   It's at:

https://mighty-beyond-7728.herokuapp.com/drinks

I tried it out, and it works just fine, just like I left it!  Great!  i then checked what version of Ruby i have installed, and it's 2.1.3, and my rails version is 4.1.6.  I replaced these preferences that came with sublime:

{
"color_scheme": "Packages/Color Scheme - Default/Monokai Bright.tmTheme",
"font_size": 13.0
}

With some recommended preferences.  Next we went over Git, which I've used before (I uploaded my Google Homepage project to GitHub earlier).  I took these screenshots:








Just to save for later reference.  In some cases, we would use git add -A if we want to add untracked files (usually brand new ones or deleted files).  However, git add . will add all files in the current directory, and git add nameoffile.filetype will add a specific file.  We went over forking, which is basically making a copy of another repository onto your GitHub account.  You would then clone the repository down to your system to work on it.  A "Remote" is an online repository that you'll be pushing and pulling code from.

I closed out the day on part 20 of the Basics section, which is Git Calisthenics, and I'm looking forward to tomorrow, when I plan on finishing the Basics section and starting on the next section, Design.

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 33)

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: 406

Thursday, March 26, 2015

Day 83: The Odin Project Prep Work, Basics

After I submitted my application to The Odin Project, the screen prompted me to go over some prep work to prepare me for the interview process and the course itself.  I was surprised, and I kind of wish I had known about the prep work sooner, because I would have completed it all before even applying, but now I know about it and I'm working on it.  

The prep work is divided into four major sections, being Web Development Basics, Web Design Basics, Software Engineering Basics, and Web Markup and Coding, in that order.  In the Web Development Basics course, there's an hour long video that goes over the development workflow process using a blogging application called Simple Blog.  I'm watching the video right now.

The instructor, Mr. Trautman mentioned AGILE, which is a workflow used by teams in cutting edge tech companies to move things forward at a brisk pace in team-based settings.  The workflow used in the video was something like this:

1.  Determine user needs.
2.  Build a site mockup.
3.  Break the mockup into stories, for each story:
     Determine/set up the data architecture.
     Build the back end.
     Build the front end.
4.  Refactor, iterate, and ship the site to production.

I like the organization involved in this method.  When attempting a project of significance, especially when it involves teamwork, it's ideal to break the project up into manageable pieces, which can then be assigned to the various members of a team, so as to use the work inputs efficiently, preventing duplication of effort, for example.

I learned about some software called Balsamiq, which is used for creating mockups.  After the mockup, we've got to prioritize which stories are crucial, which stories are nice to have, and which stories are maybes, based on the resources we can allocate to the project, and then act accordingly.

We then went over some software called Pivotal Tracker, which is used to keep track of the stories.  It's looks like a project management tool.  In the video, Ruby on Rails was used, which I know about, but I'm not familiar with.  The instructor spent some of the time figuring out what the data structure was like.  This part of the process was particularly interesting to me, as I had heard the term data structures before, but I hadn't seen it explained like this.  I liked the video a lot.

The rest of the day I spent reading the other sections and the links to resources in each section.  I ended today on section 14 of web development basics, and I'll be back at it again tomorrow morning.

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 33)

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: 5
Total Hours Coding: 399

Wednesday, March 25, 2015

Day 82: The Odin Project is Launching a Code School!!! And Solved Another Euler Problem!

I'm continuing with the javascript book today, with the goal being to finish the book, then attempt the second and third Euler Problem, perhaps also finish the Head First Book as well, and then move on to the next part of The Odin Project.  I started today on page 33, chapter 8, which deals with concatenating text strings.  

This alert:

alert("2" + "2");

Creates an output of 22, because javascript will concatenate the strings.

When creating an alert like this:

alert("2 plus 2 equals " + 2 + 2);

The resulting alert will read "2 plus 2 equals 22" because javascript converts the numbers to strings in the alert's output.  The next chapter, chapter 9, deals with prompts.  In a prompt, you need a way to capture the user's response, and that means you need to start by declaring a variable, followed by an equal sign.  In a prompt, you can specify a second string, and this appears as the default response in the field when the prompt displays.  If the user leaves the default response as-is and just clicks OK, the default response is assigned to the variable.  A default response is not required, and it the variable does not have to be named defaultAnswer, but here is an example using default Answer as the variable name, for clarity:

var question = "Your species?";
var defaultAnswer = "human";
var spec = prompt(question, defaultAnswer);

The user's response will be a text string, and even if the user's response is a number, it will be converted into a string once the response is assigned to the spec variable.  If there is no default answer assigned, and the user enters nothing, the variable will be assigned the value of an empty string, as in, "".  If the user clicks cancel, the variable is assigned a special value, null.

I'm now on chapter 10, which goes over "if" statements, but several amazing things have happened today that I've got to go over!  

First, I solved Euler Problem 2!  The answer came to me again like last time!  I love how I can be thinking about something else, and then my mind wanders back to javascript, and I think of whatever problem I'm facing from a different angle, then a light goes on in my head, and I think, "Wait!  This could work!"  Then I rush over to my laptop to translate the concept into code, and then, there it is, the answer I'd been looking for!  I love coding!

I used an array to create the fibonacci sequence, and I printed the array onto the page with document.write, just to see it, and I printed the answer to the console, but I could have simply printed the answer to the page instead.  Here's my solution:

var fibArray = [1,2];
var total = 2;

    for (var i = 0; i < 30; i += 1) {
    var fib1 = fibArray[fibArray.length - 2]
var fib2 = fibArray[fibArray.length - 1]
    var fib = fibArray[fibArray.length - 1] + fibArray[fibArray.length - 2];
    fibArray.push(fib);  
    if (fib % 2 === 0) {
    total = total + fib;
   
    }

    document.write(fibArray)
    console.log(total);

The answer comes out to 4613732.  Yes!  

The second piece of great news is that The Odin Project is launching an online coding school!!!!  I was socializing in my backyard with some friends, while running javascript in the back of my mind, when I received an email on my smartphone spreading the news!  I know!  My mind is blown also!!!  It's like the fates aligned today!  I'm applying on my other monitor as I type this!  I wrote a comment on the blog announcement letting them know I plan on applying and making my case for why I'd be a solid candidate, which I think I am.

O.k., submitted the application.

Next, I planned on working on Euler Problem 3, which requires me to find out the largest prime factor of the number 600851475143, however, it turns out that there is some prep work I should be doing to enhance my application to The Odin Project's online coding school, so, I'm going to interrupt my current course of action and get back to it after I finish the prep work.  Going over it, but it's 5:25 a.m. now, I was so stoked by the online coding school application that I stayed up all night working on it.  I'm going to go to bed now and start on the prep work later today.

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 33)

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: 5
Total Hours Coding: 394

Friday, March 20, 2015

Day 81: A Smarter Way to Learn Javascript, and More Loops and Arrays

I received an Amazon box with a javascript book I had ordered a while back.  So now I've got an additional study aid, and I'm stoked and ready to hit the books again!  I've solved Euler Problem One, and now I've got to solve Euler Problem 2 and 3 in order to move forward, but I want to familiarize myself with Javascript some more, so I'm going through the book I ordered, "A Smarter Way to Learn Javascript," by Mark Myers.  The book has a companion website with lots of coding examples/problems that really hammer in every aspect of javascript that the author is focusing on conveying.  So far so good.

Any numbers or variable representing numbers, that are placed in an alert, will be converted into strings as the output of the alert.  Although javascript allows us to capitalize the first letter of a variable, the current standard is the use of camelCase, which means, we should not capitalize the first letter of the first word.  We can have numbers in the variable name, but the variable may not begin with a number.  The variable may, however, begin with an underscore or a dollar sign, the two allowed non-letter, non-number characters.   

There's 89 chapters in the book, I'm on chapter 5 right now, "Math Expressions: Familiar Operators."  I loked up the difference between modulo and modulus, and it was explained like so, "the modulus is the number that results when you run a modulo operation, for example 10 % 3 would yield a modulus of 1."  There were different opinions on the usage, though.

num++ = num + 1;
num-- = num - 1;

This:

var y = 1;
var x = y++;

Results in y being 2, and x being 1.

This:

var y = 1;
var x = ++y;

Results in y being 2 and x being 2 as well.  Basically, if the ++ is before the variable, you increment the variable before assigning the new value to another variable, while if the ++ is after the variable, you assign the value of the variable to the other variable first, then you add 1 to the variable with the ++ after it.  In other words, if the ++ is before, you do the ++ operation and then assign the value, while if the ++ is after, you do the assignment of the variable first, and then add 1 to the variable before the ++.  It can be a bit confusing to explain, but it's easy to remember by associating the placement of the ++ (before/after) with whether the ++ is run before or after.  Interestingly,

This:

var x = 3;
x = x++;

alert(x);

Yields a 3.  While this:

var x = 3;
x++;

alert(x);

Yields a 4.

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 33)

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: 4
Total Hours Coding: 389