Hey there DEV.to community.
Currently, I'm studying computer engineering at Tabriz University and one of the things that everyone asks me is how to learn a programming language and how to do it quickly (I hate that English doesn't have fastly :|).
This matter gave me an idea to write this post and share my experience with everyone.
Keep in mind that although this method can help you learn programming faster, this can cause you some trouble with getting back to some harder languages. So don't try to completely avoid the language you initially intended to learn.
Learning a programming language can be boring sometimes for some people (not me! I really love learning computer stuff XD), so don't push yourself too hard since you can get bored and that can affect your learning path.
Whenever you feel that a subject is too hard for now just skip it and start practicing other features that you know. Seeing that you can write your own program even with some basic coding knowledge will encourage you to keep it up and move forward.
Maybe this is not that much relative to this article but it can be really important about learning.
The answer is there is no best programming language to start with, every programming language has its own pros and cons relating to the field you would want to use it.
(Examples above are just intended to be there, I know you can write AI with C++ or use Python for back-end programming XD)
So you first should choose your path and what you want to do then choose the best tools available for them.
I'm listing some below:
Low-level programming: Low-level programming usually means getting direct contact with the hardware. C/C++ and Assembly are the two most used programming languages for this matter.
AI: Well, I'm not that much involved in this part but as far as I know and my friends told me Python is the most reliable one in this case and the libraries that are available for AI in Python are really great.
A very well-known way of challenging yourself is to write a simple game like the very famous snake game. It is possible to write this simple yet challenging game in almost every programming language.
The snake game will challenge you to get user inputs for movement and using static states in classes to gather some data such as how many dots your snake has eaten and you will have to use the random number generator for spawning the dots in random places.
If you want to go furthermore, try to make a simple weblog using a simple HTTP library that runs in your preferred programming language.
I can confess almost 80% of my programming knowledge is thanks to YouTubers and I believe almost every programmer is also like me and they learned most of their skills from YouTube.
Before going any further let's give a round of applause to all my Hindi friends teaching programming on YouTube.
Hitesh is one of the guys I learned so many things from and really like his videos.
And Mosh Hamadni (I think he is Iranian, not sure though) is a great tutor too. For those who want to learn Java, I really suggest the video below:
These guys have some paid courses as well, but I believe learning programming can be done for free if you are enthusiastic enough.
Me myself I've never paid for any courses for programming.
Sharing knowledge not only benefits the guys you are sharing with but it benefits you more! When you are trying to teach something to someone (even from the really basic knowledge you have) you might question yourself something that you never thought about before, even, the guy who you are teaching to can also ask a question that you don't know the answer so it will make you go and search!
Don't be afraid about saying "I don't know", no one knows everything!
Google is your best friend! Search everything you encounter with. Searching will help you find your answers even quicker than asking your friends!
By searching a solution for a problem you will learn 10 times more since you will encounter many more aspects even not related to your problem.
As much as you search you are going to gain knowledge.
Many people will tell you that you better learn one programming language at a time but I'm suggesting you do the exact opposite and I have a reason for that!
Learning two languages at the same time can help you tremendously! Each language has some aspects that the other one might have it in a different way that is not visible! I call them hidden aspects! XD. It will be really helpful for you to learn them in another language and try it in the other one.
Codecademy is one of the best ways to learn a programming language!
Follow the link and sign up and use its free courses. They are interactive and will teach you in a really enjoyable way.
Tell me your ideas in the comments section below and correct me if I'm wrong.
I hope you enjoyed!