I recently had a discussion with Treehouse support about adding a Sinatra course. This was their response.

We have not yet received a single suggestion for Sinatra from anyone else. The content we add is directly associated with the current developer and designer job markets. You can bet that we would cover Sinatra if there were a massive desire for it within the job market.

Makes sense no? Well to me no, it does not, and here’s why. We don’t have a clue about the current job market in this industry, nor should we be expected to. We’re photographers, painters, lawyers and baristas not interactive engineers. That’s why we’re here. To learn. But how can we learn when we’re fed the end result of what the industry wants rather then brought along a smooth road to get there? The industry wants Ruby on Rails devs. Okay cool. Great. Let’s learn Ruby on Rails.

But holy crap. Have you taken a Rails course if all you know is HTML and CSS? Impossible. Unnecessary. Abrupt. Bloated. Unhelpful. If you really want someone to kick butt at something you have to bring them along slowly and in a sensible manner. Not force feed them the complex final result.

I took Sinatra on my own time, at additional expense, through my own research and the advice of some Ruby devs that I greatly admire. It’s simple, it’s a smooth transition from Ruby, it meets many of my everyday use cases coming from smaller CMS’s and static sites. Use Sinatra and then move into Rails if you must, but for your own sake don’t start there. The same goes for Sass or Haml or any other language preprocessor or library. You’ve got to understand the language before you go crazy downloading add-ons you don’t know what the heck they’re doing. If you’re just in this for a good time then by all means fool around, but if you really want to learn and make an enjoyable, successful, advancing career in this stuff then please do yourself a favor and find a way to learn slowly and thoroughly.

Build real projects from your own head encountering real problems, errors and issues and all over time. Lots of time.

What do you think? Am I just bad at riding the learning curve?

Learning, especially in technology, is about learning how to learn. What do you do when you encounter issues, things you weren’t expecting, things you don’t know how to handle? If all you ever grasp is how to duplicate.. even if it’s perfectly.. you will be fantastically frustrated with the real world and its complex problems.

The process of learning to learn is a difficult one, it takes time, it is a process of doing and branching, taking what you know and intentionally stretching that into realms and projects you don’t know. This cycle is destroyed when the intentional process of learning to learn is replaced with simple goals in complex languages where all we can hope to learn is how to duplicate. You don’t really learn by duplication, you learn by experimentation.