Howdy! As y’all know from my last blog, this semester I’m taking a class called Mobile Games Programming that focuses around building and programming games for Apple’s iPhone. Already I’ve learned a ton from the class, and I want to use the class as an example to tell y’all about the techniques that I use to get the most out of my classes.
*Disclaimer: This is just one of the methods that I use to help me learn, and by no means is it the only way! Strategies like rereading notes and materials, quizzing classmates and doing practice problems (a method I use a lot, actually), and many other methods are all good ways of learning. I just want to share with you one method that I use that may work for you as well.
One thing that I’ve always had trouble with is straight memorization; I tend to prefer and enjoy problem solving rather than just memorizing formulas. This had always been a struggle for me in foreign language and history courses, and I was afraid that it would make programming a struggle as well, as there are many different programming languages we use. In just over 3 semesters I’ve used C/C++, Java, Objective C, and GameMaker script in my classes as well as languages like Windows Powershell in my internships. Keeping the various syntaxes and specific rules of each language straight can be rather difficult, especially when learning a new language.
This brings me to my main point; My preferred way of really getting my head wrapped around a new language like that is to just jump straight into it. I like to find something cool that I want to make with the language and then just start trying. While reading about the rules and going through small specialized examples is helpful to start, I’ve found that starting a project I can really enjoy delving into and putting everything that I know about the language together helps me to really understand how it works, rather than just rehashing how I’ve seen it work. Finding something that motivates me is key, since it helps me to discover the parts of the language or material that I’m curious about and often leads me to challenges that we may not even cover in class. Often, I’ve found that working on my own projects for fun gives me a much better understanding of the language or material since I have to really understand what is going on to make my project work.
For example, in my Mobile Games Programming class, we are learning Objective C in order to build iOS applications. In class, we’ve already finished with our first lab that introduced us to the language and many of the tools at our disposal while we recreated the classic Duck Hunt arcade game for mobile devices. However, I want to really understand the language since the mobile application market is something that really interests me, and so I decided to expand the lab. I built out a full heads up display to show the user vital information like remaining time and bullets as well as developing a scoring system that didn’t previously exist. Along with the scoring system, I went a little deeper to see how the actual device stores user data when the app is closed and built upon that to develop a high score system. In taking on this project, I feel like I have a much better understanding of how Objective C flows and I know that I can program in it much more effectively than I could before. My next step is to build a new app from scratch. If you read my blogs from last semester, a group of friends from my Video Game Production class and I have been working on laying out a mobile endless runner game, complete with various levels and mazes as well as a feature where the player must actually unlock various transformations and transform his character to pass through certain obstacles. In the coming weeks, my plan is to take this idea and blueprints we have and start work on it using Objective C.
Ultimately, what my method boils down to is finding what you’re really excited about in a class and putting it into practice. Personally, I’ve found that theory can only get me so far, and it’s not until I start to apply what I’ve learned and make it my own that I really understand and learn the material. I hope that any of y’all out there that have a similar experience can gain something from this, and if you have any other strategies you use and you’d like to share, feel free to leave a comment!
Until next time,
Patrick