New programming language: Be a fast learner.

“Do you have any tips to learn this programming language… in a shorter time???” If I am correct this question I might have asked many folks at the younger age of programming world, and surprisingly I now hear same question getting directed to me (I realized I am not the only one… who was crazy to ask this) by many freshers, novices in office, tech meetups or community groups.

The answer to this question...which I at least used to give is pretty straightforward… in fact its ISO 9000 certified answers… like get a good book, start with coding demo application, form learning groups, devote time regularly… although no one can deny these but in reality I was never confident of my certified answer.

Just last week, I have picked one iOS prototype project to code, and as a newbie to iOS ecosystem, I have been asked the same question again… but this time asked was me. Hence for the first time I was curious how can I come up with effective steps which can certainly fuel my language learning. Gearing for the mission, I spent couple of minutes to find out what other experts suggest for the same problem, I gathered many of them which made sense.

After a week of development, and assessing those tips, I filtered, corrected many of them. So here is the final list of tips which made sense to me. Hope it helps others as well..

  • Get the real concept of the language:

    This is the first and foremost important tip. Different languages are designed to solve different types of problems. Going back to basics, sets the mindset and expectation what could be the next journey.

  • Gather all relevant material at first:

    We don't start a long journey without getting stuffed right accessories, same applies for this case. Getting right tool, the right source of documents and a possible help of real live resource to fix quick mess up would be most important. Real help could be your colleague, friend if none possible easily through StackOverflow, healthy ad-free twitter groups like code newbies, flatiron school are best options.

  • Truly, Understand the Documentation:

    It's very important to thoroughly understand core prefix and indexes of documentation at the front. It helps to avoid very common type of frustration most of us get down the line when right information needed. This tip is highly undervalued among all but knowing it on time will really make a difference.

  • Find a Cheat Sheet:

    Every programming language comes with the set of quick cheat sheets for common commands, most used functions like logging, debugging. It's also important not to miss it at the front.

  • Relax and take a break:

    It makes sense that once you've done the gathering of materials, reading and understanding the basics, to dive right into piecing together a demo application. But, in order for proper learning to happen, you have to let the information marinate in your mind over the course of a few hours. Best take a break for a day and let the information seep in your head overnight.

  • Learn with Short Examples — Don't try with a big project:

    It’s important to focus on an individual aspect of the language at the beginning in isolation of others. Big project always carries many aspects of the language and other third party systems which can derail the learning in the initial days. Integration with other aspects is best learned once you have a solid foundation in the language.

  • Type in All the Code Examples Yourself:

    If you are damn serious about your business, what you are trying to achieve here then this tip is more practical. You have to be a maniac about typing while you learn. Typing stimulates memory and retention along with questioning mindset at each step, self-learned and much much better than glancing at them in a book or in a video. Down the language new language doesn't matter much, what matters is patterns, syntax and typing in the examples and making them work is perhaps the most important part of this learning process.

  • Make It Run! :

    I think one of the key best way of learning something and also manage growing interest by having smaller accomplishments, either it may be assignments, challenges or bug fixing. And all this won't happen in learning until close the door behind you before opening a new one. Always, always, always make your program run. Debug it until the result is correct.

  • Rely on Real People:

    Reinventing a wheel while learning or coding is highly undesirable. But the truth is it happens quite often knowingly or unknowingly. There might be a case where new beginner stuck in very silly issues which takes hours to fix or understand but can be solved within a minute by an experienced person. So its always better to have a backing of the real person when needed. There are different places where you can look for help, like office colleagues, stack overflow, language's forums, meetups or outside resources like twitter.

  • Make a Time Commitment for Learning:

    Context switching the major term you might hear while working in the software industry. If you move your mind from one work to other, you have to go through at least 15-20 minutes before settle down to newer task if they belong to different domains or context. Same applies while language learning. Learning in large, uninterrupted chunks is the best way to really soak in the language. Small learning sessions over the course of the week aren't that productive for learning a language than blocking out a day or two where your schedule is free for other tasks.

  • Break the boundaries … Go One Step Further to be a master:

    Finish each lesson, labor exercise and also try to take it one step further with related scenarios or problems. Doing this has a couple of advantages, you get familiar with language documentation that main, but you also get reinforce the concepts in the lesson.