TreeHouse and How It Changed My Learning

I’ve recently found and joined the website TreeHouse, which is an online video learning site dedicated to programming. After doing their free trial for 7 days, I think I have found the tool I’ll go forward with in my learning. Books may be on the back-burner! Here are some of my favorite features:

Tracks

tracks.png
Tracks allow you to easily focus on your area of work.

This is probably my favorite feature. Most online learning sites I’ve tried out are horribly unorganized, and while they may offer a wealth of content, it’s hard to find what you need. With TreeHouse, it’s easy. These are pre-made collections of courses designed to teach you a specific subject, such as Web Design, Java Web Development, or iOS development. This lets you easily set goals and plan out your studying. This leads me to my second (and very closely related) feature…

Course Organization and Flow

topics.png
Courses are organized by topic on the main page.

Courses are organized by topic, and easy to find based on topic, difficulty, or type. The PRO subscription offers additional workshops and conference videos, as well as the ability to download these courses for offline viewing.

course.png
A course preview.

Courses themselves are easy to navigate, with notes and transcripts on the bottom of the page. Teacher’s Notes almost always go into more detail than the video, so while not required reading, anyone looking to get more understanding can open these up and master the topic. The video player was pretty flawless, and also offers an in-browser text editor so that you can work alongside the video. Cool beans!

workspaces.png
WorkSpaces allows you to work alongside videos with no additional downloads or setup.

Personal Achievements and Motivation

I’m a very badge/achievement oriented person. I’m the guy who explores the whole game, has to do every side quest, and fill up all the bars on the progress screen of any game I play. Getting the highest number in each field feels great, and the goal keeps me focused!

TreeHouse takes this system of motivation and applies it to learning, offering badges and achievements, plus a points-based score that represents your overall level of learning. I found it very similar to Khan Academy, which I like a lot.

profile1.png

profile2.png
My low-scoring profile so far.

How This Affects My Learning Plan

I decided to currently focus most of my attention on TreeHouse courses, since my aim is mostly in the web development area. I will continue to study my books, hopefully still finishing all by the end of the year. These will help give the backup theory and a more in-depth understand than most self-taught web developers.

I’ve added TreeHouse tracks to my learning goals on GitHub, which you can see by clicking here. By the end of this year I hope to complete the following tracks, aiming for 1-2 paths a month:

  • Web Design
  • Beginner Game Development with Unity
  • Front-End Web Development
  • ASP.NET Web Development
  • Beginner Android Development
  • Beginner iOS Development
  • Learn Swift
  • Full Stack Javascript
  • Learn React
  • Learn Python
  • Learn Flask
  • Learn Django

I may also add some of the more basic tracks, as a refresher on topics I haven’t worked with in a while. By completing these courses, and finishing through my books, I’ll have an in-depth understanding of algorithms/CS and web development with popular tools.


This article is related to my 2017 Computer Science study, which you can read about in my previous post. You can also follow my progress and any projects I’m working on through my GitHub.

 

 

February: Algorithms and Web APIs

February is over, and I was both able to complete more than I had anticipated, and still be behind where I intended at the start of the year.

Most of this is due to the addition of some “new” books tailored more towards the current programming tasks I’m doing at my current job. I’ve placed these on the highest priority since the main goal this year is getting a programming job full-time.

Photo Mar 06, 10 38 35 AM.jpg
Missing one other book, Beginning ASP 3.0 by Wrox Publishing

Also, Sedgewick’s algorithm course is split into two parts, of which I completed the first this month. The last couple of sections were just lecture, no implementation, so I didn’t get much coding done for my personal study repos these past couple of weeks. The second part still hasn’t been given a release date yet, so I’ll jump into that when it comes back up. Still, I’ve been able to do a lot of coding at work.

Work Projects

Since I haven’t really mentioned them before, here are the two current projects I’m coding at work:

  1. Creating a web-based ticketing system to replace my IT departments current implementation of Spiceworks. I’ll be doing mostly back-end work on this application.
  2. Creating a web-based Network Monitoring application that constantly tests connection to our locations nationwide, so that we are alerted of any network outages. I’ve been doing both front and back-end on this application.

Most of the work I’ve done so far is getting routes and data setup with Microsoft’s ASP.NET WebAPI, and completing a simple front-end for the Network Monitor. Eventually we’ll also implement a Google Maps API to have something flashy for display.

Goals for March

Here are my current goals for March:

  1. Complete the Network Monitor in full.
  2. Start back-end work for ticketing system. Complete as much as possible.
  3. Finish the following books:
    1. SQL Queries for Mere Mortals
    2. Teach Yourself ASP 3.0 in 21 Days
    3. Review my JS/jQuery book
    4. The Art of Unit Testing
    5. Why Programs Fail: A Guide to Systemic Debugging

 

You can check out the progress of my 2017 studying on GitHub, or read my post about it: 2017: A Year of Learning.

My Java Problem

Most of my Computer Science books for the year use Java as a primary language. I prefer C variations and Python, but as much as I have tried to avoid it, I will be picking up Java as a learning language for algorithms.

I quickly realized that going through Sedgewick’s Algorithms 4th Edition is going much slower than anticipated because I’m having to translate all the code while learning into Python, C#, or C. I planned on translating my code to each language regardless, but it hampers the learning process. On top of this, Sedgewick uses his own Java libraries in his code that are provided with the online resources, which would be immensely helpful to have.

I’ve downloaded IntelliJ, which I’ve used before for other Java classes, onto my machines and plan on starting over with Sedgewick’s courses. I was only through Week 1 of the coursework, so we’ll see how this helps me get through.


 

This post is about my year-long study of Computer Science and Algorithms for 2017. To keep up with my progress, see my study plan on GitHub, and check out my initial blog post.

January: An Update + Cool News!

Hello, everyone! It’s been some time since my last update.

I was able to finish through The C Programming Language and Write Great Code: Volume One before the end of January.

c

The C Programming Language is by far the most highly recommended book for learning C, and is sometimes even referred to as required reading for any programmer. It’s a very simple, easy language, that lets it be used in very complex ways. It’s been around for a very long time, making it easy to find solutions and documentation on. I paired this book alongside some more modern courses on C and C++ from Pluralsight, which I also recommend highly. This language will be one of the languages I practice in my coding of algorithms this year, alongside C# and Python.

write

Write Great Code: Volume One is all about the internal workings of computer systems. Written in 2004, it’s a bit dated, but as a reference this is an amazing book. I’ll definitely be coming back to this time and again once I get to Linux and Assembly language programming.

I’m currently working through Algorightms 4th Edition by Sedgewick, and taking his accompanying Coursera course. It’s been a very dense dive into the basics of algorithms. The course only covers half of the book, and takes six weeks. I plan to try and push through it much quicker, however, finishing by the end of the month.

Alongside the learning I already have planned, I am now working with the programming team at my current job doing two large web-development projects. It’s exciting work and will speed along my readiness for a programming job. Since working on this heavily these past few weeks, I haven’t been posting much code on my GitHub, but plan to start picking that back up soon.

conttribuit
Hasn’t been much activity these past two weeks, due to current work projects.

If you want to follow along with my progress, check out my main blog post about this year’s learning journey here, or check out my GitHub.

2017: A Year of Learning

2017 is here, and it’s time to start my curriculum for Computer Science! I’ll be borrowing a bit from John Washam’s Google Interview University, and from Scott Young’s MIT Challenge (if I find the courses applicable to what I’m reading, I’m not going to waste time learning chemistry and other electives this year).

687474703a2f2f692e696d6775722e636f6d2f7774746f5161302e6a7067
A mountain of books to push through, and more on the way!

My main areas of focus will be algorithms and using them to get practice with three languages: C/C++, C#, and Python, while also building a portfolio of a few web development projects. Code will be posted on GitHub, and I’ll aim for at least 1 commit every day of the year (even though I missed January 1st).

C Repository
C# Repository
Python Repository
Any web development projects can be found on GitHub.

Here’s a rundown:

CS/Programming Goals for 2017

  1. Complete 4-5 sample websites as mock-ups for existing companies. (Using .NET, MEAN, and LAMP separately)
  2. Complete a ticketing and network monitor system at my current job.
  3. Finish the Google Interview learning path from  John Washam (if you can interview at Google, you can interview anywhere). I’ll also use any edX or Coursera content to supplement this.
  4. Finish all computer science books I currently own.
  5. Blog and teach topics as I find them interesting enough to do.
  6. If I have time, I’ll also dive into C++ a bit more, and work on learning Linux and Linux System programming for fun. (maybe even some emacs or vim)

If I am able to complete these goals I’ll be on a fast-track to having an entry-level programming job by the end of 2018. If possible and some current plans work out I can possible start working in the field by the end of this year.

If you want to follow my progress through the books and GIU learning path you can check out the GitHub repository for these goals.

2016: A Year of Learning to Learn

The past two years have been interesting for me. I got married to my high school sweetheart, saw the ocean for the first time, bought a house, lost 30 pounds, and read over 100 non-fiction books in less than 8 months.

What spurred this change? One night browsing the internet I stumbled upon a TEDx talk that changed my life. Tia Lopez became quite the meme thanks to his “Here In My Garage” advertisement that popped up on YouTube in early 2015. As pretentious and annoying as the ad was, I decided to look more into his site and way of thinking. I didn’t buy into his 67 Steps Program, or buy any of his affiliate products, but was inspired by the idea of reading “a book a day”.

The idea behind this (I encourage you to watch the video in the link above) is that you can be mentored by anyone who has reached the top of any field you aspire to be in, and learn their habits and lifestyle to emulate them. For example, Sam Walton (founder of Wal-Mart) wrote a book about how he founded his 482 billion dollar company, and you can get it on Amazon for a penny. Why hasn’t every business owner in the world read the book written by one of the greatest businessmen in American history?

Continue reading “2016: A Year of Learning to Learn”