3 ms·
I think it's far and away self-study or if you can find a good online course among the free solutions you can start there. The Art of Computer Programming by K
by TimPC 13y ago
I think it's far and away self-study or if you can find a good online course among the free solutions you can start there. The Art of Computer Programming by Knuth has a lot of the theory included and doesn't hold back on the Math. Similarly, Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein is quite good for the basis of Algorithm theory.
That being said, theory plays a small role in everyday development. If your primary goal is to increase your knowledge as it relates to development you don't want to focus on theory until it becomes a pain point. Algorithm theory helps with scalability, but practice is far more useful to programming. Conferences in your field that can expose you to new things to learn and different tool chains in your language are valuable. Learning a new related language can also be valuable you might consider learning iOS and then JavaScript which would let you work on Android, iOS and Cordova (formerly PhoneGap) applications at a level where you'd be comfortable going from JavaScript to native to write unavailable features.
If you're happy and have good opportunities on Android, focus on getting a deeper understanding: what are good open source repos, what coding conventions do they use, what frameworks and approaches could you know better. Are there parts of the OS you haven't worked with and wanted to? For instance, I built a demo app for LG designed for in-store promo devices where we hacked around in the OS to intercept the display of screens that would let the user delete apps from the phone and throw up a password lock that would kick them out to the main screen. Try and get a sense of where your best (however you measure it) opportunities are and focus your learning in that direction.