Sei sulla pagina 1di 18

COURSE GUIDE

Full-Time Software Engineering Program


TABLE OF
CONTENTS
Program Overview 3

Curriculum 6

Why Python? 12

Why Hackbright? 13

Admissions 14

Why Become A Software Engineer 16

Next Steps 17

2
PROGRAM
OVERVIEW
The core of our Software Engineering Program is a 12-week intensive educational program
designed to give you the skills needed to get a job as a software engineer. There are many
individual components that comprise the Hackbright Academy’s unique program:

PREWORK

In the weeks before the Program, you’ll receive prework which covers critical foundational
material. This is required work for all entering students. The average amount of pre-work is
10 hours/week. Successful completion of pre-work is required for entry into the Hackbright
Academy Software Engineering program. This will be completed remotely and will be
dispersed by the education team (2-4 weeks) prior to program start date. All pre-work is to be
completed on time and in accordance with the guidelines presented by the education staff.

LECTURES

We lecture every day of the Program. During the first five weeks, we have two daily
lectures; in the second five weeks, we have one daily lecture, in the morning. Lectures
are where most new concepts are introduced.

LAB EXERCISES

During the first five weeks, we have hands-on exercises you’ll work on in our computer
labs. These exercises are designed to reinforce the concepts introduced in lectures.

INDEPENDENT PROJECT

During the second five weeks, about half of your time will be spent working on an individual
project (see sample projects here); this will give you an opportunity to practice software
development and demonstrate your learning skills.

3
PROGRAM
OVERVIEW (CONT.)
HOMEWORK AND SELF STUDY
Throughout the Program, we expect you to be dedicating time and attention to study and
review. During the first five weeks, there will be homework assignments every evening and
longer assessment-style assignments over the weekend. In the second half of the program,
we expect you to dedicate time to reviewing the lecture material, both in the evenings and
over weekends.

CHECK-IN
Every Friday at 5:30 pm, we meet in our lecture hall for a check-in on how the course
feels for people, to answer general questions, and make important announcements about
upcoming events.

FRIDAY AFTERNOONS
On Friday afternoons, we don’t have a formal lab exercise or a support system for individual
help on projects. Instead, we have a study hall where we offer group Q&A on the material
covered that week, and an advanced Q&A for students who want to ask deeper or side
questions on that material or optional topics. These take place in the labs.

CAREER COFFEE
Every week there will be Career Coffee, hosted by our Career Development department.
These sessions will cover important information about software development careers,
including job searching strategies, personal brand, interviews and more. In addition, you will
have one-on-one meetings with Career Development during the main part of the Program to
help you set goals and execute a successful job search.

FIELD TRIPS
During the Program, there will be several field trips to Bay Area technology companies.
You will get to meet working engineers, learn about different corporate cultures, and
network at hiring companies.

4
PROGRAM
OVERVIEW (CONT.)
EDUCATIONAL ADVISING

You’ll be paired with an individual education team member who will be your personal
adviser during the core part of the Program. They will act as your point person for
answering questions, providing learning support, and helping you find the resources you need
to be successful.

MENTORSHIP

We’ll pair you up with mentors; these are volunteer professionals who will help provide
ideas and support both during the Program and during your post-Hackbright job search
and career launch.

SOCIAL EVENINGS

A core goal for us is for the Program to be both challenging and fun—we believe you learn
more when you feel supported and surrounded by people you know. We have social evenings
every Friday night where we host movies, games, and other fun activities, and provide
food and drinks.

GRADUATION CELEBRATION

Held an evening after our graduation, we’ll gather our cohorts, friends, family, and mentors
to celebrate your graduation. There will also be speakers and demonstration of some of the
independent projects from our cohorts. You can check out a recent graduation celebration
with final project demonstrations here - this wil be you and your fellow peers upon
completion of the program!

A DAY IN THE LIFE OF A HACKBRIGHT STUDENT

5
CURRICULUM

CAREER COACHING THROUGHOUT THE PROGRAM

REMOTE LECTURE & DEVELOP & CAREER


PREPARATION MENTORSHIP BUILD SERVICES
5 WEEKS PRIOR WEEKS 1-6 WEEKS 6-10 WEEKS 11 & 12

The overall goal of the curriculum is to teach software engineering using Python as a core
language, with a special focus on tools and concepts for web application development.

There is also a strong secondary goal to teach deeper computer science data structures and
concepts, preparing students for more intermediate and advanced application development
and use of other languages.

WEEK 1: CORE PROGRAMMING

In the first week, we introduce core concepts around Logistics / What to Expect

developing code in Python and the most common Intro to the Command Line
data structures used in Python. Our focus will be on
Conditionals and Looping
understanding control flow, learning in-depth how memory
Git / Github
and variables work, and seeing how to create effective
programs by building components as separate functions. Functions

Lists, Tuples, and Sets


In addition, we’ll teach foundational skills in Git, a version Computer Memory
control system, and the command-line (“shell”) interface.
Introduction to Algorithms

6
CURRICULUM
(CONT.)

WEEK 2: DATA STRUCTURES AND APIs

In this week, we’ll look at other ways to represent data Dictionaries

structures in Python: dictionaries and objects/classes. More Command Line


We’ll have a several-day, several-part exercise, of building
Algorithm: Markov Chains
a “markov text chain generator” to parse text and create
APIs and Using the Twitter API
streams of text using an algorithm.
Classes / Object Orientation

We’ll also cover additional commands for working in


the command-line and introduce external APIs, focusing
at first on the Twitter API.

WEEK 3: WEB TECHNOLOGIES

This week focuses heavily on web technologies. Basic HTML

HTML and CSS are covered in our pre-work, but we’ll CSS
cover intermediate components of these, as well as best
Bootstrap
practices for document structuring. The biggest part of this
Flask
week is an introduction to Flask, a powerful Python-based
web framework for writing custom web applications. We’ll Testing

have several labs focusing on using Flask to build small How the Web Works
applications that serve HTML and CSS. Cookies and Sessions

We’ll also cover theoretical concepts about how the web


works: DNS, web servers, web requests and responses, and
how cookies and sessions function in modern applications.

7
CURRICULUM
(CONT.)

WEEK 4: DATABASES AND JAVASCRIPT

This week has two core areas: relational databases and Relational Databases / SQL

Javascript. Javascript

Document Object Model


We’ll introduce relational database theory and the SQL
jQuery
language, demonstrating how to create, update, and
query relational databases. We have a several-part AJAX & JSON

exercise that builds an application: first purely using


SQL, then using Python to interact with the database,
and finally integrating Flask to create a database-backed
web application.

In the second half, we’ll introduce Javascript, our


second imperative programming language. We’ll cover
the similarities and differences between Javascript
and Python and then use Javascript to work with the
“Document Object Model” of web browsers, using it to
make asynchronous web requests and to pass data back
and forth to servers. We’ll also teach the core concepts
of jQuery, a popular Javascript library.

8
CURRICULUM
(CONT.)
WEEK 5: DATA MODELING & MACHINE LEARNING

This week focuses primarily around a long lab exercise: SQLAlchemy


building a sophisticated website for listing and storing Data Modeling
ratings of movies, including a machine-learning driven
Machine Learning
predictive rating system.
Project Planning

Our lectures start with SQLAlchemy, a Python-based ORM


(“object relational mapper”), a program for integrating the
concepts of relational storage with objectoriented data
design. We’ll learn how to use SQLAlchemy to build a
model for applications and how to query it.

We’ll also introduce machine learning concepts, focusing


particularly on the prediction algorithms used in the
movie rating project.

Lastly, as this is the last week before independent projects,


we’ll talk more in-depth about how to work on projects,
including introducing concepts of Agile development,
such as scrums and project planning.

WEEK 6 & 7: PROJECTS & PROJECT TECHNOLOGIES

In these two weeks, students will begin to work directly on Independent Projects

their independent projects. Advanced Technologies

In addition, we’ll be lecturing on technologies that are often


useful for projects. This list changes based on requirements
from the class, but common topics are: Agile development,
PostgreSQL, AngularJS, Chart.js, d3, Mapping, Regular
Expressions, and Django.

9
CURRICULUM
(CONT.)
WEEK 8 & 9: PROJECTS & COMP SCI / DATA STRUCTURES

In these two weeks, students will continue working on their Independent Projects

independent projects. Runtime

We’ll continue our morning lectures, focusing now on Stacks and Queues

core computer science concepts and data structures. Linked Lists


These are fundamentals that are critical for understanding Trees
intermediate and advanced programming; they also
Recursion
frequently appear in interviews for developers. We’ll
Graphs
primarily talk about these concepts using Python as our
demonstration language, but the concepts and structures Sorting

are language-independent.

These lectures are the most critical at Hackbright. While


it’s tempting for some students to try to focus exclusively
on projects during this season, these are the lectures that
cover material for technical interviews and intermediate
software development.

WEEK 10: CAREER WEEK & INTERVIEW PREP

The first few days of this week focuses on finishing the Finishing Individual Projects

student projects. Deploying Web Applications

Career Week
We’ll lecture this week on web application deployment, using
Heroku as our example. Our main lectures, however, are Introduction to Whiteboarding

on the process of whiteboarding style technical interviews: Understanding Technical Interviews


we’ll present strategies on how to succeed at whiteboarding,
and provide plenty of instructor-supported practice runs of
whiteboarding style interviews. During this week, Hackbright
Career Services hosts events for students to meet our hiring
partners companies, from field trips to meet-and-greets.

10
CURRICULUM
(CONT.)

WEEK 11 & 12: LAUNCHING YOUR CAREER

Weeks 11 and 12 shift the program from an educational Self-Directed Study


focus to one on career searching. Students will switch from
Algorithm Practice
working with our education team to working with our Career
Development department. There will be presentations on Group Whiteboarding
interviewing, compensation and negotiation, and career
Resume Reviews
development as well as plenty of additional practice with
whiteboarding and mock interviewing. Career Services Presentations

Career Search Support


There are events at Hackbright most days of these weeks,
but there’s also more unstructured time, as many students
will want to schedule phone screens, interviews, and
mentor meetings.

The education team will continue to send the students


code challenges and whiteboarding problems via email.

11
PROGRAM
OVERVIEW

We teach Python because it is the best first programming language. Upon learning Python,
it becomes easier for you to pick up other languages.

Companies that use Python? Google, Yelp and Dropbox to name a few. The primary language
taught in traditional four-year Computer Science programs at institutions such as Stanford
and UC Berkeley is Python as well, further making it a competitive language to know.

Important Note: Just because you studied in Python doesn’t mean you can only get a job
using that language upon graduation. The majority of Hackbright graduates receive jobs as
software engineers. Python is the primary language used in about half of the jobs Hackbright
graduates accept. The other half of Hackbright graduates work at jobs using languages
including Ruby, Java, C++, Swift, Android, etc.

This is because once you learn Python, you’re in a great place to pick up new languages on
the job and engineering teams at companies know that. They hire you with the knowledge
that you have the foundational skills you need to thrive in their companies.

Although the curriculum is in Python, the coding challenge on the Hackbright Academy can
be completed in any language.

12
WHY
HACKBRIGHT?
Between an established alumnae network of over 600 women in tech and a vast community
of companies dedicated to hiring more great Hackbright engineers, you’re immediately getting
plugged into a top-notch network.

Events with Alumnae USDS Girl Geek Dinner Twilio Workshop

Whiteboarding Sessions Autodesk Field Trip GitHub Universe

WHERE ARE OUR ALUMNAE NOW?

13
ADMISSIONS

APPLICATION

Prospective students must first submit a one page admissions application and coding
challenge. The application is straightforward and allows us to learn more about who you
are, your background, interests and goals.

INTERVIEW

After submitting an application and coding challenge, you will receive notifications of next
steps within two weeks time. If invited to interview, you will be speaking with an alumnae
or staff member about your background, interest in Hackbright Academy and technical skills.
Most interviews are conducted via video chat (roughly 45 minutes long.) A small sample of
you can reach out to us at admissions@hackbrightacademy.com applicants may be selected
for a second coding challenge and/or interview.

ACCEPTANCE LETTER

Also, can you please add the highlight part under Acceptance Letter: If selected to attend,
you will receive an acceptance letter through email with a link to submit your deposit, which
will reserve your spot in Hackbright Academy’s Program. Please note that accepted
students are “required” to attend orientation on the first day of class.

14
ADMISSIONS
(CONT.)
TIP

Our Admissions Team is a great resource for the most up-to-date admissions information,
application tips and upcoming events.

Have questions? Join us at an Upcoming Event or Info Session to meet instructors, chat
with admissions, hear from alumnae and learn more about whether Hackbright is the right
fit for you.

15
WHY BECOME A
SOFTWARE ENGINEER?
LOVE FOR PROBLEM SOLVING

The biggest thing we hear from alumnae before starting Hackbright is that they hit a rut - they
were no longer challenged in their careers. By going to Hackbright, you’re going to be immersed
in an education and new career that allows you to do what you love: become more challenged,
solve problems and think creatively.

ECONOMICS

The American economy is adding 136,620 jobs per year in computing. Subtract 40,000
annual computer science graduates and you get roughly a gap of 100,000 jobs.

100,000 JOBS ADDS UP OVER 10 YEARS TO 1MM JOBS:

1st year: 100,000 2nd year: 200,000 3rd year: 300,000 10th year: 1,000,000

Over the next 10 years, there will be a 1 million skills gap for companies looking for
candidates with technical skills.

By investing in your career as a software engineer, you’re preparing yourself to have a


skillset companies are constantly hiring for.

MISSION
The gap is even greater when considering the low percentage of women filling technical
positions. By investing in your career as a software engineer, you’re ensuring more women
will influence technology - one of the most powerful tools in our society today. So get the
skillset, build what you think the world needs and make a difference - not only in your own
life, but in the world. And guess what? You’ll be inspiring others as you do it.

Source: Bureau of Labor Statistics

16
NEXT STEPS

READY TO GO? HERE ARE SOME NEXT STEPS:

• Join us for an upcoming event to get more Program details, meet our team,
and get a feel for Hackbright Academy. You can join in person or remotely.

• Submit your application - Spots fill up fast and we encourage you to apply early.
If you have any questions while completing your application, you can reach out
to us at admissions@hackbrightacademy.com.

OTHER HELPFUL RESOURCES:

• Program Dates

• Admissions Information

• Our Education Team

• FAQ

17
HACKBRIGHT ACADEMY
683 SUTTER ST.
SAN FRANCISCO, CA 94102

PHONE: 415-887-2215

www.hackbrightacademy.com

Potrebbero piacerti anche