Code in the real world is more than just data-in/data-out that you typically see in short coding tutorials. During the development of larger software projects, there will be a number of paradigms for organizing complex code you will be expected to know, including functional and object-oriented programming.
Regardless of what framework or backend stack your employer uses for your codebase, almost all web applications have a frontend that can be viewed by the user in a browser. HTML and CSS are the basis of all visible content on the web. We emphasize a strong foundation in these technologies to ensure that your project is functional, accessible, and visually appealing.
The days of working alone are over. Having experience working on an engineering team is crucial for job interviews. All code needs to be stored somewhere, so “source control” is the main way that engineers can work collaboratively on code. There were many “source controls” in the past, but over the last ten years, almost all companies have switched to using git.
Recursion is an advanced concept that is easy to skip over - but any CS grad will have a solid understanding of this topic. It actually appears in the real world frequently, especially when dealing with file systems. Recursion is not simply a technique; it is an entirely different approach to thinking which is common in Functional paradigm code. It is also used in the ideal solutions to many Leetcode-style technical interview problems.
Computer Science graduates often have a lot of experience with these topics, and because of that technical interviews test heavily for knowledge of data structures and complexity. Data these days is huge, so it’s not enough for things to just work - you also need to know how to make things work efficiently.
Writing software in a group is different than writing software on your own. Agile is a set of industry-standard processes and practices used in professional environments to facilitate team efficiency. Experience in Agile practices (such as effective Pair Programming and Test Driven Development) is highly sought by hiring managers and recruiters to find engineers ready to be productive on their first day.
Databases can handle orders of magnitude more data than Excel spreadsheets. SQL (pronounced "sequel") is one of the most common languages currently used in modern software solutions to interact with databases, and is an in-demand skill at any company that deals with large amounts of data.
Frameworks and languages come and go, but HTTP is the basis of all communication on the internet. In addition to teaching students Express (the most common HTTP server framework for Node), we instill a fundamental understanding of HTTP itself to guarantee that they can navigate the constantly evolving world of web development for years to come.
Developing code in large organizations requires good communication not just between people, but between different pieces of code. APIs are the connection between large code components and learning how to develop an effective API is critical in any organization where the code you use is consumed by other teams. We teach common architectural guidelines (such as REST) for how to create a professional-quality API.
After gaining a solid foundation in HTML and CSS fundamentals and Functional/Object Oriented programming paradigms, there are many frontend frameworks to choose from. We teach a framework called React, which is the most common frontend framework currently in demand in both the Japanese market and abroad. We heavily emphasize the skills that will allow you to quickly pick up any front-end framework used at your future workplace, whether it is React, Vue, Angular, or even an in-house framework specific to your company.
Writing code and building a product is only part of the product lifecycle. How does something you created on your computer get published to the rest of the world? How do you release updates? How can you be confident that the product will work after it's released? Knowledge of Continuous Integration/Continuous Delivery (CI/CD) and related workflows is a critical skill for modern development pipelines.
Engineers who only know one programming language are very common, so you can set yourself apart by knowing multiple languages. During “Polyglottal” week, you will learn a second programming language (of your choosing) and build a project for your portfolio in that language. Most companies use at least two languages (sometimes more). Based on what type of company you want to work for, we will guide you to choose the best second language for your resume.
The Senior Project phase will give you real experience working at your own mini-startup for a few weeks. Your team will have to collaborate from project inception all the way to delivery, allowing you to encounter the realities of working on an engineering team. You can choose any tech stack for this project to build your portfolio, and get critical first hand experience with testing, documentation, and security issues. When interviewers ask, “What is a technical problem you’ve encountered and how did you solve it?” this project will be the source of your answers.
Become a full-stack software engineer in 3-months with lifetime career support.