Here’s the condensed version of a full-stack software engineer syllabus. If you’d like the full version, please click here.
Portfolio projects are highlighted in blue / black.
1. Introduction
Introduction to Software Engineering
Set up your developer environment: Learn about the field of web development and the tools developers use to create websites
2. JavaScript
JavaScript Syntax, Part I: Introduce yourself to JavaScript and learn the basics of writing JavaScript programs
JavaScript Syntax, Part II: Discover more JavaScript techniques and features such as arrays, looping, and objects
Git and GitHub, Part I: Learn how to use the Git version control system to keep track of changes and document your work. Learn markdown and publish your first content
JavaScript Syntax Portfolio Project: Build a Node.js console app that generates random messages each time a user runs the program and version your project with Git/GitHub
3. Front-End Web Development
Web Development Fundamentals: Be introduced to the field of front-end web development and create your first web page on the internet
Web Foundations: HTML, CSS, Git, JavaScript, and UI Principles
Bringing Your Site Online: Learn about different methods for hosting your site, like GitHub pages and how to use a custom domain name
Improved Styling with CSS: Dig deeper into CSS and improve your ability to layout and style websites
Building Interactive Websites with JavaScript: Understand how JavaScript is used to add interactive experiences to a website
Making a Website Responsive: Learn how to create websites that can be viewed on a variety of devices and use different layers and positioning
Making a Website Accessible: Refactor your website to follow the best accessibility (a11y) practices.
HTML, CSS, and JS Portfolio Project: Bring together what you’ve learned in the previous lessons and build a project
Advanced Web Development: Advanced React, State Management, and Web Applications
4. Advanced JavaScript
JavaScript Syntax, Part III: Understand intermediate JavaScript concepts, such as classes, modules, and error handling
Test Driven Development With JavaScript: Be introduced to the fundamentals of Test Driven Development (TDD)
Async JavaScript and HTTP Requests: Learn about APIs (Application Programming Interfaces). Working with APIs will help to work with data stored on remote servers
5. Web Applications
Web Apps: Be introduced to web applications and learn about single page applications (SPAs) and how they are different from static websites.
React, Part I: Be introduced to the popular JavaScript library, React.
React, Part II: Dive further into React and learn about props, state, hooks as well as testing with Jest and Enzyme.
Redux: Learn Redux, the library most commonly used with React to manage application state
Git and GitHub, Part II: Learn how to use Git and GitHub to collaborate efficiently with developers
Web Application Development: React, Redux, React Router, HTTP/Ajax, and Functional Programming Techniques
React and Redux Portfolio Project: Bring together what you have learned in the previous lessons and build a project
6. Back-End Development
Basics of Back-End Development: Start learning about back-end development and programming servers
Back End Development: Choose between Java and Node
Java – Java Fundamentals, Web APIs with Spring, Testing with JUnit
Node – Node.js Web APIs, Data Persistence, Authentication and Testing
Build a Back-End with Node/Express.js: Learn about the popular back-end environment, Node.js and how to create back-end servers and APIs in JavaScript using the popular Express.js
Back-End and Feature Testing: Learn about TDD techniques for full-stack web applications
SQL for Back-End Development: Learn how to create tables, create, retrieve, and update data in SQL databases, and build a data-intensive web app
PostgreSQL Database: Much of the internet is the flow of information. Learn how databases store data so that it can be displayed on the web using PostgreSQL
Designing Relational Databases: Learn how to design relational databases that you can then implement in PostgreSQL
Advanced PostgreSQL: Learn about database performance and techniques for efficiently accessing data and maintaining optimal performance
Back-End Portfolio Project: Build an e-commerce REST API using Node/Express and PostgreSQL
7. Full-Stack: Connecting Front-End and Back-End
Connecting Front-End to Back-End: Learn about the different ways to combine your front-end and back-end systems to create a cohesive full-stack application
Adding a PostgreSQL Database: Learn PostgreSQL to connect JS and SQL in web apps, and build your first fully-integrated app back-end
Security, Authentication, and Authorization: Learn how to make a web application secure
Advanced Concepts in TDD: Learn advanced Test Driven Development (TDD) concepts that will help to test your web application as a whole
Full-Stack Portfolio Project: Expand the e-commerce REST API with a React client app, creating a PERN (Postgres, Express, React, Node) full-stack e-commerce experience
8. Computer Science Concepts: Data Structures and Algorithms
Computer Science: Intro to Python and Object-oriented Programming (OOP), Algorithms, Data Structures, Graphs, Hash Tables, and Coding Interview Tips
Linear Data Structures: Begin interview preparation by learning the fundamentals of linear data structures
Complex Data Structures: Continue interview preparation by learning advanced applications of data structures
Algorithms: Continue interview preparation by learning the fundamentals of algorithms
Search & Graph Search Algorithms: Continue interview preparation by learning the fundamentals of search algorithms
9. Job Search: Resume, Interviewing, and Refining Portfolio Projects
Interview Skills: Review some key technical interview topics as well as soft skills which employers are looking for in potential candidates
Final Portfolio Project: Build a PERN app of your choosing and deploy it to Heroku
Labs: In-house apprenticeship by building a real-world project in a small team
Job Search: Continuing education and ongoing Job Search Support
Next Steps in Your Full-Stack Engineer Journey: Take the final steps in the Career Path.
Thank you!!1