Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Holberton School Syllabus

Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Syllabus

Table of 1. Why Holberton


contents 2. The Holberton way
3. Pathways
a. Foundations
b. Specialization
1. Why Holberton?
" There's going to be
1.4m Tech Jobs
in the next decade & only
400k trained
people to fill them. "
Courtesy: The New York Times
Holberton is not your typical school.

You won’t see any teachers here, it’s true. Here, we


learn best by collaborating. Here, every student
becomes a mentor, because the surest way to cross
the finish line is by supporting one another.

We encourage our students to always ask why and


challenge the standards of the status quo. By
challenging ourselves and each other, we’re building a
new kind of community. Because diversity brings
resilience, we welcome many different points of view.
The only thing we won’t tolerate here is intolerance.

At Holberton, we aren’t just learning how to code.


We’re learning how to learn — together.

We’re going to rewrite the rules — for the better.


What sets Holberton students apart

Full-stack engineers Master of soft skills Adaptable Diverse

Our curriculum covers low-level Students will not only learn Our students learn how to learn; Our students come from a variety
programming , algorithms, high- technical skills but build up their therefore they are able to pick up of backgrounds and experiences,
level programming, and systems soft skills through presentations, new skills and tools very quickly bringing a unique perspective to
engineering. technical writing, and group within any type of environment. any work environment.
Our students have a solid software projects, making them a valuable
engineering foundation — knowing asset to any team.
more than one programming
language.
Top companies hired our students

Our students have landed software engineering jobs and


internships across all industries and company sizes. See
some of the employers who have hired our students.
Admissions
Where there's a will,
There's a way
Our selection process is based on talent and
motivation. We don't care what degrees you may or
may not have, if you have any previous programming
experience, or your ability to pay. If you possess the
curiosity, determination, and drive to succeed, then
we want you as a Holberton student.

Our automated admissions process is completely


“blind” to remove human biases. It was created
specifically to identify smart, motivated people and
doesn’t take into account previous education, work
experience, gender, ethnicity, or age. There’s also no
cost to apply - we only ask you to have a GED or high
school diploma.
Here's how it works:

● Fill out a short online form about yourself


(about 2 minutes)
● Complete small online projects and tests that
you can do at your own pace (about 2 hours)
● You’ll create your first website, from
configuring a server to writing HTML, CSS and
JavaScript (about 2 weeks)
● Complete an on-site or remote Q&A and tech
challenge.

Apply now
2. The Holberton way
No pre-course

Holberton does not expect students to come in with


previous software engineering experience (although if
you do have experience, that’s awesome too).

There is no pre-course work (that’s why you are


attending a school after all), but we do recommend
that you read through The C Programming Language
book by Kernighan and Ritchie or Programming in C
by Stephen Kochan.

The goal of reading through the book is not to deeply


understand all the concepts, but to familiarize
yourself with key terminology and content.
Coursework

We are training you to be a full-stack software


engineers. The program will be intense.

There are no formal teachers or formal lectures.


Students are learning by creating and we rely on peer-
learning, collaboration, and industry-relevant
curriculum to guide the way.

There is no competition here at Holberton, rather


students are helping each other towards their goals.
Of course, there is also technical staff available to
answer questions and extend support, as well as
mentors who share their expertise along the way.
Soft skills

In today’s tech world, it’s not enough to be good at


technical skills, you need to be a clear communicator
as well.

We push our students to work on their public


speaking skills, to publish blog posts to online tech
communities and publications, and to speak at
conferences and meetups.

This not only prepares students to be team players


and clear communicators, but creates amazing
networking opportunities.
Professional development

We know that the skills to get a job are different from


the skills to be good at a job. From week zero, we
immerse students in professional growth and
development via workshops, projects, meetups, and
work simulations.

Whiteboarding, mock interviews, professional


networking, and more begin as soon as students
start the program so that they’re confident and
competent when the time comes to prove they’re
ready for the job.
Job search
Utilizing our networks and creating networks of your
own will provide you with the best opportunities to
find a job as a Software Engineer — to know someone
on the inside who can get your resume in front of the
right people and give you a personal
recommendation.

We are not just concerned about you finding your first


job in tech, though; we want to equip you with the
knowledge and resources to drive your job search so
that you are independently successful in the years to
come — regardless of how your interests or the
industry evolves.

You’ll learn how to build your narrative, demonstrate


your technical skills, negotiate, and navigate the
industry with confidence.
3. Pathways
How our program works
Pathways: foundations & specializations

This syllabus is an overview of the topics, languages,


and frameworks you will learn during your time at
Holberton. It is not a definitive outline and is subject to
change to fit the needs of the ever-changing tech
industry.

Our program walks through the major arms of


computer science and software engineering — data
structures, algorithms, low-level and high-level
programming, Linux and UNIX system programming,
web front-end and back-end, databases, security,
system administration, and devops.

Additionally, you will develop professional skills such as


public speaking, networking, project management, and
effective communication.
3a. Foundations
Holberton teaches full-stack software engineering with a project-based approach.
The first part of our on-site intensive education covers the foundations of software
engineering, including low-level programming, DevOps, and high-level modern languages.
Low level
You will understand how programming languages and Unix systems work, “what is going
on under the hood”. This will allow you to optimize and debug anything later in your career.
You will be working with algorithms and data structures which are essential foundations
for any great Software Engineer, the type that the best companies want to hire.
Low Level

C programming language Graphic programming Reverse engineering and security

-Compilation -SDL2 -Introduction to assembly basics


-Commenting code and following a -Isometric projection Raycasting -Disassembling
coding style standard -Buffer-overflow
-Variables, types, operators, Unix programming -Executable code injection
expressions -Tools: strings, ltrace, objdump,
-Loops, nested loops radare2, radiff2, ldd
-Unix / Linux overview
-Conditional statements
-File I/O, Memory allocation process
-Functions
creation and termination System calls Examples of low level projects
-Preprocessor, macros, header files -
Pointers, pointers to pointers, pointers
to functions, pointer arithmetic -Create your own printf function
-Arrays, multidimensional arrays - Data structure and algorithms -Code from scratch a mini-shell
Structures -Your own Maze (mini game)
-Static and dynamic libraries -Time and space complexity
-Program arguments -Arrays, structures
-Dynamic allocation -Linked lists, doubly linked lists, circular
-Virtual Memory, heap and stack linked lists (you are gonna love linked
-Binary operations lists)
-Makefiles -Stacks and queues
-Hash tables
-Recursion
-Search & sorting algorithms
-Binary trees, BST, AVL
High level
You will create a complete web service with databases, back-end, and an amazing front-end
website with the latest technologies. This project will give you all the skills to work in the
best companies in Silicon Valley such as Facebook or Dropbox. You will gain the skills to
quickly learn and adapt to new frameworks for building products or to iterate on an existing
codebase.
High Level

Python Front-End Examples of projects

-Interpretation -HTML/CSS -Create your own AirBnB website


-Commenting code -Accessibility complete with database, front-end,
-Following a coding style standard -Javascript back-end, console, and testing
-Variables, types, operators, expressions, -Hack a website's security by scripting
loops, iterators Object-oriented programming requests
-Conditional statements (if, else, while)
-Functions
-Libraries -Object notation
-Data structures -Public - internal interfaces
-Exception management -Inheritance
-Class, metaclass, decorator -Data formatting (JSON/XML...)
-Network requests -Serialization and deserialization
-Application programming interface
scripting Databases

-SQL language
-Relational database
-Data definition language
-Data manipulation language
-Data control language
-MySQL - SQLite
-Object-relational mapping
Sysadmin / Devops
You will build web infrastructure similar to those powering tech powerhouses like LinkedIn,
Facebook, and Google. You will architect scalable, reliable, and secure systems using web
servers, load balancers, databases, firewalls, and more. You will learn to automate your job
so that you can easily manage anything from one server or hundreds of them.
Sysadmin / Devops

Linux / Command line Infrastructure design & Examples of projects


management
-How the Shell works
-Navigating the file system -Parsing -Build a web infrastructure like the ones
-Manipulating files -Advanced log parsing powering Facebook, LinkedIn, Twitter, etc.
-I/O redirections, standard input, -Advanced SSH -Learn to work at scale
standard output, pipes, filters -Set up a domain name -Develop tools for Cloud environments
-Permissions -Understanding DNS
-Job control -Set up SSL certificate
-Shell scripts -Manage web servers
-Manage load balancers
Soft skills -MySQL Primary/Replica setup
-Firewall management
-Web infrastructure design
-Organizing meetups -Monitor a web infrastructure
-Fireside chat sessions -Web stack debugging
-Attend meetups and conferences
-Technical articles
-Public speaking
-Mastering social media
-Networking
-Project management
-Conflict resolution
3b. Specializations
After you acquire the foundations of software engineering, you specialize.
Students have the opportunity to go beyond the foundations with specializations that focus on exciting
emerging technologies. After acquiring the foundations, you will be able to choose from our specializations:
Machine learning, AR/VR, Low Level and Algorithms or Full-Stack Web Development.
Project-Based Peer Learning

Continuing with the format that has allowed Foundations


to powerfully develop technical and soft skills,
Specializations leverage onsite interactions as well as
global peer collaboration for accelerated growth.

● Still no teachers or formal lectures


● Students are learning by creating with peers
● Opportunity for Cross-Campus Collaborations
● Monthly Streamed Topic Deep Dives from Content
Creators and Industry Experts
Career Preparation

In the last trimester of Specializing, you’ll complete our


Career Preparation curriculum so you’re ready to start
an effective and relevant job search upon graduation.

● Portfolio-focused projects
● Weekly interview algorithm project
● Integrated Career Sprint Curriculum
■ Portfolio Development
■ Networking
■ Negotiation
■ Whiteboarding
■ Tools & Strategies
Machine Learning
Machine Learning
Holberton’s machine learning specialization teaches the
theories behind modern-day breakthroughs in the fields of
computer vision, natural language processing, recommender
systems, autonomous driving, and more.

Students will also learn how to apply these concepts using


technologies such as Pandas, Numpy, Tensorflow, and
Keras. Throughout their nine months of study, students will
dive deep into supervised, unsupervised and reinforcement
learning, as well as the related mathematical principles.

Recent advances in this field have sparked a fourth industrial


revolution, accelerating the rate of automation and scientific
discoveries. Entering such a field now will inevitably help
shape society’s progress for decades to come.
Machine Learning

Mathematics Supervised Learning

- Matrix operations - Multi-layered neural networks


- Normalization - Forward and back propagation
- Eigenvalues and Eigenvectors - Stochastic gradient descent
- Plottong - Weight and bias initialization
- Summation and product notation - Bias and variance tradeoff
- Derivatives and partial derivatives - Regularization
- Integrals - Convolutional neural networks
- Marginal and conditional probabilities - Deep convolutional architectures
- Probability distributions - Recurrent neural networks
- Bayesian probability - Transformers
- Mixture models - Sequence-to-Sequence modeling
Machine Learning

Unsupervised and Reinforcement Learning Project Examples

- Dimensionality Reduction - Object Detection


- Clustering - Facial verification
- Embeddings - Neural Style Transfer
- Autoencoders - Speech to Text
- Generative Adversarial Networks - Machine Translation
- Hyperparameter Optimization - Stock predictions
- Hidden Markov Models - Recommender systems
- Monte Carlo Method - Game agents
- Deep Reinforcement Learning

The Pipeline

- Web scraping
- Labeling data
- SQL & NoSQL databases
- Map Reduce
- Hosting on cloud platforms
Augmented Reality /
Virtual Reality
Augmented Reality / Virtual Reality

Holberton's Augmented Reality / Virtual Reality (AR / VR)


curriculum teaches the fundamentals of programming in
C# and developing interactive mixed reality projects in
Unity3D, the world's leading real-time game engine.

Throughout the nine months, students will learn Unity3D


concepts such as scripting, animation, UI design, creating
shaders, game testing, as well as learning UX concepts
specific to AR and VR, including immersive storytelling,
spatial audio, and user comfort.

Mixed reality is a young, evolving industry and becoming


involved now means shaping and influencing the future
of the field.
Augmented Reality / Virtual Reality

C# curriculum Unity curriculum

- If/else statements, loops, functions - Unity workflow and best practices


- Data structures - Unity scripting and Unity-specific C# patterns
- Exceptions - UI design
- Structs, classes, namespaces - Animation
- Algorithmic problem solving - Audio
- Test-driven development - Lighting/rendering
- Linear algebra - Shader programming
- Interfaces - Game testing
- Generics - UX for AR/VR
- Delegates - Accessibility
- Events - Developing for multiple platforms
Augmented / Virtual Reality Development of the 3D game project

Project examples
VR:
- 360 video
- Seated/standing experience
- Room scale experience
AR:
- Marker-based recognition
- Location-based application
- Plane detection / physics game Development of the AR
image recognition project

Concepts
VR:
- Methods of navigation Development of the VR room project
- Designing for 3DOF vs. 6DOF
- User comfort
AR:
- SDKs (ARCore, ARKit, Vuforia)
- UI/UX design
- Accessibility
Development of the VR 360 video project
Low Level and algorithms
Low Level and algorithms

Holberton’s low-level programming specialization


allows students to dive into the complexity of the C
programming language and the Linux operating
system. Students will also be challenged with
advanced data structures and algorithms, and they
will uncover all the mechanisms behind the
Blockchain technology by building their own basic
cryptocurrency from scratch, entirely in C.

This specialization builds a great foundation if you


aim to become a fast-growing Software Engineer as it
will widely develop your understanding of “how
things work under the hood”.
Low Level and Algorithms

This first part of the low-level curriculum is an extension to


Holberton’s first year program. Students will extend their
knowledge of the C programming language and the Linux
system throughout more complex projects.

These advanced concepts include but are not limited to:

Linux and C programming

-File streams
-The Linux programming
-Interface: system calls
-Memory management
-Process tracing
-IPC:Inter-Process Communication
-The ELF file format
-Assembly with Intel x86
-The Linux filesystem
Low Level and Algorithms
Blockchain
This last part of the low-level specialization teaches
Data Structures and Algorithms students how to build their own Blockchain, and extend it to
This next part of the low-level curriculum is designed a basic cryptocurrency. The whole project will be built from
to introduce students to complex, yet widely used scratch and entirely in C.
data structures and algorithms. Data structures and
algorithms are a means of manipulating and Blockchain is a very big trend, and it not only applies to the
transforming data. They help developers solve software industry, but to many others, such as banking,
problems in a reliable and maintainable way. health, telecommunication, and more. By the end of this big
project, students will have a strong understanding of what
These advanced data structures and algorithms
include: makes the Blockchain technologies so reliable and secure.

Here is a non-exhaustive break down of what this project


covers:

Data structures and algorithms Blockchain


-Advanced trees
-Graphs -Cryptography in the blockchain
-Compression algorithm -The Blockchain data structures
-Pathfinding implementations in C
-Block mining
-From Blockchain to cryptocurrency
Low Level and Algorithms

Project Examples

- Shell v2
- Strace
- Create your own Malloc
- Build a simple HTTP REST API in C
- Mastery of Red - Black Trees
- Execute advanced algorithm design
- Parsing ELF files
- Blockchain Implementation in C
Full-Stack Web Development
Full-stack web development

Holberton’s web stack specialization advances the web development principles and skills introduced in Foundations.
During the specialization, students approach and build various web applications - utilizing the most recent frameworks.

Students will learn advanced skills in front-end, back-end, and React development, mastering frameworks that are in high-
demand throughout the industry.

Whether it's front-end, back-end, React- specific or full-stack engineering, this curriculum prepares students to create,
maintain, and improve web applications and APIs, some of which are used every day.

By following this specialization, students will be well-versed in HTML, CSS, Advanced Javascript, Advanced Python,
ReactJS, Redux, SASS, responsive design, Accessibility, ES6, NodeJS, NoSQL, MySQL advanced, Redis, User
Authentication , and more. The end of each trimester has a web-focused portfolio project culminating the content learned.
Full-stack Web Development

Front-End Back-End React

- Advanced HTML / CSS - Advanced Python - Continued Advancement of


- Developer Tools - Advanced SQLAlchemy HTML / CSS
- SCSS - User Data Protection - Intermediate ES6
- Flexbox - Encryption - TypeScript
- Responsive Design - Authentication - React I
- Accessibility
- Caching - Intro
- Working with Designers
- Unittests / Integration Testing - Props
- Design Implementation
- Redis - React II
- Bootstrap
- Advanced Javascript - I18n - State
- Advanced JQuery - Advanced MySQL - Immutable
- Cookies & Local Storage - NoSQL - Inline-styling
- ES6 - Queuing Systems - React Redux
- Webpack - Intermediate TypeScripting - React Portfolio Project
- Building Portfolio Applications - Building Portfolio Projects
Full-stack Web Development

Project Examples

- Integrate designer specifications


- User authentication system
- Background job/queuing system
- Bootstrap app from designer brief
- React portfolio app
Ready to define
your future?
Start your application now by
following the links below:
Apply now

You might also like