Hello Rails! Week 1, Phase 3 – Dev Academy

This past week at Enspiral Dev Academy I have had a fantastic time!

In the guide for this phase it has this:

Phase 3 is the most exciting phase here at EDA. In this phase we no longer view you as students or developers-in-training, rather we look at you to be valuable, albeit junior, collaborators in the craft of software development.

I would agree, Week 1 has me very excited. It is lifting to be seen as “collaborators in the craft of software development”. And it really is about crafting software, websites, apps. I haven’t yet made anything really cool and exciting, however, I am getting excited by what I am doing, how I am doing it and the potential for me to create and craft in the near future. This is the first reason it has been a great week.

Ruby_on_Rails_logo

Secondly, the way the course has been structured works well  for me. In this first week of Phase 3 the Rubyists learn Ruby on Rails (the C Sharpies do a group project together as they had a big learning curve in Phase 2 and are kind of waiting for the Rubyists to catch up). There is less guidance and structure to this week of Rails then the previous first two phases. However, there still is a good structure there and this was useful for me as I like have a good solid structure when I am learning new things. The first two days of the week I re-created my shopping cart with Rails. For one of the Phase 2 personal projects we made a shopping cart using Ruby and Sinatra. This was referred to as “Diet Rails” but we learnt all about routing. Then with Rails, what happens is that it does a lot more for you. Which is cool and some may think what was the point of doing what we did with Sinatra but it made Rails seem not as scary to me. I was able to understand a lot of what Rails was doing and creating for me having had spent a lot if time creating all those same things when using Sinatra.

I worked on the shopping cart for a couple of days and covered the ins and outs of it with lectures plus learnt about Devise and Omniauth. Day 3 was set down as Test Driven Development and this is an area that I hadn’t focused on during Phase 1 or 2 and knew I had to knuckle down and get my head around it.

A slight break in this track of writing to mention another reason that I have loved this past week. I have ended up being the only Rubyist in Phase 3! So, our cohort starting with 5 C Sharpies and 4 Rubyists. Part way through Phase 2, one rubyist decided she wasn’t going to do Phase 3 as it wasn’t going to be useful for where she was at and where she wanted to go. Then the two others both decided, for various reasons, to roll back a cohort and repeat Phase 2. I felt at the end of Phase 2 that I had strong forward momentum and wanted to jump into Phase 3 whole heartedly. So, I have been working by myself mostly over the past week and I have loved it! It has meant that I have been able to focus on my learning and use tools and methods that work for me.

Wireframes, routes, ideas about apps made in Rails.

This has also meant that I have had many one on ones with the teachers at EDA, which leads me back on track to TDD. On the Wednesday the first ‘lecture’ Joshua Vial was set down to take. It is a bit odd doing one on one lectures, so Josh come over to where I was working and we started talking about TDD. He came up with a great idea to create a blog app in Rails with the proviso that I didn’t open the server (so didn’t look at the website I was making) until I had written the tests and the code for all of the functionality I wanted. We also did “ping pong” pair coding – this is where one person writes a test, you swap, second person writes the code to pass the test and then writes another test, you swap, etc etc.

Screen Shot 2015-06-20 at 8.59.03 pm I have learnt to enjoy test driven development. I am even thinking it would be fun to go back and revisit a lot of my projects and write tests for them. It was good to finally get my head around testing and I got to do some Capybara testing as well.

Screen Shot 2015-06-20 at 9.00.04 pm

On Thursday and Friday I learnt about Mocks Stubs and Doubles and using AJAX and JSON with Rails.

And to cut a post short that is getting long, last few important things from this week, at the start Samson Ootoovak gave a great intro to the week that set it up well for me. Within this was the clear intent that there was freedom to deviant from the structure and that this was strongly encouraged if you didn’t feel the content was useful or if you found any of it boring. It was cool to have this acknowledged.

Being the only Rubyist this week has given me the time and space to learn and to solve problems by myself, which has been a valuable experience. It has also meant that I have had many one on ones where I have asked questions and learn heaps, which has been fantastic.

Also on Thursday evening I attended a small meet up at EDA, for anyone who is interested in learning Ember JS. I think it will be extremely useful to know at least one JS framework before I finish at EDA, so decided that this would be a great opportunity. Ember has been created by a lot of people who come from a Ruby and Rails background so the way it is structured in its implementation is similar.

One of the most important learnings from this week is that I am no longer scared of learning new languages! Now that is really cool! I’m actually excited about learning more so I can do more cool things!

Advertisements

Phase 2 done – Dev Academy Bootcamp

Wow, so another phase completed and the final phase to go. I have enjoyed Phase 2 a lot. It has been great getting out of the console and onto the web. I like making sites look good and felt pretty confident with HTML and CSS before Phase 2. It has been heaps of fun to dive into the web and the learning has been exciting.

A quick overview of what Phase 2 has covered:

Week 4: Testing, Simple Web Applications, and Github: cover Rspec, Sinatra, ActiveRecord, HTML, CSS, and Heroku.

Week 5: Enhancing Web Applications With JavaScript: add JavaScript, as a way to enhance your web applications, have a solid introduction to JavaScript the language.

Week 6: Complex Web Applications: Week 6 ties it all together, discover how to use background jobs, OAuth, and other APIs.

It has also included three personal projects – a server side app (shopping cart), a client side app (customer management relationship app) and an api app challenge (this was wide open, I had a play with the Twitter api).

Screen Shot 2015-06-14 at 9.38.23 am

The personal projects were a great way to review and embed all the learning that happened during Phase 2. I particularly found this for the first project, the shopping cart, as we had 6 days for it, and I was able to spend more time on implementing the core the functionality. The client side and api apps were given to us at the same time and we had 6 days to do both.

For the sever side project, I spent a lot of time planning out how I was going to create the database, web pages and routes:

By taking the time with the planning meant that I only had to make my database once. This meant that I wasn’t rushed with any of the other components of the site.

The Week 5 group project I am really happy about. This was Javascript week and the suggested options were Connect 4 or Survey Gorilla. Neither of these really excited me, so I pitched the idea of a memory card game. Through the development of this game I enjoyed getting to learn more JS and diving into JQuery and AJAX.

Screen Shot 2015-06-14 at 12.05.52 pm

We are a team of three and had a focus on our learning rather then worrying about making a really cool product. This meant we weren’t rushed in our planning and took the time to step back and look at the bigger picture. Hence, our planning was thorough and thus meant our development was efficient and effective.

photo 2Another factor that helped was having a small minimum viable product. We decided on a 2 by 2 grid, which meant only 2 faces, however, not knowing how difficult this was going to be it was great having a small MVP. We achieved this quite early on, which meant we could dive into our stretch goals.

Other learnings / experiences from Phase 2 have been embracing unexpected learning opportunities.  In our cohort project in week 6, I was suppose to be in the front end / JS team but due to illnesses was in the back end with Ruby. It took me a little while to be happy with this, however, learnt lots.

I think I am tending towards the front end as I like creating stuff on the web and interacting with the web.

I had an ‘aha!’ moment during week 6 where I was reading this job description:

Screen Shot 2015-06-14 at 12.16.58 pm

and realised that I could understand everything that it is talking about and that I could tick off most of them to some sort of degree. That was exciting!

Here comes Phase 3, three weeks – learning Rails, more JS, JQuery etc and then the final cohort project! Bring it on!

Half way through Phase 2 @ EDA Bootcamp

This is a very quick post as Phase 2 of Enspiral Dev Academy is really full on, madly busy.

In week 4 (week 1 of Phase 2) covered:

Testing, Simple Web Applications, and Github: In week 4, we cover Rspec, Sinatra, ActiveRecord, HTML, CSS, and Heroku. Your primary objective is to feel confident that you can create simple web applications on a team and on your own, test them, and get them hosted on the Internet for your friends and loved ones to see.

Feeling good with Sinatra as I am working on the first personal project, which is using Sinatra, Ruby and ActiveRecord (and HTML/CSS) to make a shopping cart. I didn’t think I really knew what I was doing but after talking with a teacher and a couple of teaching assistants about how to approach it, I have really surprised myself. I have a shopping cart that can display all the orders for a particular user. Yay!

Although I haven’t done any testing yet and need to add some more functionally. But that important thing is that I have learnt more than I have realised and that I can do this!

Screen Shot 2015-06-01 at 10.06.19 pm

Looking forward to spending more time on getting deployment working. We deployed our group project – EDA Face Cards – but isn’t working on Heroku properly. We are really happy with the design of the site. I did this with another group member in a few hours on the second day of the project. They are two day projects at the moment.

The first personal project is due on Wednesday and then we get given the next two! Which I think are due the following Wednesday – madly busy! But on what fun!