First Coding Bootcamp Project — Week 3

Theodore Chuang
Sep 8, 2018 · 3 min read

It is week three of coding full time and it has been the most fun I have had in a long while. We just finished our first project and it has been an exhilarating experience. Code enables us to imagine something and bring it into existence. There were many firsts for me that I would have never learnt only following tutorials and online courses. For anyone learning programming out there, start building right almost away. Even better teach what you have learnt. Teach > Build > Observe.

The project objective was to build a terminal application that solves a problem in two days. In this timeframe we had to design, plan, develop, test, document and present a MVP. Oh and this was a paired project, so play nicely. (although anyone from the team would have been an honor, I was paired with Santosh who was great!).

We brainstormed and decided a point of sales (POS) application would be a fantastic solution to codify our journey so far. Given the short time frame we did not want to build anything content heavy and instead focussed more on the technical elements like object-oriented programming, reclusion, and data structures. While the mentors and teammates were always there you lend a fresh pair of eyes, there was a lot to consider in such a short time frame. We slashed our initial story board in half after consulting with Garret, one of our experienced mentors.

Paired programming was effective and efficient. We followed the driver-navigator approach in the early and final stages. The early stages was focussed on the overall architecture and design. So that in the middles stages we could individually work on preestablished modules. And in the final stages, we putted our brains together to worked the more complex functionality and glue the project together. Santosh and I came into this project with different strengths and working together helped us avoid getting blocked for too long at any stage. It also helped a lot with debugging as both of us would have already been familiar with each component. Overall I would recommend trying paired programming.

Git and Github is amazing, pull and commit often. While I would not recommend GitHub collaboration until one is already familiar with Git and GitHub, it worked great for us because we kept in constant communication. We had our first ever Git conflict but because I decided ahead of time to work on different modules the conflicts were minor formatting and easy to resolve.

The biggest challenge for us was navigating the unknowns. We had lots of features in mind by we were uncertain how long it would actually take to build them. For some of the more complex features we were even not sure how we would go about solving the problems. Fortunately there is already a framework to manage this type of problem: MVP prototype and agile development. Focussing on the end user helped us prioritized on the most important features to build first. Once we built out the core features we were able to extend the application with additional ones. Piece by piece the product came together. I see two main aspect of programming: people and code; ultimately we are building code for people.

Check my project and the code at https://github.com/TheodoreChuang/ruby-pos. There a lot of wrinkles to iron out, but feedback is welcome.

Theodore Chuang

coding daily. day dreaming about the potential of distributed consensus.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade