Another day of rails has been completed. We learned about encryption and how to create fake users with sessions and cookies. At the end of the day I mentioned a Ruby Gem to my instructor, Devise, that works with user authentication, and he decided to walk us through it quickly after class.
Then I spent the entire evening working on my homework, the CRUD Rails app for keeping track of your favorite coffee spots and coffee drinks. I got a little too into styling the app, and should have spent more time trying to figure out a few coding hurdles. Tomorrow my goal is to implement commenting for the app and also try to look into an API to roll into it. I know that’s probably too ambitious, so I’ll see what I can get up and running before calling it a day.
So much rails, my mind is just swimming in words like controller, model, and method. Today I woke up super early to get a head start on my lab and homework for the week. I managed to knock out a couple of the bonuses for our Game of Thrones web app, although I didn’t bother to cover everything since I wanted to devote some real time and attention to my homework for the week.
Here’s a screenshot of how I styled the lab app:
I successfully managed to nest routes for the lab, but didn’t have time to tackle many to many associations with my models. I’m hoping to do that with my homework or second project.
In the afternoon we walked through nesting routes and the type of fixes that are necessary when we move routes from being un-nested to nested. Then it was back to a long day and evening of coding. I’m hoping to make some real progress with my coffee shop app.
Wow, what a blur of a day. I’ve been working on CRUD apps pretty much nonstop the past couple of days. I’m excited that I seem to be making some progress, and I always enjoy seeing actual projects getting pieced together. It’s the best way for me to really assess what I’ve accomplished.
We started the day off looking at rails validations, errors, and flash. Validations are ways to ensure that users don’t submit forms without filling out required fields. Flash are messages that let the user know what is happening (i.e. if they’ve created a new record). When it comes to errors, there are ways to handle the messages so that users don’t see the all-too-familiar rails red error views.
Later we started our lab which is a Game of Thrones-themed CRUD app. I had fun styling mine and finding images to use for the different characters and houses. I also stayed at GA pretty late getting the app up and running. Tomorrow I’ll have a chance to work on the bonuses and get started on the homework for the week – which is yet another CRUD app. And then at the end of the week, we’ll start our CRUD project. So much CRUD.
Today was another Ruby on Rails day, and I found myself feeling a bit of a low about my coding. Although I understood a chunk of what we covered with CRUD, I decided to start brainstorming ideas for my next project and found myself doubting myself. I wondered, would I actually be able to pull off a good project?
Other graduates of the program have told me that it’s perfectly normal to feel these highs and lows. Some days you feel like you’re really mastering everything while other days you have no idea what you’re doing. The trick is to power through those days when you’re feeling down about your coding, because soon enough you’ll feel good about it again.
A few months ago I took a part-time course in Ruby on Rails. I liked how one of my classmates described the class like being taught Russian in Russian. It’s definitely difficult to wrap your mind around programming concepts when you haven’t had the experience or background. And today was a bit of a review for me, but at the same time, I realized how complex the concepts are and that it will definitely take a lot of repetition before I feel completely comfortable with it.
Today I took the opportunity to share a fake Rails error page that I put together while going through the frustration of working on my final project for that part-time course. My current class seemed to appreciate my sense of humor:
And after a day of Rails lectures, code-alongs, and trying to tackle a few tutorials, I feel like my head is spinning with words of controllers, models, and views. It’s making more sense, but it will take me a bit to feel more comfortable with the terminology and how to get started with setting up a rails app.
Working on associations and ActiveRecord is actually pretty fun. Today was a lab day, so for the entire day I coded away on a Pokemon lab app and a Landlord app. I didn’t bother putting in too much extra work with the Pokemon one, but I had some fun with styling and creating more dynamic drop downs for the landlord one. The apps focused on searching records, the association between records, and being able to add, update, and delete records. Seeing CRUD in action made it make a lot more sense to me.
One cool thing I learned today? The dependent destroy association, where you can delete all records of a table that are related to the record of another table. It was definitely a very cool moment realizing there was a simple way to resolve an issue I had. The more I delve into this whole coding thing, the hungrier I get to learn more. I’m excited to see how much progress I make next week. I never thought I’d understand CRUD so well, and with every repetitive line of code I write for these assignments, the more it sinks in.
Next we reviewed CRUD with ActiveRecord and Sinatra. The instructor walked us through setting up basic adding, deleting, and editing items in a simple Sinatra app. Then we worked on tackling the same work-flow, and later the class broke to begin working on a CRUD lab as well as another CRUD-related homework assignment.
One thing I’m noticing is that this bootcamp definitely gives you your fair share of highs and lows. Sometimes there are highs when you’ve managed to solve a problem creatively. Other times there are lows when you haven’t been able to figure something out. I guess the moral of the story is to keep at it when you’re having a low, because soon enough you will get another high.
We covered a lot of ground with Sinatra that reminded me of rails back when I took the back-end web development course at GA, dealing with views and embedding Ruby code in html templates.
We reviewed REST, otherwise known as REpresentational State Transfer, which refers to the way browsers interact with servers. This includes the five main methods: GET, POST, PUT, PATCH, and DELETE. We also learned about how query parameters can be set up in web applications where you pass in dynamic params.
The rest of the day involved working with ActiveRecord and Sinatra. Overall, understanding the structure of prepping files in Sinatra will take a little bit of review for me. There are some strange conventions involved with naming files and requiring other files, that will only take a matter of time before they are second nature to me.
It’s been an exhausting week packed with tons of assignments, hands-on work, and lectures. Today we continued our work with Ruby, focussing on object-oriented programming. We learned about classes for making different instances, initializing arguments when a new instance is created, and methods.
Later in the afternoon we looked at inheritance and how we can set up classes that inherit methods of other classes. Everything made sense to me, but when it comes to tackling hands-on projects, sometimes I have trouble figuring out where to start. Since we’re covering so much information every day, it’s easy enough to stumble here and there.
Last night I only got about two or three hours of sleep because I was determined to figure out our homework assignment. However, I ended up giving up, and turned in an incomplete assignment. This morning I got to GA pretty early, and was still determined to figure it out. Eventually I did. The problem? I was having trouble wrapping my mind around mapping arrays in Ruby. Eventually I figured it out, and although the struggle took hours, finding a solution made me feel incredibly satisfied.
During the day we focused a large chunk of time on SQL and making database queries, what relationship databases are, and figuring out the relationships between different databases. I thought SQL queries were actually pretty fun.
In the afternoon we worked on a Ruby lab, which involved creating a command line game that quizzes the user on their knowledge of the state capitals. Surprisingly enough, it was a lot easier to put together. I suppose a night of struggling with the language really paid off in the end – I even played around with using a Ruby regular expression.
This course definitely has its fair share of highs and lows, but I’m excited to see how my skills shape up in the next few weeks.