Turing School Prework Back End Engineering

Welcome!

Welcome to Turing! Your pre-work is broken up into a few different sections. Start off with the first week's suggested schedule. Once you've completed everything in the first week's schedule, move on to the Next Steps. If you still have time and would like to learn more, you may move on to the Extend Your Learning section. Before coming to Turing, please remember to complete Task G, the Pre-Work Reflection.

Overview

Prework helps provide important context, vocabulary, and baseline of skills to help you hit the ground running on the first day of class. We've found that students who come into the program having invested time in familiarizing themselves with key concepts are able to maximize their early weeks with us.

Your Time at Turing

If you haven't heard already, Turing is a fast-paced learning environment. Our goal is to prepare you to be a successful, employable web developer by the end of your 4th module. Being as fast paced as it is, the prework is essential to prepare you for your learning at Turing.

Turing isn't just about learning to code. We want to prepare you technically and in professional skills, which includes supporting Turing's mission and vision:

Our mission is to unlock human potential by training a diverse, inclusive student body to succeed in high-fulfillment technical careers. Our vision is a world powered by technology where the people building it represent the people using it. We're here to build a movement.

For more information about Turing activities and policies, you can read the Turing Student Handbook and see the Course Catalog.

What is Back-End Development?

Modern software, and web software especially, is driven by content – without the content, most of it wouldn’t be worth bothering with. And all of that content has to live somewhere. It needs to be stored, retrieved, manipulated, formatted, etc. etc. When we talk about “back-end” programming, we’re often thinking of the programming tasks involved in making this possible:

  • Storing data and accessing it later
  • Verifying that data is accurate
  • Manipulating and analyzing data
  • Making sure data can be retrieved quickly and easily

The “front-end” is the part of the application that users see, touch, and interact with. The “back-end” typically handles stuff like storing information in databases, manipulating that data, authenticating users, etc.; it’s what happens behind the scenes.

Learning Goals

The prework below is intended to take you 7 days. It is expected that you spend a few hours of concentrated effort on the tasks for each day - about 30 hours total. This should help you to establish a routine of coding every day.

At Turing, you will have to code every single day to stay on top of the workload and build muscle memory for everything you've learned. This 7 days of prework is designed to get you into that essential routine before day one of class.

Even if you plan to spend 14 days on this 7-day prework, you should break up the work so that you are doing work and coding every day, even if it is only a little.

After completing the prework, you should be able to do the following:

  • Be comfortable navigating your development environment and using your tools (Atom, Chrome, the console, and the command line)
  • Understand what pieces make up a web application
  • Become familiar with some common terminology used in web development
  • Develop a basic knowledge of Ruby in order to build a simple game (for show and tell)

If you have more than 7 days (or more than 30 hours) to dedicate to prework, first complete the 7-day prework tasks, and then continue on to the Next Steps section that contains additional resources on multiple subjects to use as a deeper dive.

Remember, don't worry if you don't understand 100% of everything. Let's get started!

What You'll Need

Here are the items you will need to complete the prework:

  • A computer - preferably a laptop running Mac OSX that is a 2013 model or newer

Prework Assignments

Next Steps

After the first week of pre-work, spend at least 30 minutes a day working through the following tasks in order:

Priority Level Task Accountability Check
Priority 1 Complete the Railsbridge Curriculum you started above, from "Loops" through "How to Write a Program." Respond to the following prompts in your Gist:
  • Loops: Take a screenshot of your "Challenge" program, and post it as a comment in your Gist
  • What challenges did you try for "Summary: Basics"? Post a screenshot of one of your programs
  • Functions: How do you call a function and store the result in a variable?
  • Describe the purpose of the following in Ruby classes: initialize method, new method, instance variables.
  • How to Write a Program: Screenhero with your student mentor and share your program. In your Gist, write a bit about what you found most challenging, and most enjoyable, in creating your program.
Priority 2 Dive deeper, and reinforce your Ruby knowledge, by following along & doing the exercises in Launch School's Ruby book. (You may skip over all the setup in "Preparation," but do read all the sections from Documentation onward.) As you complete the exercises for each section, take a screenshot of your terminal or text editor that shows your work, and post it as a comment to your Gist, listing the exercise topic as the comment heading.
Priority 3 Learn how to use Git & GitHub for version control (you’ll use this all the time at Turing). Be sure to read the advice section as you work your way through. After you complete the course, save a screenshot of your badge as a jpeg, and post it as a comment in your Gist.
Priority 4 Write a brief Gist describing your thinking on effective workflow. What shortcuts do you think you'll find most useful? What would you like to learn or practice that will most help you improve your speed and workflow?
Priority 5 Become a command line master by working through Michael Hartl's command line book. Take time to do the exercises. (NOTE... don't need to repeat what you've already done in the prior command line lessons)

As you complete each section, respond to the related questions below (mostly taken directly from the tutorial exercises):

  • 1.3: By reading the "man" page for echo, determine the command needed to print out “hello” without the trailing newline. How did you do it?
  • 1.4: What do Ctrl-A, Ctrl-E, and Ctrl-U do?
  • 1.5: What are the shortcuts for clearing your screen, and exiting your terminal?
  • 2.1: What is the "cat" command used for? What is the "diff" command used for?
  • 2.2: What command would you use to list all txt files? What command would you use to show all hidden files?
  • 3.1: How can you download a file from the internet, using the command line?
  • 3.3: Describe two commands you can use in conjunction with "less".
  • 3.4: What are two things you can do with "grep"?

Extend your Learning

If you have completed all the priorities above, the following options are not required, but give them a try if you just haven't had enough Ruby.

Task Accountability Check
Write a Ruby program to encrypt and decrypt secret messages (get better with Atom & the command line): http://tutorials.jumpstartlab.com/projects/encryptor.html. Contact your student mentor, and ask them to help you use Screenhero to share your work with them. If you’re feeling extra savvy, try using GitHub for version control as you do this tutorial. Spread the work on this out over a few days, and give yourself time for repetition. There are some concepts in here that you’ll use a lot (classes, File I/O, etc.) Walk your student mentor through your project over Screenhero. If you used GitHub, post your repo to your Gist.
Work through the Ruby lessons on CodeAcademy to reinforce your learning (this is a good resource if you have somehow made it this far without setting up your environment). Take a screenshot of your completion badges, and post it as a comment in your Gist.
More algorithmic thinking & logic: Return to https://brilliant.org and work through the free logic sections. Brilliant will also give you new challenges on the home page each day. Try your hand at these. Take a screenshot when you complete each section (numbers turn green when you have answered correctly) and post it as a comment to your Gist.
Continue working on http://typing.io. Try and reduce your errors and get your speed up to 35-40 wpm. Work through the Ruby section twice. As you finish each level, take a screenshot and post it as a comment to your Gist.
If you still want more, here are two paid, in-depth options for learning Ruby:
These are completely optional! No need to keep track of anything in your Gist.