The web development landscape is changing. People are accessing the internet via smartphones, tablets, and apps more and more. And this will only increase as 4G and bigger, better, and badder smartphones take hold. While websites will still remain important, iPhone and Android apps and websites optimized for mobile devices will only increase in importance. And if I don't want to become an obsolete web developer with only legacy web site skills, I've got to change with it. Fortunately for me, I am a relentless learner. I thrive on change and learning. So, I've decided to devote the next year of my life to expanding my web building skill set. I'll be studying object oriented programming with Java, C++, and PHP, iPhone and Droid app development, and increasing my knowledge in other areas such as Git, LAMP, virtualization, and regex. My primary sources of learning will come from three places:
1. Stanford Engineering Everywhere. These are select courses that Stanford University has posted in their entirety - videos of lectures, coursework, handouts, etc.- free for professional development. Specifically, I'll be doing:
- Programming Methodology
- Programming Abstractions
- Programming Paradigms
- iPhone Development
2. Books. Including:
- iOS Programming: The Big Nerd Ranch Guide
- PHP Objects, Patterns, and Practice
- PHP Master:Write Cutting-edge Code
- Pro Git
- Clean Code: A Handbook of Agile Software Craftmanship
- The Pragmatic Programmer
- Programming Android
3. Projects. I have a number of personal projects on the agenda that I will doing in order to facilitate learning the above.
These are the ones I've identified at the onset. I'm sure other resources will crop up and this list may change as necessary. My plan is to use Blue Frog Development to document my journey as I make my way through these resources - blogging about what I've learned, posting solutions to exercises, and generally serving as a brain dump that I can refer back to and that will hopefully benefit others out there.
First up is Stanford's Programming Methodology....