GA Programming Bootcamp: Week 1

GA OrientationA tiring week – in a good way. Class + homework + non-GA obligations + adjusting to SF after 3 months in Shanghai = very deep sleep :)

For background read this.

Some quick observations:

  • We’re going to cover a lot of ground in 12 weeks. By day 4 we were creating Classes and methods and writing tests
  • There are many parallels between learning to program and learning a new language. It requires lots of focus and real-world practice. Both are like punctuated equilibrium – no progress for hours, then a huge breakthrough. Or weeks of semi-grasping something, then one day you wake up and you really get it
  • The instructors have been good – patient, knowledgeable, and fun
  • Like prior education experiences, a big chunk of the value is your fellow students. I’m impressed with the diversity of backgrounds, learning styles, personalities, and the shared drive to become fulltime programmers. Not much slacking here :)
  • More than ever, I’m a believer in the entrepreneur’s opportunity to revolutionize education. Programming is an obvious area given the structural scarcity of good programmers, but believe this can go much deeper. Contrary to what many much smarter people think, I believe a BIG chunk of startup entrepreneurship can be taught

Topics covered this week:

  • Setting up our environment. Here’s a partial list of great tools:
    • Sublime Text 2 (seems to be a universal favorite text editor among programmers)
    • Github Gist (sharing code snippets, using Markdown)
    • Pry (command line Ruby interpreter)
    • Homebrew (Ruby package installer)
    • ShortcutFoo (my favorite website for practicing keyboard shortcuts…yes I’m quite nerdy)
  • Review of pre-work (a mix of CodeAcademy, CodeSchool, ebooks, articles, videos)
  • Getting to know each other (instructors, students)
  • Entire overview of Ruby (starting with literals, and going until creating Classes)
  • Beginnings of testing and TDD
  • Working with Terminal/Bash
  • Basic programming principles (DRY = Don’t Repeat Yourself), commenting code, keyboard shortcuts (my fave :)

If you want to learn Ruby, I HIGHLY encourage you to read the Bastard’s Book of Ruby. Great examples, clear language

Click here to read about the daily habits that I track and why.