Monday, May 28, 2018

Journey Through Code

            Around a year and a half ago, I decided to take a shot at teaching myself programming. It was a decision a long time in coming, and something I hadn’t attempted since I was 16 or so – when the resources I found weren’t very good, and I quickly gave up on. However, I’ve always had a vague interest in programming – with a slight lean towards making video games – and I wanted to figure out if it was something I could do.

            So, I did some research into various coding languages and landed on a wonderful website for teaching C++, which is a low-level programming language (which means it provides very basic functionality, making more work for the programmer, but also giving far more flexibility and control over the program). Being a low-level language, that made it harder to learn, but it also meant I was being taught exactly how everything worked – something important for someone like me, who is very curious and wants to understand how all the pieces fit together.

            I was delighted to find that, not only did I take well to programming, but I thoroughly enjoyed it as well. The ways of communicating instructions to computers meshed with my own logical way of thinking so well that I felt I was made for this. However, the lessons only took me so far – and they stopped without teaching me what I really wanted to know, which was how to make a Graphic User Interfaces – basically, all the stuff people see on their displays and can interact with, rather than needing to type in specific instructions.

            Some research taught me that these GUIs are extremely complicated to create, ad, as such, most programmers use pre-designed systems for designing them. This was disappointing for me, but I continued on with my learning experience. A random ad that had noticed how much programming research I was doing brought me to a site that offered me some free lessons in another language, Python, for the purposes of data science. I took to this new, higher-level programming language fairly quickly and easily, finding that different programming languages function in essentially the same way – you just need to learn the new keywords and syntax.

Then my father-in-law gave me a Raspberry Pi – a small computer designed for teaching programming and other computer sciences. This also had some functionalities that taught Python, including a built-in GUI system. I played around and learned with it for quite a while, but, again I felt limited. Then I came across code.org, which provided an excellent course in both computer science and coding with JavaScript – a higher-level programming language that is often used for web programming. The lessons also included an app-building program, which was great to learn with.

            I was coming to the end of those lessons earlier this year when something I’d been waiting for happened. Magic Leap released their standard developer kit. For those who haven’t been following my interest in Magic Leap, this is an augmented reality headset that’s being developed. Rather than forcing you to have a screen in front of you, it allows you to bring put interactive digital objects into the world around you. This can range from digital pets that wander around the room, to work screens you can place wherever you want and carry around with you, to... well, almost anything, really! I’ve been following the progression of this product for years, since I discovered it, and my interest in all the possibilities it offers was part of what resparked my interest in programming. And, while the product itself isn’t set to be released until later this year, they had now released everything needed to star programming applications for it – and I was now at least partially competent at programming.

            Needless to say, I immediately signed up, downloaded what was needed, agreed to all the non-disclosure and other agreements related to it (which, yes, I actually read), and happily launched it. The functionality I saw was really cool and exciting, but I also learned of another step I needed to take – this new technology was being combined with game-engines – programs that make it easier to build and create video games. It wasn’t necessary to use one of them, but it was strongly encouraged and would make life easier.

            And that’s what brought me to Unity, a system I was aware of because I’d played games made with it before, and that was, in fact, already on my computer because I’d considered learning it before. However, as excited as I was about learning how to work with Unity and Magic Leap, I had to hold myself back until I completed my code.org lessons – after all, what’s the point of learning if I’m just going to skip the last, and often most important lessons, just to move on to the newest, most exciting thing?

            And I finished those lessons this week. Now I’ve finally moved on to working with Unity, and I’m loving it! I’ve already made my first little game. It isn’t much – just a ball that you can roll around to collect floating boxes – but I made it myself! And while I did have a tutorial through the whole thing, the most important part to me is that I actually understood at least 90% of what I was doing – including writing code in C#, which appears to be the next language being added to my coding repertoire.


            So that’s my programming journey to date, and it’s very exciting. Where will it go next? Who can say? But you may eventually be seeing little games I’ve made, which will be fun, and when the Magic Leap finally comes out the augmented reality world won’t know what hit it (although, in all fairness, this could end up being because I won’t have learned enough by then and I won’t be sensible enough to let that stand in my way).





Check out my YouTube channel where I tell the stories of my D&D campaigns.

Click here to find the charity anthology containing a couple of my short stories.



Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

No comments:

Post a Comment