/prework

This is the FORMER, NOW-OUTDATED prework for Hackbright Academy, kept for archival purposes.

Hackbright Prework

Premise

It is plausible to enter Hackbright with no technical experience at all and do well, but it is certainly advantageous to devote as much time as possible to peparing for the fellowship. We divide the skills needed in engineering into two categories: mechanical and conceptual. The mechanical skills are easiest to acquire in individual study, and these are the ones we encourage you to spend time on.

Unfortunately, these skills are also probably the least exciting ones to work on, as they are not obviously immediately applicable towards building something interesting. However, they are foundational and having them will help you get the most out of Hackbright.

Goals

The first mechanical skill you should work on is memorizing syntax. Committing syntax to memory is an act of rote memorization and requires little more than repetition and time. This will have the single biggest impact on your ability to acquire new programming concepts and should be your primary goal prior to Hackbright.

Specifics

Working from the digital version of How to Think Like A Computer Scientist, the following are the most important chapters. Ideally, you are to complete all of the exercises in the book. If you are forced to prioritize what to memorize, choose the material in this order.

Completion here means successfully answering all the exercises at the end of each chapter. Because the goal is memorization, you should plan on doing each problem set several times. As you do each problem, it is recommend that you use a stopwatch and record the time it takes to complete the task. You aren't shooting for any particular time, only that you are faster when you repeat the problem set.

Depending on your learning style, it can be helpful to read the exercises first, take notes on vocabulary that is unfamiliar to you, then go back and read the chapter looking for definitions.

Assessment

In addition to the chapter exercises, we will be releasing a series of translation drills (English to Python and back) to help you determine your progress and assess which tasks you need to spend more time practicing. Until they are released, these are the general ideas that will be covered by the drills. As you read through the chapters, make sure you keep an eye out for these specific concepts.

  • Creating variables containing different data types
    • Integers
    • Floats
    • Strings
  • Creating and manipulating lists
    • Adding an item to a list
    • Accessing data in a list
    • Removing data from a list
  • Writing an if-elif-else block
  • Writing a for-loop
  • Writing a while loop
  • Creating a function with a specific type signature