Learn New Programming #Tips&Tricks
Nalin Chhajer
Engineering Manager, Mobile (Android, iOS, React Native) | Constantly looking for way to enrich user experience.
Today I will share from my experience some tips and tricks to those who want to learn a new programming language. Hope it helps you too as it helped me a lot. I am able to code in Objective-C, Swift, Java, Kotlin, Javascript and Python. Some of my tricks will help you jump past your psychology and mindset and help you develop any apps and website. Please help me improve this articles too by sharing some of tricks from your life too.
Tip #1 : Documentation of Programming Language
A very important skills to learn as a developer is to understand how to read documentation. Even if we read 500 pages books on programming language, if you don't follow official documentation you will not be aware of new changes and version that is released. Always keep documentation handy. Every major programming language have very extensive documentation with such a detailed explanation and example. Ensure you go through it once. Some of the documentation I follow are
Kotlin : https://kotlinlang.org/docs/home.html
Swift : https://docs.swift.org/swift-book/ReferenceManual/AboutTheLanguageReference.html
Javascript : https://developer.mozilla.org/en-US/docs/Web/JavaScript
Tip #2 : Strengthen your programming skills
As a developer our Analytics and Logical reasoning is always tested, this makes our brain stronger on this area. As more and more you code, the more you can relate. Make sure you have basics of programming language strong, this is very important as those are building blocks of all technology. If you are starting ensure to learn about Data Structure, Algorithm. Nowadays we have so many website available that helps you strengthen your programming skills, use LeetCode, Geeks for Geeks and many others. If you are new and if you can, then go through the Stanford/MIT lecture on programming, this lecture are available in Youtube and at free of charge. The quality of this course is very good and help you strengthen your programming skills.
As a software developer, every piece of software that we write have to follow below constraint - Time Complexity, Space complexity and Code Readability. The more you develop, it become your habit so better to try to start learning new technology by solving LeetCode problems. Solve more problem around Map, Array, String manipulation, Bit manipulation, functions and others. Also solve some Graph programming too, as some cases they help you solve specific set of problem. All known data structure and algorithm become your cheat sheet and is applicable on almost all kind of programming language.
领英推荐
Tip #3 : Pseudo Code and Patterns
If you know the problem, you can write solution in any programming language and the path to solution is almost same. When we develop on Android, iOS or React Native, the solution is same, so better we do our discussion on high level on approach to solve the problem and then independently it become easy to execute. Knowing Design patterns available and knowing standard pattern is always recommended. In software development, we write lot of reusable code, also software need updates and you can come up with better algorithm in future. The more you design your code as plug and play the more it is better. Do a fast POC on a feature and keep improving it as soon as you get the feedback.
Learn to write pseudo code and try to visualise common patterns use in the code. Follow open source repository that will teach you the coding standard and also pattern used. We follow pattern in our code so that whatever we develop can scale and help us add more and more feature. Design pattern does not stop at using MVVM. If I develop an app, there is a Library part that can be reused in other apps/features and others is core part. The API that we expose on Library also matters a lot. My recommendation is to go through Design pattern by gang of Four but also keep a cheat sheet of design patterns with you. Using pattern help you do A/B testing on Algorithm easily.
Tip #4 : Debugging and Unit test
Debugging is very important principle, you should invest you time in learning and identifying various debugging technique on any platform. There will be a time when customers are facing a particular issue but you are not able to reproduce it. Have proper breadcrumb in your code, have sufficient logging and also ensure you can track this when needed. Give customer an option to report as problem.
Having a good unit testing framework also is equally important. I would always have a custom unit testing setup in my code so I can test any part of my code with just writing couple of line of code. I would always encourage to write end-to end testing that help you get code coverage a lot. Unit testing helps you ensure you deliver better tested code and help you test your algorithm against all odds of input. You may never know where and how algorithm you are writing will be used, unit test helps you enhance your algorithm without breaking your existing condition. Never do unit testing just for a sake, no need to do line by line testing that eventually needed to be change when you change your code. Do it to ensure you meet the expectation that was communicated.
Tip #5 : Learn together
When I started my career, I had a learning buddy, we would not learn from each other but we will have a competition between us to do better and faster coding. This become an encouragement for me to quickly scale up the learning curve and start contributing. Always stay connected with someone who is learning, it can be peer or someone from different company. If you ask me, coding is fun and I have my wife who is not from tech background to develop an App. So go ahead, learn new language, start developing on it, share with others, improve and lead. Follow this path for your success.
Tip #6 : Tooling
Using a write tool also matters a lot. On big project we do lot of code refactoring, code lint check and bulk code manipulation. In javascript I have worked with VSCode and Webstorm and I am comfortable with Webstorm as lot of feature are missing in VSCode as Webstorm have better indexing. For android, no better tool than Android Studio and iOS have xCode. Also, it is not necessary to follow use one tool, spend time to learn code creation that helps you create boiler plate code.
Sr. Developer Advocate at MongoDB | ex Postman | GSoC Mentor | C100DEV
3 年Great insights. Some time back I also wrote a blog on Escaping The Tutorial Hell. Let me know your thoughts on it: https://medium.com/@sourabhbagrecha/how-i-saved-myself-from-the-tutorial-hell-fdbd0e1b67e9