I read online that the path to becoming a programmer is to always keep on learning.
I am a junior programmer and have been working for about 1 year. Prior to me becoming a junior programmer I read "Programming" (a book for beginners with no prior programming experience) by Stroustrup and after it I read "TC++PL" and after it "Introduction To Algorithms" in parallel with "The Art of Computer Programming" Volume 1.
When I started working I had to read "Concurrency In Action", the Gang of Four and non programming related books such as "Operating System Concepts" and "Head First Networking" because the tasks I was assigned required knowledge in those fields. I also had to learn Java which I did from "Thinking in Java".
Ever since I started working I only read books required for the task I am currently working on otherwise I don't. A lot of articles that I read online say that becoming a programmer is a never ending learning process and that you should never stop learning but currently I have read the required material for the project that I'm on and I have nothing to read. What do people mean when they say you should never stop learning? What should I learn now? What books should I read? Do I need to just read book after book even though the project I am working on doesn't require it? Should I deepen my knowledge of the languages I currently know, for example reading "Inside the C++ Object Model", the "Effective C++" series by Scott Meyers, the "Exceptional C++" series by Herb Sutter?
I do plan to learn a few more programming languages, but that is not part of my question.
Never stop learning applies to things that you just described to get the job done. Look at emerging technologies, maybe subscribe to a certain tech magazine. Do you need to know Java? Work on being an expert on it. C++? Same thing. Work on being an expert at all your responsibilities and don't shy away on new ones. You're expertise needs to be deep and wide.
If you strive for perfection you should constantly read books and magazines, even if the knowledge there is not what you / your project need right now. You never know when a chance to use your additional knowledge pops-up.
There are plenty of e-books or just normal paper books about programming. Library is your best friend ;)
One thing I find with learning on the job is you don't often get the chance to 'play'. Playing is very important, doing new things for fun...redoing things because you think you can now do it better. etc.
Read journals, academic paper, watch youtube videos from conferences and always design, write, test, and profile code.