Tip of the Iceberg: Getting Started with Coding
This article aims to show a path to reader on learning the basics of a programming language (specifically cpp, python, java) and dipping their toes into the sea that is DSA.
Firstly, If you are reading this article, you must have already come across numerous courses on the internet claiming to be the best in this regard. The sad truth is that all of these courses are nearly the same thing i.e. a stepping stone, nothing else. They will only teach you the very basics of anything, rest is all your practice that will determine where you stand. I personally believe that a person needs around 1 year to become ready to start applying to companies, out of this 1 year, these courses will only contribute to around 2 month of your time, rest 10 months is all on you and your practice.
With this disclaimer out of the way, how do we learn to code? As mentioned above, there are paid ways, there, however, are free ways as well (the disclaimer applies to these too). You can very well go and learn the basics on your own from scratch, but I think at starting, a guided course is a better alternative, later on, after you have gained some experience, you can venture out on your own. Personally, I would prefer paid ones, as good things in life never come for free.
For paid options, usually all the famous coding institutes (you know the ones) provide options in 3 programming languages mainly, C++, Java, and Python. Pick any one that fits in your budget. These courses also generally come in their own flair of pro & non-pro variations, usually, picking the non-pro one suffices. A lot of these courses have discount coupons available, so ask in your friend circle or apply in their (very frequent) scholarship tests to avail said advantages. In my time, I had done the “C++ Launchpad” course for CodingBlocks, but I don’t think that they even provide that course anymore. Your aim while picking these courses should be to look out for those that not only start from the very basics, but that leave you with a basic knowledge on a wide variety of different DSA topics. A modern alternative of “C++ Launchpad” from then on would be “Master Data structures and Algorithms using C++” the same institute.
For free options, one of the most popular courses that I see around this sphere of the internet is “Data Structures and Algorithms in Java” by PepCoding. You can of course pick “enroll for free” in Coursera courses. Recently there has been a course going around Udacity “Intro to Data Structures and Algorithms” by Google that teaches DSA in Python, that, along with a basic Python primer can also be a valid option. Point is, there are several valid options, pick any that fancies you.
My mentors had told me that these courses are designed such that you put 20 hours into them per week, and going by this metric they design their course length. I advocate that these courses are very doable in 2 months time, with around 30–40 hours per week of input, just do these and carry-on to bigger better things.