Phase 3 and Final Project – Dev Academy

The last three to four weeks have been very hectic. I started Phase 3 on the 15th of June. The first week of this Phase was Rails week, the first half of the second week was doing more in Javascript and then on the Thursday we started our final project.The final project went for a week and a half, on the Friday of the last week we graduated and then this was followed up with a careers week. Now it is nearing the end of the week after careers week I am just beginning to feel normal. It has been absolutely fantastic having two weekends where I barely looked at a computer screen.

In the second week of Phase 3 we got to play more with JavaScript. The first challenge was recreating (and in the process demystifying) jQuery in the miniQuery challenge. This was a good challenge except for the fact that I got lost at the start and this through me out of sync for a bit. The second challenge was making Post It notes. Loved this! It was so much fun making this app and not necessarily for the expected functionality as this image demonstrates.

post its

http://libbyschuknight.github.io/js-post-it-notes/

The Wednesday of this week was open for us to explore JavaScript frameworks. I had already been playing around with EmberJS, so looked at that a bit more. The cohort has already had some discussions around what we wanted to learn during the final project and AngularJS looked like it was going to be on the cards, so I also had a look at this via Codecademy. Their Learn AngularJS was a good starting point for learning Angular. I have tended more recently to steer away from Codecademy as I didn’t really like their interface. I was pleasantly surprised to find out that they have updated it and it works better for me. I enjoyed working through this tutorial and learning AngularJS version 1 – I’m not sure if I will make the effort to learn much more about version 1, since version 2 is coming soon and by all accounts will be quite different.

The second to last Thursday was the first day of the final project and pitch day. All of us in the cohort needed to pitch some apps ideas. We had about ten but settled on a meal planner idea, with the basic idea being that you can choose meals for the week and then see a shopping list with all of the ingredients for the week.

We did some awesome overview planning –

-which was good and gave us a structure to follow for the next few days. However, that is kind of where the planning stopped for a bit and this meant that once we had reached minimum viable product (MVP) we had some issues. The main issue being that the database schema needed to be changed a few times and this had flow on effects with how information was being displayed and interacted with by the front end.

We reached MVP by Sunday evening after some hard work over the weekend.

Once we achieved MVP we focused on our stretch goals. I wanted to work on making it a responsive design and looking better than MVP. We hadn’t planned well for the front end, so we had to kind of work backwards by using a Bootstrap template off http://startbootstrap.com/. It now looks a lot better!

This slideshow requires JavaScript.

We used Trello to put in place the use of a kanban board as part of our agile methodologies. This was useful with some people working at home in the evenings. However, we got a bit carried away with the number of ‘tickets’ on it and the flow of these – the board got a bit crowded and hence wasn’t as useful as it could have been.

trello 2

After some guidance by the teachers at EDA we became better at using the board. Although it seemed to me that those that hadn’t used Trello before weren’t that keen to use it. I, on the other hand, had used it at school with students and could really see the benefits, plus I kind of live on the computer.

A quick think about the lessons learnt…

  • it can be difficult working in a team
  • it is even harder when abilities are quite different
  • however, if worked right, everyone is able to contribute the best they can
  • it is exciting working with others and achieving something you didn’t think you could
  • hard work pays off
  • it is worthwhile to take the time to work with others and figure out how best to work with others
  • it can be very easy to slip into a ‘negative’ mindset about people when others are thinking the same thing
  • it can be difficult in a group situation to always be thinking about being kind – or actioning being kind
  • I learnt a lot about myself working intensely with others
  • sometimes I swear too much and get too loud!
  • sometimes I just need to let it out by swearing and being loud!
  • it can be hard to step away from coding when you are really focused on something and want to get it done.

There are many more things I have learn, that is just a quick list off the top of my head.

So, after we finished coding our site, we then had a day to prepare for the final project presentation on the last Friday of bootcamp.

presentation

You would think that since I have been teaching for a few years and kind of have been in front of people for most of my working life that I would be sweet with speaking and presenting. But I still got nervous and I think it was because I was invested in what we had made and really proud of it.

The day ended with graduation of bootcamp and a party. Got this cool little gift from EDA.

kiwi

Advertisements

Phase 1 Completed! Dev Academy Bootcamp

I have completed Phase 1 of Enspiral Dev Academy bootcamp! Yay! I am really excited to get into Phase 2 as we graduate to Sinatra – a domain-specific language, which we will be using to create web applications! It is like graduating to secondary school!

During Phase 0 I really enjoyed working with HTML5, CSS3, Javascript and JQuery, so I am looking forward to getting back into using those as well as it feels more real now that we are moving to web applications.

Recap of the last week:

  • databases
  • object-relational mapping
  • schema design
  • SQLite
  • gems, gemfiles (want to use Nyan Cat RSpec Formatter at some point in the future!
  • ActiveRecord
  • rakefiles
  • migrations
  • associations
  • lots of ORM!

I also “blinged” up my Sublime text editor with Cobalt2 after reading this article “Top 11 Programming Fonts for your Text Editor and Terminal“, and I have started to use iTerm2. I feel that it helps me be more efficient in my work with this cool looking styles.

Stand out learnings from this week:

Technical – the building blocks are really started to fit together, with learning about ORM, databases, ActiveRecord and how everything works together, it seems to be making sense!

Engineering empathy – listen learnt (again) this week was that I can have a ‘tunnel’ focus when I think I am on the right track, and sometimes this does not serve me well. It is beneficial to check in with others in your team more often then not. It is important to be open and transparent with people you are pairing with and in groups with on projects.

Learning – that I have learnt more than I think I have! There was a self assessment task to do over the weekend and the first two releases I found pretty easy. However, the last one which was using ORM, database and ActiveRecord I felt very uneasy about. But as it turns out I managed to completed it to my utter surprise, as I don’t know how I got it working! I will be doing a code review with a teacher during the week to make sure I do know how I got it working. Maybe I will think differently in the morning, as that seems to be when my mind is at its best.

Dev Academy Bootcamp: Wk 2 — OOP

Dev Academy Bootcamp: Phase 1 – Week 2 — Object Oriented Programming

The focus of this week has been Object Oriented Programming.

During this week I have learnt:

  • a lot about classes and fruit trees! (The first activity was creating an Orange Tree Grove and then converting it into a Tree Grove with different types of fruit trees – enough said.)
  • introduction to test driven development
  • inheritance
  • encapsulation
  • coupling
  • law of Demeter
  • private / public
  • user stories
  • MVP – minimum viable product
  • made cookies and ovens (no, not in the real sense)
  • parsing data
  • MVC – model view controller
  • working with others

Wednesday evening our homework was to watch a video on Models, Views and Controllers, to set us up for Thursdays challenges on MVC. We had built a Flashcards console app the day before and on Thursday we had to change it so that it was suing MVC design pattern. I enjoyed this and using classes really started to make sense to me.

It has been good to get to a point where we are making things that do stuff – actually making a flashcard app (even if extremely basic and only in the console) compared with making orange trees, cookies and hospitals.

This image really helped me understand MVC the flow of how it all works. mvc-sequence

After completing our Flashcard challenge and making it follow the MVC pattern I was feeling pretty good leading into our first group project on Friday.

I wasn’t too sure what to expect except that we would be working as a team of four Rubyists and building something to do with what we had been learning over the first two weeks. The project was pretty open, we could decide what we wanted to build, obviously though, a console run program was used, as thats all we know so far.

Our group of four has probably focused more on our group processes over the last two weeks then the technical aspects of coding. I have enjoyed this as I have learnt a lot already about working with others in the environment. I feel that this meant that we had a strong base as a group to work from with our project. We took our time with planning out what, when and how we were going to do things. Although we may  possibly have gotten bogged down in choosing a product/idea to make if one of the teacher aides hadn’t come over and given some thoughts and suggestions.

A side note – I am really appreciating the way that the teachers and teacher aides at Dev Academy interact with us. When needed we are given the time we need to solve a problem, rather then being given a possible solution to soon and we are also gently nudged in a certain direction when we might be going off on a tangent.

Our planning board started of with a user story and then we had a think about what we needed and then put the parts into the MVC design pattern.

planning board

We used a Kanban board when we got into the creating. I really liked the physical nature of using a whiteboard as I enjoyed being able to move the post it notes once tasks were complete.

kanban board

We unfortunately hadn’t gone over agile roles before we started. Even though as a group we worked really well, I feel that if our roles had been more defined rather then blended we may have been even more efficient. I guess a good learning opportunity!

So, what we made – Cocktail Suggester! Github link – https://github.com/libbyschuknight/cocktail_suggester and a demo.

I really enjoyed working on a group project, right from deciding on the idea to presenting our minimum viable product to everyone at EDA. There are couple of features we nearly got to – printing out the recipe of a cocktail, adding a cocktail to the list.

Cool things from this week:

  • learning about the ascii artii gem for the console art / fonts
  • on the macbook being able to swipe across when in full screen to go from presentation to code to terminal! (Got rather excited about this one – must be all the presentations I’ve done in the past where I couldn’t do that!)
  • oh and MVC has been good, it has tied in a lot of components that now make more sense!

Also this weekend, Rails Girls Wellington has been on at Enspiral Dev Academy and from all the tweets it sounds like it has been a great time. At the RailsGirlsWgtn weekend last year is where I was first introduced to Ruby and where I found out about EDA. A lot has happened since then and I never would have thought I would be actually a student at EDA. It has been one interesting year. I hope to in the future join the cool people that make RailsGirlsWgtn happen. For those that stepped into Ruby and Rails land this year, anything is possible!