Now that I have completed the JS and Rails courses at Portland Code School I am learning some of the major front-end JavaScript frameworks in more detail. This list includes Backbone.js, Ember.js, and Angular. I am also interested in learning how to use Node.js as a resful API service for the back-end.

JS Framworks

The last few weeks I have been reading up on these frameworks and attending JS meetups here in PDX. My plan for the next two months is to create an app using each of these frameworks and Rails as a backend.

Here is the repo for my first app, a Backbone on Rails app that utilizes Marionette. For my capstone projects at Portland Code School I created a Rails app and a Backbone.js app.

I will update this blog periodically to let world know how it’s going…

I spent 40-50 hours a week the last 4 months (October-January) learning at Portland Code School. It was an extremely rich experience. What I learned broadly fit into 2 languages/frameworks. I took both the full-stack JavaScript and Rails tracks (I was the only person to complete both tracks). More specifically I learned the following:

JS/Backbone.JS Ruby/Rails
- Backbone.JS - Active Record
- Jasmine - TDD - IO
- JSON - Rails
- JQuery - Many Gems including: Thor, Devise, and Google Maps
- Node.JS - PostgreSQL - SQL
- Underscore - ERB
- Regexp
- Capybara/RSPEC/MiniTest - BDD
- Sinatra

In each of these areas I learned more than just how to code. I learned the culture, tools, and ecosystems that these frameworks inhabit. I also learned many general web development skills including:

Web Development Skills
- Bash
- Github - Git
- Google Developer Tools - Debugging
- Heroku
- Front End Development - HTML/CSS
- How to Learn (Ask Questions, Read Documentation, use Tutorials, use Stackoverflow)
- The MVC Pattern
- Pair Programming
- The PDX Tech Scene
- The RESTful API Pattern
- Troubleshooting
- Using external API’s like Forecast.IO, Google Maps, Google Geocoder, Twitter, and Yelp
- Project Proposal Writing
- Working on a Team

I will be unpacking this experience and everything I learned for many months. The social connections I made will last a life time. I also learned that I will never stop learning in this line of work. Most importantly, I learned how much I love web development (including its challenges and its benefits).

During the course of my non-profit career I have worked with a variety of data systems. In working with databases I have learned two lessons:

  1. Database’s grow to fit the institutions they are a apart of, and
  2. The data doesn’t give you answers, it gives you better questions

Database’s grow to fit the institutions they are a part of.

Data jungle

At the last organization I worked for, I had a hand in designing the data system. Initially the data from this system was used to report to our funders, who were curious about our population on a national level.

The organization started by collecting data in spreadsheets from about a dozen partners (community colleges serving highschool dropouts). This became unweildly when we doubled in size. So we moved to an indvidualized MS Access database file for each of our partners. This allowed us to collect a more standardized data set, and spend less time grooming spreadsheets.

As we continued to grow (and double in size again!) we shifted our focus to using data to inform decision making on a local level. We wanted to supply our partners with custom reports so that they could make decisions in their local context, and better serve the unique populations they were working with.

With a larger number of partners the aggregation of the data, report writing, and sychronization of changes started to become very complicated. Much to my relief, the organization eventually hired a DBA. We moved the data to MS SQL Server 2008 so that we could aggregate it more easily. We continued to use MS Access for our front end but distributed a single file to our 50 partners. This generated a lot of intrest in our data system.

At this point we had collected a mountain of data. As we scaled further, the emphasis shifted again to using the data for research and evaluation projects . I centralized the training for the data system in one place on our wiki (see my post on Gateway Live). This allowed us to spend more time concentrating on how to use the data in research and evaluation projects, and less on getting the data into our system. By the time I decided to go to the Portland Code School I had started to migrate our data collection and reporting online (see my video below), which helped us to gain even more efficency.

Hiring the DBA allowed me to concentrate on my role as Manager of Evaluation. I continued to have an intimate connection to the data system, but in different ways. I used the database to help others to process what the data meant and make informed decisions. I also trained people (internally and externally) on how to write their own reports based on it’s output.

Above is a clip I made to demonstrate how to use a SQL query in an online report. I put this query into a Confluence page so it was widley available. This data was used to help with an annual fundraising campaign. It gives you an idea about the level of complexity of the data system and helps you to understand how we trained people to use our data sytem.

The data doesn’t give you answers, it gives you better questions….

In undergrad I used to think that data was definitive and could provide you with all the answers. Working with data produced in a varietey of unique contexts made it feel much less definitive, and helped me to appreciate the need for qualitative context. This context was best understood by the people entering and reporting on the data. Over time I have learned that the data doesn’t give you answers, it gives you better questions and helps you to better understand the context of the problem you are trying to solve. I like to help other engage in data driven decision making, especially the flavor known as the Cycle of Inquiry .This process places the end user in the driver’s seat of the evaluation process, and I passionately beleive it leads to better results and more effective programs.

Using Data for the purposes of web development

I continue to be very interested in making sense out of data. I want to apply what I have learned as an evaluator to the universe of web development. I see a lot of possibilities (and limitations) in the use of analytics and benchmarking data. In particular I am interested in examining the use of data within the concept of UX. I look forward to learning new lessons about data in this context.