Lately I have seen several books, blogs, and sites about learning some technology “X” in 24 hours; these offerings sound largely preposterous to me. Now, before we start a holy war on what people can and cannot learn in a certain amount of time, let me scope this thesis a bit. In particular, I am criticizing the resources which seemingly offer you the world in a box (for a nominal fee, of course) and no time to digest the presented information.
Let’s begin with an example that we will use throughout this post. Consider one of the many resources which suggest you can “Learn iOS programming in 24 hours.” Well, sure, I too could teach you how to write a hello world program for any device (and likely in less than 24 hours), but you cannot truly get a sense of how to effectively program iOS apps from ground zero in 24 hours. In fact, this is something I claim to be impossible. If you don’t understand an acceptable programming language to begin with (i.e. ARM, C, C++, Objective-C, Swift), that– in and of itself– may take months if not years to master effectively.
But for sake of argument, suppose you already know any or all of these languages but nothing about iOS. Now, assume you want to create an app which uses the camera, microphone, and has a nice UI. Well, you can start your journey through Google, the iOS Developer Library, iOS Dev Center, and any other forum to start learning the APIs and writing some operational code. Once you have some backend code written from these APIs, you must now interact with the user. From here you would have to understand the iOS application model and connect all of your pieces together. Finally, you would need to debug your application to prepare it for the app store.
Now, I agree that most of these offerings do not claim to have you creating release-quality apps in 24 hours, however, my point is that there is too much to learn in these systems in that 24-hour timeframe. Assuming an experienced developer could create the basis for the above app in a couple of hours, it would likely take a new iOS developer at least 8-12 hours to get a full grasp of what is going on in those APIs and how to use them effectively. Now consider that these were merely two APIs that I suggested to use not to mention any other backend or RESTful service beyond basic data gathering that your app may need. Remember, using the camera and microphone in this case is not your app, it’s simply the data collection for whatever processing your app may accomplish. At this point, we would clearly be beyond the promised 24 hours to learn any sort of proficiency in developing for this device.
I suppose that my argument against these claims really boils down to the fact that the sheer complexity of these systems simply makes learning it in a crash course infeasible. Even if you were to become mildly comfortable with the toolset typically used to develop for a specific environment, there is a lot more to learn and perfect. Though, I do admit, comfort with your toolset is a huge win and a necessity for building quality applications on any platform.
The next time you decide you want to use a new (or foreign-to-you) technology to develop an app, I suggest you sit down, read the docs, and hack away at your project. Don’t go for the shortcuts since they will certainly be watered down and full of knowledge gaps missing invaluable information. Instead, do things the right way and read appropriately, develop what you can, and dig deeper into what you need. In my experience, learning a technology without an end-goal or use-case for it is an impossible task, however, when provided with a problem things start to fall into place much more naturally and quickly.comments powered by Disqus