This past week, we finished up the Idea Box Project (Individual Sinatra Application) and went on a full day code retreat.
As far as working on IdeaBox, I found it pretty refreshing to work on my own. I was surprised by things I learned about my own abilities vs what I thought I knew.
1.Negative: I thought I was better at testing.
On my first iteration through IdeaBox (I did two versions) - I tested the whole way. It was awesome. But I hated working with the YAML database and came up against an issue that I couldn't figure out how to solve with the documentation that I could find. So I researched datamapper and recreated the project with it.
I figured I could transfer the testing suite. This was inaccurate.
Lord I wish I had gotten the testing set up though. Testing saves so much time.
2. Positive: I tackled some issues I didn't think I could tackle
I managed to get the first iteration of IdeaBox up on Heroku through many error searches and minimal swears.
I also managed to make the website look acceptable - I wanted to focus on the code behind the website (since I tend to default to trying to pretty something up) so I relegated design of the project to the last day- but I was happy with my last minute visual additions.
If I were to go back and do things differently, I would have asked for help with the testing early on in my second iteration. I think the issue that prevented the tests from functioning was a high level issue, but not something that would have been hard to fix for someone in the know. I just don't understand how to connect tests very well.
I didn't ask for help because I was rushing, and jumping out on a limb by trying datamapper last minute and I didn't want to explain myself (always a sign that you are doing something untoward).
The Code Retreat was awesome.
1. I learned that I teach and work better if I have to write out my directions and thoughts. Bouncing back and forth in silence with a pair was unspeakably fun. And I feel I'm better able to articulate by writing than speaking.
For example - this blog post has more words in it that I the grand total of words I've spoken in class. If I had to guess.
2. I also learned that pairing all day is way, way more exhausting than I thought it was. I acted in a movie trailer once, and the end of the day I was more tired than I had ever or have since been. It's remarkably taxing to pay that much attention, at all times. We don't realize how reparative those daydream breaks are.
3. When I worked with Ben Lewis, he a. showed me how to adjust the text size in my terminal (I kind of knew this) and then b. set global keys for window management. I have used these global keys approximately 300 billion times in the last three days.
I think that's the major benefit in working with more experienced developers - or even just peers - you learn tricks through osmosis.
This week we've been working on two different Sinatra web applications - this represents the first time, other than creating a blog with middleman, that we've been creating something for the web. Obviously, the largest difference in doing this over doing command line projects is the complications involved with understanding routing. The secondary difference is probably formatting for views, but at least personally, I've had experience with static html pages so this isn't too challenging.
Breaking out into the formatting for Sinatra made testing well-nigh impossible for a little while. The biggest compromise that I made coming into these projects from focus week was having to compromise on TDD. Currently with Idea Box, I have unit tests but have not yet been able to create an integration test (other than my own testing by staring at the results of pushing to heroku, and running foreman and rackup).
I LOVE working on individual projects, and I think I made a great deal of progress with being able to work at my own speed. I had the good fortune of getting some help from teammates at crucial time s and then met with my mentor to review my testing strategy last night. She was able to explain exactly what I was testing and show me examples of capybara tests that she is currently fighting in her own work. I recognize that I learn different things from working in groups, but man, working alone is awesome.
That said, I was way more tired at the end of the day from having to keep on myself to tackle challenges. It was very easy to move away from something that was frustrating me. I found that during focus week, when I worked with @wvmitchell and @simontaranto, I had tons of extra 'brain power' at the end of the day because the flow of how we were working kept me from constantly second guessing if I was working on the right thing.
Next week is our first assessment, and the largest week point that I can think of is that I'm a little loose on completing assignments. For example, I am supposed to posting in our class blog and am instead posting in my actual blog. As far as strong points, I think I'm doing pretty well in utilizing the class resources. I've had a great and productive mentoring relationship so far and try not to either overload or underload the teachers with questions. I think I'm making progress in learning, although I'm not sure if that's self evident.
Here's to another week!