Hey it's David Yang, CEO of Fullstack Academy and today I’d really like to answer a question that I hear a lot from students is how does our curriculum change and how do we think about curriculum at Fullstack?
Software Programming in the Context of Development on the Web
And really pedagogically it's just—you know pedagogical, is when you think about teaching, when you think about student learning—it's just very nice to teach one language. Because web development, you know we're not just teaching software language programming; we're teaching software programming in the context of development on the web.
Right, so you have to both learn how to program and all the different ecosystems you need to interact with; how do you connect to databases, how to generate HTML, how the HTML gets sent to the browser, how the browser interacts, the Document Object Model, how to move things around on the client-side.
any kind of budgeting of time, it's just impossible to create that depth across all those stacks.
And so I tell employers, you know, test for depth and then trust for breadth, right? And with one language in twelve weeks, students can go really deep.
Curriculum Change 1: Angular to React
The reason that Angular became very popular is that ... it very much appealed to the people who came from the Ruby on Rails world.”
It was in the second generation of frameworks right, there was obviously things before that, things like a Prototype, Dojo but the reason that Angular became very popular is that I think it very much appealed to the people who came from the Ruby on Rails world. It had everything out of the box, it made a lot of… all the pieces work together, pretty well, and it solved most of the problems people had with front-end development. Really, “How do I connect the data that I have with updating things that our clients are saying?”
So we started with Angular 1, and with Angular 1 it was actually, it was a pretty good choice, a lot of companies hired for Angular 1, a lot of companies really said, “You know what? We're going to develop our applications on the Angular technology stack.”
And even today we still have companies that come to us and say, “We have a big Angular 1.X application, do you have people?” Unfortunately we say ‘no’ now, because around 2014, 2015 we switched to React.
This was one of our first big changes, and it's definitely those things, where it was the first time I understood the inertia of curriculum. And I think that one of the great things about bootcamps is that we put in a lot of hard work to change our curriculum to keep it up to date with the industry.
And, the thing that really excited us about changing to React is one, we saw the
industry was moving there. But two, it really is a much smaller and nicer framework for students to learn.
“Angular is like a built-out Lego kit, whereas React is a lot of small bricks”
I had the mentality of Angular is like a built-out Lego kit, whereas React is a lot of small bricks and you can kind of build things creatively and I think it's much better as you're learning to get small components and you can come to compose rather than a very complex thing you have to learn together that only fits together one way. So, we really liked that about React.
That was our first big change, and it was painful because we had to rewrite the entire curriculum. Me and a couple of our instructors spent a Christmas holiday really diving deep into React, working with people in industry, building out little test bits here and there, until we got something that we really liked in our curriculum.
What React said was that, as we as we build more complex applications, we're going to have to rethink what really are the boundaries between code, because this component that's doing a lot of server interactivity, it's interacting with the client, it's changing style based on the ways different things that are happening. The person who's working on this component has to think about all those things to really kind of create a valid component.
Curriculum Change 2: Mongo to Postgres
The second big change that we made in our curriculum was switching from Mongo to Postgres.
The reality is that, one, Postgres added a lot of these Mongo features so the ability to store JSON blobs, the ability to search inside JSON objects, and at the same time it brought in all the good SQL features that really most applications are still using, and most companies still like them. The idea of normalizing data, thinking about how data is structured, and how it interacts and the tools that SQL gives you versus the tools that Mongo gives you – it's just... it's a good exercise to be able to think that way. And we decided to switch back both to really expose students to that and then and just feedback that we were getting from our employers and our alumni had that you know Postgres and SQL is still a very valuable tool to know in industry.
“You have to have very good reasons to not choose React in 2019.”
So React has really just—I would say—won the fight if you're gonna build a front-end application heavily focused on interactivity, a single page application, then really React is the best solution. You have to have very good reasons to not choose React in 2019.
Programming Languages Context Switching
And I think there's a lot of bootcamps out there that teach Ruby on Rails. It was one of the first dominant programming bootcamp coding languages. And to be honest I came up in the Ruby on Rails world, I love working out of it for the years that I did.
It's just the context switching which is very painful. And if you can imagine, Ruby and Java are very different languages.
I just don't think it's great to do that in an intensive immersive experience where you're also learning a lot of ecosystem technology.
Curriculum Framework: Keep Inline with Industry
Now when I think about, what is a framework, how do we, and why did we make these changes, and how do we think about these changes. I think we almost have two conflicting, and well, two orthogonal ideas that are sometimes in conflict and sometimes mesh very well.
One is that we want to keep in line with industry. I am under no illusion that we can push the industry I'm not going to say that you know if Fullstack adopts Vue.JS, then the industry will. I think we're not there, yet, but I definitely think we have to follow where the industry is going and when the industry really kind of consolidated around React, it was very exciting for us to do that because I think, I've always been excited about React when students saw it, when it was first released.
“We don't want to teach technologies just for its own sake, we want to teach things that will get students jobs.”
But we had to wait for the industry to get there before we felt comfortable saying okay now let's teach our students this technology, right? We don't want to teach technologies just for its own sake, we want to teach things that will get students jobs.
Curriculum Framework: True to Good Ideas in Coding
The second thing is we want to be true to good ideas in software and software engineering, and in coding. So when I think about things like React being more functional, being more
isolated, having a nice component-based architecture and really separating concerns, well, separating concerns by components. It's always appealing to us when we can make choices where we get to go down both roads right where the industry is there and also where we give students smaller and more composable building blocks where they can use our creativity to combine it and connect them.
Really those are the two things that we always think about when we say should we introduce this new idea to our technology, to our technology stack.
What is Coming Up Next? TypeScript
Another thing students ask is: “What do we think is coming up next and what are the next thing to integrate into our curriculum?”
When I think about that, I think the obvious thing to me right now is Typescript. This is just a funny story, I interned at Microsoft back in 2000 and I sat down the hall from this gentleman named Anders Hejlsberg.
And what was interesting was that people told me, you know, you're in the presence of a legend they said, “When you walk down the hall, if you can peek in and see what he's working on, he's working on the future.” So even from a very young age I've always been very impressed by this gentleman named Anders Hejlsberg at Microsoft who happens to also be the author of Typescript.
We just can't continue to build and scale these applications without more ways to structure and connect the thinking around the different parts of the code. So Anders Hejlsberg had this idea of, “How do I take some of the capabilities of static typing languages where we can specify that this parameter is going to be a parameter integer, this parameter is going to be a string and this function can return this?”
“Typescript has won, and it's won really across both the startup world the enterprise world.”
What is Coming Up Next? GraphQL
The next technology that I'm really excited about is GraphQL and I think GraphQL really does
something similar. It says you know you have technology on the front-end technology in the back-end and they have to communicate and that communication you know it always starts
out very nice, but over time it can get quite complicated. All these little edge cases of you know
what I need you to send back this piece of information or I need to send you this piece of information and you get all these special edge cases.
And what GraphQL does is it says, “Let us create a structured way for the front-end and the back-end to communicate and also for the back-end to send back data that the front-end in the way the front-end is really looking for it.” The adoption on GraphQL is a little bit more challenging than Typescript so we're not seeing it as quickly adopted by enterprise as Typescript, but it's something that I think really helps students.
It meets our criteria of things that companies are adopting and also things that help students think in a different way and in a better way of software engineering.
All right, so that's how Fullstack thinks about curriculum, thanks so much. If you're interested, of course, check out FullstackAcademy.com to learn more about how we do things.