You’re closer than you think to a career in tech. Our grads have launched rewarding new careers — you can too.

View Our Jobs ReportFlatiron School’s technical assessment can be one of the most intimidating parts of your journey through a bootcamp into a data science career. Unlike most other educational admissions processes, you’re not just being asked to express interest and demonstrate how well you’ll fit into the community — you’re being tested to see if you actually have the technical skills to hit the ground running in the program. That’s understandably scary — we get it!

As a Data Science coach at Flatiron School who’s conducted almost 100 technical admissions interviews over the past year, I’m here to help! I’m always rooting for every candidate to pass the interview. In this post, I’ll go over:

**Why Do I Need to Take a Technical Assessment?****Data Science Technical Topic Overview**Python Programming Topics

Math Topics

Topics You Don’t Need to Know

**Study Skills and Strategies****Resources**

By the end of this post, you should feel ready to tackle this challenge and put your best foot forward. Let’s do this!

### 1. Why Do I Need to Take a Technical Assessment?

In some traditional educational settings, there are “weeder courses” designed to limit the number of people who can complete a given degree program. These courses tend to have extremely high standards, with the goal of causing a significant number of students to fail the course and switch to a different program — leaving them in an uncomfortable position.

**At Flatiron School, that is ****not ****how things work.**

We want you to be able to cover a lot of ground in a very short amount of time, and our goal is for 100% of our admitted students to pass the course and successfully start their data science careers. Because of this, it’s important to make sure that you’re truly ready for our intensive program before you ever attend orientation on your first day of class.

The bottom line:We require that you pass an assessment because we want you to be successful!. We understand this could seem stressful, but it’s to assess how well you work under pressure and how you’ll work during the program. We just want to see what you know and how well you are able to explain it, and we’re wishing you the best!

### 2. Data Science Technical Topic Overview

A successful data scientist needs all the overlapping skills described in the diagram above — we’re specifically going to make sure you have a strong foundation in **programming **(with Python) and **math **(calculus and statistics).

The goal of this section is *not* to point you to exactly what you need to study to pass. Instead, it covers the key skills and concepts that you need to be successful in our Data Science program, some of which will be covered in your admissions assessment, and some of which won’t! In addition to having multiple versions of the assessment with slightly different questions, **the goal should never be to pass the assessment if you wouldn’t be able to succeed in the actual program.**

#### Python Programming Topics

In the first week of Flatiron School’s Data Science program, we start diving into Python libraries. Python libraries are powerful tools for data manipulation, data visualization, machine learning, and much, much more! In order to be able to use these libraries, you need a foundation in Python fundamentals. These fundamentals are listed below.

##### List of Python Programming Topics

**1. Basic Python syntax**

Creating and modifying variables

Keywords, e.g.

`def, in`

Math operation syntax (e.g. the difference between * and **)

Correct usage of quotes, parentheses, commas, colons, whitespace, etc.

**2. Built-in types**

Booleans (

`True`

or`False`

, type`bool`

)Integers (type

`int`

)Floating point numbers (type

`float`

)Strings (type

`str`

)String methods, e.g.

`.upper, .split`

Lists (type

`list`

)List methods, e.g.

`.append, .pop`

Dictionaries (type

`dict`

)Dictionary methods, e.g.

`.keys`

**3. Control structures**

Conditionals (

`if`

statements)Loops (

`for, while`

)

**4. Functions**

Built-in functions, e.g.

`print, range`

Writing custom functions

#### Math Topics

One of the *major* differences between the job requirements for a Software Engineer vs. a Data Scientist is mathematical knowledge. Data Scientists need to be able to select the best model or statistical test for a given problem, which requires a more comprehensive understanding of math concepts. We will cover some additional “math for data scientists” content during the course, but we need you to bring some math fundamentals from the start.

##### List of Math Topics

1. **Algebra foundations**

Variables

Functions, including polynomial functions (e.g.

*3x2 + 7*) and composite functions (e.g.*f(g(x))*)Slope

Limits

Reading math notation and understanding its relationship to Python code implementations

**2. Calculus**

Conceptual understanding of derivatives and their relationships to functions and slopes

Derivative formula

It’s a good idea to understand the power rule and how it applies to different powers, e.g.

If

*f(x) = 4*,*f’(x) = 0*If

*f(x) = 4x, f’(x) = 4*If

*f(x) = 4x3, f’(x) = 12x2*

**3. Statistics**

Conceptual understanding of a

*population*vs. a*sample*Understanding properties of a

*distribution*Measures of central tendency (mean, median, mode)

Measures of dispersion (absolute deviation, variance, standard deviation), including quantiles

Percentiles

Quartiles

Interquartile range

Interpretation of a histogram plot

#### Topics You Don’t Need to Know

We understand that you don’t want to waste your time on material that won’t be relevant to your technical assessment! Neither would we. All of the topics below will be covered in the actual Data Science course (or in the post-work after the program is over), so you’re not required to know them to be admitted.

##### List of Topics You Don’t Need to Know

**In-depth Object-Oriented Programming (OOP)**The built-in Python types (strings, lists, etc.) are objects, and you need to be able to use them and their methods

You do not need to be able to declare or utilize a custom class

You do not need to be able to describe the principles of OOP

**Algorithms and data structures**You should be able to perform simple algorithms such as looping over a collection and finding the largest value

You do not need to be able to do full-on tech industry “whiteboarding questions” such as depth-first search, traversing a linked list, implementing an LRU cache, etc. We don’t cover these until the “post-work”!

**Python libraries**You do not need to be able to use Plotly or any other library for data visualization, even though it may be introduced in the bootcamp prep/interview prep materials

You do not need to be able to use NumPy, Pandas, or any other library for data manipulation

You do not need to be able to use any other Python library

**Machine learning**You do not need to be able to describe the gradient descent algorithm or its uses, even though it may be introduced in the bootcamp prep/interview prep materials

You do not need to be able to describe or utilize any other machine learning technique (linear regression, random forests, neural networks, etc.) or concept (overfitting, bias-variance tradeoff, regularization, etc.)

**Linear algebra**You do not need to be able to describe or utilize math applied to vectors, matrices, tensors, etc.

**Derivative rules other than the power rule**You do not need to memorize exponential, logarithmic, trigonometric, power rule, etc.

The important thing is understanding the general concept of a derivative, not to memorize a bunch of formulas

**Coding derivatives or statistics in Python**You should be able to calculate simple descriptive statistics → measures of dispersion and central tendency described above

You do not need to be able to code a derivative from scratch, or any other calculus problem including a gradient descent

You do not need to be able to calculate statistics such as a t-statistic, f-statistic, chi-squared, r-squared, etc.

**Programming languages other than Python**You do not need to be able to write SQL queries

You do not need to be able to write code in any language other than Python

### 3. Study Skills and Strategies

#### Reading and Understanding Code

In general, you’re expected to read more complicated code than you would be expected to write. This is a common feature of all programming workflows, not just data science!

Practice saying out loud what a line of code is doing. Part of learning to code is seeing the narrative of what is going on instead of just lines of specific instructions. For example, if the code is x = [5,6,7] you would say, out loud, "a list of integers from 5 to 7 is assigned to a variable named 'x'”. If you know anyone who is a programmer, try to practice explaining something to them, and ask for their feedback!

You can also try adding print statements throughout the code to get a clearer understanding of what is happening at every step, especially when you’re learning about loops and functions for the first time! Sometimes the best way to understand existing code is to modify or “remix” it until you understand what every component is doing — even if that results in a few error messages along the way.

#### Utilizing the Flatiron School Curriculum

Try your best to complete a lesson *before *looking at the solution. Remember, getting stuck and working through individual pieces of code and concepts is part of the process!

If you get completely stuck and need to check the solutions to move forward, just look at the specific solution for the piece you got stuck on, instead of reading the solutions for the entire lab. Often that can be enough to point you in the right direction to be able to finish the lesson on your own.

There is almost always more than one way to accomplish a specific task with code. If you are able to complete a lesson without looking at the solution, make sure you look at the solution afterwards and compare it to what you wrote, keeping in mind that the solution code might accomplish the same thing as your code even if it is written differently. Ask yourself specifically:

Is the code in the solution shorter?

Is it easier to read?

Does it use different components?

Is it structured in a different way?

#### Tips for Taking the Assessment

**Be prepared: **Find a quiet spot where you can focus, uninterrupted. Make sure the people around you are aware that you have an assessment, and that you will probably be talking about code out loud! Many people find it helpful to also go into “do not disturb” mode on their phone and/or computer, to avoid interruptions. And it doesn’t hurt to get a good night’s sleep and keep yourself fed and hydrated!

**Explain your thought process: **Especially if your technical assessment is in interview format, make sure you are explaining your answers out loud, not just silently writing code or staring at the screen. If you don’t know exactly the right answer, tell us what you *do *know, and we might be able to point you in the right direction. If it seems like the question is really difficult, ask us to clarify — it’s possible that what we’re asking for is actually much simpler than you think. We don’t need you to be an expert coder or master of data analysis! We need you to have foundational content knowledge, to be able to think rigorously about technical problems, and to be able to communicate how and why your code does what it does.

**If you’re stuck, breathe: **Sometimes if you just take a deep breath and pause for a few seconds to collect yourself, the problem can seem a lot less overwhelming. Keep in mind that we want you to pass, we are not here to be a barrier to your success! We also have a philosophy at Flatiron School of second chances, so it’s more likely than not that you will have a future opportunity to succeed in the application process if this one doesn’t work out.

### 4. Free Resources

For the best overall introduction refer to the free bootcamp prep/interview prep materials provided by Flatiron school. You can be assured that our technical assessments are calibrated so that our prep materials are the only materials you *need*. (In other words, we may ask you questions about prior general knowledge, or advanced topics, that are not covered in the prep materials, but you will be able to *pass* the technical assessment with just the topics covered in the prep materials.)

However we have found that some prospective students would like additional practice with this content, especially prospective students coming from non-technical backgrounds. This resource list is curated to include only the most relevant content, since it’s easy to look out at the breadth of Python study materials and get overwhelmed from the sheer volume of available resources!

There are some “prerequisite” topics that are not covered here. For example, we start with the assumption that you know what an “x-axis” is. While there are no formal educational prerequisites for this program, you may want to look into taking additional math coursework before beginning to prep for our programs if you haven’t completed at least a high-school level STEM education.

#### Python Programming

The

**Python docs**are a great place to find reliable information and quick examples of all of the features of Python. I don’t recommend reading these from top to bottom; instead, do a search within the individual page to find out more about something specific, e.g. “string methods” in the built-in types documentation, then referring to that section to find the method you want

One of the platforms we use for assessments is

**Google Colab**. It is another flavor of a Python notebook, slightly different from the Jupyter Notebooks used in the Flatiron School curriculum. Check it out, make some notebooks of your own, play around with creating and running new cells

While it is possible to practice Python coding exercises on sites like HackerRank or LeetCode, those exercises are designed for people preparing for software engineering job interviews and are generally more difficult than our admissions standards require. Instead, I recommend using

**CodingBat**. The admissions technical assessment will have a similar difficulty level to the “basic” CodingBat problems

#### Math

Overall, **Khan Academy** is one of the best places to learn math for free

For the algebra foundations topics, I recommend:

For the calculus topics, I recommend:

For the statistics topics, I recommend:

### 5. Conclusion

Phew, you made it to the end! To recap what was covered in this post:

We understand that the admissions technical assessment can seem scary, but we only require it because

**we want you to succeed**in the actual DS program, and**we hope that it will seem a little less intimidating**when you’re armed with these strategies and resourcesThere are

**several foundational topics**we may test you on, but you can be assured that a**significant number of topics will****not****be covered in the assessment**

One closing piece of advice: before applying to a data science bootcamp, make sure you know you want to do this, you have the time to commit to learning, and that you have found at least one program that looks like a good fit for your needs. However, there is no need to wait until you feel like you have completely mastered the material, or wait until you have decided which program is perfect for you — part of the admissions process is helping you figure out whether you are right for the school, and whether the school is right for you! Here at Flatiron School we encourage you to be in the “stretch zone” (neither bored nor panicked) at all times, so **make sure you study, but be prepared to dive in before you get too comfortable**.

#### Erin Hoffman

Data Science Coach at Flatiron School

## Since we opened our doors in 2012, thousands of students have joined Flatiron School to launch new careers in tech.

Find the perfect course for you across our in-person and online programs designed to power your career change.

Connect with students and staff at meetups, lectures, and demos – on campus and online.

Have a question about our programs? Our admissions team is here to help.