The Turing School of Software & Design, brought to you by the incredible team at Jumpstart Lab, is now accepting applications. Jumpstart Lab ran the first two cohorts of gSchool, the program I went through in early 2013.
If you've been thinking of learning to code, please apply to their program. When I first heard about it, I didn't think I was going to be able to afford it or make it happen logistically, but they made all of that really easy and workable (as did a grant from the State of Colorado). Don't let those kinds of "what ifs" keep you from applying - explore the opportunity and see where it takes you.
They've extended their program to seven months, making it even more comprehensive than the cohort I went through. I would be happy to answer any questions about my experience and where it has taken me. They are emphatically supportive of diversity as well. Apply, damnit!
Last week I had the honour of delivering my first conference talk and sharing the stage with Bridget Hillyer. I met Bridget in November at Clojure/conj, and was so delighted to learn that she was working with a group of people to make ClojureBridge a reality.
In her talk Bridget explains what ClojureBridge is and why so many people are working hard to make these free workshops happen. The first two announced workshops filled up right away, and it's clear that there are a lot of people very interested in learning and teaching Clojure.
In my talk (at about ~15:40 into the video) I share my experience going through a six month code school and an apprenticeship, why I think more software companies need to do them, and how.
We would love to answer any questions you have about these efforts. Thanks!
Cowichan sweaters are a Canadian icon. When I was very little, my mother diligently ensured I was swathed in the thick, waterproof, warm wool that has become part of Canadian heritage. Sadly, both the hat and sweater left my possession before I was old enough to appreciate or even now remember them.
Growing up in the greater Vancouver area in B.C., we often went to the Capilano Suspension Bridge. I remember going into the gift shop and looking up at the display of Cowichan sweaters, and wishing to have one some day. I figured a $400 sweater was likely never in my future, and reserved that pining away in the gift shop was as close as I'd ever get.
Fast forward 15 years and possessing solid knitting skills, I started pining away to make my own. I would find a pattern, make my own design, find the most legit wool possible and knit up one of these bad boys! Any knitter that's started researching these books very quickly learns that there is just one book that explains the traditional techniques used by Cowichan knitters, Salish Indian Sweaters by Priscilla Gibson-Roberts. This book has been out of print for a number of years now, and is very hard to find. I've seen it on Amazon for $150, and some libraries carry it.
In February, I once again stood in front of the display of sweaters at the Capilano Suspension Bridge. "Are these made by Cowichan knitters?"
"Yes they're handmade in Vancouver!" the clerk replied. "But are they First Nations knitters?" I asked again. She had no idea and didn't try to find out. In my bag was Priscilla's working copy of her much beloved, out of print book.
A couple of days after my visit to the bridge and all its newest attractions - the treetops adventure, the cliffwalk - I took the ferry out of Tsawwassen and headed to Duncan. I was invited to crash a grade five field trip, and one does not turn down the chance to be 12 again. A class from Kitsilano had studied First Nations history all year, and wanted to host the Cowichan knitters for tea. We shared Nanaimo bars, of course, and the children showed their sweater designs.
A few of the local knitters showed up, and they looked through Priscilla's book. Some had heard of it but not seen it before, one knitter was 15 and it was new to her.
Priscilla and her editor and friend, Deb Robson, really want to republish this book. Deb has already done a tremendous amount of work to get this done, but we'll need some help to finish it up and make the second edition a reality.
Current status of the reprint:
- All the text has been converted and given an initial editing, and Priscilla has written new material on designing respectfully within the tradition.
- The initial design for the interior has been completed in InDesign.
- All the charts (from the previous edition and the new additions) have been redone in Illustrator for clear, print-quality images - so the new edition will be especially easy to use and refer to.
This is a substantial accomplishment by Deb!
What needs to happen next:
- The original photos were all shot on film, and the negatives are all stored together without contact sheets. Contact sheets need to be made to locate the original images used in the book, and scanned digitally for ease of reproduction in today's technology. Cost to do this is approximately $700.
- It's foreseeable that the 30 year old images may not be high enough quality in some cases to use in a second edition, therefore we plan on taking new pictures to supplement where necessary.
- Priscilla would like to write a new foreword updating readers about the newest generation of Cowichan knitters and how they're keeping their tradition alive. I hope to interview them to provide some of these details.
- Once it's complete, we need to get the book to a publisher: arrange for the book's publication, either through another publisher or through an independent effort.
Cost to take new pictures will be low, since I plan on shooting these pictures myself, however it would be great to get some of the travel expenses covered (ferry, hotel in Duncan, etc.). My camera is adequate but not optimal (a much loved Canon 40D), so I may rent a camera for this.
Although I live in Denver, Colorado now, I'll be spending a couple of months this spring at my parents' house in Bellingham, Washington. It's during this window that I'll travel back to the island for the photos and interviews.
Deb is putting together the details of the budget to get this book completed, and we plan on firing up a fundraising campaign to help. When that's ready I'll publish more information here on my blog, and will get the word out with knitters every way I know how.
The book is about 70% ready for republishing right now, and we don't need much to get it done. I have no doubt that there are enough knitters interested in having this book available again, in an updated second edition, that we can raise a small amount of funds. The book will be much more accessible to people and will keep these techniques documented.
The efforts to make ClojureBridge a reality have been in motion for the past few months, and I thought I'd give a general update since we don't have an official blog up yet and have been getting a lot of questions from folks. It's so great to see how many people are genuinely interested and want to contribute.
We've been meeting every other week and things are pretty well organized. There's been really good communication and lots of great ideas being considered thoughtfully. Today's meeting was really productive and things are coming together nicely.
So, without further adieu, here are the most exciting updates:
- The first workshop will be in Durham, NC, April 4-5
- The second workshop will be in San Francisco, CA, May 2-3
- More are already being discussed, and I need to get it together and start planning the Denver workshop
- We'll be using LightTable for the IDE
Once we have event invitations and can take sign-ups, I'll post links.
Curriculum is still being developed but is in good shape already. If you want to check out what we have so far, please take a look at the repo.
If you haven't yet signed up for our mailing list please visit our site and do so. Thanks!
For the past few weeks I've been focusing on learning Clojure, here are the resources I've found most helpful so far:
Lispcast Videos by Eric Normand
These videos are so good in so many ways. Audio/production quality is great, the curriculum is delivered in real English - not CS jargon, and takes you from zero to understanding the basics in a really thought-out way. The videos aren't super long, but with pausing to type, and going back sometimes to review, you end up taking a decent amount of time to work through them. They're not videos you just watch, you're actively coding along with Eric. I love that everything starts in the REPL, then progresses to working in files. If you're new to Clojure, this is where I recommend you start.
Clojure Koans & 4Clojure
Once I had some basics down, I started working through the koans and 4Clojure. I ended up working through the koans with another TurboVote developer, Troy, which was very helpful. I got so much more out of them than doing them in isolation, and he got practice explaining functional programming concepts. I have a friend that wants to learn Clojure with me, and I think we'll work through these together too.
In preparation for the training I'll be doing at Clojure/conj in November, I worked through the main Pedestal-app tutorial. It's a little mind-bendy and I'm still trying to grasp some of the new concepts Pedestal has introduced to me (like transform functions, emitters and recording user interactions in a file). The tutorial has handy git diff links for each section, so if you get really stuck you can double-check your code. A head's up that the tutorial hasn't been updated for the latest version of Pedestal, but some of the open issues are helpful to work around this.
Related Pedestal Blog Post
After I worked about a third of the way through the tutorial above, I found this blog post. It explained Pedestal really well, and I better understood the 'why' behind some of things I'd done working through the tutorial. If you're going to learn Pedestal, this is a great post to reference.
Pairing/Bothering Other People
As great as all the tutorials have been, nothing compares to pairing with someone more experienced you can ask questions of. I've had a harder time looking up syntax I don't understand than I do with Ruby. For example, I found this in a test in one of the APIs we're developing at TurboVote: ?form. Searching for "clojure ?form midje" didn't return anything obvious and I didn't know what this syntax was called (anaphoric macro, duh). So these are the sorts of things I've had to ask another Clojure developer about, and how pairing can really help fill in some gaps.
I'd love to hear what Clojure resources you found most helpful getting started.
I'm a huge fan of Jen Dziura's work on her Bullish column, and have corresponded with her a few times. I reached out to her a couple of months ago to share my story of sending myself to school to learn to program, as I wish I had read a similar story years ago. Check it out, and please forward it to any ladies you know who are wasting away in some soul-sucking administrative gig.
During gSchool, we did Ruby warm-up exercises each morning, and this was a primary way I learned throughout the program. Since graduating, I've really missed these daily challenges. I've decided to go back and re-do the exercises, but now I have the luxury of being able to spend more time on one challenge and repeat it like a drill (which is how I learn best).
Besides the actual coding solutions, a lot of the warm-ups presented new subjects I had never faced before, having no computer science background. One of the more interesting subjects introduced was binary numbers.
I really want to understand binary numbers and feel comfortable with them, so today I outlined a simple learning plan to teach myself. Basically, I'm starting out with daily drills and exercises, then tapering off over the next couple of weeks. After that, I'll revisit binaries here and there to make sure I'm retaining them.
Throughout the next few weeks, while I'll focus on working with the numbers themselves, I'll also do some coding challenges so that I'm getting my Ruby practice in as well. I think the combination of some written work and the coding solutions will really help me learn binaries better than just one method or the other. Here are the resources I'm starting with:
Daily writing drills I'm practicing:
Counting in binary, trying to write out the binary equivalent of random decimals (& vice versa), basic addition, &c.