DrumSensei

betwixt code and music

Hackathon Retrospective

Real-world kinda stuff right here

Our introduction to working in teams was rooted in Agile. On Wednesday, our guest speaker to introduce our students to the concept of Waterfall versus Agile/Scrum was Sabina Winters from here in Austin, TX. We learned all about user stories and sprints and always talking to your scrum master and how Waterfall doesn't make sense for software development. Scrum is a funny word, but it makes a lot of sense.

Then on Thursday we were divided into groups, told to head to lunch and come back to campus to pitch the staff on a project of our choice. Most groups were like mine: two front-end developers, a back-end developer, and a designer. My group had Ryan Y in the back, Mory F. and me in the front, and Liz S. in the design seat. Our front-end requirements mandated that we use the Backbone.js library, but only the models, collections, and a router, though we also needed to use Views for our particular functionality.

After a delicious lunch at Freebirds World Burrito on South Congress in ATX (
WHAT! You have NEVER been to FREEBIRDS?!!?!), we had settled on two different ideas that we all thought had enough features to cover our bases and still push us to make something cool and (hopefully) useful. The main idea was to design a web application that could help Austinites reserve a parking spot for their favorite local restaurants. Austin has some terrific food, and parking can be fairly difficult. This is a useful idea that would be used by many.



Turns out, git and GitHub can be a challenge. We had different repositories for back-end (Ryan all by his lonely) and front-end + design. This meant that Liz, Mory, and I had to stay on top of "who is doing what" for much of our time together. Thankfully, our campus director
Travis Swicegood literally wrote two books about using GitHub, so we leaned mightily on his knowledge and experience on Friday when getting started on repository work. (He also helped me set up some bash-it themes on my machine which always show me the current git repository and its status!)

A portion of the challenge of working with two front-end developers was how to divvy up the work between us. I started to work on our main.js file while Mory started getting the models and collections put together. As we began to focus on one file at a time, we found it much easier to do
pair programming, with one of us helping talk the other one through coding. This has many benefits, but we found that the major ones were fewer errors (since someone was helping catch misspelled words and punctuation) and we could push our files to GitHub on one computer at a time. An added, non-obvious benefit was watching and learning from someone else's workflow, especially the myriad keyboard shortcuts.

We could not quite cross the finish line with the features that we expected to "ship," but we learned a lot and incorporated a good deal of functionality in populating our webpage with data from the custom-built API (thanks, Ryan!). The design that Liz created and built worked like a charm. Mory and I had Liz imbed templates in the HTML, which means that she alone could work on the HTML and Sass files to her liking. That left us front-end fellas to determine how to look into the server and put that data on the webpage. We used our JavaScript, jQuery, AJAX, and Backbone skills to dig around and eventually we learned enough about Views in Backbone to make things happen.



I am exhausted, and it was a tough push to get to the finish line. However, it was worth it. Today we started using React.js (built by Facebook), and it is making a TON of sense to me. This is certainly a combination of Aaron Larner's brilliant teaching (I have worked with a lot of those...I know one when I see one!) and a natural outgrowth of working so intimately with Backbone for the last seven days.

Things are looking good for the future as these concepts being hammered into me are starting to turn into a sensical set of instructions to make these computers do what is expected. Being in Austin is GREAT...except my family is back in Dallas, where I will be looking for a job not long from now. Off to finish more React.js learning....
(do we ever finish learning, though???)

The Iron Yard - Week 3

Week 3 and Other Tidbits

In my quest to switch careers, a coding bootcamp seemed like a good fit. Through a mutual friend, I talked to a former student from The Iron Yard that attended the original campus in Greenville, South Carolina. He had gotten a job in development in Dallas at a smaller shop doing some cool work. The job market for coding in Dallas has plenty of open positions. After being a band director for twelve years, I was right at the point of getting ready for a new direction. My aforementioned contact said that the thing he would have done more before bootcamp was studying JavaScript.

JS-woody-buzz


Thankfully, I followed his directions. I went through the
Codecademy course on HTML/CSS and JavaScript two times each, the second time around carefully hand-writing nearly all of the code. Hey, I learn best by writing, and it keeps me focused, be nice. (You probably do, too.) I also got the book Eloquent Javascript by Marijn Haverbeke and read (and worked) through the first three chapters three times. You might think I am a JavaScript champion now. I would say that I was simply practicing and getting some mental and physical muscle memory built up. I knew that JavaScript has some weird idiosyncrasies that make it identically a mystery and a brilliant tool. My goal is to understand those and make them work in my favor.

A fun example: like most programming languages, JavaScript has certain base "types" where it stores information. This could be a number like 9 or a boolean like true or a string like "The Iron Yard" or an array like [1,2,3] or an object like {a:1, b:2, c:3}. Got it?
No, you don't.
An array is actually a type of "Object." Gotcha.
Unless you are working in the browser, then it could be an "array-like object."
HUH?
Exactly. That is JavaScript. It is weird and funky and a lot of fun. (Hey, I used Turbo Pascal and C++ in high school... I put in my time with the strict languages!)

This coding bootcamp experience has been daunting and scary at times. Other times I feel like a rock star when the code works and my tests come back with green check marks! YES!! My classmates have been cool to be around. Everyone seems interested in learning their stuff and getting work done. Staff is fantastic. The campus is in Austin...a wonderful place with great food and great people. I miss my family SO MUCH, but it will be worth it when I get a wonderful job back in Dallas with a great team shipping things that make the world a better place.

Something that has surprised me is that I was terrible at my first attempt at coding bootstrap. I haven't really finished my assignment from a week ago...it looks like I really need to start it completely over and rethink my approach to the grid system of the masses. Not everyone gets ALL of it the first time!

I definitely expected a challenge, and it has been delivered in nearly every assignment. Even when I feel like I have a decent level of skill, I know there is a long road ahead. I am always keeping in mind I am still near the left of the flow chart from the mind of
Mihály Csíkszentmihályi (pronounced "chick-sent-me-high"). As a musician, I achieved flow by getting my skills and challenges to extremely high levels. I feel like after about 15 years and thousands of hours of drumming that I was pretty accomplished. Hopefully I can get to flow sooner in coding!



To any future students, please hang in there and keep a positive attitude. Ask questions. A lot of them. The days I have been most frustrated were the days that I felt most isolated. Ask your staff, ask some mentors, definitely ask fellow students. No one can do this alone. I highly suggest doing some exercise to keep your body and mind active, as well. Lastly, I am a fan of writing things down (did I mention that?). I filled our moleskine cahier notebook in the first five class days. If it helps you learn, then GO FOR IT!