Learning to Code : The hard way - Part 1: Where to start? !
More often than not, I have faced questions from juniors that include : “How do I learn to code? “, “How do I excel in computer science”, and almost always I have strategically avoided answering such questions. Finally I have decided to sit down and write a blog about it, the topic is broad and it is not possible to write about it in one single post so I will be breaking it down into parts. How many parts? well as many as it takes.
Where do I start ? The answer to that is simple.
Step 1: Buy a Computer, install Linux and get a good Internet Connection
You need a goddamn good computer running Linux from day one of your grad school. Not second year, not second semester, just go out there and buy one if you don’t have one. And yes, while you are shopping for a computer, get an Internet connection too. The answer may sound stupid but this is a harsh reality in Indian Colleges, First years do not have their own computers, and almost no-one in any year uses Linux as primary OS or has internet connection at all times. You cannot learn to code by reading books, to learn to code, you need to Code! Okay, now that you have a computer and an Internet connection, its time to learn to code. Where to start ? here’s a list:
Step 2: Start Coding
This is also going to sound stupid but I have to say it out loud anyways: You need to learn programming. Not learn C and Java. You need to learn to program with C and Java. No, that’s not the same. Many students learn the basic use of C, C++ and Java in classrooms but they never understand the concept of programming in itself. They can make classes and objects and loops but they don’t really know what object oriented programming is. A good place to start is learn to use a language (C, php, python, C++) and start solving some coding challenges using it . HackerRank might be a good resource for that.
Here are some languages you should consider to learn:
C and C++ (they are probably included in your first year course, if not, find some online course and learn them yourself)
HTML5 (Some Indian college courses include some age old outdated version of HTML, and others ignore it entirely. HTML5 is easy to learn and forms a base for web development. You will also feel familiar with XML when you learn it in future, if you already have used HTML. W3schools is a good place to start )
Python (I am yet to meet a person in my class who knows python, and this is our last semester, and that’s ridiculous!)
Java (Java is cross-platform and widely used, especially in hand-held devices)
Step 3 : Socialize
This is important: Programming tutorials and resources are more readily available on the internet than any other field. Programmers and hackers believe in free knowledge and share everything online. And the best part is: If you have a query, or a problem you can’t solve, there are many forums where you can ask and get answers from experienced programmers.
Join Stack Overflow (Stak Overflow is a question and answer site for programmers. The stack overflow community is large and friendly, go ahead and join it right now! I’m there too : My StackOverflow)
Join GitHub (the only reason GitHub is second on the list is because I am assuming the reader is a beginner in programming world. GitHub is a platform for collabarative work, all your favorite Open Source projects are here! you can report issues and even contribute to your favorite Project. If you join Github, heres my Github Profile)
Write a Blog (Be a sport, show some team spirit, share your experiences online and encourage others to do the same)