programming and scripting languages

programming vs scripting languages

There are many different general purpose programming and scripting languages. Over the past decade, languages have exploded (both traditional languages and scripting languages, both referred to as programming languages now), and it's hard to even know where to start. There are 2 categories of languages: one is the traditional general purpose programming language as C, while other is scripting language as python.

1. general purpose programming languages: compiles in a binary code, and then binary is executed, so it's fast. Languages like C are an example of GP programming languages. C has been the most popular programming language since it's start in 1970. Almost every software big or small was coded in C, and it was the ONE language that everybody learned. Even today it's the most popular language used to build OS, desktop software, large enterprise systems, etc.

2. scripting languages: they are usually not compiled, but are interpreted at runtime by an interpreter. i.e they are read line by line, and then at end of each line, that line is translated to binary code to run on the computer. So they are slow to run. But now with such fast machines, for most of the user programs, scripts run almost as fast as compiled code. Scripting languages used to be very limited in scope (i.e they weren't meant for general programming, but as quick replacement to write simple scripts to do something), but things have changed now. Scripting languages have the same functionality as complex compiled languages, and are much easier to learn. Many of them are GP programming languages.

The lines have now blurred, and all languages whether compiled or interpreted are referred to as GP programming languages.

Which Language to learn?

There are so many programming and scripting languages out there, that it's intimidating. Which language should you learn and how much? Should you go for depth, i.e learn just one language, but learn it deep? Or should you go for breadth, i.e learn multiple languages, but not in too much depth? My philosophy is that you should never spend too much time going in depth, because that takes from you the ability to learn multiple things.

C, Java and Python are the 3 most popular languages as of 2020.

https://fossbytes.com/most-popular-programming-languages/

C has always been the most popular language, but since it's harder to learn for beginners, it's likely to lose it's top spot. Java is heavily used in software companies, and a huge driver for that is Android platform from google that supports Java. However, python is rapidly gaining popularity, because it's much easier to learn. In fact, more universities now teach Python in their introductory courses. Java is reserved for Advanced courses. If you have resource to learn one and only one language, I would strongly suggest learning Python.

There are many other languages that you will need to learn, since Python alone can't do everything. For ex, if you looking to build a website, you will need to know a little bit of HTML and CSS, and then use it with Python.  Another ex is that of a database language as MySQL. You will need to know little bit of MySQL so that you can integrate it with Python. We'll go thru all of these in next sections.

This is an essential list of programming languages that will suffice most of your needs:

Website Laguages: Learn HTML, CSS. Then learn Javascript for client side scripting and Php for server side scripting

Database Language: SQL is the Database language. MySQL is a software using SQL, but MySQL is usually referred to as the Language itself (they are tightly integrated with each other) It's mostly used in Web applications, and knowing at least 1 Database Language is a must.

Desktop Applications: C, Java and Python will suffice here. These are traditional GP programming languages that you write programs in, on your laptop to build a game, app, etc.

NOTE: If you are trying to learn a language to get a job, I've no clue of which language to learn. However if you re looking to learn a langauge to solve your own problem, to code your own program or just to have fun, then any language will do just fine, provided it's easy to learn. Python just fits all of that.

Resources: Below I'm going to list few excellent websites for learning coding. they are all free, and a lot of material that I've on my website, is based of these:

1. Tutorials Point => https://www.tutorialspoint.com

This is a very good website for learning any language or computer science courses. They are arranged very well, and have fantastic tutorials with lots of examples. They are based in India, and what's impressive is that they have covered almost everything in their vast tutorials library.

2. Geeks For Geeks => https://www.geeksforgeeks.org

This is another excellent website for learning anything computer science related. Although it says it's for geeks, I've found that their tutorials are very simple for beginners to learn. What I like is that they have divided their tutorials into different sections based on complexity, so you can just learn what suffices you. One shortcoming is that their library is not as vast as that of Tutorials Point, but they do have tutorials for all popular languages that we care about.

3. Digital Ocean => https://www.digitalocean.com/

This is not really a tutorials website, but a site for selling products. However, I bumped into it while trying to find a good tutorial on Javascript, and was amazed by the quality of the material. There is a tutorials section on this site, which is mainatined by a very active community. It has about 4K tutorials.

https://www.digitalocean.com/community/tutorials

It may be hard to find what you are looking for, since searching for something like "javascript" returns about 400 tutorials. However, what I've found is that they have tutorial "series", and depending on who wrote it, they may provide you the best tutorial out there. For ex, searching for html, shows me a "Series: How to build a website with HTML" => this is what you want to read. You need to read the whole series from start to end, so that you get the whole tutorial.

Conclusion: I'll add more websites as I come across more of them. There are some hugely popular websites as www.w3schools.com, or a language's official website, but most of the times that contain great reference material for the language, but don't really have great tutorials. You need to look elsewhere most of the times, and once you have some basic idea of a language, you can come to these official websites, and they will make a lot more sense.

The main thing to remember is not any one website has best tutorials for everything. Also, depending on who wrote it, the quality of tutorials may vary. Some are very good writers, and you might want to stick to tutorials of those writers on a given website. However, what I've found is that these websites try to maintain a consistent  writing style, so that's good.