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.
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