I first got into programming as a high-school kid because playing around with computers, creating games and understanding how things worked was fun and exciting. Likewise, I choose to study computers and programming in university because it was fun: I couldn’t believe my luck that people were being paid to play with computers all day. Even then, when I had to choose electives, I would choose the ones that sounded the most interesting, instead of the easiest ones or the one with the best job perspectives. I don’t regret any of this, even if those choices were not always the most optimal ones, since school is a time for learning and experimentation.
Playing shouldn’t stop after school: it’s an essential part of being passionate about software and programming and enjoying your job. We keep learning new skills after work and have side projects as a hobby because we love the code and the technology and want to keep tinkering with it.
I’m a fan of planning what you wish to learn instead of just reacting to change and jumping all over every new thing popping up. On the other hand, if what you planned sounds boring and dry, you’re not going to last very long even if it’s the logical and wise thing to do. You need some motivation to sit down at the keyboard and learn: if your brain shuts down as soon as you sit to write a line of code, it’s useless since you’re going to give up sooner or later. If your career is where you want it to be, you shouldn’t hesitate to integrate a lot of to play and experimentation in your learning schedule.
In the next few weeks, I’m going to write about play in the context of improving your skills, and things you can do to make programming fun again:
Going through a complex setup just to compile and launch your first program using a new language is a pain, especially if you only want to play around with it. At this point, you only want to tinker with new ideas and have quick results. Fortunately, there are many environments that are especially designed for this, such as the Arduino and Raspberry PI. You can take advantage of those tools when you have the urge to play with something new without taking on a huge commitment.
Free-form experimentation with a new tool or framework is a great way to get familiar with it before going more in-depth. To be able to play while learning, you need to have a good understanding of the subject or pick something simple. It’s hard to improvise if you don’t know enough. You need to understand what’s going on before going off the beaten path. For example, I would be very bad at playing around with big data concepts and tools, but I can play with new patterns, ideas and web frameworks without knowing all the details since I’ve seen many of them and know what to expect.
Another element of play you can add to your projects is playing with your goals themselves. Just planning on doing something each day and making a game out of it is a good way to gamify your learning. If you add a mark on your calendar every day you completed a learning session, you’ll loathe breaking the chain after a while. This works best if you define a period during which you want to work: if you focus too much on the result instead of the process, you’ll get discouraged if you get into unexpected difficulties and can’t reach your goal.
If you’re working on programming and software skills during your spare time AND your working hours, you need to find another hobby. Switching to another mode of thinking from time to time will help you understand what you have learned better and come up with new ideas. Your brain works best when you’re not close to a given subject all the time: you need to give it some space to process what you learned. Those activities should be a complete change of pace from programming, like art (offline!), doing something manual or moving instead of sitting down. They don’t say that you get your best ideas from the shower for nothing: you’ll get your best insights when you’re deep into something else.
It’s important to keep the enthusiasm you had about programming when you started out if you want to keep growing and learning new things, and play is crucial to this. There are phases when the passion will fade and playing with new technology may just be the thing you need to rekindle that love and motivation. For me, this blog has been a great project to help me find my passion about programming and software all over again and speak with interesting people. So go out and play!