"<p>If you're an experienced programmer or an absolute beginner, you must have typed one of the questions on Google before:</p> <ul> <li>What Programming Language Should I Learn First?</li> <li>What's the most basic programming language?</li> <li>What's the easiest programming language to learn? _ I've done this one :)</li> </ul> <p>And while the answer to your question is going to be a long one, I'm giving you the holy grail of this blog:</p> <ul> <li>If you're an absolute <a href="https://devbrains.tn/blog/the-perfect-number-of-daily-hours-you-should-spend-learning-code">coding beginner</a>, then the first language you should learn is <strong>C.</strong></li> <li>If you're not a beginner, then the answer will completely depend on what you want to achieve with code (what do you want to become?)</li> </ul> <p>So here's our agenda:</p> <ol> <li>If you're new to the world of bugs, you shouldn't skip this one: What Are Programming Languages</li> <li>The 3 Main Types of Programming</li> <li>The Best Programming Language That You Should Learn in 2021</li> <li>HTML</li> </ol> <h1>What Are Programming Languages</h1> <p>I am a college student, I study Business Administration to be more specific, and CS is a huge deal there, believe me! Taking courses like C++, Python, Java, etc. is not an option!</p> <p>However, throughout the various courses that I have taken, never has a professor explained to us the most basic, fundamental principle in programming: <strong>What is a programming language?</strong></p> <p>Computers follow instructions. That's what they do; they don't create or come up with <a href="https://devbrains.tn/blog/3-reasons-why-programming-requires-creativity">ideas</a>, they don't solve problems, they only do what they're told to. They also speak, oooh yeah! they speak a language of 1s and 0s and it's called <strong>Binary,</strong> try adding a 2 and they go nuts!</p> <p>And since we humans don't speak this weird abstract language, we need an intermediate to give computers instructions (input) and get the outputs that we need. And that's where programming languages come: they allow us to translate the 1s and 0s into something that people can read and write.</p> <p>So programming languages are basically the tools that we use to write instructions for computers, and these tools are of two types or two levels: Low and High level.</p> <h2>Low-Level Language:</h2> <p><strong>Computers are dumb!</strong>:(I said it) just because they can calculate very fast and do Math, that doesn't mean they're smart!</p> <p>Why?</p> <p>Because they do what they are told to …they <strong>follow</strong> instructions and <strong>apply</strong> math formulas.</p> <p>There are two low-level languages:</p> <ol> <li> <p>Machine language: Or Binary, which is a bunch of 1s and 0s, and it's the only language that computers understand.<br /> The thing is, no one programs in binary! So let's move on.</p> </li> <li> <p>Assembly: assembly is quite similar to binary, only it's got a few letters and it's used to give detailed instructions. Unlike binary, some people actually code in assembly. Even though assembly doesn't have a big marketplace like Python or Java, learning assembly has a handful of advantages:</p> </li> <li>It's not difficult!</li> </ol> <ul> <li>It allows you to manipulate hardware directly</li> <li>It helps you understand how computers work</li> <li>It makes it easier to learn other languages</li> </ul> <p>However, most programmers do not advise learning Assembly as a first language and suggest learning C#, C++, Python, Java, Go, Rust, Lisp, or Haskell (high-level languages) first.</p> <h2>High-Level Language:</h2> <p><a href="https://www.youtube.com/watch?v=bUWCD45qniA&ab_channel=CSRocks">High-level languages</a> are less abstract than low-level languages.</p> <p>They are machine-independent, meaning that they allow us to write code no matter what type of computers we're instructing.</p> <p>The reason behind their name is that they're very close to human languages (mostly <a href="https://devbrains.tn/blog/how-important-is-english-for-programmers">English</a>).</p> <p>Take a look at this python code:</p> <div style="background:#eeeeee; border:1px solid #cccccc; padding:5px 10px"><code>x = float(input("Enter a number: "))<br /> if x < 0:<br />    print(x,"is a negative number.")<br /> elif x > 0:<br />    print(x,"is a positive number")<br /> else:<br />    print(x,"= 0")<br /> <code>                                                          #DevBrains.tn</code></code></div> <p>(why not try it on an <a href="https://www.onlinegdb.com/online_python_compiler">online python compiler</a> and see what pops out? same thing you expected right?)</p> <p>float, if, else, and print are words we are very familiar with, and that's how most high-level programming languages are: clear, readable, and understandable.</p> <h1>Types of Programming</h1> <p>Now that you've understood what programming languages are and what their two levels are, it's time to take a look at the 3 <em><strong>main</strong> </em>kinds of programming languages:</p> <h2>Procedural Programming Languages</h2> <p>Procedural programming languages use sets of <strong>subroutines</strong> or <strong>functions</strong> which break instructions down into smaller chunks. One benefit of procedural programming is that it doesn't require much computer memory.</p> <p><strong>Examples of Procedural languages:</strong></p> <p>Fortran, Pascal, ALGOL, BASIC, C, and COBOL.</p> <h2>Functional Programming Languages</h2> <p>I know, you're probably wondering "Isn't Procedural programming FUNCTIONAL?"</p> <p>Functional programming uses Functions, ONLY functions, treating them as values (since they return values). Whereas in procedural programming, functions can change the state of the app, can modify data structure, and so on.</p> <p><strong>Examples of Procedural languages:</strong></p> <p>Lisp, Python, Erlang, Haskell, Clojure,...</p> <h2>Object-Oriented Programming Languages</h2> <p>Object-Oriented Programming Languages (OOPs) orientate around objects (these objects contain data, which we also refer to as attributes or properties, and methods), offering many features like abstraction, encapsulation, polymorphism, inheritance, and classes.</p> <p><strong>Examples of Object-Oriented Programming (OOP) Languages:</strong></p> <p>Java, C++, C#, Python, R, PHP, JavaScript, Visual <a href="http://Basic.NET">Basic.NET</a>, Ruby, Perl, Objective-C, Dart, Swift, Scala, Kotlin, MATLAB, and Smalltalk.</p> <p>Out of all, Java is the most widely accepted pure object-oriented language.</p> <h1>Best Programming Language You Should Learn in 2021</h1> <p>I'm not sure if you have read the sections below, but if you're a beginner, I highly recommend that you do.</p> <p>Now coming to your question, the language you choose to learn depends tremendously on your <strong>level</strong> and your <strong>expectations</strong>.</p> <h2>Coding Beginner</h2> <p>If you're a beginner, or you still don't know what exactly you want to be, then the best language that DevBrains recommends is <strong>C</strong> programming language.</p> <p>Here's Why:</p> <ul> <li>If you want to gain a general grasp of computing and expand into many areas by learning multiple languages, C will give to the best foundation in computing.</li> <li>Above, I mentioned that most programmers do not advise learning Assembly as a first language and suggest learning C right? Well, that's because once you learn C you can learn either other high-level languages or Assembly.</li> <li>It will help you build a solid foundation to learn C++ later on. After C++, any OOP language will be a piece of cake since C++ evolved from C, and the same can be said for all the other programming languages today.</li> </ul> <p>That's why we recommend any beginner to start with C, build an excellent foundation, and then move on to other common programming languages.</p> <p>Some may argue that Python is the first language one should start with, and that's not true. Python is one of the easiest programming languages, that's true! But is it the best option for you as a beginner?</p> <p>Indeed, it's widely used for web applications such as YouTube, Instagram, and Pinterest, but that doesn't mean it will help you build the foundation C would.</p> <p>So why are so many people putting Python on top of the list (literally every list)? It's because it's easier than C, and that's also true. But, and take it from someone who knows both languages: Once you learn C, every programming language will seem easy, not just Python.</p> <p>Speaking of which; DevBrains is preparing new tutorials on Python (in Tunisian dialect), so start learning C already, by the time you're well-acquainted with it, our Python tutorials will be waiting for you!</p> <h2>I Know What I Want to Be</h2> <ul> <li>What do you want to achieve with code?</li> </ul> <p>If you have an answer to this question, you're on the right track...Because then, the language you should learn will totally depend on that!</p> <h3><strong>1. Game Development</strong></h3> <p>There is a long list of programming languages used for Game Development. The main ones, however, are:</p> <ul> <li>C#</li> <li>C++</li> <li>Java</li> <li>JavaScript</li> <li>SQL</li> <li>Python</li> <li>Rust</li> <li>UnrealScript</li> <li>Lua</li> </ul> <h3><strong>2.Web Development</strong></h3> <p>If all you are doing is front-end web development, then obviously your focus should be on:</p> <ul> <li>HTML</li> <li>Javascript</li> <li>CSS</li> </ul> <p>Framework or library:</p> <ul> <li>Angular</li> <li>React</li> </ul> <p>Infrastructure:</p> <ul> <li>Amazon Web Services (AWS)</li> <li>Google Cloud</li> <li>Microsoft Azure</li> </ul> <p>Database:</p> <ul> <li>MySQL</li> <li>MongoDB</li> </ul> <h3><strong>3. App Development</strong></h3> <p>If you want to become a Mobile App developer, the two main options are Java for Android or Swift for iOS.</p> <p>Other languages that may be useful are</p> <ul> <li>R, a programming language popularly used by <strong>researchers</strong> from diverse disciplines to estimate and display results and by <strong>teachers</strong> of statistics and research methods.</li> <li>GoLang: The use of <strong>Golang</strong> for mobile development is getting popular due to its unique ability and authority in the API layer.</li> </ul> <h1>HTML</h1> <h2>What is HTML</h2> <p>Basically, HTML (HyperText Markup Language) is a web-based language that tells your browser how to showcase text and images on a webpage.</p> <h2>Why Learn HTML</h2> <p>HTML is not a programming language, but it's on our list. Why is that?</p> <ul> <li>It will help you understand the fundamentals of the Web</li> <li>It can help you learn other coding languages for web development</li> <li>Building a unique website will be easier</li> <li>It's a big plus if you're working with digital marketers, or even promoting your own business, especially with SEO (Search Engine Optimization)</li> <li>You will stand out from the crowd!</li> <li>It's easy!</li> </ul> <h1>Conclusion</h1> <p>If you have a clear idea of what you can be, and how you want to use code, then the answer will depend on that, and the more your destination is clearer, the more you understand which way you should choose.</p> <p>However, not knowing what exactly you want to does not mean you're lost, and being a coding beginner doesn't mean you will be learning every programming language out there (some won't hurt though), because eventually, you'll figure out your way.</p> <p>Before you go, can I ask you a question? Where are you exactly, not your location of course: are you at the beginning of your coding trip, trying to figure out where you're going or already know what you want?</p> <p>And after reading this blog, what programming language are you going to be learning?</p>"