I had a good experience in the class. I was able to learn the material without falling behind, feeling like i was drinking from a firehose, or feeling like each additional word was just a drop of water on a saturated sponge. There were definitely people who feel more comfortable with the material right now than I do, but I thought I would like to tell you things in my background that I believe helped me be successful in the class.
Unlike a college institution, the BNR does not enforce pre-requisites. As such it is your responsibility to assess whether you have the tools and knowledge necessary to get what you need out of the class.
Rails stores its data in a Database: Know a relational database
Do I mean be a DBA? Be able to deploy Oracle with both eyes closed? No, I don’t mean that. I think you should be able to do a MySQL or PostgreSQL database set up ( you could probably just use a tutorial for either product ).
- Basic DB concepts
- What’s a relational database?
- What’s a typical SQL query string?
- What’s a primary key?
- Basic DB skills
- Run the command line to open a session
- Create a database
- Add / Delete / Describe a table
- ( I didn’t have ) Knowledge about joins. This did not inhibit me, but having understanding of this too would have had me completely in the know.
- Basic familiarity of DB use
- Be able to run a SQL query on basic select parameters, be able to order by a criteria
Rails uses a web front end, know CGI / WebUI programming / HTTP issues about state
- HTTP is a stateless protocol
- Know what that means
- Know techniques for preserving parameters between script reloads
- Know how to write a basic form in HTML or Perl or PHP
- Know how to pass a parameter in a ‘hidden’ form field
- Know how passing form data in this format behaves when using a GET operation versus a POST operation
- Experience writing CGI in either Perl or PHP will be hugley advantageous
If you’re on a Mac, Textmate is the editor to use
Some time playing with Textmate, how it tries to help you, how to use the bundle editor, maybe watching the screencasts is advised. Again, coming in with no experience is no loss, but if you have it you can r0x0r some s0x0rz.
If you’re on a PC, uhm. Sorry. I don’t have any knowledege about that.
Rails tries to use New Web Technology
- Know CSS
- Know a basic, modern, non Front Page, HTML file.
Rails is written using Ruby: know something about Ruby
- Is object-oriented, you should understand object orientation
- How would you define it?
- What’s the difference between procedural programming and OO, why did OO evolve
- Be able to describe the theory of a Class, Subclassing, an Ancestor class
- Has a very interesting syntax, know a little bit about Ruby syntax
- You needn’t be a guru, you’ll be writing Rails, which uses a fairly limited subset of the Ruby lexicon
- Conversely, if you know a lot about Ruby you may be able to squeeze out new arrangements, you may be able to build more terse algorithms.
- Data types
- Know the basic data types: Hash, Array, and String
- Be able to define you own data type ( == class )
If you know this, you should be able to breeze through the first day. You’ll be introduced to some Rails concepts, but they are mostly slight nuances of the above.
End Day 1 and beginning Day 2 will be your first solid Rails lessons and Day 3 will challenge you to incorporate advanced-core capabilities onto the core-capabilities you learned on Day 2.
BNR Classes are fun, it’s the hardest computer training course you’ll love busting your ass at:
- Bring hiking shoes, there’s a daily walk after lunch ( weather permitting )
- Bring business cards or have your .vcf file ready to go: you’re going to make friends and you’re going to want to give them your cards
- Bring some wind-down material: Settlers of Catan was popular, the book you’re reading, some DVDs. Sometimes you may want to get away from the hub-bub and / or you may need something to help move you from ‘twitch mode’ to being able to sleep.
- Check the weather. Who would have guessed that Atlanta would have been as cold as Kansas?
- Be ready to work. Work as hard as you can to get a real understanding. Do the exercises, work to improve them, try to implement them again on your own, with slight modifications.
- You may want to take additional time off to practice whet you’ve learned and / or to re-calibrate to “the real world”
- A small umbrella might be handy, weather in the Gulf / South is unpredictable