Programming Languages & Frameworks, How to learn them quickly ?
• • ☕️☕️ 9 min readIntroduction
If you are a person who is in the domain of Information Technology (IT), I think you do not need an introduction to the importance of programming languages and frameworks. Also, you might know how fast they update and upgrade. Even though the concepts and principals behind most of these are the same, they all come with their own capabilities and specialties.
Therefore, learning several languages and frameworks might come in handy when selecting the technology stack for your next project, depending on the requirements.
Why it is hard to learn several languages and frameworks ?
You might think that learning all these technologies is a difficult task. But actually, it is not. Surprised ???
As I mentioned in the introduction portion of this article, all the programming languages and frameworks share a set of common concepts and functionalities. As an example, if you take a for loop, it is very similar in most of the languages.
It is just learning a set of new syntaxes that is specific to a particular language. Once you have a little understanding of the structure and the capabilities of a language or a framework, you are good to go!What is the language or the framework that I should learn now?
This is the first and the most common question that gets into your mind. The most straightforward answer is, “Well, it depends.” There are several things that you should consider.
- Is the language or the framework still valid ?
- What are the capabilities of the language or the framework and do those fullfill my requirements?
There are about 650 programming languages built for various use cases and requirements. Some of them are outdated. Some of them are used to solve particular problems. Some of the languages are dying.
It would be best if you looked for the trending and most popular technologies right now. StackOverflow survey is one of the best places to understand the trends in the world of technology.
Different languages and frameworks have different use cases and capabilities. If you want to develop a front-end application, you can try out React JS, Angular, JQuery, JavaScript, etc. If you are developing a server-side application, you can go for languages and frameworks like node JS, Spring Boot, DotNET, and Django.
What you should do ?
You have to jump into the water if you want to learn how to swim. Similarly, you have to start coding straight away if you’re going to learn a programming language or a framework. I can assure you that you won’t learn anything by just watching hundreds of tutorials.
Step by step, let's see what you should do :)
- Set up your development environment
- Come up with a hypothetical scenario.
- Refer the Documentaion.
- Play with the sample code.
- Learn how to debug the code
- Connect with other technologies
- Learn How to deliver the project
To start coding, you might need to set up your environment based on the requirements of the language or framework that you use. As an example, to work with Java, you have to install JDK and JRE. To work with a node-based framework, you have to install NodeJS and Npm.
Also, there are some constraints on the Operating system you are using, specially when you are developing applications for Apple products. In most of the cases, you have to download and install relevant SDKs.
And it is crucial to choose the IDE that you want to use. I personally prefer the VS Code in most of my projects. But for some cases, it is better to use an IDE specific to those kinds of developments. Such as PyCharm, Spring Tool Suite. Because those IDEs provide much more functionalities and features; specially when it comes to debugging.
Before you start coding, you need a set of requirements. Those requirements should be as specific as possible if you are trying to learn a new language or a framework. You can find and specify these requirements by coming up with a hypothetical scenario. Then you can update this scenario in the course of the learning process.
When you are selecting the scenario, try to come up with a simple one first. Let me give you an example.
You can start with a simple product page where we display an image, price, and availability based on a hardcoded array.
Then you can add a function to add products to that array.
Next, you can add a function to check out a product from the product page.
After that, you can try to save those data in a database and send emails to the buyers.
Likewise, you can add advanced features whenever you feel comfortable with the structure and the style of the language or framework.
I know that most of you use Youtube to watch tutorials often to develop applications and refer StackOverflow to find solutions to your questions. But, as I mentioned several times earlier, these languages and frameworks receive updates and security patches every day.
But the problem here is that the Youtube video that you are watching might be posted a year ago. There can be performance and security improvements in the later updates.
Every language and framework maintains its own technical documentation. Everything that you want, including the latest changes and updates, is there.
So it is okay to watch video tutorials and articles, but you should always refer to the official documentation.
There are several places that you can get a sample code, a boilerplate, in other words. Github repositories, Youtube videos, Official Documentations, and articles are places where you can obtain a sample code.
Rather than copy and paste the code, in my opinion you should play with the code.
You can change the values and properties of the code and observe the changes in the output. Then you can have a better understanding of how the system connects and works.
When it comes to the development process, debugging plays a significant role. In most languages, the debugging process is the same. Sometimes you might need to connect an external device or spin up a virtual device/ emulator to debug your code.
It would be best if you learned how to run the developed application inside those environments.
It is highly unlikely to have an application developed using only one technology. If you are working with a frontend technology, most probably, at some point, you have to connect it with a backend and vise versa. You might have to connect it with a database.
When you try to learn a programming language or a framework, try to combine it with the technologies you already know. Try to use cloud functions. Try to add various technologies. As an example, you can try out JWT (JSON Web Tokens) to handle authentication and authorization. It will improve your skills as well as the application.
One of the most common mistakes that I see among my peers is that they develop the application and do not think about the delivery process. When it comes to the delivery, it can be different based on your application.
If you have developed a web application, you should learn how to host the front-end application with a domain, deploy the server and database, and optimize the search engines to find your domain.
If you are developing a mobile application, you should learn how to create an installable file, deliver that to multiple platforms, upload it to the play store and app store, send notifications, send updates and send security patches.
If you are developing a desktop application, you should consider how to create a setup file, platforms that are compatible with the application, backup data, and maintenance.
IMPORTANT
Learning a new language or framework does not mean that you have to master it because it might take a long time. As this industry is growing and updating so fast continuously, you just need to have a brief idea about the capabilities and limitations of these technologies. Once you know these, you can apply that knowledge to develop more significant and real-world applications. Then only you need to go into deep.
Thank you very much for reading my thoughts about this topic. I hope that you got something out of this. I always welcome your feedback, and it will help me to improve myself. Let’s meet again with another article.
Stay Safe (Please consider sharing this with your friends :) )