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 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.
We 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 June 26th. 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 June 29th. If you have ANY questions at all, please reach out to me at jeff.newburn@theironyard.com.
In order to complete some of these tasks, you will need to register for an account with Treehouse. Treehouse is free for 7 days (which should be enough to finish the required courses), and is $25/month after the trial.
Objectives
The following are the learning objectives for this prework, all of which are important requirements expected of a professional developer. Although only a subset are technically “programming” skills, they are important to success both during the class and on the job.
The prework should assure us that you can:
- Reflect on your own mental processes, preferences, and struggles
- Communicate information about yourself and about technical accomplishments clearly
- Manage your learning time effectively (and avoid procrastination)
- Adopt workflows used by professional developers
- Acquire new skills at a rapid pace
Not surprisingly, you will continue to work towards these objectives throughout the course.
Accounts
GitHub
GitHub is a web-based hosting and communication service for software development projects that uses the Git revision control system.
- Sign up for an account at GitHub.
- Make sure to add a profile picture and your full name, since this will help me learn your name and face.
Treehouse
Sign up for an account at Treehouse. Signing up does require a credit card, but you will have a free trial for the first 14 days. If you do not have any access to a credit card, that is ok! Let me know via email and I can help you make that happen.
Topic 1: Your Brain
- Fixed vs. Growth: The Two Basic Mindsets That Shape Our Lives
- Top-down thinkers vs Bottom-up thinkers - Read from the top down through the “Programming” section (2.2) of this page.
Topic 2: Python
We will be covering the fundamentals of Python in detail in our class, but having a shared vocabulary from the beginning is essential to us quickly jumping in.
- Join the Python track on Treehouse.
- Complete the Python Basics, Python Collections, and Object-Oriented Python sections. Further sections are optional and may not apply fully to the class.
Topic 3: 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.
- Read this Treehouse blog post about command-line basics.
- Go through the Treehouse course on Getting Started with the Console.
- Go through the Treehouse course on Users and Permissions.
- Go through the Treehouse course on Environment and Redirection.
Topic 4: 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
- Do the Try Git Exercises
- Read some of the GitHub Guides:
- Hello World
- Getting Your Project on GitHub
- Understanding the GitHub flow
- Forking Projects
- Mastering Markdown
Topic 5: HTML/CSS
Almost done. Although we’re not going to talk about them in the first few weeks of class, HTML and CSS are the foundation of all the content of a webpage or web app. This will help get you primed so that we can keep our momentum when we shift from pure Python to Django.
- Complete the Codecademy Web track.
Fill out the final survey
Once you have finished the prework given above, complete the following survey:
Whew, you did it. Now, your only remaining assignment is to get some sleep before class starts. You’re going to need it!
Bonus prework
The following exercises are not required! However, if you find yourself struggling with the above, or if you have more time you’d like to spend before class, here are some further resources:
- Git Immersion - This will be homework during the course, but you can begin early.
- Python for You and Me
- The Command Line Crash Course. This is a long undertaking and you could spend eight hours working on this. The author has a brash and possibly abrasive tone. The material is good, however.
- Try some warmup exercises: CodingBat