Learning To Code

Here’s Where to Start Flatiron School Prework

If you want to build a ship, don’t drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea. – Antoine de Saint-Exupery

Flatiron School / 4 December 2012

One of the challenges in learning how to code is that you probably don’t even know what you’re supposed to learn. We thought we’d help out by sharing the prework syllabus our students complete before beginning their Flatiron semester.

Screen Shot 2015-08-05 at 1.10.18 PM

When creating this prework, The Flatiron School had four goals in mind:

 1. Full Stack

To present the full-stack of technologies required to build a web app from the ground up. We don’t care if you use ERB or HAML, the web is built on HTML, and everyone should learn it. Whether working with NoSQL or RDBMS, understanding the fundamentals of schema design and SQL is crucial. Students shouldn’t shy away from depth. How can you be a web developer without a proficiency in these skills?

2. Linear Progression

The material is presented in order, going from computer / web basics, to data theory, to markup, to styling, to programming, and then to version control. At that point, you’ve become familiar enough with general syntax and your computer to start learning to program. You learn the basics of code through Ruby and Javascript and then finally move to Rails, which builds upon the rest. Thus you start at the lowest level, the literal HTML the browser renders, and progress up through levels of abstraction until you finally get to the kitchen sink that is the Rails framework. As a beginner, don’t try to learn Rails without knowing basic HTML/CSS, Ruby, and Javascript. It’s a disservice to your education.

3. Curated Resources

There is such a plethora of amazing content on learning to code. We liked the consistency of going to a few sources that all shared common interfaces and learning patterns, like videos and interactive portions. So this isn’t a complete list of all the resources, but more a curated list of what we think works well together (with lots of feedback from alumni). We would love it if you submitted a Github issue with more materials you’ve enjoyed.

4. Language Agnosticism

In the end, programming is about abstractions and expressions. The mechanics of code are universal and exist in all modern languages — Python, Ruby, and Javascript. We teach Ruby because we love it. Thinking your language choice, especially as a beginner, matters, is like thinking that you can only write poetry in English and not in Spanish. Obviously the beauty of poetry is in rhyme and meter, in metaphor and simile, in cadence and rhythm — not in the king’s English. Why should code be any different? At Flatiron, you’re learning how to think, how to break problems down, how to express yourself, how to abstract ideas, and how to work together. We just learn that through Ruby.

Why Share It?

You might be wondering why we would share our curriculum if we are in the education business. First, we honestly do not think that going through this content alone will make anyone a web developer. That’s like saying knowing how to hammer a nail means knowing how to build a house. Sure, maybe you’ve got the gestures and mechanics down, but you don’t know the first thing about building. There is just so much more to being a developer than the syntax of how to define a method or iterate over an array. We don’t focus on content at the Flatiron School. We focus on learning to love code.

Screen Shot 2015-08-05 at 1.18.41 PM

Previous Post Dynamic Method Definition Next Post