Firehose Project Software Engineering Curriculum
Firehose Project Software Engineering Curriculum
Firehose Project Software Engineering Curriculum
ONLINE SOFTWARE
ENGINEERING PROGRAM
1. OVERVIEW
The Firehose online program prepares you for a career in software engineering
by giving you the technical skills and practical experience to land a software
engineering job and be a high-impact employee from day one.
Readability
The Ruby language was designed with one main principle in mind: developer
happiness. Its a programming language that was designed to be easy to read,
fast to learn, and simple for developers to use to solve complex problems.
The learning curve to master Ruby is less steep in comparison to other
programming languages, and after just a short period, you will be able to
write and execute Ruby programs and solve complex algorithm challenges. In
addition, mastering Ruby first provides you with an ideal springboard to learn
another programming language at an accelerated pace like JavaScript.
Open Source
The open source Ruby community is massive, very active, and welcoming to
people of all skill levels. When your programming craft is backed by an active,
worldwide community, it means you have ample opportunities to find and work
on interesting projects with awesome people.
WHY JAVASCRIPT?
Future Proof
Todays user interfaces depend heavily on JavaScript to create a smooth user
experience. JavaScript skills are an essential software engineering skill for
today and tomorrow. While JavaScript is a powerful and efficient programming
language, its notoriously difficult to learn as a first programming language.
Instead, its perfect for your second language.
Being In-Demand
In-demand software engineers know multiple programming languages; theyre
polyglot programmers. When you have experience with more than one
programming language, you enable yourself to choose the right tool for the job
rather than use the same tool for every job. Having the ability to draw on this
flexibility and experience is exactly what will make you in demand.
REAL PROJECTS
Marketable software engineering experience is gained by building real projects. At Firehose, we
teach you how to become a software engineer through building and launching fully-functional
web applications from day one. This means youll learn Model-View-Controller architecture
by building your own quote generating app, geolocation mapping and automated email
notifications are woven into your Yelp clone to teach you API integration with Google Maps and
Sendgrid, and youll understand payment processing through building a two-sided marketplace.
WORLD-CLASS MENTORS
There is no substitute to learning under the wing of a personal mentor. We accelerate your
learning by matching you with a hand-picked, senior software engineer. Our mentors come
from companies like Shopify, PayPal, BBC, Product Hunt and leading startup accelerators like Y
Combinator and Techstars. Each mentor is an expert in their craft and an experienced educator
who will meet with you in 1-on-1 mentor sessions to support you and challenge you to reach
and surpass your goals.
EXPERT SUPPORT
When youre stuck, you get help. Our team is here to support you and make sure that every
minute you invest counts toward reaching your goals. We give you a structured path and all the
help you need so that youre never held back.
FLEXIBLE CURRICULUM
We designed our curriculum to be flexible. You can access our curriculum around the clock
and schedule your mentorship sessions flexibly around your schedule. We have dedicated staff
available to help and support you and review your code for over 13 hours each day, and our live
office hours brings the Firehose community together in one virtual room every week.
4. CURRICULUM OVERVIEW
1: THE INTRO TO SOFTWARE ENGINEERING
Before you start the Firehose Software Engineering Program, youll need to
complete a 20-hour intro course to learn Ruby and HTML/CSS. During our intro
course, we teach you the fundamentals of the Ruby programming language
(methods, functions, loops, and iterations) and help you build a web page thats
live on the internet. Ready? Start here.
Through the intro course, youll submit programming solutions and receive
consistent code reviews by one of our mentors.
TOPIC 1: RUBY
You will begin by learning the fundamentals of Ruby including variables,
iterations, loops, conditionals, arrays, hashes, and data structures then
move on to object-oriented programming and classical inheritance. Through
the course, youll learn how to write complex logic with Ruby and incorporate
it directly into web applications.
Youll learn how the various components of the web application fit together and
interact with each other, including ActiveRecord, ActionController, and templating
views.
TOPIC 3: JAVASCRIPT
You will build dynamic web applications using industry-standard tools thatll allow
you to rapidly add dynamic content and build a fluid user interface. Youll begin with
jQuery and implement a drag-and-drop user interface into a two-sided marketplace
application. Next, youll learn advanced JavaScript features, like callbacks and
performing ajax HTTP requests within a web browser.
Together with your agile team, you will build a chess game inside of a Rails application,
integrate advanced logic and algorithms, and gain the crucial agile team working
experience to become a capable and high-impact developer.
Your advanced programming skills will lay the critical foundation for your software
engineering career, give you rigorous preparation for any technical interview, and set
you up to build an advanced web application in your agile team project.
Finally, you will learn how to use the Rails asset pipeline and switch from regular CSS
to SASS - a supercharged version of CSS.
You will work with branches, merge code, and resolve merge conflicts. Youll also learn
how developers propose codebase changes through pull requests and run their test
suite automatically.