Front End Engineering, May 2015

The Iron Yard Front End Engineering Prework

Introduction

There are quite a few tasks and learning topics that are necessary to take care of before we can actually start learning how to be front end developers. Rather than using class time to get through these, I expect that you can accomplish and learn these things without assistance so that we can spend class time only on those things that are difficult to learn on your own. That being said, feel free to email me if you have any questions.

I don't believe you can really learn to program by watching a few videos and answering some questions (and if you believed that, you probably wouldn't be coming to The Iron Yard). However, skill acquisition takes a long time, and this work will help introduce you to some of the ideas and skills that will form the foundation of your in-person learning experience.

This work should be completed by May 1st and any deliverables should be emailed to me by then. I will assume that you have completed this work before class, so you will likely feel very far behind if you haven't finished when we start class on May 4th.

In order to complete some of these tasks, you will need to register for an account with Treehouse. Treehouse is free for 14 days (which should be more than enough to finish the required courses), and is $25/month after the trial. You may cancel your account after you have completed the required work, as we will not be using it during class, but it is a great resource so that is up to your discretion.

Objectives

The following are the learning objectives for this prework, all of which are important requirements expected of a professional developer. Though they are not technically "programming" skills, they are crucially important to success both during the class and on the job.

  1. Be able to communicate technical accomplishments and struggles in writing.
  2. Be able to learn in contexts that aren't necessarily suited to your primary learning style.
  3. Adapt to the workflows used by professional developers (using the command line in particular)
  4. Be able to develop a very basic, static web site using HTML and CSS.
  5. Describe the importance of mindset on learning and be able to analyze one's own type of mindset.

Mindset

  1. Read Fixed vs. Growth: The Two Basic Mindsets That Shape Our Lives
  2. Compose an email to Jake with your thoughts on mindset and the learning experience you are about to begin. If you're not sure how to formulate your thoughts, you may just answer the following questions:
    • What aspects of the Growth and Fixed mindset can you identify in your personal history? In what areas do you feel Fixed? Where do you see the most Growth?
    • What difficulties do you predict that you will encounter during our course? How have you reacted to similar situations in the past? How do you plan on reacting to these situations during the class?

Computer Setup

Install OSX Yosemite, if you haven't already

  1. You'll need to sign in to the Mac App Store with you Apple ID. If you don't have one, sign up here.
  2. Download the Yosemite upgrade from the Apple Store: download here.
  3. Double-click "Install OS X Yosemite" to begin installation.

WARNING: The OS X upgrade can take a bit of time to complete and will require a restart. Plan on doing this in the evening or over a lunch break.

HTML/CSS

HTML and CSS are the foundation of all the content of a webpage or web app. However, we will only be spending about a week on HTML and CSS, so you should have a basic foundation before the class starts.

Complete the Codecademy course at http://www.codecademy.com/tracks/web. This should take you approximately 7 hours, depending on your prior experience.

JavaScript

JavaScript is the programming language that allows web pages to react and change as we use them, instead of waiting on a page load to change content. It will form the backbone (no pun intended) of what we learn during the front end course, so it's important to have a general idea of how it works before we start. I recommended that you go through this course during our interviews, so if you've already completed it, feel free to move on to the next section.

Complete the Codecademy course at http://www.codecademy.com/tracks/javascript. This should take you approximately 10 hours, depending on your prior experience.

The Command Line

The command line is an interface to the internals of your computer, as opposed to the graphical user interface (GUI) that we commonly use. We will be using the command line extensively in our class, but the point of this prework is not to be an expert, just to start to get comfortable.

Especially if you've never used the command line before, you may want to go through these more than once. Make sure not just to read/watch, but really dive in and use the commands that you learn about.

  1. Read http://skillcrush.com/2012/12/03/command-line-2/
  2. Go through the Treehouse course on Getting Started with the Console
  3. Go through the Treehouse course on Users and Permissions
  4. Go through the Treehouse course on Environment and Redirection
  5. Read and practice with A Command Line Primer for Beginners

git

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

It is a command line tool that we will be using for every project we do in class. Again, the objective is not to become an expert before the class, but just to start to get comfortable.

Go through the Treehouse course on Git Basics

Supplemental

If you want to spend some more time with git, Git immersion is a great resource.

GitHub

GitHub is a web-based hosting and communication service for software development projects that uses the Git revision control system.

  1. Sign up for a GitHub account at https://github.com/
  2. Make sure to add a profile picture and your full name, since this will help me learn your name.
  3. Email me ([email protected]) the username you choose so that I can get you added to the group we'll be using for class.

Supplemental

Check out the GitHub Guides if you want to learn how to use GitHub prior to class.

Typing

Believe it or not, a lot of time in the first weeks of programming is spent fixing simple typing errors. It would not be ridiculous to suggest that many of you will spend 12-24 hours (or more) fixing typing errors during class.

If you don't know how to touch type (i.e. type without looking at the keyboard), try to spend some time each day working on touch typing (you can try http://www.keybr.com/). If you already know how to touch type, I would highly recommend working through the JavaScript lessons on http://typing.io. Typing for programming is actually a good bit different than everyday typing, so getting some practice in could potentially save you a ton of time the first few weeks of class.

Learning

Finally, if you're interested in learning how best to study and learn, many of the principles that I use to design our course can be found in the book Make it Stick(public library). It is not required for you to read this book, but it might help.