I get this question fairly often from students who have just completed their first or second semester programming course at Brandeis and would like to continue on their own. Here are some thoughts…
It depends a lot on how you learn best. Some people learn by reading from a paper book, some by browsing through a pdf of a book (who knows where they find those!?), some watch videos and some just use google.
Have a specific project or purpose
My general advice first of all is to find a project or a purpose to your study. Don’t just vacuum up (or try to) information from whatever source you choose because in my opinion that approach doesn’t work very well.
Instead think of a project, it could be tiny, that would be fun to work on, and make that your focus. If you care about what you are doing you will be much more successful.
If you’re into a sport– is there something there relating to scores, teams, leagues, practice, equipment, competitions, results, pictures, videos, are involved, scores, records, practice logs, equipment? Maybe your parents or other relatives do something that you want to build on? Maybe some application for their business or an app for their customers? You get the idea…
Don’t do this by yourself – find a collaborator
My next general advice is to not to study or work alone. This may be difficult but it does make a big difference. Think about classmates, friends, or even people you meet online. Are they working on something that you can get interested in? You might be trying write a program to do something that interests you. You might be doing programming challenges together. Maybe one of you is learning one thing, say a new programming language, and the other one is learning a new editor, and you just compare notes and help each other solve problems.
When you don’t study or work on your own, you have someone to help you keep focused, or to keep your motivation, or to pass the time with when you are stuck and to take a break.
By the way, obviously all this can be done if you are not in the same place, or even the same country.
Resources I recommend
- Head First Java, 2nd Edition by Sierra
- Head First Object-Oriented Design, by McLaughlin
- Programming Pearls by Bentley
User Interface Design
… more to come