I create this syllabus as a draft guide on learning full-stack software development. Basically, I combined two curriculums, one from Codecademy and the other from Lambda School.
If you’d like to see the condensed version that I refined to make it easier to learn the best from both curriculums, click here for the Condensed Syllabus for a Full-Stack Software Engineer (or Developer).
Introduction to Software Engineering
Set up your developer environment: Learn about the field of web development and the tools developers use to create websites
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
Web Development Fundamentals: Be introduced to the field of front-end web development and create your first web page on the internet
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
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 off of Codecademy
Web Apps: Be introduced to web applications and learn about single page applications (SPAs) and how they are different from static websites.
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
React and Redux Portfolio Project: Bring together what you have learned in the previous lessons and build a project off of Codecademy
Basics of Back-End Development: Start learning about back-end development and programming servers
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
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
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
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
Next Steps in Your Full-Stack Engineer Journey: Take the final steps in the Career Path.
Web Application Development: React, Redux, React Router, HTTP/Ajax, and Functional Programming Techniques
Advanced Web Development: Advanced React, State Management, and Web Applications
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
Computer Science: Intro to Python and Object-oriented Programming (OOP), Algorithms, Data Structures, Graphs, Hash Tables, and Coding Interview Tips
Labs: In-house apprenticeship by building a real-world project in a small team
Job Search: Continuing education and ongoing Job Search Support