@gSchool Week 10

Following a recent assessment to gauge progress toward becoming full-time developers, our class reviewed intentions moving forward. Instructor Jeff Dean set forth a plan based on ‘Theory of Constraints’ (TOC) from a book entitled ‘The Goal’. Per Wikipedia, “TOC is a management paradigm that views any manageable system as being limited in achieving more of its goals by a very small number of constraints.” In applying this philosophy to the gSchool experience, students individually reflected on bottlenecks inhibiting goal progression. In my case, an easily identifiable bottleneck is Rails CRUD (from the ground up). (CRUD is an acronym which refers to the major functions implemented in relational database applications: Create, Read, Update and Delete.) 

Once the root cause of the bottleneck is identified, theory behind TOC dictates throwing tremendous effort at strengthening the weak link to improve the overall organism. For me, this translates to drilling on Rails CRUD. Presently, construction of a Rails CRUD app takes me four hours or more (with notes!) As a result, I will be living/breathing Rails CRUD with the purpose of getting time to app completion under one hour.

I’m actually pretty excited at being able to focus so intently on a single subject since I’d like to feel ‘mastery’ over something Rails-related. Through the bootcamp experience, I’ve been introduced to LOTS of information but haven’t yet felt like I’ve truly sunk my teeth into any single part of it (this is my own perspective which is not necessarily shared by the other students.) I think learning Rails CRUD thoroughly will help bring back a feeling of empowerment and joy that’s been overshadowed by struggles accompanying the barrage of new information in my bootcamp learning experience.

On a different note, I had intended to post a Heroku link to introductory progress on my first individual project. However, due to a five minutes ago-detected glitch on staging of the app, I’ll delay posting a link until I identify the staging hiccup. In its place, please enjoy this soothing rendition of ‘I Made It Through the Rain’ by Barry Manilow:

Posted in Computer Languages, Ruby, Ruby on Rails, Uncategorized | Tagged , , , , , , , , , , , , , , | Leave a comment

@gSchool Week 9

You won’t hear it from me often, but the week flew by at gSchool. Focus was largely on building team-based CRUD Rails apps to manage media items (pictures as well as YouTube & Vimeo videos). A main intent was to acclimate us to work on larger teams. Our group of six coordinated the splitting of duties to avoid GitHub merge conflicts that occur when making changes incompatible with changes submitted by teammates. By and large, our team managed to avoid all but a couple conflicts, so we were very satisfied with the coordination efforts. A large reason for the success was early implementation of application-wide CSS styles that acted as a template for individual pages (thank you, ). A secondary goal of the project was to help us feel comfortable going forward working with other developers in the same codebase.

For those curious about gSchool projects, I’ll post a link so this week’s efforts can be viewed on Heroku as well as GitHub:

Rails CRUD media app screenshot

Rails CRUD media app screenshot

Tomorrow starts with an early morning study group in Denver so I’ll get some sleep. Likely next week, I’ll feel ready to post a link to show early progress on my first individual Rails portfolio project.

Posted in Computer Languages, CSS, Ruby, Ruby on Rails | Tagged , , , , , , , , , , , , , , , , , , | Leave a comment

@gSchool Week 8

One-third of the way through gSchool and counting….

Early on the gSchool journey, a commenter posted that the extreme amount of learning in a condensed time frame seems to get the better of programming bootcamp students resulting in a sharp drop-off of blog posts. He indicated I might have a better shot with keeping up the blog in gSchool since the program is six months long. Let me clarify,.. gSchool may be longer but the amount of time per week spent studying is comparable to that of shorter bootcamps. The gSchool website states we can expect to study 60-75 hours per week. For some of us, that’s a conservative estimate. We experience long days, long nights, lots of study and oftentimes little sleep, interspersed with sunshine at lunch to help clear our heads and lighten our souls. 

Tonight, however, I made a point of stepping away from the laptop to play hooky and temporarily push away thoughts of programming.  A small group of us dined and danced our way through some of Boulder’s clubs and bars and lightened our loads with tears and beers. Although one night away isn’t enough to bring balance to our temporarily skewed lifestyles, it was a great reminder that we’re alive and free in an amazing city.

photo of gSchool students dancing

dancing in the dark — photo credit @EmilyPlatzer

Tomorrow the journey continues. The weekend will involve study of Rails (which we started learning this week). We’ll work on our first independent projects (also started this week). There will be study group in the morning with plans to prepare for an early week assessment to gauge progress toward becoming full-time developers. I also want to get in more practice by finishing a CRUD Rails app that was started yesterday. And between now and then, I will sleep….

Posted in Computer Languages, CSS, HTML, Ruby, Ruby on Rails, SQL, Uncategorized | Tagged , , , , , , , , , , , , , , , | Leave a comment

@gSchool Week 7

Throughout the week, our class worked on utilizing the skeleton of an application to bootstrap a Postgres backed Sinatra application. In other words, we were given the bare workings of a web application and expanded it to include database functionality for registering and logging in users. Once we had the sites up and running, Matthew Leach spoke about web design utilizing HTML and CSS. We were set loose to use basic color theory, HTML and CSS on our ‘completed’ projects with special emphasis on working with columns. The general guideline was to include a header and footer with three links with each linked page using lorem ipsum text. This project gave the opportunity to build a site around a logo mockup I’d created in December for a friend: dashJuiceLogo (1)

After deciding a theme, I pulled in colors and images from other sites as reference. The Postgres database was presented as means to join a mailing list and register to win a month of free pressed-juice deliveries from the ‘Dash Juice’ company (view on GitHub or Heroku).screenshot of the top half of Dash Juice Mockup Homepagescreenshot of the top half of Dash Juice Mockup Homepage

There were some glitches (I cannot find how to align the logo with navigation menu items!) but the project was really enjoyable. I look forward to upcoming lessons from Matthew since frontend of full-stack development holds such an appeal.

Posted in Computer Languages, CSS, HTML, Ruby | Tagged , , , , , , , , , , , , , , | 2 Comments

@gSchool Week 6

This week was all about reviewing content taught during the first five weeks of gSchool. Students were given the opportunity to work solo, in pairs or in groups to run through previous topics covered in class. After ordering the topics based on level of comfort, we picked our top three weakest areas for extra study. Classroom focus thus far has included:

Developer Workflow
> Tracker Mechanics
> Git Discipline
> Good Commit messages, right-sized commits
> Heroku Deployments

Ruby
> Variables (local, instance)
> Objects (initializers)
> Classes (class and file naming)
> Methods (defining and calling, class/instance)
> Data Structures (hashes, arrays, each)
> Control Flow (if, while, explicit return)
> Constants

Testing
> Unit Testing Class/Methods (spec/lib)
> Acceptance Testing (Capybara/Sinatra)
> Ending Specs with expectations
> 4 Parts of a Test (Setup, Run Code, Expectations, Teardown)
> Knowing What to Test/How to Test it – using the simplest thing to drive out robust tests

Sinatra/HTTP
> 3 Kinds of Params
> Routes/HTML Forms/Links/HTTP Verbs
> ERB and locals
> Redirects vs. other Responses

HTML/CSS
> Valid HTML (doctype, html, head, body, title)
> CSS Basics (layout, fonts etc…)
> HTML Elements and Attributes

SQL and Sequel
> Command Line SQL (psql, created etc…()
> SQL Select, Insert, Update, Delete, Create Table
> Sequel Select, Insert, Update, Delete, Create Table
> Sequel Migrations

Developer Discipline
> Taking Baby Steps
> Really Reading Error Messages
> Running Specs, Git Status and Running App Locally Before Committing
> Breaking Down Problems w/Pseudo Code

Pairing
> Ping Pong/Driver Navigator
> Speaking Ideas Out Loud
> Fair Contributions
> Taking Breaks/Staying Energized

After weeks of structured learning, it felt fantastic to have the freedom to choose how and what to study. Much of my attention was focused on Ruby by way of a study website called codequizzes. For each coding problem, I would attempt to run my answer in the terminal from RubyMine. If the code wasn’t correct, I would work through variations to try and reinforce key learning points for that particular problem. I’ve bookmarked the site and intend to revisit it for ongoing code practice.

Habit would have had me study alone throughout the week (based on months of home study leading up to gSchool). Instead, I took advantage of the chance to study with several classmates. What a great group of people!

Also of interest, we are now officially one-quarter through gSchool. No way would my studies have gotten this far outside the framework of a bootcamp. Although these six weeks have been a roller coaster of emotion and confidence (not to be taken on by the faint-hearted), I value the time and learning that’s happened by way of the tremendous efforts put forth by our teachers and mentors. Galvanize (the company behind gSchool) has really raised the bar for web dev bootcamps.

Posted in Computer Languages, CSS, HTML, Ruby, SQL | Tagged , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

@gSchool Week 5

Five weeks have come and gone at gSchool. I don’t know whether to lament the passage of time or to celebrate being one week closer to graduation. There’s emotional turmoil from knowing so little about programming and thus feeling a sense of underperformance. But I celebrate the victories as patterns come together in my mind and concepts become a part of a coding frame of reference. Coding is still elusive but I can sense its pattern under the surface and think (and hope!) to see larger results soon from all my hard work.

‘Learning styles’ has been a topic of conversation this week in class. The teachers have worked hard at adapting lesson styling to meet the needs of our diverse class of 26 students, providing opportunities to support learning styles in varying degrees of application. For me, I have loved learning when it has involved the whole class working together in a noisy collaboration while one student types and asks for input. The pace allows for ‘aha’ moments of understanding that can sometimes be missed when coding at a faster speed. Other students feel emotionally jolted by this same style and find it highly disconcerting and off-putting. The challenge has been on the teachers and students to find a way to bridge existing gaps so that no one feels left out or left behind.

With all the new classroom material to be learned, I wasn’t making much time for actual coding, so I’ve begun focusing on exercisms (and other coding problems). The plan is to get through at least five iterations of exercisms per week. This is an exercism I completed today that finds the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum:

class Squares
  def initialize(index) # index = max number in range
    @range = Range.new(1, index)
  end

  def square_of_sums
    sum = @range.reduce do |sum, index|
      sum + index
    end
    sum * sum
  end

  def sum_of_squares
    @range
    .map { |index| index * index }
    .reduce do |sum, index|
      sum + index
    end
  end

  def difference
    square_of_sums - sum_of_squares
  end
end

I found the ‘reduce’ method in ruby-doc and am still working to solidify its meaning and usage. The class instructors are vigilant about giving feedback, so my next code iteration will involve assigning the squares to an intermediate variable to make it easier to read. It helped when I started considering exercism code like Playdough… pliable, ever-changing and mutating. Now, I can see the value of posting code and asking for feedback to really solidify an understanding of how the code works. With that in mind, please feel free to post any suggestions for a future iteration.

Posted in Computer Languages, Ruby | Tagged , , , , , , , , , , | Leave a comment

@gSchool Week 4

Today marked the end of a month of study at gSchool. It is shocking how quickly the time is slipping past. Studies this week included testing using Capybara implemented in a Sinatra app and reading an early access copy of  Corey Haines‘ excellent book on the 4 Principles of Software Design. We’ve created HTTP Sequence Diagrams

HTTP Sequence Diagram on 'Updating an Item'

chart draft credits to gSchool classmate Gerard Cote http://linkd.in/P4jCSu

and began building our first class project: a URL shortener app with HTML/CSS. This non-functioning little blue button has provided hours of aggravation. (But we will conquer you, little blue button, mark my words…!)

 

Screen Shot 2014-03-29 at 1.45.40 AM

 

The weekend is for catching up on study backlog and preparing for a Sinatra assessment. Socially, we’ve attended Meetups and hosted a Happy Hour with building neighbors. As well, we had two guest speakers: John Foley of Pivotal Labs who involved us in a detailed question and answer session related to pair programming while Jason Noble gave an impromptu talk and addressed the same topic. He showed a hilarious video on pair programming that brought me to tears.

For me, a highpoint was finally getting to meet and work with our mentors. These kind souls from the programming community give time and energy weekly to guide us toward programming competence and confidence. I am so grateful to Ben West and Jeff Taggart for their willingness to coax me toward proficiency. Thank you, Ben and Jeff, you’re stellar human beings!

If you’re interested in giving back to the programming community by becoming a mentor for future gSchool classes, please contact our TA Kinsey Ann Durham.

Posted in Computer Languages, CSS, HTML, Ruby, Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment