Which Programming Language Should I Learn First?

Total
0
Shares

Which programming language should I learn first?

which is the best programming language to start learning?

C++ or Java, which one do you recommend to learn first?

These, are just some of the many questions that most people who want to start a developer career, ask in forums or groups. Even if they are studying at university or not.

Out there, are endless choises to choose, yet, the first answers that these people find, normally they find two of them: “I recommend you this programming language” or “look for the best paid technology”. But, almost no one see this through a different perspective: “why do you want to write code and what would you like to make?”

This approach, lets you get your choises at the other perspectives: the “which one is more friednly to beginners” and the “economic one”.

Why do you want to write code?

Depending on what do you want to make, the decision is probably already made for you. For instance, if you want to become a web developer, before anything, you must learn how to code in HTML/CSS and maybe some Javascript, and then, some backend programming language (PHP, Python, Java, C#, Ruby, etc) to complete your understanding of the web environment. If you want to become a mobile app developer, no doubt you should learn Java and Swift/Objective C.

But this approach send us back to the generic answers. The most important question you need to ask yourself is the “why” you want to do this. Do you want to become the next Mark Zuckerberg and create a social platform that millions of people use? Do you want to do research of artificial intelligence? Maybe you are interested in the videogame development or operative systems. Even you may want to write airplanes’ embedded software.

Programming is like any other profession: it doesn’t matter the how at the beginning, but the why. Also, as any other thing that you do for living, you need to find that passion for it, and have a greater objective that just to say “I’m a developer”.

First step: think as a developer and beyond

Another common myth, is the fact that as a developer, the most languages and technologies you master, the better. This statement is more false than true. The thing that really matters the most, is your specialization and your ability to think as a developer.

Based on that point, about your “why do I want to code?” and having this resolved in your mind, now you need to start learning how to be a developer. But I got you some news: programming is 90% thinking and 10% writing code.

Again: programming is 90% thinking and 10% writing code.

You can’t expect to be a developer just by knowing the syntax of x or y programming language. Neither you can be a developer if you basically just do some copy and paste on code that you find at Stackoverflow. Because, tell me, when the problems arrive (and they will), what will you do? A developer needs to learn how to solve problems that never ever, came across him/her. A developer must have logic, a developer must have a good analysis and abstraction capabilities. A developer must have passion for what he/she does, and patience to achieve his/her objectives.

Once you got this thought well solved, then the programming language you chose is the less important thing. Learning the syntax of some programming language or another, is the lesser effort you will have, as long as you know how to create your algorithms and plan them before you write them as code.

But also, a developer need to go further. And here’s where the first thought takes the stage. The why. For instance, a web developer must know how the HTTP/TCP IP protocol works, how to set up servers. Also, a web developer needs to know some things about graphic design and digital marketing. An OS developer must know about hardware, about usability, about accessibility. A videogame developer must know about story-telling, about physics and about communication. Why? because just knowing these extra things, a developer can successfully achieve his objectives. You can be a real hacker at coding, but if your program doesn’t accomplish the client’s objective, or the people can’t use/understand it, then your software is nothing but useless.

Hey, I’m not saying you need to go to university to get a degree on this matters. No, but you need yo have the technical details that will affect straight at your product, have the big picture of what is going on with those things, in order to understand the goals and write them into code.

Programming language Recommendations for beginners

Many of the market’s mainstream languages can do the same, or, at least very similar stuff. Take java for example. With Java, you can code cross-platform software, you can create web apps and applets, but you can create web apps with Ruby as well, and Python is also a very powerful language for web apps, and cross-platform desktop apps,

On the other hand, the syntax can be very similar from one language to another, depending on their use. For example, the “hello world” in Java and C# are very very similars, just like Perl and Python.

Java

public class HelloWorld{
    public static void main(Strong[] args){
        System.out.printlen("Hello world");
    }
}

 C#

public class HelloWorld{
    public static void Main(){
        System.Console.WriteLine("Hello World");
    }
}

VS

Perl

#!/usr/bin/perl
print "Hello world \n";

 Python

#!/usr/bin/python

print "Hello world \n"

However, these languages has some differences on how they need to be prepared and configured to get them to work.

You can see how some languages are more complex than others, some need brackets, and semicolons, some others don’t. Some people say (and I’m among them) that you should start with a language that has a very friendly syntax and not strict rules, that way, you can focus on develop your analysis and logic skills, without the syntax rules on your mind.

Let’s compare some mainstream programming languages

C: it teaches you to write efficient code

C is one of the more used programming languages. There’s plenty of reasons for this. C is a “machine level” programming language, so you will learn to write code that hits straight in the hardware, to debug more efficiently, memory management, and, it leads you to a “how the machine works” understanding.

Having said that, C is your choise if you are into hardware drivers development, operative systems and even videogames. But it is not quite a choise if you’re planning being a web developer or if you are into mobile apps.

Java: flexible and practical

Java is probably the second more used language, and it is probably, because is the more teaching at college. Java is a 100% object oriented language, a paradigm that many other languages use, just like C++, C# and Python. So, if you get Java, you will get another OOP languages as well.

Java is cross-platform, and it is used on many kind of projects, from bank systems, to web applications. Java is the Android’s language. Even some home appliances works with Java.

If you decide to go with Java, it won’t get you a deep understanding about computers as C does, but it will let you do enough stuff to handle common computer resources, like the filesystem, graphics and sound.

Just one recommendation, and it is kinda personal: Java is a great programming language, but don’t get stuck on it. It will be dethroned soon by other alternatives, that are faster, agile, and friendlier. Even Android got plans for leave Java in Go’s favor.

JavaScript: the future of the cross-platform apps

Until a few years ago, Javascript was conceived as a not-important programming language, and it was used only to get some UI interactivity with web pages. But not anymore.

Javascirpt has proved that it can be as powerful as Java and more flexible and agile. Even more. Thanks to runtime builds like Node JS, Javascript now can be used as a backend engine for companies like Netflix, Uber or Linkedin. It became in the main option for many startups and developers for creating real-time applications that need faster responses for users requests, something that Facebook marked forever.

It is a straight-forward language. You don’t need a lot of stuff to get right into business. And you can see results almost immediately. Even with a web browser is more than enough to get it working. Is a language that is very flexible with its syntax, because it is not that strict and it will be useful for you, whether you wanna be a front-end ninja, as a backend genius.

Python: Easy and fun

Many people recommend Python as the best programming language to learn first. And it is because its simplicity, its eloquence and expressivity, as well as its power.

Python forces you to use good practices and a clean ordered code. For instance, you don’t have to use semicolons, nor brackets. But in order to define scopes, you need to indent correctly, otherwise it won’t work.

A great Python’s advantage, is that you can create huge things with less lines of code. Python will be useful for many jobs: web development, sysadmin, desktop apps, etc.

Choosing your path

One last consideration and getting back to the “what do you want to do” stuff, is that you need to think if your goal is a developer career, or it is just a hobby. Either way, choosing your path depends on what you want to accomplish, and thus, learn more languages.

Back-end/Server side developer

These guys are the app engines’ makers. The common programming languages used by them are Python, PHP, Java, Javascript, Ruby or C#.

Front-end/Client side developer

HTML, CSS, Javascript

Mobile apps developer

Swift, Objective C for iOS, Java for Android. HTML/CSS and Javascript for mobile websites. C# for Windows mobile.

videogames/3D

C/C++, OpenGL, 3D animation and you better paid attention in your algebra room classes.

high performance developer

C/C++, Java, Assembler. You need to be a number genius as well.

At the end of it, there ain’t just one path to get started. As I already said (too many times), it depends of your goals. Once you became a pro, you will see that you are earning the money for what you love. And, who knows? Maybe you, my dear friend, will be the founder of the next web billionare startup.

Original post written in spanish: Code’s Cool

1 comment
Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

You May Also Like