I am a programmer but this can apply to any field. There are many technologies that I want to know. So I start to read some book and then I jump to another book and so on. This makes me feel bad. Any advice of how to approach learning?
Try to apply what you learn by implementing a small project, don't just read. Have a project in mind and you read a book, you will internatilize the concepts better.
If you don't know what to develop, I can give you a few ideas, I am running out of time :)
You can't. There is simply too much knowledge to learn everything. But... it sounds like you want to learn how to learn, which can be done!
A good place to start would be the learning questions already asked here. The rest depends on what you want to learn.
You can find more sites like these on this article: top 40 useful sites to learn new skills.
Edit: I noticed I didn't really answer the question very well. Here are some points to focus on to improve your approach to learning:
Since you seem to want to jump from topic to topic prior to finishing the previous, create a First In, First Out queue of topics you want to research; meaning as you find new topics, add them to your list, and progress sequentially.
I have the same problem. I always read a different book every time I come across some interesting technology that I can't get enough of.
I realized that repeating this would not make me any better.
Right now, I try to focus myself on learning only one language since I wouldn't get anywhere if I try and learn all interesting and existing technologies. To get around my curiosity of other things, I read different blogs on different days, reading a thing or two about a new technology.
In that case, I only focus my attention to one language while still being up to date with other technologies that I am interested in. Just limit yourself to one or two posts as it will be the start of the cycle of trying to learn everything once again.
As a programmer, I struggle with the same problem. There's simply too much out there to learn. That's the first step, accepting that you can't learn everything. From there, I would recommend keeping a list of things you want to learn, along with why you want to learn it, and prioritizing it. Then, keep focused on the top choice until you feel satisfied that you got what you wanted from pursuing that topic. Maybe you just want a high level of concepts in a particular technology, maybe you want to be able to use it reasonably well for a specific task, maybe you want to be an expert in the particular field. It doesn't matter. You have to set targets for your learning, otherwise you'll end up meandering off and just reading a bunch of books with no concrete goal, and you can spend forever going down those rabbit holes without ever feeling satisfied, which is my guess as to why you feel bad.
I'd recommend looking into "The First 20 Hours" by Josh Kaufman. I recently listened to the audio book, and I was on this site looking for advice to deconstruct the task of learning a language into sub-skills.
Basically, the crux of the book's argument is that learning basic competence in a skill requires only about 20 hours of concentrated and well-prepared practice to overcome the initial difficulty and frustration that is inherent in learning most skills. This is a counterpoint to the "10,000-hour rule" popularized by Malcolm Gladwell in the book "Outliers". Essentially while mastery in a skill typically takes 10,000 hours of sustained practice, most of the key concepts are learned in the first 20 hours. This is particularly valuable to programmers and other technical professionals, as we often have to learn to be proficient in many different SDK's, protocols, programming languages, operating systems, etc.
One of the interesting things about the book is the time Kaufman devotes to explaining how he uses his technique to learn Go, yoga, programming in Ruby, windsurfing, playing the ukulele, and touch typing. The basic method is easily summarized in the first three chapters, but the application helps to highlight how to apply the technique to very different skills and the little pitfalls that might not be obvious in the beginning.
Like everyone is saying there are tons of knowledge out there which one can't learn all in one's lifetime..
Since you are beginner
Choose only one programming language and try to master that language...
1)First choose a best textbook on that language learn the theory
2)start working out some samples on that language.working out what you learned is more important because you'll come to know the difficulties and understand very well only when you work out.
3)Join a forum or some programming community ask questions answer some questions if you know.
4)work on real projects.
5)Contest on some code competitions.
6)Contribute to open source
After you mastered a language you could easily learn multiple languages in short span by comparing one language with other.