If you had 3 months and basic-intermediate programming skills, what would you do level up and how would you measure your progress? I'm looking to build a learning routine into my day to day and interested to hear what great programmers would advise. Thanks!
1. Pick a project that is either very time limited ("I will build a compiler in 5 days") or something you will actually use to solve a problem fairly quickly. Otherwise you're just spinning your wheels or building too many features. More here: https://codewithoutrules.com/2016/09/09/side-projects/
Notice that normal job writing software usually has both those aspects: actual need, actual deadlines.
2. At end of every day (or week), notice what you've done wrong and what cues and models you were missing that led to that mistake. (I do this here: https://softwareclown.com).
3. Spend an hour a day learning about existing technologies and what they're good for. Go for breadth, as many things as possible, not depth. If you want to choose one in depth, focus on one that's related to your current knowledge (https://codewithoutrules.com/2016/04/27/which-technology/).
5. Only work 40 hours a week. Even better, 32. Working shorter hours will force you to focus on achieving your "X-in-a-week" project by being smarter about it, instead of brute force working longer. (https://codewithoutrules.com/2016/11/10/work-life-balance-so...)
6. Try to write up what you've learned every week. Explaining something to someone else improves your learning.
1. Pick a project that is either very time limited ("I will build a compiler in 5 days") or something you will actually use to solve a problem fairly quickly. Otherwise you're just spinning your wheels or building too many features. More here: https://codewithoutrules.com/2016/09/09/side-projects/
Notice that normal job writing software usually has both those aspects: actual need, actual deadlines.
2. At end of every day (or week), notice what you've done wrong and what cues and models you were missing that led to that mistake. (I do this here: https://softwareclown.com).
3. Spend an hour a day learning about existing technologies and what they're good for. Go for breadth, as many things as possible, not depth. If you want to choose one in depth, focus on one that's related to your current knowledge (https://codewithoutrules.com/2016/04/27/which-technology/).
4. Read some good books, watch some good videos, try to apply what you've learned. E.g. https://www.destroyallsoftware.com/talks/boundaries and https://www.youtube.com/watch?v=29MAL8pJImQ will take you quite far).
5. Only work 40 hours a week. Even better, 32. Working shorter hours will force you to focus on achieving your "X-in-a-week" project by being smarter about it, instead of brute force working longer. (https://codewithoutrules.com/2016/11/10/work-life-balance-so...)
6. Try to write up what you've learned every week. Explaining something to someone else improves your learning.