Sunday, 16 April 2017

Beginner's Guide to Coding, from a Beginner!

Wassup all, its been a while. I normally set myself a task of doing a weekly post just as a challenge and some therapeutic unloading. But right now I'm just chilling with it and not be too strict with it whilst I spend a lot of time learning this stuff...

Four months in, pretty much spending a good 3 hours average every day learning Javascript, I feel like I'm getting somewhere despite it all feeling rather overwhelming. There's no short of [free] resources, but the hard part really is knowing what you wanna learn, what you wanna do with it, and how to move on.

Right now, I have a better idea of what I'm going to do, thanks to an old time friend that I managed to get in contact with, who shared me his journey, and some great advice. So technically its not beginner's advice, but with it travelling through me lets say that counts!


FROM NULL (UNDEFINED);


Lets be real. This stuff looks intimidating and hell. All the stereotypes of hackers doing crazy stuff with tons of code and geeking out. A lot of you guys will just say forget it.



But with everything, take bitesize steps. You don't jump straight into the deep end, you learn to swim first, actually you just get in the pool before that! I literally had not done any coding in January, but I've been dedicating some time to learning this stuff, and bit by bit my knowledge increases!

Fortunately, from my previous job, its taught me how I love to study and learn new things, and I know a good system that works for me. Whether you wanna go hardcore 8 hours a day, or just an hour or 2 when you have some free time, its totally worth spending it learning.

Your aim when you start is to learn one programming language to a sufficient level, to not just be able to "make stuff", but allow yourself to understand the logic and structure of it, so that it help you can learn other languages later.

The only argument I've heard for teaching latin, is that it is a language which helps you understand the format and structure of other languages. This means that even if the language you've learned is redundant, it is still very helpful for this reason.

After some extensive research from my go to adviser named Google, the best languages to start out with are Python, Javascript, Java, and C++. In all seriousness though, one of the biggest reasons to choose these is the fact that there is a ton of online resources for them.

With so man languages out there, its hard to know which one to choose.



ONLINE RESOURCES( );

Ok, so I basically started because of Shiffman's Coding Train. For me his channel really stood out to me as an attempt to be very beginner friendly, and more importantly... fun!

My beef with other coding YouTubers is that holy crap some are so boring and basically assume the watcher's [more than often advanced] level. However YouTube's greatness is that it can cater to niches, but in doing that you leave out a whole demographic audience. Each to their own tho!




There are a few places which offer free courses, with optional paid ones too. The best thing about these places is that you don't need to download any coding software, you can write the code straight into the browser and learn from there!

Hello Processing - A great introduction for someone starting from complete scratch!

Coding Train - Daniel Shiffman's channel, has a ton of introductory videos and coding challenges ranging from coding Snake and Flappy Bird, to Maze Generators and Pathfinders.

Udacity - Online learning resource that has free and paid nano degree courses.

Code Free Camp - Open source free learning website that has great content using a points system for completing exercises and encouraging networking.

Some notables, Kahn Academy and Lynda are good sites as well, but I haven't used them so I cant really say much from about them from my experience.

I also like to watch some YouTubers FunFunFunction which is a more advanced vlog by a developer of Spotify, and SimpleProgrammer which are more advice style vlogs by the founder of PluralSight.



CHOOSE COURSES ? YAY : NAY ( );

NB - I didn't know that you could use the syntax above as an if statement. I learned this regoing through Udacity's Javascript for beginners free course. First part "Courses" is the variable, "?" is the if question, left of the colons is what happens if true, right of it if false.

Is doing a course a good idea? Well, it seems to be one option if you can afford it because it can be quite expensive, up to £8000 for a 12 week course. Some even advertise the fact that you don't even to have any experience at all but these ones will mostly be a full time intensive course.



One of the most important things in selecting these courses is to make sure they have good support for once you graduate afterwards. That is, help in getting a job afterwards. In NYC I've heard there is a saturation of these courses flying about and some don't offer much support afterwards, so be careful when selecting them. Do some research, look at the reviews.



SELF INITIATED PROJECTS( );

I had quite an eye opening moment in trying to code Tic Tac Toe, it was clear to me that I didn't actually fully understand a lot of what I had learned. But there's nothing like the experience of going through the motions and creating an idea.

Don't worry so much about "ugly" inefficient code. Do it ugly, repeat lines of code, your learning its ok. Just be aware of it and just try and get the thing to work! That's the more important thing.

You will be stuck a lot, you will google a lot, and asking on forums isn't a bad idea. But take the advice with a grain of salt. Make sure you ask specific questions in your code rather then general ones. For example, why doesn't this line work, rather than how do I code this whole thing?

On the flip side, be aware of the responses that end up telling you what your doing is inefficient, then proceeds to rewrite your whole program for you. That helps no one, I never understand how they expect you to learn by copy and pasting all the code that does what your trying to program. They clearly are only about being right in their one dimensional way without taking into consideration the level of a beginner.

Another reason to do extra side projects is not just the learning you get, but adding things to your portfolio. In the creative industry, and I'd consider programming being part of that, there's nothing that beats an amazing portflolio, showing off the skills that you have.

It also allows you to blow off some steam, explore new ideas and keep your motivation. Google had been famous for its 20% time (rumoured to be abandoned now) which was that their employees had to spend that amount of time not doing Google work, but their own projects. This led to a lot of new products which included gmail, google docs, adsense and google art.

I have a list mini projects I would like to do, which are 30 odd games I'd like to create. Of course I'll be bloggin' about them. The challenge of this blog is to talk about coding but still make it understandable to you guys who don't code. I hope this helps if your interested in getting started, I have a unique position in that I started this year, but have quite some experience with blogging.



1 comment: