Learning is a Journey. You will never know everything you need to know to solve all your problems.
To make the learning interesting,here i have cataloged the alternatives to learning from textbooks.
Most people find the task of reading books, courses to be daunting and don’t take the first step. To keep you motivated to take that first step,
1.Follow the blogs
You can follow few blogs such as paulgraham, joelonsoftware and also technical people e.g thegeekstuff (thegeekstuff) on Twitter. But blogs are just first steps.
2.Takover the projects
The most helpful method is to have a motivating project at hand and to learn the necessary stuff required for that. There are lot of good projects.
3.Participate in forums/meetups
You can also participate in forums, discussion groups and meetups to interact with fellow tech enthusiasts.
For CS topics, we have a tech Group on Facebook, with around 2Lakh members, and lot of people from research and academics. I originally started this forum, but now it has taken life on its own with lot of prominent people like PhD scholars and book authors contributing.
Learning new skills is time consuming because currently there are no good websites that help in adaptive learning or structure the course according to specific needs of the user.
Most of the current websites are good, if you already know some basics about the topic, but what is missing is the perspective from a newbie.
At CareerHunt, we give a good plan for learning a particular topic. We manually aggregate the best content on the web for a particular topic. We validate our contents by asking feedback from freshers – if they could follow our lesson plan.
We believe this kind of adaptive learning can shorten the time taken to learn new skills. Courses are structured using hyperlinks of concepts rather than bookish linear way
Other Learning Techniques:
- Start with a small project and learn the necessary materials. Think of how you would have approached a particular problem before looking at the existing solutions.
- Take a concrete product and get an understanding of the high level architecture.For example,
- if you are interested in OS, read about linux kernel at high level and various algorithms Or if you like database, look at Sqlite or mysql.
- Think of using a simulators to understand the flow . For example if you are learning Architecture, use SimpleScalar to know how instructions are processed.
- For networking there is NS.
- Some concepts are hard to understand, but most concepts are harder to discover in first place (even if they are easy to understand and even obvious, otherwise everything in CS would have been discovered in 5 years after invention of the computer ).
- The stack algorithm for evaluating expressions seems obvious now, but there have been hundreds of not-so-neat tricks that were deployed by hackers earlier
- The breakthrough by computer scientists are achieved after years of struggle with ideas. On top of it, publishing the ideas and getting reviewed for publication takes lot of time, So what might seem obvious in retrospective may not be in fact obvious.
So make your learning method more interesting which will motivate you to learn more.