Coding Bootcamp Curriculum: How We Keep It Relevant yet Deep

Coding Bootcamp Curriculum: How We Keep It Relevant yet Deep


Hey it’s David Yang, CEO of Fullstack
Academy and today I 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? Fullstack Academy was was one of the first
JavaScript only bootcamps. A bootcamp that taught JavaScript on the front-end where
people are seeing in the browser, on the server-side what we call the back-end
and actually even on the in the database so why do I teach full-stack JavaScript
I have a longer video that talks about the the various reasons but we have a
quick overview one is that JavaScript’s always been a language that web
developers have to know. They have to know JavaScript because JavaScript is
really the only game in town when it comes to what’s going on in the browser
right so if you want to deploy code that does anything in someone’s browser which
is most web applications these days you have to be doing JavaScript now there’s
been tons of attempts to create transpile to JavaScript
Google has something called Google Closure, Google Java Web Toolkit and
know people have really been trying languages that compile the JavaScript
for years but over time people you know have realized that you always feel like
you’re in a bizarro world if you want to do JavaScript if you want to integrate
with a full component library of the JavaScript world you have to eventually
be right be writing JS and in 2009 and really start taking off around 2012
2013 there was a technology created called NodeJS that really allowed
JavaScript to run it on the server-side as well and it was a really interesting
server-side language because it handled concurrency quite quite well and really
solved the problem that a lot of sites were having now is that how do we add real
time and real time components to our front-end infrastructure and around that
time there’s also a database technology created called MongoDB that had a really
made it very easy to connect from NodeJS to a database you could store JSON
objects you could write queries in JavaScript syntax and even on the the
tool used interactive MongoDB was also mostly using JavaScript syntax so around
2012, 2013 really JavaScript came into its own as what we call like a full-stack language and the idea of a full-stack web developer became became
possible and if you if you want to hear more
check out my video on why Fullstack teaches full-stack JavaScript and really
but 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 right because web development you know we’re not just teaching
software language programming right we’re teaching software programming in
the context of of development on the web right so you have to both learn how to
program and all the things that you need to all the different ecosystems need to
interact with right 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. So you have to
learn more than just JavaScript. You have to learn how JavaScript interacts with all these ecosystems and it’s not you all have to learn one language and and students get
really good at language. One thing I tell students and employers is that test that
our students are very deep in JavaScript because you know they can get deep on
one thing they can get deep in something else. Right if you study a whole bunch of
languages you go to a bootcamp where maybe you’re learning Python and JavaScript
Ruby on Rails, some Java right it’s like you’re be you have a little breadth but
you have very little depth in any of one of them right I just I mean just it’s in
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 with one language in twelve weeks you can
students can go really deep. So you know that was that’s not philosophy around why
we teach javascript and then I would tell you a little bit of other changes
that have happened over the years so when we first started the the immersive
we chose Node.JS which was Express Express.JS which is the tech
server-side javascript framework and we chose Angular and I think Angular
was actually the first popular client-side framework it was in the
second generation of frameworks right there was obviously things before that
things like a prototype dojo but the reason that that England became very
popular is that I think it very much appealed to the people who came from the
Ruby on Rails world right it was it had everything out of the box it made a lot
of all the pieces work together pretty well and it solved most 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 the angular and with Angular 1 and it was actually it was a
pretty good choice a lot of companies hire for Angular 1 a lot of companies
really said you know what we’re gonna 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 point X application do you have people who know
that unfortunately say no now because around 2014, 2015 we switched to React
that was one of our first big changes and it’s definitely those things where I
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 the hard work
to change our curriculum to keep it up to date with with the industry and the
thing that really excited us about changing to react is when we saw the
industry was moving there but – it really is a much smaller and nicer
framework for students to learn right I had the mentality of Angler is like you
get angler is like a foot like a built out Lego kit whereas React is a lot of
small bricks and you can kind of build things creatively right 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 only fits
together one way so we really liked about react it’s it was a bridge for a
lot of JavaScript programs into this more functional way of thinking right a
way to you know and now we have React in functional component React in
component to React and React really kind was that gateway drug to functional
programming for a lot of programmers and I think was the and our students really
liked it because they got to use small components composed well that’s our
first big change and it was painful because we 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 beds here and there until we got something that we really liked in
our curriculum the and I really think the the thing that we saw with with
Angular and React is that the React had a way of blending HTML
CSS and JavaScript that broke a lot of the like tested ideas in software
development so one of the one of those tested ideas is that we should separate
the concerns, right use different technologies to solve different problems
and that that separation oftentimes results in in people thinking I will
have HTML to describe the structure of my documents I’ll have CSS to describe
the style of my documents and JavaScript to describe the interactivity of my
documents and what React said is that and you know that was a nice separation
right because you could give the CSS and HTML to your designers you’ll give
JavaScript to your programmers and have them interact with the server-side using
that JavaScript code. What React said was that you know as we as we build more
complex applications we’re gonna have to rethink what really are the boundaries
between code right because this component that’s doing a lot of server
interactivity it’s interacting with the client it’s changing stop ways of
different things that are happening it’s the boundary is not you know the
person who’s working on this component has to think about all those things to
really be a valid to really kind of create a valid component and so Java so
React really just threw all those things in the same pile and said our components
are gonna be a mixture of HTML, a mixture of JavaScript, and now increasingly a
mixture of of CSS and of the styling capabilities of HTML and so really it
was it was changing from you know let’s think about HTML CSS in JavaScript as
the boundaries to let’s thing about components and how components interact
each other as a boundary and a component is really a amalgamation of HTML CSS and
JavaScript this is the second big change that we made our curriculum was
searching from Mongo to Postgres and you know it wasn’t a necessary change Mongo
is something that is still very fun to use it’s still solves problems in a very
interesting way and it still probably is easier to interact with JavaScript
whereas with Node.JS then Postgres in the sense that the the
impedance is lower right you have a job you have a JavaScript object very easy
to get to JSON very easy to store that JSON into a Mongo you know a Mongo document
store the the reality is that one Postgres added a lot of these Mongo
features so the idea the ability to store JSON blobs the ability to search
inside JSON objects and at the same time it all
brought in all the good SQL features that really most applications are still
using most companies still like are you still the idea of normalizing data
thinking about how data structure and how it interacts and the tools that
SQL gives you versus the tool that Mongo gives you it’s just it’s a good
exercise to to be able to think that way and we decided to switch back to both
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 very valuable tool to know in industry and the final change I would
say is that we’re seeing a lot more CSS and JavaScript frameworks and so we’re
for a long time we use the technology called SASS, SASS was a SASS and SCSS which
was a CSS preprocessor and again this goes back to the idea that there is a
the separating CSS React in HTML now really we’re seeing more the design the
styling being brought into the React components and having JavaScript own that
now whether or not this you know the switch to react I think we’ll I think
we’re starting to see where this idea of having everything as React components
JavaScript owning the entire thing we’re We’re starting to see a few places where that
boundary is causing challenges for development teams but it really has been
something that started 2015 and it just gotten stronger and I think the React
eco-system is something that is you know are there we oftentimes get questions I
do you think about view what about the new angular technologies you know the
new angular one to seven ember.js there’s a whole bunch of virtual DOM
based JavaScript frameworks so React has really just I would say won the fight in
if you’re gonna build a front-end application heavily focused on
interactivity a single page application then really React is it would be very you have to have very good reasons to not choose React in 2019 and finally you know
I wanna talk a little about the context switching of other programming languages
I think we’ve actually tried a a 12-week immersive where we incorporated Ruby on
Rails and JavaScript and I think there’s so a lot of bootcamps out there that
teach Ruby on Rails it was one of the first dominant programming bootcamp
coding languages I and to be honest I came up in the Ruby on Rails world
I love you know I love working out of it before that the years that I did I think
really it’s just the context which is very painful and if you can imagine you
know Ruby and Java are very different languages too if you can imagine the
idea that you’ll spend six weeks six to eight weeks learning Ruby you finally
get comfortable in it and all of a sudden your instructors are saying you
know what now change how you think about a lot of these things as we’re going to
React as we move into JavaScript and it’s it’s a painful transition and I
think often of our students got confused they were just getting comfortable with
one thing to move to something else so I still think it’s worthwhile for
bootcamp grads and bootcamp students to study other 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. Now when I think about what
is a framework how do we why did we make these changes how do we think about
these changes I really I think we almost have two conflicting and well
two orthogonal ideas that are sometimes in conflict and sometimes
really mesh very well and one is that we want to keep in line with industry right
I don’t I am under no illusion that we can push the industry I’m not gonna say
that you know if Fullstack adopts Vue.JS then the industry well 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 cuz I think even I’ve always been excited
about React when students saw it, I think when it was first released but we had to wait to
the industry to get there before we felt comfortable saying okay now let’s teach
our students this technology, right? We don’t want our students going out there
we don’t want to teach technologies just for its own sake we want to teach things
that student will get students will get students jobs the second thing is we
want to be true to good ideas in software and software engineering and in
software and in coding right and so I think when I think about things like
React being more functional being more isolated having nice component-based
architecture and really separating concerns well right 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 and really those are the two things
that we always think about we say should we introduce this new idea to our
technology to our technology stack another thing that’s another thing
students ask is what do we think it’s coming up next and what are the next is
what integrate into our curriculum when I think about that I think the obvious
thing to me right now is Typescript and the reason for Typescript is that well
one just this funny story I sat next to 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 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 I think what Anders
Hejlsberg saw and what he heard from his from Microsoft developer community is
that look we have a hundred thousand five hundred thousand million line
applications written in JavaScript 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 right so Anders Hejlsberg had this idea
of how do I take some of the capabilities of static typing languages
where we can specify that hey this parameter is going to be an int this
parameter integer this parameter is going to be a string and this function
can return this so if you call it you should expect to get this thing how can
I take some of these benefits of static typing and make it work in an ecosystem
that’s already its vibrant developed and large as JavaScript and out of that came
Typescript I think that as companies build increasingly large JavaScript
applications they’re going to have to find tools that help them you know make
sense of it all and Typescript is one of the best tools there’s also Flow but and
in my mind Typescript won and it’s won really across both the startup world
the enterprise world. The next technology that I’m really excited about is GraphQL and I think GraphQL really does something similar is that 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 you 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 in 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 so it’s a technology it’s not 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 solves that problem of our
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, all right
thanks so much if you’re interested of course check out FullstackAcademy.com and
to learn more about how we do things

Leave a Reply

Your email address will not be published. Required fields are marked *