Here's How I'm Teaching Myself to Code
Tags: python, productivity, career, programming
Published: 2017-11-27 12:27:05

---
title: "Here's How I'm Teaching Myself to Code"
published: true
description: Since I'm just getting started in the world of developers, I thought it would be a good idea to write about my journey along the way so that newbies may also benefit from it! :) 
tags: python,productivity,career,programming
---

<a href="https://ibb.co/j9g0Nm"><img src="https://preview.ibb.co/cg99F6/HOW_I_TAUGHT_MYSELF_TO_CODE.png" alt="HOW_I_TAUGHT_MYSELF_TO_CODE" border="0"></a>

Up until a year ago if you had asked me what career path I was going to choose in University, I would have said – Neurosurgery. I had openly declared it in my high school Yearbook right below my (embarrassing) school photograph. Everyone – starting from my friends and family members to teachers, used to call me half a doctor. (Partially ’cause my parents are doctors too and this profession is very much like an inheritance in my country/culture). Also because I could perfectly dissect living things, prescribe OTC medicine in minor emergencies and always had straight A* in biology and chemistry. So you could say that being a doctor was a finalised decision waiting to be executed.

So when I chose Software Development as my major in University – the first thing everyone asked me was, “Do you even know how that works?”

Truth is, I didn’t.

Well, I did have some knowledge of how computers worked, about security and networking, and had a good grasp of the basics everyone needs to well-operate machines for everyday work. But I had no idea how softwares are developed, how to be a web developer, or the difference between front end and backend development.

So why did I choose to pursue a career in software development? That’s a topic for another discussion. But what I really want to talk about here is what gave me the courage to pursue a completely different path and what I think is the best way to pursue it.

<a href="https://ibb.co/iGvo8R"><img src="https://preview.ibb.co/dzYKF6/IMG_0434.jpg" alt="IMG_0434" border="0"></a>

Having settled all that, I would suggest you buy a computer science book when you’re just starting out into the world of programming.

###Buy a Computer Science book

A book that targets the beginners.

Unless you wanna go pro and buy an advanced book and then come across terms that need to be Googled and then the terms used to describe those terms would need to be googled too and you’ll be left frustrated and ready to give up – just like I was.

Therefore, buy a book where the basic terminology is explained, algorithm structures are elaborated and pseudocode is taught. (You will also learn the fundamentals for stepwise refinement, recursion etc fancy terms and functions which I think is super cool!)

I studied A-Level/High school Computer Science book because academic books maintain a certain standard and they usually explain everything from the scratch. I did it during my gap year before getting into university to get some heads up about what I was getting myself into. And though it was a little frustrating to teach myself everything from scratch, once I got the hang of it (which you will too) things started to seem much more interesting.

A better strategy would be to simultaneously learn Python as your first programming language.

Why? Because it’s more human-like than other programming languages, it’s eloquent and super easy to learn.

###Codecademy is a wonderful resource, for complete beginners

This is not a sponsored post.

I suggest this because I have learned from Codecademy and have benefitted a lot. There are other resources as well such as – Udemy, Skillshare etc. But since I haven’t tried them first-hand, I will refrain from voicing opinions. You can also register for coding bootcamps (e.g., Quincey Larson’s freeCodeCamp and build a community of developers!). Try different resources and see what suits you the best.

I personally think Codecademy is a wonderful way to start off with coding for complete beginners. However, it does have some limitations, like everything else in this world. The most significant limitation (I think) would be –  once a topic is taught then they never brush over it again (except for doing small, easy exercises) so it’s easily forgotten. Also the explanation is sometimes inadequate.

Which takes me to my next point:

###Take notes. Yes, WRITE it down

Use a notebook for the topics that are being taught. Look it up on the internet if you come across something you don’t understand. There are plenty of them on YouTube.

Free of charge.

###Find Tech channels on YouTube

Again, this is not a sponsored post.

But I have benefitted SO MUCH from YouTube that I feel it would be treacherous if I don’t show it some gratitude. Honestly, some lectures/videos on YouTube are more helpful than the professors you pay for at university.

Unfair, I know.

If you’re learning Python like me, then as a bonus here are two awesome channels I recommend you check out!

1. *Socratica*

2. *Corey Schafer*

###Practice. Practice. Practice

Practice like your life depends on it. Okay, less dramatically – like your career depends on it. Because it does.

Download an IDE, come up with project ideas and code them out. Even if you think it’s easy or silly because chances are, you will get stuck at even the easiest functions and that’s okay. That is the reason you’re practicing in the first place. There are also free resources like Project Euler where you can challenge your logical abilities and develop required skills. Oh and don’t forget the DailyProgrammer on Reddit!

###Get a Degree on Computer Science or Software Engineering

Though there are many people who would disagree with this point. And even I personally believe that self-taughts are the best-taughts. But there are still many companies that follow the traditional rules while recruiting. So if you really want to make software or web development as your career, and if you do have means and opportunity to undertake college education then by all means, do that.

If not then there are plenty of resources online (paid and free) to help you!

###Build a community on GitHub or any other platform

We all know how important a community is. Our own little community, or social group – whatever you call it. A small hub of people who share the same mindset as yours, share the same passion as yours and the same ethic as yours is one of the most important things in life. The company you keep determines how far you will go in life so you better choose wisely. And in this case, your small hub will help you learn and practice your lessons better and help others in your circle too.

**Bonus tip:**

**Open up the source code of any website/software/program and study it**

Look at the source code of softwares and/or websites. Make a study of different ways different people code. This will not only give you a new perspective, it will also help your code-reading ability (if that’s a thing) later in your job/career as a developer where you have to maintain codes written by others long ago.

*These are the little steps and strategies I’ve used (and am using) in University as I major in Software Development. You don’t have to agree with every point I’ve mentioned.*

*But if you do have some more tips and tricks or any suggestions about how I can teach myself to program in better ways, then please leave them in the comments below.*

*Also if this this post has helped you in any way, leave some love.*