Front End Engineering

The Iron Yard - Tampa & St. Petersburg, FL

View the Project on GitHub

Welcome

I hope you all are as excited as I am about getting this class started. It is in the best interest of everyone to make sure you as prepared as possible for the coming twelve weeks. Through large amounts of hard work and determination, you will learn, grow, and achieve.

Remember, we are all in this together. We will have individual assignments and group assignments. Always be willing and ready to help your peers.

Thank you for your commitment and hard work. It will be rewarded.

There are quite a few tasks and 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. If you have any questions or confusion about these tasks, please email me so I can help you work through them.

Objectives

The following are the learning objectives for this pre-work, 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. Describe the importance of mindset on learning and be able to analyze one’s own type of mindset.

Your Mindset as a Developer

  1. Read Fixed vs. Growth: The Two Basic Mindsets That Shape Our Lives
  2. Read What is Code
  3. Compose an essay answering 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?
    • What excited and surprised you in “What is Code”? Was the description of programming (both the activity and the culture) what you expected? How did it differ?

Computer Setup

OS X Sierra

You’ll need to install the latest OS X if your Mac didn’t have it pre-installed or you haven’t upgraded already. You’ll need to sign in to your Mac’s ‘App Store’ with your Apple ID. 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.

If you’re new to the Mac, check out Mac Basics.

Additional Software

JavaScript

Start learning JavaScript. Any progress you make on this front before class starts will only serve to benefit you as we get going. Here are some resources:

Supplemental

HTML/CSS will be covered in the course, but not nearly to the same depth as JavaScript, so it would benefit you extremely to be familiar with building websites.

Khan Academy: Intro to HTML/CSS: Making webpages

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 pre-work 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.

Read and practice A Command Line Primer for Beginners.

Supplemental

Further reading and practice:

  1. The Command Line Crash Course
  2. Command Line Basics at Treehouse

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.

Supplemental

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 keybr.com). If you already know how to touch type, I would highly recommend working through the JavaScript lessons on 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.

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.

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 if you don’t have one already.
  2. Make sure to add a profile picture and your full name, since this will help me learn your name. The username you choose does not need to reflect your real name; if you have a handle you already use (for Twitter, IM, IRC, etc.) feel free to use that.
  3. Complete try.github.io.

Once you’ve created your GitHub account, do the following.

  1. Create a new public repository called assignments. Feel free to check “Initialize this repository with a README” so it’s not totally empty. Click “Settings” for your new repository (on the right sidebar), go to “Collaborators” and add me, my GitHub username is “ambethia”. This repository will be where we’ll keep track of your assignments together.
  2. Create a Gist on Github that contains Mindset the essay you composed earlier. Bonus points for using Markdown formatting (name your file mindset.md to get the gist to format the Markdown nicely). You can make the gist private or public, that’s up to you.
  3. Email me the URL to the gist you just created.

Supplemental

Check out the GitHub Guides if you want to learn more about using GitHub prior to class.