As you probably already know if you're taking a look at my blog, I'm very enthusiastic about development and along with often writing programs myself I dedicate a fair amount of my time to mentoring younger children in order to teach them vital coding skills. In an article on site TrustedReviews, technology journalist Jason Bradbury made a statement which I personally find baffling: that the recent Government initiatives to educate our children in coding are a "complete waste of time".
I'm strongly compelled to write this article because it seems to be a move in the complete wrong direction. Nonetheless, I respect Jason and his work and following his follow-up on Twitter, will leave out any criticism of the "bad social skills" he initially claimed developers today possess.
The fundamental point of the article, as far as I can tell, is that in years to come his "kids won't need to code because soon computers will just code for them." While I don't know how much coding experience Jason has, I think the key misconception here is that coding is simply a task executed by either a human or a robot. The fact of the matter is, that while coding is necessary to write modern day applications, I think it's a more of a mind-set then a skill. It's about being able to break down a task into a number of smaller steps, and being able to write algorithms which could, for example, solve a Rubik's Cube when followed one by one. Even if a program can be written using "drag-and-drop and a little imagination," as Jason later alludes to, knowing how to efficiently break a task down into this steps is a fundamental skill which should, in my opinion, be taught without doubt.
Delving further into his reasoning, the second point Jason makes is that the future will "just be about being creative." He talks about the fact that what STEM (Science, Technology, Engineering and Maths) is missing is the art, the 'element of creativity'. I agree that this is extremely important, but I don't think this is all that is needed. As a rather specific example of this, many self-taught programmers take a formal course not because they don't have the creativity or understanding but because they lack the established rules which creative individuals have pieced together so that they don't have to. The axioms of development are already established and we should help to teach children how to do something in the generally accepted manor rather than simply in the way in which their mind wanders.
Hopefully this article explains my views clearly, and if you ever do read this Jason, I hope you see that I appreciate the need for creativity. My actual concern is the lack of acknowledgment of the actual discipline of coding itself. I'd love to know what you, and anyone reading this, have to say and I'm always available by email ([email protected]) or Twitter (@oliverdunk_).
Occasionally, an idea pops into my mind and I instantly dismiss it as crazy. A few weeks ago, however, I had the idea of harnessing the power of modern 'smart home' devices to create more immersive Minecraft experiences. I remembered reading about LIFX WiFi connected light bulbs, and this instantly made me wonder if I could sync the light level of my home with the game. It was a challenge, but I knew that it was possible and therefore couldn't turn it down.
I did a little research, and purchased a bulb for Christmas. Light screwed in, MacBook at hand, I threw together a rough and ready prototype in about an hour. I used a Java API which I found here, and used Spigot to get the light level of my player. In hindsight, actually modding the game may have been better, but my experience meant that I was better starting with an API I already had knowledge in.
As you can see, things worked out pretty well. The next day, I switched over from the Java API I was using to one written in python called lightsd. It was more up to date, and also allowed me to access some extra API methods which helped in cleaning up my code. That's the version you'll find on GitHub. I also made sure that the light never went below a certain level, as I found through experimentation that this could lead to the light turning itself off and it then took several seconds for it to turn back on.
If I was to do more work on this project, I'd like to investigate more into the hardware running on the actual bulb. As you can see in the demonstration, there is a delay between me sending a TCP packet to the bulb and anything happening, which I'd like to be able to fix if possible. A bulb with colour could also be interesting, as with some sampling I could perhaps take the shades of nearby blocks into account.
Overall, I really enjoyed working on this. I'd like to do more projects based around the 'internet of things', but time may say otherwise. If you've got any questions about the project, I'm always avaliable on Twitter.
I've always loved sharing my experience with others. Back in July, I helped lead Minecon's official modding workshops which gave birth to hundreds of young programmers and was a brilliant opportunity. Since then, I've been busy revising for my exams but accepting a new challenge has always been at the back of my mind.
A few weeks ago, I made contact with Ruth from Young Rewired State, an organization which organizes events for young developers worldwide. I was recruited as a mentor for the #WeAreTheRangers event in London, which is pictured below.
The premise was simple: teach children about animal conservation using Minecraft, in partnership with WWF, ZSL and an array of other brilliant charities. It was a huge challenge, as I didn't know how many children to expect, or how interested in the game they'd be. Nevertheless, I set off on a train from York and arrived at the Mozilla Space in London just before lunch: a brilliant venue to say the least.
After meeting with the organizers and getting a tour of the venue, I worked with each group of participants on a variety of projects. We caught pangolins with redstone (I didn't know what these were until the day!), tracked rhino and even saved lions from groups of evil poachers.
The day ended with a presentation by each group. Not only did everyone show a real pride in what they had created, but they really enjoyed listening to the other groups too showing the community that we'd created in the space of a day.
On the journey home, I sat with my friend Sam (he also came with me, and did a brilliant job) and we remarked about how much we'd love to be involved in something like this again in the future. Mentoring's such a rewarding experience, and I hope more organizations can see the power of video games because if they can't, they're certainly missing out.
If I learnt anything, it's that Minecraft is just such an amazing tool for projects like this. Every child there was absolutely brilliant and full of enthusiasm, a pleasure to work with. I felt extremely privileged to be part of the community.
It's good to be home, but a huge thanks to the brilliant Mozilla staff for providing an excellent venue, Ruth for letting me get involved in a brilliant project, and Alasdair from ZSL who was a pleasure to work with on the more technical parts of the event! I certainly hope I hear from some of the children I worked with in the future, when they're building machines, making something cool or just changing the world for the better.