I just completed UC Berkeley’s Software as a Service class (via edX.com). I had a great experience and highly recommend it.

The class is a tour of all the tools Ruby developers use to create and deploy websites. It assumes you already know how to program at a fairly high level but not necessarily in Ruby. I have no plans to stop writing Perl code (which I love). I just wanted to broaden my horizons, have some fun, and increase my luck surface area.

Hands up, who uses what they learned from university classes in their current job? No one right? While online education is clearly the future I was initially sceptical that a traditional, old school (hah) institution like Berkeley was innovative enough to do a good job.

I underestimated them. This class was refreshingly current and practical. I got an introduction to a tsunami of tools. I learned to use Ruby, Rails, Rake, Heroku, ActiveRecord, HAML, SASS, RSpec, Cucumber, and Capybara. They also explained REST, DRY, agile iterative development processes, and other stuff I can’t remember right now.

Another thing they got right is we were able to submit our homework over and over again until we got all the answers. And the ability to play lectures at double speed is every bit as brilliant as I imagined it would be. I wish I had this super power on YouTube. I was also happy to see the course supplied students with an Ubuntu powered virtual machine preconfigured with all the necessary software.

I only had a few minor complaints. My biggest is that the course didn’t spend any time on sysadmin topics like rbenv and bundler. I purposely avoided using the virtual machine so that I would learn that stuff. Knowing how to use your tools and configure your environment is a crucial part of being a good programmer. This can perhaps be forgiven though since it was only a 5 week class and we raced through every topic like our pants were on fire.

Altogether it was a fun experience at a great price (free) and I recommend it. My next class is Chinese History.

                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                                                                                         
                                                                    ::::::::;;;;;;;;;::::::::::::::::        `::::::::::::::::::::::::   
                                                                    ::::::::;''''''''::::::::::::::::        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::::        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::::        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::;:        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::;:        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::;:        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::::        `:::::::::::::::::::::::;   
                                                                    ::::::::;''''''''::::::::::::::::        `:::::::::::::::::::::::;   
                                                                    ::::::::;'''''''':::::::::::`````         `````:::::::::::;:::::::   
                                                                          ::::::::;'':::::::::::.                 ,:::::::::::::.        
                                                                          :::::::::;'::::::::::::                `:::;::::::::;:         
                                                                          ::::::::::':::::::::::::               ;::::::::::::;          
                                                                          ::::::::::,::::::::::::::             :::::::::::;::           
                       `,,::,.                                            :::::::::::`:;::::::::;:;.           ,:;:::::::::::`           
                   ,;;;;;;;;;;;;':                    .::::::::.          ::::::::::: ,:::::::::::::          `:::::::::::::.            
                 ;;;;;;;;;;;;;;;;;;;`             `:::::::::::::::.       :::::::::::  :::::::::::::;         :;:::::::::::,             
               ';;;;;;;;;;;;;;;;;;;;;;`         `:::::::::::::::::::.     :::::::::::   :;::::::::::::       :::::::::::::;              
             :;;;;;;;;;;;;;;;;;;;;;;;;;;       :::::::::::::::::::::::    :::::::::::    :::::::::::::.     ::::::::::::::               
            ';;;;;;;;;;;;;;;;;;;;;;;;;;;;`   `:::::::::::::::::::::::::`  :::::::::::    `::::::::::::;    `:::::::::::::                
           ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;, ::::::::::::::::::::::::::::. :::::::::::     ,;;::::::::::;   ;:;:::::::::;.                
          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;':::::::::::::::::::::::::::::`:::::::::::      ;;;::::::::::: ::::::::::::::                 
         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++'::::::::::::::::::::::::::::::::::::::::       ;:::::::::;;:;:;:;:::::::::                  
        ';;;;;;;;;;;;;;;';'';;;;;;;;;;;;;'+++;:::::::::::::::::::::::::::::::::::::::        ::::::::::::::::::::::::;                   
       ;;;;;;;;;;;;;;;`       `;;;;;;;;;'+++++:::::::::::::::::::::::::::::::::::::::        .:::::::::::::::::::::::                    
      `;;;;;;;;;;;;;             :;;;;;;+++++++:::::::::.       `::::::::::::::::::::         :::::::::::::::::::;::`                    
      ;;;;;;;;;;;;.                ;;;;++++++++;::::::             ,:::::::::::::::::          ::::::::::::::::::::,                     
     ,;;;;;;;;;;;                   ;''+++++++++::::.                ::::::::::::::::           :::::::::::::::::::                      
     ;;;;;;;;;;;                     ;++++++++++:::`                  :::::::::::::::           `:::::::::::::::::                       
    `;;;;;;;;;;                       +++++++++++:`                    ::::::::::::::            .;::::::::::::::                        
    ;;;;;;;;;;:                      ::++++++++++.                      :::::::::::::             ;:::::::::::::`                        
    ;;;;;;;;;;                       ::'+++++++++`                      ,::::::::::::            `;:::::::::::::;                        
   `;;;;;;;;;,                      `:::++++++++;:                       ::::::::::::            :;:::::::::::::::                       
   :;;;;;;;;;                       ,:::++++++++;'                       ,:::::::::::           :::::::::::::::::::                      
   ';;;;;;;;;```````````````````````;;:;;++++++';;                        :::::::::::          ::::::::::::::::::::.                     
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;                        :::::::::::         ,::::::::::::::::::;::                     
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;                        :::::::::::        `::::::::::::::::::::::;                    
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;`                       ,::::::::::        :;;:::::::::::::::::::::;                   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;`                       ,::::::::::       ;::::::::::::::::::::::::;,                  
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;`                       ,::::::::::      :::::::::::::: ;;;;:::::::::.                 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;                        :::::::::::     ,::::::::::::;   ;:::::::::::;                 
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;                        :::::::::::    `:::::::::;:::    `:;:::::::::::                
   ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;'                        :::::::::::    :::::::::::::`     ,:::::::::::::               
   ;;;;;;;;;;                       :::::::::::.                         `:::::::::::   ::;::::::::::,       :::::::::::;:,              
   ,;;;;;;;;;.                      .:::::::::::                         ::::::::::::  ::::::::::::;;         :;:::::::::::.             
    ;;;;;;;;;'                       :::::::::::`                       `:::::::::::: ,:::::::::::::           :::::::::::::             
    ;;;;;;;;;;`                      ::::::::::::                       :::::::::::::`:::::::::::::            .:::::::::::::            
    :;;;;;;;;;;                      .::::::::::::                     ,:::::::::::::;::::::::::::.             ::;:::::::::::           
     ;;;;;;;;;;;                     ,++++++++++':,                   .:::::::::::::':::::::::::;:               ;:::::::::;:;,          
     ';;;;;;;;;;:                   `;'+++++++++:::,                 ,:::::::::::::'';::;:::::::;                 :::::::::::::`         
      ;;;;;;;;;;;;                 `;;;++++++++;:::::               ::::::::::::::;'':::::::::::                  `:::::::::::::         
      :;;;;;;;;;;;'`              ,;';;'+++++++::::::::           ,:::::::::::::::'''::::::::::`                   ,::::::::::::;        
       ';;;;;;;;;;;;;           .';;;;;;'++++':::::::::::,`   `,::::::::::::;''''''''''''';:::,````           ``````:;::::::::::::::::.  
        ;;;;;;;;;;;;;;';.` `.:';;;;;;;;;;++++'::::::::::::::::::::::::::::::;''''''''''''';:::::::::.         ,:::::::::::::::::::::::.  
        .;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++:::::::::::::::::::::::::::::::;''''''''''''';:::::::::.         ,::::::;::::::::::::::::.  
         ,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+::::::::::::::::::::::::::::::::;''''''''''''';:::::::::.         ,:::::::::::::::::::::::.  
          :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ::::::::::::::::::::::::::::; ::;''''''''''''';:::::::::.         ,:::::::::::::::::::::::.  
           .;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   :::::::::::::::::::::::::::  ::;''''''''''''';:::::::::.         ,:::::::::::::::::::::::.  
             ';;;;;;;;;;;;;;;;;;;;;;;;;;,     .::::::::::::::::::::::::   ::;''''''''''''';:::::::::.         ,:::::::::::::::::::::::.  
              ,;;;;;;;;;;;;;;;;;;;;;;;'         :::::::::::::::::::::,    ::;''''''''''''';:::::::::.         ,:::::::::::::::::::::::.  
                :;;;;;;;;;;;;;;;;;;;'             ,::::::::::::::::,      ::;''''''''''''';:::::::::.         :;::::::::::::::::::::::.  
                  .;;;;;;;;;;;;;;;:                 `::::::::::::`        ::;';;;;;;;;;;;;;:::::::::.         ,:::::::::::::::::::::::.  
                      ,;;;;;;;;.                          ```