*Some tips and advises to learn programming languages more effectively*

Today I’m going to post an article about “Tips for learning programming languages” for people who are beginners or experienced programmers. If you find any tips below helpful, please leave your comments below to let me know or share it with other people to help them.

Some tips and advises to learn programming languages more effectively

  1. Spending at least 2 months learning each technology. Ex: programming languages, IDE tools, Web hosting Services, Cloud computing, framework, and so on.

-We can learn new things like those in just a few weeks, but if we want to know how things actually work, how to fix problems, how to connect each technology to each other, how to create projects based on them, how to explain the way we are using them, what necessary tools and bad tools are, and so on. Then, we must invest more time than that.

  • For example:
  • If you think that you can become a good JavaScript programmer by just learning all the basic syntax of JavaScript in 1 month. Then, your skills are still not good enough. As a programmer, I can ask you to write JavaScript syntax to make a slideshow, syntax to display data in a slideshow after you connect data from a JSON file that has been converted through data that you get from a online database, syntax to prevent user from downloading media file from your website, or syntax to add random UTF-8 character into your domain url to prevent hacker, and so on. If you can googling or browsing documents, and find the answers in just 20 minutes, then you are good, but if it takes you an entire day, then you must continue learning JavaScript.
  1. Find a suitable resource to learn

-There are too many resources that can teach you learn new programming languages. Coursera, Codecademy, Freecodecamp, Udemy, Youtube, and so on. I can’t suggest something that is best for you because I don’t know how a good learner you are. If you find some resources are so useful, easy to learn and you can make a lot of progress out of it, then please stick with it long enough until you finish it. When you have a good foundation, you can learn new technologies, or skills easily. Be warning that a lot of courses tend to be similar to each other and you need to make sure that you don’t waste money and time to learn something that you have known before. For example: Fullstack web developer divided into beginner level, intermediate, and advanced levels. Beginners tend to learn HTML, CSS, JavaScript, Bootstrap, Intermediate tend to learn jQuery, AngularJS, React, advanced tend to learn PHP, nodejs, mySQL, mongoDB, web hosting service, cloud computing and so on. If you finish beginner level of Fullstack web developer, you don’t need to go to Microsoft website and find beginner Web developer course to learn.

  1. Practice coding and building new projects when you learn new things.

-We can’t remember syntax by just reading concepts. Most of online coding documents are so complicated and confuse us like we are reading an alien language, and just show us more theories than real-life projects. In addition, the examples that they are showing tend to complicated things. Therefore, it would be better if we spend time writing syntax and create something to see the output or bugs whenever we learn new things instead of just reading, or skimming coding concepts.

-For example:

+When you learn AJAX( a JavaScript framework), you can see some new basic syntax on online document like below:

var xml = new XMLHttpRequest();

xml.onload = function(){

if(this.readyState==4 && this.status == 200){

document.getElementById(“car_data_block1”).innerHTML = this.responseText;

}

}

xml.open(“GET”,“car_data_info.json”,true);

xml.send();

Please spend time analyze stuffs like what XMLHttpRequest() is, what onload is, where is ‘car_data_info.json’ file, where the syntax has id=‘car_data_block1’ is, and so on to actually understand those syntaxes. Then, make a project like Car collection Information. In this project, try to create JSON file(file with .json extensions like car_data_info.json) and write car data into it, data can be array, child object, string, number, these data store car model, car price, car brand, car color, and so on. Next, have a Html file( file with .html extensions) that has two

block with specific id attribute values to display those information. Try to insert JavaScript AJAX syntax to get data from JSON file and display it into those
block

=>This example may not enough to help you solve all the world problems, but it can help you create programming mindset to learn new coding concepts more effectively.

  1. Write code in ways that you can read

-Writing syntax is just like write an essay or paragraph, it needs structure, indent, line break, big letter or small letter, highlight with different color and so on. If you don’t follow the rules, you can’t read your codes. Here are two example:

+This is how a normal programmer write syntax:

const Carinfo = {

Model:”Pagani_Huayra”,

Brand:”Pagani”,

Price:”$ 14,869,999”

}

function Show_Pagani_Advertisement(carinfo_object){

let Pagani_model_1 = “Pagani_Huayra”;

if(carinfo_object.Model == Pagani_model_1){

return console.log(`

This is model: ${carinfo_object.Model}, brand: ${carinfo_object.Brand}, Price: ${carinfo_object.Price}.

`);

}else{

return console.log(Welcome to this Car Showroom);

}

}

Show_Pagani_Advertisement(Carinfo);

+This is how a programmer with IQ=0 write syntax:

const Carinfo = {Model:”Pagani_Huayra”,Brand:”Pagani”,Price:”$ 14,869,999”}function Show_Pagani_ Advertisement(carinfo_object){let Pagani_model_1 = “Pagani_Huayra”;if(carinfo_object.Model == Pagani_model_1){return console.log(This is model: ${carinfo_object.Model}, brand: ${carinfo_object.Brand}, Price: ${carinfo_object.Price}.);}else{return console.log(Welcome to this Car Showroom);}} Show_Pagani_ Advertisement(Carinfo); const Carinfo2 = {Model:”Pagani_Huayra”,Brand:”Pagani”,Price:”$ 14,869,999”}function Show_Pagani_ Advertisement2(carinfo_object){let Pagani_model_2 = “Pagani_Huayra”;if(carinfo_object.Model == Pagani_model_2){return console.log(This is model: ${carinfo_object.Model}, brand: ${carinfo_object.Brand}, Price: ${carinfo_object.Price}.);}else{return console.log(Welcome to this Car Showroom);}} Show_Pagani_ Advertisement2(Carinfo2);

//What the ■■■■ am I looking at?

-Using IDE can help highlight syntax on different color to help you write codes, read codes and remember codes more effectively

-Please give your syntax enough line space and line break so that you can read them easier.

-Please don’t overuse abbreviation, or confuse other developer by using confuse name or value. If you study by yourself at home, you can write anything you want, but when you go to work and other developer needs to read your codes, then, they want to understand it too. Here are some examples:

+Var carinfo = {} //This is an object using ‘var’ variable. This object named ‘carinfo’. I can know that this object contains car information

+Var cifo = {} // This is an object using ‘var’ variable. This object named ‘cifo’. I have no ideas what thing can you put into this object. Can I put Car information, Cream information, Chess information, and Color information?

  1. Don’t force yourself to remember everything.

-Whether you want to be a Web Developer, Software Developer, or Game Developer, you have to know all kinds of necessary technologies or skills to put into your project.

-Here are some examples about the things you need to learn to become a developer that you want.

+Web Development: HTML, CSS, JavaScript, Sass, JQuery, AngularJS, Boostrap, W3CSS, XML, React, Redux, ExpressJS, nextJS, nodeJS, mongoDB, DynamoDB, PHP, mySQL,noSQL, vueJS, Python, C++ web hosting service like AWS, Google Cloud, IBM cloud, Oracle cloud, Github, VS Code, command line interface, and so on.

+Software Development: Java, C++, C#,C, objective-C, Python, Ruby, Swift, Kohtin, Go, IOS, linux, window, Android, cloud computing, data structure, algorithm, mySQL, command line interface, computer networking, hacking skills, Mathematics skills, database system skills, graphic skills, and so on

+Game Development: Unity, Unreal engine, C++,C#, JavaScript, IOS, Linux, Window, Android, Algorithm, computer networking, hacking skills, Mathematics skills, database system skills, graphic skills, video editor skills, music producing skills, architecture skills, story telling skills, and so on.

+AI(artificial intelligent): Python, R, C#, C++, Java, Mathplotlib, Panda, Algorithm, Mathematic skills, Database, NumPy, machine learning, deep learning, data processing, robotic, speech processing, and so on

-A lot of things to learn, right? Each thing takes you at least 1 months to learn, and there’s something that requires you to take nearly 1 year or many years to study. The only thing that your brain can remember in the long run are how things work, and the things that you are working with daily. You may see that if you don’t use any Sass syntax in your project in 1 month, then you are going to forget how to write @use or @forward syntax effectively. The only way to help you solve this memory problem is browsing document online, or googling to find the answers. This is why you must create your own coding documents so that you can review it quickly which is why Microsoft word, google docs, and GitHub are useful tools for developer. In addition, code snippets tools from IDE like VS Code can help you write code quicker by injecting a bunch of code that you customized before into your project so that you don’t need to waste more time writing syntax by yourself anymore.

-You may find that sometimes you can face something that are important and unnecessary. The unimportant things are the things that you don’t often use in your program. Don’t try to spend more time on unimportant stuffs. You can googling something like ‘should I learn….’. For example: ‘Should I learn React Profiler? Should I learn HTML embed | output syntax?’ and so on to find out unnecessary tools or technologies.

=>In general, when you learn new things, try to make good habits like write new information on MS document, save new syntax or projects on GitHub, and save new syntax to code snippets files so that the next time you can use them and review them quickly.

  1. Always googling, browsing documents

-Like I said above, there’s no way you can remember all syntax precisely without review old documents or googling and browsing documents online. Therefore, please take advantages of those behaviors to learn new things and review old stuffs.

-Here are some resources that you tend to use most often when you programming:

+GeeksforGeeks, Stackoverflow, Github, MS Words, Google docs, Codecademy, Freecodecamp, code snippets of IDE, programming languages main webpage like Python(python .org),React(react .org), jquery(jquery .com) and so on.

=> No matter which resources you use, just make sure that it helps you get your jobs done.

  1. Use code snippets to write code faster

-Thanks to Code snippets tools from IDE like VS Code, now we can write code quicker by injecting a bunch of code that you customized before into your project so that you don’t need to waste more time writing syntax by yourself anymore. Just by writing a prefix like ‘rf’ and you got a block of Reactjs function syntax in your text editor, really amazing, right?

-You can install code snippet from IDE marketplace or customize a code snippets file yourself. Don’t rely too much on these tools because the more snippets you make, the more prefix you have to remember, in worst case, you can make your code snippet files too large which contains too many block of syntax that makes it harder to adjust the syntax. If the code snippets file just contains 1000 lines of code, you can find the thing you want to adjust easily, but if it contains more than 100000000 lines of code, it could be a huge problem. Code snippets helps you write code faster, not help you memorized code faster. If you forget how to put “{}” symbol when you write a React class component, then you have to write React class component syntax more than 20 times to remember it, not by write a prefix like ‘rcls’ to inject a block of class component into your text editor.

 Try to customize your own code snippet files and remember the prefix. Don’t write into it a whole big project with one billion syntaxes. You just need to write basic syntax or the syntax that you think you need to work with them every day. It would be better if you use code snippets when you write project instead of use it when you learn new coding concepts.

8)Use as much as technologies to help you study more effectively

-The more computer screen you got, the more time you can save.

+When you make a big project that requires different programming languages, you need to work with different files, documents, ide, and so on. Having many computer screen can make your jobs done faster by placing different kinds of these things on different screen.

-If you have a goal to become a software engineer, it would be better if you buy different computer or laptop that run on different operating system like Window, Mac-OS, Linux, Ubuntu because some programming languages don’t interact with other operating system

-You can use the tablets run IOS or Android system as another computer screen because they can connect to your computer.

-If you tend to work with laptop and tablets most of the time, you can consider buying some laptop or tablets stand that help holding your device on a higher level from your desk to protect your neck from bending forward. In addition, make sure that you your laptop or tablets stand can help you work with your device even if you are lying on your bed or sofa. Next, find ways to make your device connect to internet service. Please don’t rely on public internet service on library, coffee shop, airport, gym center, and so on because you can easily expose your device IP to hacker.

-Make sure that you buy a good enough computer, laptop, or tablet. In order to know how good your device is, you must do research about your device hardware system. You don’t need to become an expert to know all about hardware to buy a very good computer or tablet. Here are something that you must know before you decide to buy your own device:

+What kinds of operating system you need? IOS? MAC-OS? Window 10? Window 11? Linux? Ubuntu?

+How long your battery is going to last? 10 hours? 5 hours? 20 hours?

+How much megabyte Memory(RAM) can suit your need? 4000mb? 8000mb? 16000mb? 32000mb?

+System manufacture: HP? Dell? Alienware? Apple? Asus? Microsoft?

+Processor: AMD? Intel? Apple?

  • Graphic Card(VGA): AMD? NVDIA? Intel? Apple?

+Price

+Convertible or not: Do you need a laptop that can convert to a tablet by just turn the screen over to the back of the keyboard or you just need a normal laptop?

+Touchscreen or not: Do you want to use your fingers to control something on your screen like you are using a tablets or smartphone or you just need a normal computer screen?

=>Remember, a normal computer can help you coding, but if you want to become a Game developer or Animation developer, then make sure you invest more money on Graphic Card. Don’t ask me something like ‘Can I use a normal laptop to develop a game like Spiderman or Forza Horizon 5 that run on Playstation 5?’ unless you want your computer to destroy itself.

-If you decide to be very good at Artificial Intelligent, then make sure you buy enough tools and device that support AI to help you study. You also need to buy smart device from some big tech company like Google, Amazon, Apple, Tesla, IBM to learn their technology too. For example: Amazon Alexa Echo dot, Echo show, google wifi router, google smart plug, smart light bulb, smart watch, tesla car, smart tv, and so on.

  1. Learn new stuff every day, but make sure you rest enough

-Like I said above, there are too many technologies waiting you to learn to become a better developer. Therefore, you must learn new things every day to improve yourself one way or another. No one want to hire a developer just know one to 3 programming languages and think that he or she knows it all. In order to get a decent job to earn a lot of money as a developer, you have to spend time learn enough technologies, and it can take you nearly 3 year to do that. If you work as a programmer or developer and earn just a little amount of money, don’t ask me why. Please googling.

-Don’t get me wrong, if you feel tired, please make sure you rest enough. If you have nothing to do and have 16 hours to coding every day, then I think it just took you 1 year to become a Web developer, but believe me, normal people like us can’t do that. No one can sit in front of a computer almost 16 hours a day without feeling very tired. The maximum number that I can coding is just 8 hours. After that time, I tend to do something else, like learning English, doing College homework assignment, or workout. Sometimes I feel tired and just want to spend all day to do homework assignment, and watching Tv to learn English. On that day, I don’t coding but I still learn new things. In addition, the amount of stress decreased which helped my brain recover and improved better.

-Believe me, just because you don’t open a book, try to memorize something doesn’t mean you don’t learn new things every day. If your eyes can see something new today, then you already learnt new thing.

-When you are a beginner, maybe sit in front of a computer 1 hour coding can make you really tired and bored. It just because your brain still didn’t have any programming skills that help you connect each knowledge together which is why you can’t store a lot of information about syntax or concept into your brain effectively at that time. As time pass by, and you have already known new technologies, these things are going to connect to each other and help you learn new things faster. For example, if you can remember exactly how to write JavaScript for loop, function, object-oriented(class) syntax, then learning for loop, function, object-oriented(class) syntax of Python is going to be really easy. This is why advanced programmers can learn new stuffs faster, change their career faster, and improve their career ladders better. When you become a smarter programmer, and your body interact with a computer better, then you can sit coding for long hour.

-When you have more responsibilities to deal with in you life, you may not have much time to learn anymore. Your responsibilities can be an 8 hours job, a second job on weekend or after you finish your first job, time for school, team meeting times, family, friends, social activities, cooking time, entertainment time, times for paying bill and so on. No matter your responsibilities are, new technologies are going to be created sooner or later, and you must be prepared to learn those things. You don’t need to spend the rest of your life sitting at home learning long hour anymore, but please make sure you can create time to learn new things. If you feel you are tired, please take some rest so that your mental and health can recovery.

-The people who can make the world a better place are the ones who can learn new technologies in 1 hour every day, not the ones who are just doing and moving around old technologies the entire day every single day.

  1. Achieve certificate, degree

-A lot of resourses like Coursera, Udemy, Microsoft, Google, IBM, Oracle, Amazon, online institution, even your school provides a lot of certificate and degree in information technology field or programming and development field. Both online and offline. In general, you can get free course, free certificate, or paid course, paid certificate, paid degree; each course last at least 1-6 months, and you get your certificate or degree by finish your courses, or get good grades on exams; if you study online, remember that teachers tend to don’t care the ways you study, and if you failed, then you must pay money to learn from the beginning and do the tests again; they don’t dive deep into each programming language concept, you normally just learn a little bit of something and jump into new things. Remember, you get hired for the skills you have, or you can create something to change the world to a better place because you got a lot of skills, not how many certificate or degree you have.

-There are a lot of very smart developer on the internet can tell you that you don’t need a college degree to get a job in Web Development or Software development field. Even a lot of billionaires from big tech company like Facebook, Google, Tesla, Amazon and so on are very confidently telling people around the world that “You don’t need a college degree to become a successful person in real life”. Don’t get me wrong, I don’t judge any of those people, but please don’t misunderstand their advice. They said that people don’t need a college degree to become successful in life, but they didn’t say “you don’t need to learn anything to become successful”.

-It is true that you don’t need a college degree to become a good programmer, but you need skills to become a good programmer. If you think that you can’t study by yourself at home, please go to school to earn degree or go to any organization that can guarantee that you can achieve enough certificate to land jobs in programming field. In addition, if you can’t get GPA more than 3, please don’t drop out of school to follow your dream. Common guys, study in school is ways easier than study by yourself at home. If it easy and you can’t get good grades, how can you suppose you are going to good at something without any help from teachers and become very success in life?

-No matter how many certificates or degrees you have, if you can’t make a project to show off different technologies and explain or analyze them logically, then you still a newbie in my opinion. This is the same thing that you may face with your interviewer, when you apply for job, your recruiters don’t care how good you are, they care about whether you know all the things they wrote in the ‘requirement’ on the hiring form. If they need employees who know more than 11 programming languages with 4-year experiences, you need to be that person to get hired. If you want to apply to big tech company, maybe you must also good at Math and have high IQ with EQ to get hired too because they want to work with best and smartest developers. That’s all. In the worst case, if all company in your country needs employees with BA degree or even higher, then you must force yourself to get that degree. No exception.

-If you are running a business and want to know programming languages to make your company website, or software, then you may not need to earn any certificate or degree. You can learn by yourself all the skills you need to create your own website or software. Don’t try to hire employees who know those skills to help you make website or software while you don’t know anything about them just because you want to make more money quickly and spend less time study. If your employees turn against you or your company, how can you know?

  1. Have a specific goal.

-Goals can be big or small. Big goals are general goals, small goals are specific and achievable goals. If you want to be a software engineer, then your big goals can be become a software engineer. Your small or specific goals can be finish leaning JavaScript in two months, spending at least 3 hours learning it every day. After it, you are going to learn React in 2 months, after it is PHP and so on.

-No matter what your goals are, make sure that these goals are achievable, motivate you enough, and not too difficult or too easy to achieve to help you become a better person.

-Make sure that you are flexible enough to change your schedule and daily routine so that they can adapt to your goals. A goal like spend 8 hours on Sunday learning programming languages can not be achieved successfully weekly because you tend to do something for entertainment purpose on weekend. In that day your temptation for relax and entertainment can be very high, and you have to force yourself more to coding. If you decide to have a girlfriend, I don’t think you can avoid going out with her every weekend to just sit at home and study. Therefore, if you have a goal like that on the weekend, make sure you can adjust your daily routine. For example, you can reduce the amount of coding times into 1-2 hours. Then, if you have to hanging out with friend 1-12 hours, then you still have time at home to study.

  1. Give yourself time to learn other things.

-This is the final thing and also the most important thing. If you want to change the world, you have to build project that help change the world, these kinds of projects tend to require many different technologies and knowledges to build. Learning programming languages are all about writing codes to build something but it’s not enough for you to expand your knowledges about the world.

-Let thing of this situation. One day you figure out you must create some project like website to teach English, software to help people order food, website or software to help people make a reservation of a hotel, software to stream music, or video, website to help customers shopping, and so on. How can you make an English website without knowing anything about English? How can you make a restaurant website or software if you haven’t ever go out to eat at any restaurant? How can you make a music software if you don’t like to listening to music? Don’t try to make a simple website or software for someone and say that you want to help them. When you are facing with big troubles, you will see that your help is not enough and you must put more efforts on it. So, if you want to gain those skills, you must spend time study or experience them one way or another.

=>You must learn other stuffs to gain more ideas so that you can make more different powerful, useful, and efficient kinds of projects.

  1. Finally, if those tips above can’t help you to become a better programmer or developer, then I think you don’t need to force yourself to become a programmer anymore. This career journey may not be for you.
3 Likes

This is a REALLY GOOD article, with lots of solid information and suggestions.

I have been a software developer for about 30 years, and have made and sold in my own business, software that generates source code that can control hardware using USB. My products generate code in about 6 programming languages, but it is clear that I have become too narrow, which is why I am in here to work through the Full Stack.

What I worry about is whether AI will crash salaries for developers that do NOT specialize in AI. Your thoughts?