@gSchool Week 14

Last night, our class held a mid-gSchool celebration (organized by EmilyPlatzer and Rachel Logie). As Emily was taking the photo (above), I remember feeling such joy! The day was beautiful with a gorgeous view of the Flatirons and I was surrounded by an amazing group of friends. Our class has been fortunate to have such a strong bond.

The tail end of this week has me refocused on building Rails CRUD. An eventual goal (per instructor Jeff Dean) is for each student to build a CRUD in under an hour without referring to notes. My time has exceeded two hours with plenty of notes review. Inspiration to whittle down that time came from watching a classmate make huge gains with CRUD. Initially, Aubrey Howell was at a similar pace taking 2+ hours per CRUD with notes. In a matter of a couple days with disciplined effort and implementation of RubyMine keybinding shortcuts, her time has dropped to an amazing 25-30 minutes per CRUD without notes! Thanks to Aubrey’s example, I’ve dug back in to tackling CRUD. My most recent time is under 50 minutes with just a couple glances at notes for the most stubborn lines of code. I hope to be completely independent by the end of the day tomorrow.

Regarding my personal project, its focus has transitioned throughout the week. Initially, the plan was to construct a camera review site. Ultimately, I’ve shifted focus toward a concept of allowing users to email cards to friends with uploaded images or by way of taking their own picture using a webcam. Users might also use photos pulled into the site from image feeds. I hope to incorporate image manipulation with simple filters or text overlays with an eventual user authentication element. So I’ve scrapped most of my existing code and am starting over with big intentions and a large learning curve. The image manipulation element really attracts me due to an ongoing love of Photoshop. So this new direction should be fun!

Tomorrow’s another study day. My stupid body alarm is waking me at 6:30am regardless of morning plans or how late I might have stayed up. I’ll try now to get a bit more sleep.

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

@gSchool Week 13

This upcoming Tuesday is the inaugural Demo Night in which a handful of gSchool students will present personal projects-in-progress. Having glimpsed some of the projects, I am thoroughly impressed with what’s been accomplished during the past 13 weeks. Not knowing what’s ‘under the hood’ but speaking on visual aspects of the apps, participating students should feel very proud of their successes.

My little app is still chugging along. Today was spent debating whether to focus energies on pushing through a few blocks on the app to be ready for presentation in the upcoming Demo Night. Ultimately, I decided against it since I can’t yet take pride compared to past projects created with Photoshop and Flash. Inspiration is finally beginning to hit, though, with regard to making the app more visually appealing and creative (halle-frickin’-lujah!). I don’t know how (or whether I can) accomplish a particular brainstorm but I’m excited to try! At the same time, I daily resist the urge to rip the code apart and start over. It feels slightly yucky building on such a rough foundation, I miss having more ‘order’. But I feel a need to continue for that same reason… to acclimate to messiness.

Even though I’m not presenting on Tuesday, I will go ahead and provide a link to Heroku where the app-in-progress resides. Functionality is limited…. There’s a simple (unformatted) CRUD on the ‘Reviews’ tab that isn’t yet able to upload and store images,.. but the ‘Photo Contest’ tab pulls in images via API from the subreddit ‘Earth Porn’ on reddit. There’s a lot more to do but I’m bumpily moving forward and feel the app and I will be at a more comfortable place by the time we make our social debut.

If you wish to attend the gSchool Demo Night, you can RSVP here.

screenshot from the Photo Contest tab of the Camera Snapshot app

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

@gSchool Week 12

The halfway mark has arrived. 12 weeks into the gSchool program and I’ve gradually become more aware of how little I know in proportion to what’s out there. The programming world is HUGE!! Fortunately, career development will be an ongoing process continuing well past the 24-week graduation point. Thinking about 9 to 11-week programming bootcamps, I wonder if their students feel prepared for web dev employment. In any case, I feel extremely fortunate to have an additional 12 weeks on a disciplined learning track before being released into the world as a software developer.

This week, I spent time thinking about what I wanted to achieve during the second half of the program. Focusing on end goals, I’ve started zeroing in on areas of study for extra practice outside the classroom. Surprisingly, this focus on ‘ends rather than means’ has brought an increased sense of joy to the independent learning experience. As a result, I’ve felt more confidence interacting with code and more excited about learning as a whole. That feeling of creativity is what kept me motivated to study when I was learning on my own, and I’m grateful to feel its presence.

I’m giving over to exhaustion so it’s time to put the keyboard away. But I look forward to digging deeper into Rails tomorrow.

cartoon of man having set goals and half the way toward achieving accomplishments by way of discipline

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

@gSchool Week 11

The week was full of excitement during Boulder Startup Week. gSchool students had the opportunity to be introduced to and bond with the tech community through local events and meetups. Our class represented by having several from the cohort form teams to enter and win 1st and 2nd place in Battle of the Games Hackfest against programmers from the community. (Huge congrats to: Paul, Cory, Martha, Nate, Jenny and Emily!) Notably, our parent organization Galvanize also expanded its reach by opening doors to the new 5th floor Boulder office (up from our 2nd floor classroom). The sunlit, open space is a huge hit with us students, as is its balcony with grill and amazing views of the Flatirons.

In other news, our studying continued as we launched development on several large projects for a pseudo client called the Bradtke Group. Story has the Bradtke Group as a “science education company run by scientists, for scientists. They publish content, sell products, run meetups and facilitate an online community…”. gSchool students will release products for ‘Bradtke Group’ including an Event Manager, Online Store, Newsletter Manager, Social Network and a Dashboard to track all events that occur through the entire suite of tools.

Additionally, gSchool is taking on a real client in the company mobiDECKS. As they describe themselves, “mobiDECKS is a content management and delivery system for mobile that engages users with impactful content via an incredibly intuitive deck-of-cards UI”. These six projects combined will keep us busy for the next several weeks as we rotate from project to project, dipping our hands into new-to-us code bases.

Meanwhile, we students continue working on individual projects. Here’s an early version of a site I’m creating that will offer digital camera information and reviews (on GitHub and Heroku):
screenshot of 'Camera Snapshot' site

I’ll add functioning links and content in the weeks to come.

This is a good time to mention the phenomenon known as ‘Impostor Syndrome’. I’ve been in its throes since arriving at gSchool, and have defended a stance of ongoing programming ignorance despite protests from others that I “know more than [I] think [I] do”. With the hope that readers (and writer) can gain comfort, confidence and techniques to combat the unpleasantness of impostor syndrome, here’s a talk by Denise Paolucci on ‘Overcoming Impostor Syndrome’.  Her talk offers strategies for those who deal with impostor syndrome firsthand, as well as techniques for allies and leaders to help people realistically judge their own work and accomplishments:

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

@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