Teaching, RefactorU, and Functional Programming
Just some random thoughts today.
This week, I’m doing mentoring at a local code school, RefactorU. I really enjoy teaching other people. And, since I’m relatively knowledgable and experienced with programming, I tend to teach that.
RefactorU is a full javascript school, so students learn browser front-end code from jquery to angular, and node.js backend (with a touch of meteor). In just 10 weeks, you can imagine there’s a lot skipped over. Each of the concepts taught in a few hour lecture take many hours to master. But, these students learn enough to execute a final project. The project is, in my opinion, really the first time they start learning code the way we all do, through self-guided practice. So I’m hanging with at the RefactorU class this week helping with their final projects.
Earlier in the semester, I gave a talk on functional javascript programming. It was a bit over their heads at the time. That wasn’t because it used things they had never seen, just that the talk used basic concepts as building blocks rather than explaining the basic concepts. They had just learned about canonical FP shortcuts like map
, filter
, and reduce
.
For many developers, newbies and experienced, getting into functional programming can be daunting and unfamiliar. I very much feel that it is a “better” way to program, restricting classes of bugs, forcing better organization of code, and allowing the freedom of building a model to build your code. But many developers get originally taught to program in a single model (object-oriented programming) and that the model can never change. Or worse, they aren’t taught a single model.
So this gets me thinking that perhaps I should look into teaching FP to junior developers who are coming out of these code schools. Many people still teach using FP. But with the rise of 10-week code schools producing super-junior developers, theres probably enough demand from junior developers who want to improve their craft.