Oops, I wrote this on the train a few weeks ago and never got around to posting it. It was about finishing as much as I’m going to do of Code School for now, and I haven’t done much learning on my own since so I guess I don’t have much to add! Here’s what I wrote:
Well, I didn’t finish every single class on Code School but I did a whole lot of them and I’m taking a break now. Take a look at my “report card.”
I’ve also really been learning a lot at work, which is good to acknowledge. One of the biggest things has been learning Rspec to write tests for my code. It’s still very new to me and there are whole philosophies about how to test, how much to test, etc. But even in just this one project I’ve been doing I feel like I’m starting to sort of “get it” in terms of how to go about everything and it kind of just makes sense! Also thanks to some great help from some people I work with. Also I’ve definitely gotten much more comfortable working with Git and especially as part of a team. And even little things like I needed to use vim the other day just for something basic but so I figured it out. Things like that that I always knew I’d need to do at some point – but it takes actually *needing* to do it to take the time to figure it out – and then it turns out to be not so hard! That’s definitely a big thing that I keep realizing. So many things before I do them seem super daunting – like how am I really going to figure out Rspec and write tests for all this code or Vim is scary and can I really use it on live code without breaking something or can I really undo something in Git without totally messing something up for everyone? But in the end it just takes facing it and it never ends up as scary as it initally seemed. And it’s all about getting this experience I suppose.
I’ve been meaning to get back to blogging for awhile. Now I will finally do it – over 3 months since my last entry… So a quick update: a few weeks after Coding Dojo ended, I ended up back at the educational research company I was at before Coding Dojo, but in a split role half in my old job and half in their web development group. It worked out very nicely, and I’m so excited to actually be working as a web developer. I continue to devote a lot of my free time to learning more, and that’s where I want the focus of the blog to mostly be. My “coding road” continues…
Overall, I feel like there’s just so so so much out there. So many different topics, so many great materials available, it’s just a matter of picking what to work on and finding the time to work on it. I have an incredibly long list of things I want to do, and I’m just trying to take them one step at a time without getting too overwhelmed by all of the zillions of things I want to learn. For now my focus has largely been on Rails since that’s what my job mostly is and is what I would want to focus on anyway for now. Which is somewhat notable in and of itself. People had always asked me where specifically I wanted to focus before and during Coding Dojo, and I never had an answer because at that point I was interested in learning some about a bunch of different topics and then seeing what most drew me in. At Coding Dojo we spent so much time early on on PHP that I started building confidence there and getting used to that, and then starting Rails back then was a weird, new thing. But little by little I’ve gotten really into Rails and understanding “The Rails Way” and also the Ruby language itself, and now I kind of don’t want to touch PHP anymore (which generally is a fairly popular sentiment). :-) Though I still am very grateful to have learned PHP first because I think if I went straight to Rails, I wouldn’t understand a lot of what Rails makes happen for you.
So the first big thing I did after Coding Dojo was to go through Michael Hartl’s Ruby on Rails tutorial. Everyone had told me it was a great resource, and it definitely was. It’s pretty long, and it walks you all the way through creating a Twitter-ish web app. It was the right level for me – it may be a bit too much for someone brand new to Rails – but it solidified my knowledge in certain areas and taught me lots of new things, or at least made me familiar with new Rails topics that I didn’t know much about before. The best part for me was that it creates the entire app using test-driven-development writing tests in Rspec and goes over the general philosophy and workflow of testing first, which was new to me but is very important. And a highlight for me was that in the middle of my working my way through the tutorial, I got to see Michael Hartl speak at a Learn2Code conference, so that was pretty neat – to actually see in real life the person who I’d been listening to for hours on end.
Then the next thing I’ve been doing is working my way through some of the Ruby/Rails classes on Code School, and yet again, I’m pretty blown away by the quality. Code School is more game-like than say Udacity, and each course has around 6 levels with a video per level and then challenges after the video to test what you’ve learned. The courses have themes to them like a whole sequence of Rails for Zombies courses that are zombie themed and Ruby Bits which is old-school video game themed. And each course has a little jingle that starts off each video in the course, which is pretty fun. Again the level of the material is pretty right on for me, and some of the content in the later courses looks maybe a little advanced for me but it’s good to gain familiarity with those complex topics, even if I don’t fully understand them the first time through. I’ve been through a few courses up til now and have a whole bunch more I want to do, and I’ve learned a lot of new things or again solidified existing knowledge, and it’s been fun doing it. I’m definitely pretty impressed with Code School.
So that’s all for now. I’ll try to get back in the habit of blogging semi-frequently. Definitely not as much as when I was at Coding Dojo, but hopefully more often than every 3 months… :-)
Hard to believe but I’m done with Coding Dojo. The past 10 weeks have been a total whirlwind and it’s really flown by. But I’ve learned so so much, it’s amazing. Although there are definitely aspects of Coding Dojo that are not ideal or that could be improved, the most important thing is that I’m coming out of it having learned so much. And overall one of my big takeaways is that their curriculum, as in the topics taught and the order in which they are taught, is really good. I’m glad to have covered such a wide variety of topics, and looking back now, it all makes so much sense in that each topic builds on the topics that came before. The experience building a project was also really valuable, and I learned a whole other set of things through that process. In the end, I felt really good about my project for the amount of time I had, and it was fun to show it at Demo Day. I’m sad that Coding Dojo is over, and it’ll be so different not to be going there every day and seeing everyone and continuing to learn in that intensive, immersive environment. But I’m so excited to keep learning and keep building things. I have a long list of things I want to do, between getting more experience learning Rails, learning other technologies that I didn’t learn at Coding Dojo, continuing to add to my Math Canvas project, and building new projects. Overall, I’m just so excited to have found something that I love so much. Who knows exactly what my future holds, but one way or another I know I want to continue down this “coding road.” And we will see where it leads… :-)
2nd to last day! Tomorrow is Demo Day!
I still have a very long list of changes I could make to my project, and I’ll keep making changes until I run out of time (and then of course can still work on it afterwards). But… Here it is!:
Feel free to add some drawings. :-)
Having finished as much of the Coding Dojo coursework as I’m going to do, it’s time for me to work on my final project, and this final week (week 9) is officially “project week.” My project is going to be a place where elementary math students can draw out solutions to math problems. The idea highlights the importance of individuality since each student’s thinking to solve a problem may be very different, creativity in students expressing their thinking using drawing, and problem solving in that the drawing forces the students to explain their thinking (visually) with the focus being on understanding how they get to the answer vs. just the answer itself. This might be especially good for students who aren’t as strong at expressing their ideas verbally or in writing, and this provides the opportunity to combine math with art in a sense.
So I’m building off of the drawing app that I already made during our first project week (week 6) and am working on providing the structure for the rest of it in Rails. However, it has been a frustrating few days programming-wise! I keep getting stuck on things that take hours to figure out. So I’m making progress but very slowly!
I built the basic structure in Rails and integrated the drawing app that I already created, and one major challenge right away involved figuring out how to save the drawing as an image. I got stuck for hours where I thought I was doing everything correctly but the image data was not saving. In the end it turned out that the jQuery Mobile library I was using for the touchscreen also forces forms to submit with Ajax and that was causing a problem with saving the images – so once I disabled Ajax for the form submissions everything worked fine. Many hours later… :-)
Then I knew I would need to deploy the Rails app to Heroku even for Demo Day vs. just keeping it on my local server since I want it be live so it can work on the touchscreen and to be able to show that. So I figured I should tackle that sooner rather than later to make sure everything worked correctly, so that turned out to be a major challenge unto itself. We learned Rails with SQLite for the database which of course is not supported in Heroku so I had to figure out how to migrate to Postgres which had all sorts of challenges with installation and getting everything to work. But I got it eventually – again many hours later… :-)
And another major challenge that I haven’t yet figured out is my draggable clip art isn’t being saved to the image files because it’s not actually part of the canvas image. Eventually I got it to work and save on the computer version but I haven’t gotten it to work on the touchscreen.
So I’ve made progress but it’s been slow. I’m trying to keep it as simple as possible and aim to at least have something “finished” for Friday’s Demo Day even if it’s basic. I’ll start with minimal features and can always add more later if I have time. Luckily I still have a whole week and can devote myself pretty much entirely to the project, so hopefully I’ll end up with something decent for Friday! I can’t believe I only have 1 week left of Coding Dojo. It really has flown by!
I guess the day count is weird – just days of actual class in the 9 weeks. It’s been so many more days than that. Anyway, I’m still going with Rails… It’s definitely starting to come together. After much struggling… I’m currently working on building user registration and login. Again. I think this is the 3rd time? First with straight PHP and for “the wall”, then again with CodeIgniter, and now with Rails. Interesting to do the same task different ways and compare. Each has its own methods of validation, password encryption, error messages, etc. At this point the whole login validation thing is old hat.
- Check if the username (or email address) field on the login form is blank and if so display an error message saying so.
- Otherwise, check if the username exists in the database and if not display an error message saying so.
- Otherwise if the username exists in the database check if the password matches and if not display an error message saying so.
- Otherwise if the username and password match then all is well and log the user in!
Whee. Wanna see what that looks like? It occurs to me that I’ve never posted any actual code on this blog. Here!:
(Look at all the pretty colors!) :-)