Often times we come across questions online like: "How to improve fast?" or "I have 30 days to learn Java, how to proceed?". I do believe these are wrong questions and not a good mindset to have, however, there are some guidelines I've learned over the years on how to improve fast, which I'd like to share with you. These guide lines will not make you learn Java in 30 days, but will speed up your learning process and you should improve as a developer faster.
Well, duh.. To some's disappointment, hard work is required in order to improve faster. This means that if casual person is learning 4 hours a day, you should be learning 5 hours a day. Simple as that. You have to put your mind into giving more.
Having a mindset that never is enough might be bad for people around you, but it will lead you to a path of that extra mile you have to make in order to improve faster.
Easier said than done. Programming is not as easy discipline as it might seem to some. You have to question your decisions, correct your code multiple times, go into unknown, challenge yourself. This is not an easiest thing to do.
Stay humble, no matter how big of a progress you have. Even if your mind is telling you to be proud of yourself, or your achievements, keep it to yourself. Don't show it to others as this might slow you down. First, you shouldn't be focusing on your achievements, but rather on being a great developer. Second, people don't always tend to support other people achievements, and you looking for a recognition from other people and not receiving one might hurt you.
If you are having a great moment, keep that momentum alive, sooner or later you will be recognised as good if that's what you really are.
Ask questions online and offline. One of the best things about this community is that many people are willing to help. It's so beautiful. Just keep in mind you have to be friendly, open, humble and you have to ask the right questions. Read online on how to formulate questions correctly. Keep questions short, simple and precise. Ah, don't forget to say "thank you" afterwards. Soft skills come in handy here. One of the books I recommend is "How to win friends and influence people".
There are a lot of books out there, so there is no point of trying to go over all of them. Instead, google couple of best books for your field and try to tackle 2 books per year least. One of the greatest books I came across are "Code complete", "Clean code", "Clean Architecture".
Now, this rule should probably take about 40-60% of your total learning time. In order to benefit even greater from personal projects, find a domain you are interested in. If it's a medical science, make a project on that, or if you are into movies, make movie list software etc. Working on a project you are passionate about will give you more boost, your work flow will go better and you'll learn more.