Programming 101

  • So I see no one really uses the blogs the way it is intended to be used, there are lots of spam blogs, so I thought why not write one?


    I'm going to give my two cents about programming since that's what I know best (and it will motivated me to work more, that's more of a personal reason)

    so What is Programming?

    The normal way of defining it is just writing a set of instructions that computer will follow, pretty boring eh? but I like to see it as something magical. You do write lines of code but when you're done with it, you've created something out of nothing. Few nights of code, coffee, few electrons moving here and there in your hard disk and you made something that can automate things, take up inputs and act accordingly. When you create such things you get addicted to it. You can write scripts to automate task. You can make your machine do tasks that you never thought were possible.

    Alright alright, I get it. But where do I begin?

    That depends on what you want. If you want to follow a career in Computer Science, start with C++, it's fast and it's widely popular, the concepts you learn here will be used in other languages. is a great site to start learn C++, you can move on to more complex stuff like Algorithms and Data Structure after that.

    If you want to learn HTML and CSS, then no use learning that, but it's the tip of iceberg. I've seen people learning and making something out of it in just two days. So you're really not going to get anywhere with learning just those two easy languages. But that wouldn't matter if you're learning it just for fun.

    I've learned the language, now what?

    Just learning it isn't enough. Practice, go to site like Hackerrank, solve problems. Make your brain think in a linear path, you'll learn a lot. Start with algorithms/Data structures and keep making something so you get the hang of it. Learn STL, you'll get faster. Once you learn basics of Algo and DS you can participate in competitions online, win a few T-shirts if you're good at it. Start with SPOJ, solve problems there, go to codeforces, increase you rating there. Ask for help if you're stuck. 


    By the time you get here, you'll know what it is like coding, you can explore your interests, whether it is Networking, Web Dev, Android Dev or whatever you want.


    Good luck.