When you already have programming experience
Approach to learning
Recently I was having a discussion with one experienced programmer who wanted to start learning iOS development. He wanted to learn the technology well enough to be able to start working in the industry and creating the products. The first question that he asked was, what will be the best way to learn? And based on my experience in programming, learning, and training in almost instinctively suggested-
“The best way to learn a technology is to build a product. That way you will remain invested in the idea and will have the motivation to complete the work. That will lead to grasping the details of development along with the process. So I would like you to come up with an idea, any idea is good.”
I believe it. Coming from not so good institution and making my way through the development of fraternity and keeping myself up-to-date with the technologies since 2011, I can say this is my tested way of learning new technology.
One thing that I always say to anyone who has prior experience in development and want to learn new technology, “It takes a month to learn and a life to keep excelling”. If you devote yourself to it, will maximum take a month to get an idea about tech, and then then it’s up to you how you keep excelling at each aspect of it. The more complex problem you solve using this technology the better you will get at it.
Approach to training
Another very good question that came up was, How will I approach training? Mainly will I give a 1:1 session, programing with the candidate, or something else?
I believe this totally depends on the preference of the candidate, some do better in binary programming, some will need guidance over 1:1 session and other prefer code review. When not sure I go with code review with 1:1 session. This is probably the oldest approach when I think about it. That how they have been teaching since like forever.
I would explain the components, not one but many, as those are always relatable to what you already know during the session. Once you have an idea about all the components that will be needed to create one or many pages then you can create a section of your idea by implementing those components. Go page by page, complete it push it, and let me check it. I will then review the code, test the application add the comments, may ask you to restructure some of the flow, and then we’ll go through it together if any this in unclear to you.
Once the implementation is done then we’ll test it together and you will need to fix all the feedbacks, issues, and bugs that will come up. Once this phase is settled Maybe we can share this application with your friends through Testflight to get some end user’s perspective of your product. Include their suggestion and positive criticism in your application, and then if you feel proud about it, let’s push it to AppStore.
Now we’ll face AppleProduct reviews and rejections from the AppStore. fix those add all the right data and now let’s share it with the world if you feel positive about it and think that you are ready to maintain and market it.