Last Post of My Twenties

Well, I’m not even going to look at when the last post was because I know for certain I haven’t posted in the last two months let alone every two weeks. I do have a good reason for this, or at least a reason with a positive outcome.

This blog has taken a bit of a back seat (and was completely forgotten for a few weeks) due to my attempts at tackling the first module of my online CS degree. I knew it was going to be tough diving into something I don’t have a lot of prior knowledge in and the fact that the last time I was in formal education was a good number of years ago wasn’t going to make it any easier. Needless to say, I have struggled to manage my time and haven’t fought off the procrastination demon that plagues me as of yet. I will go into further details about the work that I’ve been doing and how I’ve been coping with it at a later date but this post is more of a drop in to say “hey, I’m still alive, so is the blog, all is well” and to boast at the fact that even though I’ve had a last minute panic with one assignment and a near-death experience (over-dramatisation) due to a 30,000 word portfolio I ended up putting together, I’ve actually been succeeding with this course.

It's true hard work never killed anybody, but I figure, why take the chance? - Ronald Reagan

I handed in the 3rd and final assignment for the module last Sunday and have marks of 65 and 72 for the 1st and 2nd, so I am already far more successful on this course than I have been on any other course I’ve been a part of.

I’m turning 30 tomorrow and I’m not dreading it as much as I usually dread the whole ordeal of getting older. That moment when you put a divider between where you were on your last birthday and where you are at this one doesn’t seem as bad this year. Starting this course, although I may not have hit the ground running in the way I wished to, feels like a definite means of proving to myself that I am doing more with my life and am on the right track to turn my 30’s into what my 20’s should have been. That is a time of fun and excitement, but with personal and professional development. I won’t coast along anymore, my family deserves better and I’m going to strive to provide it for them.

So hopefully it won’t be another however many weeks before the next post, and I’ll actually have something interesting/informative to write about. I’m planning on a little walk through what I’ve been learning on this module then maybe make a post about my experience completing the 3 assignments, but I guess time will tell.

Enjoy your weekend and remember,

Unhappy birthday wishes from Morrissey :)

 

The Fight For Free Time: The Beginning of My CS Degree

Okay, wow! That’s a pretty big title. Not physically, of course, but in terms of the meaning behind it and what it implies for my future. However, that’s getting ahead of the story, let’s take it back a little.

You, Me and Degree.

Even before I wrote the first post for this blog I had an unconditional offer for a part-time distance learning degree, but I wasn’t completely sure whether or not the stars would align and I’d actually be able to take up the course. Needless to say, they did. I am now in the first week of a 6 year (potentially 5) course and am currently feeling all the awkwardness and anxiety that comes with a new experience. It’s not the fact that it’s a bunch of new people I’ve never met, I like to think I’m ok with meeting new people in person let alone from behind a monitor, it’s the uncertainty of an online degree as a platform for learning.

I’ve been to university before (unsuccessfully mind you) and understand how things work when you are physically going somewhere to learn and are surrounded by tutors and like-minded students. This being an online degree, means that I have no real separation from what could be free time and what could be study time. Sure there are guides for how much time should be spent on certain sections, deadlines for assignments and microsites for each unit/section with all the information ready to be consumed, but I have no plan of action for how to tackle all of that. Even if I did, there’s this big scary uncertainty called “life” and “prior responsibility” that is ever looming, lurking off in the shadows to snap up my time or screw with the plans I’d set up initially.

Everything I’m doing right now is brand new,  an online degree, computer science as a subject, planning my “free” time (should probably call this “time outside of work”) and pushing forward on something that can become an actual career. I am jumping in head first and for the time being it’s hard to look at the big problems (tackling a degree level CS course after being out of education for nearly a decade) when little things, like how and when to organise the small group discussion that Unit 1 mentions, are causing me confusion.

Post from Owlturd Comix

And My Axe!

So this is where the fight for my free time begins. I’m no longer just able to come home and just pick up and put down whatever I want. Sure after a long day at work, I’d love to kick my shoes off and have a nap or just throw a few hours into League of Legends, and as a father of two doing that was hard enough to start with, but now with the commitment of a part-time degree I need to start planning my time. This isn’t just so I make sure I get the most out of my course, it’s so I get the most out of my life for the next 6 years. 6 years is a hell of a long time to be splitting your efforts into work, sleep, study and everything else. As much as studying will be one of the most important aspects of my daily routine for the foreseeable future, what will get me through it all will be the little things, the moments I get to spend doing things with my family (alongside general dadding and being a husband), catching up on new episodes of my favourite shows, playing my favourite games or spending time with my friends. Without a proper schedule something somewhere is going to have to give, and with all aspects of my life leaning on one another, a single weak point could bring it all crashing down.

I’ve been through induction week and the first week of study, which I used as a little bit of time for me to get over the illness that had plagued me since before Christmas and to have a look through the university website and materials I will be using. I also took this week as a way to start weening myself off my non-optimal use of my free time (super nice way of saying that I play way too many video games or waste time just consuming media) and although I know it won’t be the easiest thing to cut down on I feel it’s better than just trying to go cold turkey.

If I’m going to do well on this course, I’m going to have to really push myself and in doing so I’m going to need some time, every so often, to de-stress and decompress.  I’m going to need to make sure I use the time I have for studying to it’s fullest because if I don’t I either end up failing or eating into time I should be spending relaxing or enjoying my life.

The gist of all this is that the real fight ahead of me is a fight with myself, my awful habits and selfishness, my desire to have what I want right now with the minimal effort required to get it. I need to change a lot of behaviours in order to pass this course, get a job with a decent career path and become someone my family can be proud of.

Hey, Shut Up Already!

I was actually going to make this blog post a little longer but with how much time it tends to take me to write these I thought I should cut down the length a little. That and the fact that I have yet again taken almost a week to write this post so forgot a lot of what I wanted to write about. If I’m to keep up with this blog, which is definitely something I am going to strive to do, I will have to change my approach to planning and writing. Instead of just writing from off the top of my head, I need to start making plans in the run-up to a post, be that just planning what to write about or taking notes from classes or other sources of learning so I can easily put them together.

Alright, so let’s try and end this. One quick note I need to add before I go, as an amendment to my last post, I will clearly be spending the majority of my time focusing on my degree course rather than the Unity C# course and the algebra course on edx.org. This isn’t to say that I won’t try and complete them but they really have to take a backseat, especially whilst I adjust to my new time constraints.

So now this is the actual end of the post. Really. Thank you for reading. Go do something more productive.

What have I used so far to teach myself programming?

I should start off by going into a little detail about what I have done so far in terms of learning and development down the comp sci/programming path I am taking. However, a little side note should be added first. I actually bought my first Udemy course back in March of 2015 (if I recall the search through my bank statements correctly) and due to full-time work and being the father to a nearly 1-year-old child I dipped in and out of this for well over a year. Due to placing my learning on the back burner a couple of times and because I hadn’t been making too much ground, each time I picked it back up I was basically learning the basics all over again. So when I started everything up again with renewed vigor and excitement this Summer, it was almost like the very beginning all over again. Two years since I started, I had managed to make my way to the starting line. Impressive.

Okay with that aside, I’ll make this post somewhat informal and give what could be called a link dump of everything I have used/am still using to learn from day 0.

Disclaimer: I am still very much a novice and any sort of review I give of any of these resources should be read with that in mind.

In other words, you’ll need more than just a pinch of salt

Originally, just as with the start of most ventures, I had no idea where to look for help, so did a few internet searches for “best resources for learning to program”, “how to make video games” and others in the same vein. From these searches, I (extremely naively) decided that a good idea would be to download Visual Studio then sit and read through all its documentation beginning to end. Luckily I didn’t even have to start down this road as that evening whilst relaxing on YouTube, I was treated to an advert for a Udemy course called Learn to Code by Making Games – Complete C# Unity Developer. I watched the 4-minute advert, the welcome video, and free sample videos on Udemy, then sat on the idea for a day and purchased the course the next evening.

The Complete C# Unity Developer course formed the foundation on which I would build the rest of my learning. It helped me to nail down the answer to my first (and somewhat biggest) question, that of which language to learn. C# seemed to answer all the things I wanted. It’s a language that can be used to make a variety of applications but also lends itself very well to video games and has a large community backing it with plenty of resources for learning. The course is one of many run by Ben Tristem, and is a great starting point for someone with little to no knowledge of programming and game development, or specifically C# and/or Unity. I won’t go in depth and give a full review of the course as that’s not the point of this post (or even this blog necessarily) and there are an abundance of other places that do this far better than I could (one example being Risk of Tayne’s excellent review of the course). What I will say, however, is this course and the community behind it gave me the opportunity to really get out as much from it as I was willing to put in. The Udemy website is made in a way that promotes student communities on each of the courses hosted there, but, as with all of Ben’s courses (I’m a big fan and have bought more since), the community aspect is really pushed to its full potential. I found that as I was going through the course, I was constantly wanting to further explore what was being taught and to truly get a grip on concepts that were being brought to my attention. It was on the Udemy course forums and GameDev.tv’s forums (a community website set up by 3 Udemy instructors) that I had the majority of these questions answered and was guided to many more resources to further my learning.

One of the resources I had shown to me was the fantastic Brackeys tutorials on YouTube, in particular, the tutorials for C# basics. I have gone back to these videos multiple times when I forget something or need to properly wrap my head around a concept. If you haven’t come across Brackeys before reading this and are into game development (specifically C# and Unity) definitely give the site a thorough look through. There are even tutorials for Blender and a whole bunch of free assets available. It helps that Brackeys himself is extremely charismatic, making him a joy to watch and code along with.

After finding out about Brackeys, I thought poking around on Youtube for playlists of people making games from scratch or explaining programming concepts would be a great idea. It mostly wasn’t. Don’t get me wrong, there is a huge amount of fantastic learning based material on Youtube, but aimlessly searching through the piles and piles of mediocre content is a terrible idea. To start with I had no idea what was good advice and what was considered bad practice or “hacky”. So when I found a video that I thought was informative, I could never be sure of how useful it actually was. This problem was compounded by the fact that I knew I would more than likely be skipping over videos with great academic content, due to their presentation being sloppy or unengaging.

All this aside, I did find a little gem in my blind travels through YouTube, the videos of Barnacules Nerdgasm. More specifically, the Codegasm playlist, which was a series of walkthrough tutorials for creating simple applications using C#. I was drawn to these videos, for a number of reasons. The main reason being, that within 40 minutes to an hour you could have a working application, one that you could then modify yourself because you are guided step by step through the code and understand exactly how it works. Just as with the Brackey videos, I stuck with these videos originally, because of how entertaining the content is and how charismatic and relateable Barnacules is himself and still head back to his channel frequently for new content due to its high quality.

I’ll put these next few books and courses into list form because I’ve realised it’s hard to seamlessly segway between ideas, as I’ve been trying to do above and in general I’m a poor writer (which I aim to address whilst going forth with this blog).

Fundamentals of Computer Programming with C#: this is a wonderful and extremely in-depth guide through the C# language. Not a simple night time read at 1,112 pages but seeing as it’s in pdf form and completely free you can read it wherever and whenever. It was written by 20+ authors who have taught or worked in the industry and is aimed at absolute beginners. I haven’t even got a fraction of the way through this book but I don’t know why you wouldn’t want to use something as thorough as this, especially when it’s free.

Begin To Code With C#: this book is my favourite out of everything I’ve read. It takes you from the very beginning concepts and walks you through, consistently stepping up the difficulty just as you feel you are getting comfortable with the content. Rob Miles has spent 30 plus years teaching at the University of Hull and has written many books in this manner. I personally love this book because of the sheer amount of example applications you create, and the sections in which you are asked to push the boundaries of what you’ve been taught, actually get you to modify applications you’ve made previously.

C# Basics for Beginners: by Mosh Hamedani, on Udemy. This course sets out to explain C# basics in a very concise manner. Mosh is a fantastic teacher and has an intermediate and advanced set of videos that cover more difficult topics and concepts. The course consists mostly of pairs of videos wherein a topic is covered in theory using slides. Then a “demo” is given where the theory is put into practice in Visual Studio and you’re able to code alongside Mosh.

Beginning Game Programming with C#: by Dr. Tim Chamillard. This was the first course I took on Coursera and was different from anything else I had done up until that point due to it being a Massive Open Online Courses (MOOC). Most MOOCs are free to take (usually with a pay incentive in the form of a certificate) and tend to be taught by tutors at universities or people employed in industry (the latter usually being a course related to the job they are in). There are courses that have set start dates and work on a week by week basis (such as this one) and those in which you set your own pace. I enjoyed this course because it allowed me to work to weekly deadlines but also gave me the opportunity to push ahead should I be able to, allowing me to stay engaged if one week was easier or even make up some time should I know I had busier weeks ahead of me IRL. I should also point out that this course uses MonoGame instead of Unity so had a very different approach to anything I had been using up to this point and, even though I haven’t finished it, opened up different aspects of learning and concepts I had yet to know existed.

Unity 3D Tutorials: by Unity. These tutorials are fantastic because they come from Unity themselves. I have gone through the Roll-a-Ball and Space Shooter tutorials (an example of Space Shooter below) and have begun the Survival Shooter Tutorial. If you have zero knowledge of Unity or know the fundamentals these tutorials are fantastic. The learning curve was perfect for me, at no point did I get bored with content or get truly stuck. In fact, at times I felt like I was being grabbed by the hand and sped through concepts whilst having things explained in such a manner that they were easy to understand and get to grips with. The likes of creating an endlessly looping background in the Space Shooter tutorial seemed way beyond my abilities but the manner in which it was taught got me through it with relative ease. Sure I may have to go back and rewatch when I eventually use that again in something I create myself, but I know it was no hassle to implement and only my poor mental retention is to blame. One key point about these tutorials that is worth nothing, is the forums attached to each of them. I had some issues with a bug I came across in the Space Shooter tutorial that I couldn’t fix no matter how hard I worked on it. A handful of people on the forums threw idea after idea at me in attempts to help me fix it and about a week and a half into our back and forth the issue was found and corrected. Some sites just don’t have this community aspect and even though it took a number of days, the fact that there were people there to help with this issue has kept me doing these tutorials. A little side note here, the issue was to do with how my components were stacked in the inspector within Unity. In my naivety, I had reordered them to be alphabetical and in turn be easier to sort through. Little did I know this changed the order in which scripts attached to certain components would wake up and run. The space shooter game (note: it was initially built as a desktop application so wasn’t intended to be played online. I put it up so a couple of friends could try it, but without knowing how to build it for web deployment there are issues with UI elements being off the sides of the main screen and the fact you have to hit the fullscreen button to see the main game area.)

Everything listed above I have used up to this point and will go back to as and when I have bits of free time, but below is what I will be spending most of my time pursuing in the near future. This isn’t to say that it will stay this way, as the main concern for me is to be constantly expanding and pushing the boundaries of what I can learn.

Learn C# Code by Making Games – Complete Unity Developer 2.0: is the follow-up Udemy course to the first course mentioned at the start of this blog post. It is still run by Ben Tristem, but is an updated version using a newer Unity version and creating different games. As of posting this course is still having new content created and added to it on a semi-regular basis. There are currently 18 hours of content and I am about 3 hours into that so it will definitely be appearing in future blog posts. Especially as I am looking to adapt one of the games created in this course into a full release game at some point in the future.

College Algebra and Problem Solving: by Arizona State University on edx.org. I grabbed this free course because I’ve enrolled in a Computer Science degree (more about that another time) and I know that my math skills need brushing up significantly. I have only recently started, but can see the benefit of it already. They use the ALEKS program to figure out exactly where you are at with your maths skills. You answer an initial set of questions and from that, they know what subjects you still need to learn and set you up with small explanation and question pairings to do so. I haven’t done any mathematics since GCSE level (except that in Physics A Level) so have hundreds of topics to learn and brush up on.

Okay, if you’ve made it down this far you seriously deserve a round of applause. This was never supposed to come close to the essay above and took me way too long to write due to real life commitments (work, Christmas, kids etc). It was a valuable learning lesson and I’ll definitely have to plan what to write before diving headfirst into something similar in the future.

I hope everyone’s had a very merry Christmas and, seeing how it’s now December 31st a happy and prosperous new year.

I don’t want to procrastinate anymore, but I’ll sort that tomorrow.

I have no idea how you happened upon this page, but in doing so you have managed to stumble onto the first post at Get With The Programming. So, welcome to my blog.

This blog is about the learning process of a complete novice in the world of Computer Science, programming and Game Development. That novice will be me.

My name is Alastair Connar, but most people just call me Connar. I’m 29 years old and have spent a lot of my life not knowing exactly what I want to do. I haven’t really applied myself to anything other than creating a family (and aimlessly playing video games), so it’s about time I made a change.

Quick confession, the title of this post is somewhat misleading. I do believe I procrastinate, like most of us do from time to time, but the issue that has caused me to be in the position I am today is that of self doubt and/or self limitation. It’s probably not the right way of phrasing it but bare with me and I’ll try to explain.

Let’s jump back in time a bit, and by a bit I mean nearly 2 whole years. On the 15th of January 2016 I posted to the /r/learnprogramming and /r/gamedev subreddits, asking about the best place to host a blog. The next day I registered here at WordPress. Then nothing happened. The whole purpose of the blog was to put myself out there and give myself some accountability. Which in turn would give me the motivation to keep going for fear that someone would see my lack of updates, and surmise that I had failed in reaching my goals. I posted nothing because I had no idea what to do for my first post. I then let this small obstacle become a large roadblock that did the complete opposite of what was intended. I actually stopped trying to learn, stopped pushing myself forward. I had intended to make this small side project that would aid me in my learning, but it became my reason to stop. It sounds stupid but everything ground to a halt and I couldn’t understand why.

In retrospect I was doing what I had done many times before in my life. I was using this as a way to stop myself from trying and possibly failing. Stopping before anyone saw I couldn’t do it or before I could find out I wasn’t able to do it. I was doubting myself and putting up barriers to stop myself from ever even trying, with the pretence that if I never try then I never fail.

I have taken this approach on numerous occasions. Whenever I have come up against something that I just couldn’t wrap my head around, or when something pushes my boundaries beyond my comfort limit, I convince myself I shouldn’t be doing it. Well that stops now. What has made this different from other hobbies or ventures in my life that fell by the wayside, is that I keep coming back to it. I want to succeed where many, many other times I have not even allowed myself to fail. I want to be able to provide my family with the life they deserve and make them proud. I want to create, innovate, entertain and maybe along the way change someone’s life for the better.

So here I am, at the end of my first post and the beginning of what will hopefully be an interesting and informative journey through the trials and tribulations of learning brand new, somewhat alien concepts.

In my next post I intend to explain how this blog will work moving forward, in terms of a schedule and content, possibly with examples of what I’ve managed to accomplish so far thrown in for flavour.