It is common to learn new frameworks and or programming languages as a software developer. However, learning a new framework or a programming language is a huge commitment. It takes months to get yourself familiar enough to do anything practical.
Therefore, my goal in this post is to share with you how I speed up my learning process for a new framework or programming language.
Start With the Basics
A framework often supports only a small fixed number of programming languages. Find out what those languages are and choose one that you know or familiar with if possible.
A framework assumes you know how to code in the language that it supports, so if you do not know the language, go learn and code something basic. Look up the basics of the language and then follow a tutorial or two. You do not need to be intimated by learning a new language because some of what you know is probably transferable. One of your biggest obstacles is going to be the syntax.
Once you are familiar with the language that the framework uses, build something simple with the framework. You can follow a tutorial or go through a MOOC (Massive Open Online Courses). The important thing is for you to have a goal because it will narrow down the information you need to learn, which makes it manageable. When you try to learn everything, you end up learning nothing. However, if you narrow down to learning one topic then you will likely learn it.
Learn About the Framework
Learn about how the framework works internally. Understand the architecture that the framework is using. For example, does it use an MVC (Models, Views, and Controllers) architecture? Understand how objects are communicating between the framework. Understand how each piece fit together and form a whole application.
A framework is huge and it would be impossible for you to dive in and learn all there is available for the framework. Therefore, my recommendation is to create a simple application using the framework because along the way you will have questions. Then you can go through the documentation and other sources to answer those questions. When you are actively seeking answers to your questions, you retain more of that information.
Learn About the API
Most frameworks come with API (Application Programming Interface) to make development easier and faster. Chances are what you are thinking of doing might already have an API that does it. Therefore, before coding, you should check what APIs are available to save yourself time. It is possible that you will end up connecting a bunch of APIs together for your application.
Consider Your Learning Style
Your learning style will play a huge role in how much new information you can learn. If you spend your time learning based on your learning style then you will retain more information. Conversely, if you spend the entire time trying to learn in a way that does not align with your learning style you will retain minimal information for your effort. I have a post about effective learning and learning styles that go into detail about this topic if you are interested.
Debugging and Testing
Frameworks often come with a handful of tools that you can leverage to debug your application. For example, one of the tools can be an administrative console that lets you have root access to your testing devices. An example of such administrative tool is the ADB (Android Debug Bridge) for Android development.
In addition to learning about the framework’s debugging tools, you should also become familiar with writing test code for your application. You may think that it is a waste of time, but that is not the case if you consider the entire duration of a project. If you are constantly testing your application throughout development, the amount of technical debt accumulated will be small. The amount of time to fix technical debt is exponential, so if you put off testing until the end; it often results in longer development time than testing along the way during development.
If you found this post helpful to you, share it with others so they can benefit too.
Did this post help you in learning a framework or a programming language? Did this post provide you with a general guideline on how to approach learning a new framework or language if you do not already have your own system?
Leave a comment or send me an email at steven@brightdevelopers.com. To stay in touch, follow me on Twitter.
Pingback: iOS Bluetooth Low Energy and Custom Hardware Intro - Part 1 - bright developers