Irene and I built a thing! Anonymous Blog
It took pretty much all yesterday, but we managed to finish it and push it up to Heroku. I'm kind of super excited about it. We legitimately made a web application where you can add posts, add tags, edit a post, delete a post, see a list of posts, see a list of tags, and see a list of posts that have a specific tags. On top of Ruby, we used PostgreSQL, Sinatra, HTML, CSS (we used Bootstrap), RSpec, and ActiveRecord.
Whaaaat? I've learned all of these things already?
It was pretty cool just to click around the website and know that I helped to build it and can explain how it works.
Assignments like these are what Phase 2 is all about. There's been a huge shift in what's expected of us. In Phase 1, Sherif and Shadi threw a lot of concepts and challenges at us, but we didn't need to finish all of them. We were in charge of our learning, and we could choose to finish the assignments or skip them (either because we knew how to do them or because we thought our time could be better spent on something else).
That's what we assumed Phase 2 was like, not having been told otherwise. We had four assignments on Day 1, but everyone I spoke with had only worked on the first assignment. Some people finished, but most didn't. Steven came in and asked us why not everyone had completed all of the challenges.
We're now expected to finish the assignments. They have due dates, and some of them are mandatory. It was a bit frustrating not to have these expectations laid out on Day 1, but we had a discussion about it. We're now going to have some expectations laid out for us every day--what exactly we need to get done as well as stretch goals.
It's a pretty huge switch. We'll work on a project that might take all day to finish instead of moving back and forth between a bunch of smaller challenges.
It raises the question of whether it's better to focus on quality or quantity. Is it better for us to be in charge of our own learning, working on a bunch of small-ish challenges that we find interesting? Or is it better to spend the entire day on making one application run and look decent?
I'm not entirely sure yet. I've read about and heard to aim for quantity over quality when learning something. If you make 1,000 applications, you'll probably get pretty good at making those types of applications. But if you're making five day, then you're not making very cool apps. So after 1,000 of those, you'll be pretty good at making small, boring apps.
But if we've got one or two assignments every day (as well as our ten portfolio challenges), then that will be somewhere around twenty or twenty-five decent-sized apps that have a lot of work behind them. Twenty-five is still a pretty good number in terms of quantity for three weeks. We'll get pretty great at making functioning Sinatra apps that have basic styling.
Actually, I think I'm on board with the quality argument here. I think we're at a happy medium. We're not spending all three weeks on making a single app. But we're also not spending twenty minutes per app to make a thousand crappy apps. One per day will give us a chance to work on the basics and then add a little more on. Yesterday and the day before, I learned about how all of the basic HTTP method verbs work, as well as how to make associations between tables in ActiveRecord. I learned about RSpec, about how to display validation errors, and a bit about Bootstrap, too.
Now on my next applications, each of those won't take three or four hours. They'll maybe take half the time, and that'll leave me time to work on learning and adding new things to my application. I know a few of the topics that I want to explore next to improve my code, and I know that my applications will get better and better until I'm making some pretty cool stuff by the end of Phase 2.
They were huge learning days, and the supercool fun thing is that a huge learning day is just par for the course here.