On July 1 and 2, Gilt hosted two days of free Scala classes for our engineers and invited outside developers from the NYC programming community to join us. Gilt City Software Engineer Jennifer Shin participated in the first training day. Here’s her recap:
On Monday I attended “Programming Scala,” the kickoff course of Gilt’s new, free training program. Being new to Scala, functional programming, and Gilt itself (I started working here in June), I really didn’t know what to expect. My assumption was that the class would cover only basic Scala concepts: how to define a method, how to extend traits, the difference between functional and object-oriented programming–you know, simple stuff.
Boy, was I wrong.
First of all, our instructor, Dr. Venkat Subramaniam, was amazing. Despite having to explain complicated programming concepts to 18 inquisitive programmers–and remain on his feet–for nine full hours, Dr. Subramaniam somehow never lost his enthusiasm, patience, energy, or sense of humor. He not only explained the what and how of each concept and technique, he also–and most importantly–gave us the why. Knowing the why is extremely helpful when you hang out almost exclusively in the OOP world, and are wondering, “why do I even want to learn functional programming?” If you ever want to listen to anyone talk about Scala for about nine hours straight, you can’t do much better than Dr. Subramaniam. (And for free? Are you kidding me? Sign me up any day.)
In addition to learning about collections, combinators, classes and other Scala topics, I also spent the day coming to the realization that trying to grasp the main concepts of an entire programming language in a single day is a major challenge. At one point during the afternoon, my lab exercise teammate gave me a look that said, “I…can’t…fit…any more…knowledge…in…my…brain.” I understood exactly. Towards the end of the day, after completing numerous exercises and trying to grasp approximately 100 different concepts, I felt like my head would explode from either information saturation or exhaustion. But, I must say, I was grateful for this feeling.
I left Dr. Subramaniam’s class with two new, essential tools: Scala programming experience, and a handy training manual (bedtime reading!) filled with additional explanations and examples. The labs helped to break up the lecture-filled day, and enabled us to put the topics into practice. Dr. Subramaniam provided programmatic examples for nearly every concept explained, which we cloned via SVN. “What’s so great about functional programming?” “How and why are companion objects really used?” Our class got to contemplate and explore such questions…And more!
I am incredibly impressed that Gilt provided such awesome training–not only for our engineers, but for non-Gilt developers with an interest in learning Scala. In addition to more than two dozen Gilt engineers, the two Scala sessions included eight developers from the NYC metro programming community. The experience was ridiculously educational, only slightly painful, and downright enjoyable.
Day Two of Scala training.