Since starting LearnToCode.Social a couple months ago I’ve been following the Learning Path we recommend. I got my badge on HackerRank last week. This week I’m getting started with Android. On LearnToCode.Social we recommend the Udacity intro to Android course. I prefer text to video so I switched over to the Getting Started training material available on the official Google Android Developer website. Android is new for me and will take some getting used to. Its nice that I feel comfortable with the Language so I can focus on the Android world.
As I go through the Android Exercises I’m also enjoying the benefit of the learning community here. While everything looks straitforward, just trying to follow exactly whats in the Getting Started guide can be frustrating and difficult. I’ve found myself blocked a couple times where the people sitting next to me were able to help me figure it out. This feeling of being stuck on something that might be simple to someone else is fundamental to the software development experience. My dad used to call it the ‘nearest nerd problem’ which says basically that the difficulty of solving challenging problems goes up dramatically with the distance to someone you could talk to about it.
Much of the CodeForIndia Fellowship work is likely to be building Android Apps for low income people accessing the internet in local language over smart phones and tablets. The Gurukul and LearnToCode.Social to prepare people for this kind of work. That means a focus on Java / Android. This jives well with my history as I worked in the Java team at Sun Microsystems in Palo Alto 20 years ago.
Java seems to be in a good place right now. Android Studio & IntelliJ are world class development environments. The Play Framework also seems popular as a modern web framework. People complain about the verboseness of Java, but after spending a little time in the Ruby and PHP world I personally prefer the explicitness of Java and from a teaching perspective I find it easier to talk about whats going on when everything is strongly typed and explicitly stated.