Roughly two years ago, we had a theory that we could teach a person to be a job-ready, full-stack developer in 12 weeks.
SDG has proven that we could, but there is always room for improvement. In other words, changes are coming and this blog is going to cover what you can expect and why...
How did we get here?
Right now, we start with an HTML and CSS-focused study. By doing so, it was an easy entry into the world of the web to build up students' confidence and get them used to development.
After React, the curriculum splits. For the next three weeks, half of their time is spent on building their capstone and the other half learning about the back-end. Finally, for the last three weeks, they focus on building a full-stack web app that shows off all the skills they have learned.
The Results Are in!
Overall, the results turned out favorably. The process is working and has produced new talent. This curriculum does train entry-level web developers in 12 weeks.
But... It's not perfect. We have found three main problems:
1. Lack of Focus
Over the course, students learn about two big ideas: development fundamentals and web development. This was by design. The idea was to give a practical perspective as we teach concepts. This split has been causing students to take a little longer to grasp and truly understand the basic building blocks of programming. This delay, though only weeks, has caused students to not be as successful as they could be.
2. Technology Jumps
Another significant leap happens again when the students switch to the back-end during the full-stack part of the course. Going from a single user on a single page with a visual representation of what is going to creating an API that serves many users and stores data is a big stretch of knowledge. This shift in perspective is another point in the curriculum where we’ve found that students get left behind.
3. Capstone Conflict
Currently, we have students build a capstone to test their full-stack skills and abilities. Over the course, we are starting the capstone as soon as the full-stack unit starts. During the full-stack part, students begin to zone out during a lecture and stop doing homework.
This lack of attention exists because students are focusing hard on their capstone. This new pressure of building the final project plus a considerable shift in paradigms causes students to miss out on valuable learning and ideas.
Iterate, Iterate, Iterate!
"The Hacker Way is an approach to building that involves continuous improvement and iteration. Hackers believe that something can always be better, and that nothing is ever complete." — Mark Zuckerberg
At SDG, our mission is to provide quality code education to the Tampa Bay area. As a team, we have several years of instruction behind us; as an academy, we have run the current version of the course for over a year. During that time, we have learned about our community, our product, and how our students flow through the course.
It's time to iterate.
The academics team has reviewed the course and made a few changes.
Get the details...
The core goal of the course is still the same; take students from knowing almost nothing to being a web developer in 12 weeks. The tech stack remains the same; .NET Core, SQL, and React. There is still going to be a capstone to demonstrate, apply, and enforce the concepts learned over the 12 weeks.
The most significant change we are doing is the order of the course. Instead of starting students "off easy" with HTML and CSS in "a glass down" approach, they are working in C# and algorithms from day one. This shift causes ideas to happen one after another instead of all at once.
The Nitty Gritty
|Unit I||Week 1||The basics (expressions, statements, control structure, etc. )|
|Week 2||Deeper basics (OOP, functional programming, algorithms)|
|Week 3||Working with data|
|Unit III||Week 4||Creating APIs and servers|
|Week 5||HTML, CSS and accessibility|
|Week 7||Deeper react|
|Week 8||bringing a full stack application together|
|Unit III||Week 9||Full-stack application practice|
|Week 12||Capstone & Demo Day|
Unit 1: The Basics with C
During this unit, students get instructed on a foundation of computer science, algorithms, and software development. During this time, we will not focus on the web; the focus will be on how to write software in general.
Unit 2: Bringing it Online
This unit is where the transition to the internet happens. During unit ii, the most extended unit, we cover how to create a modern web app, complete with a front end library, semantic HTML, and an API that is containerized and hosted on the cloud.
Unit 3: The Big Picture
This unit centers around practice and application. By the time the students get here, they have seen all the basics of creating a web app, from HTML to SQL. During this unit, students start creating their capstone while we practice more advanced topics during lectures. Lectures are shorter and constructed to provide time for the students to develop their capstone.
Cool, new schedule! But what does it do?
The new pacing of the course keeps students on track and provides a cleaner learning experience. Instead of trying to do everything at once and learning both web and software fundamentals, they are learning one at a time, leveraging prior knowledge to learn new ideas. This pacing allows students to focus and have time to understand the concepts and take the knowledge from a surface level to a deeper understanding.
Fundamentals are what make learning coding in the sprint fashion possible. The fundamentals are what developers consider to be the building blocks of programming. These include ideas such as problem-solving, learning a technical concept and debugging, and the fundamentals of creating an algorithm.
In this new format, we are stripping away the noise of the web development and dedicating two full weeks to learning, practicing, and developing these skills.
Have any thoughts and feels?
This is the most significant change to come to the SDG web course since it's inception created roughly two years ago. SDG is always and should always be an organization built by the community for the community.
__If you have ideas, thoughts, or feels that you want to share, speak up and join the discussion on GitHub.