How to understand a beginner, which language to choose for the desired profession?

Disclaimer: this text is not recommended for reading to children under 13 years of age (they need to establish a separate privacy policy), seniors, middles, people with a weak mentality, lovers of VBA and ALGOL language, as well as pregnant women. All of the above is the personal opinion of the inadequate author and is not set out here with the aim of sowing discord among adherents of static and dynamic typing. Let's go: new Thread (). Start ()



Honestly, this article has long been ripening, because I have been running into discussions, holivars and similar articles lately, where authors and participants put forward various hypotheses to the best of their understanding as an answer to the title question. And their whole meaning boils down to the same confusing argumentation as the ornate sentence written above.

I have come a long way from sperm to a programmer from a teenager who loves pascal and windows 3.11, to a man who does not like anything except rolls and terminal. So now I’ll explain everything to you and even, perhaps, show some pictures. Go.

So which programming language to choose?


The stupidity of all such questions is that you cannot become a conditional spherical programmer in a vacuum. A programmer now is not a discrete mathematician of the past, for whom software and hardware are secondary. In most cases, the programmer is now a craftsman who works within the framework of the current “window” of technology. Moreover, this is the “window” of a moving car, for which you are running. Technology is constantly changing, and we are forced, like Alice Carroll, to flee to stay in place. If you take my favorite Google at least, you won’t have time to understand one Android API, and already there half of the deprecated features, they also tighten the screws ...
Ahem, yes, yes, an article like for beginners, well, let's figure it out. To begin with, you still have to determine what exactly you want to do? Area, well, at least approximately?

Do not understand anything at all?


Start learning algorithmic constructs. Branches, loops, data structures, block diagrams. It helps a lot to transfer (transfer, not copy-paste from Wikipedia!) Algorithms and block diagrams to a real programming language.

What language to start with if you want to lay the foundation?


In principle, any. Since you just need to learn how to write simple programs, understand what variables, operators are, explore classical algorithms such as maximum search, sorting, binary search, etc. Next, get down to OOP and data structures, because you will be asked at the interview, how the vector is different from the list!

But what if you need a language for applied tasks ?
Yes, and you do not want to become a programmer. Maybe you are a scientist who needs to parse text files with DNA chains, or an investor with the idea to write a trading robot. Here I would advise Python, may adherents of other languages ​​forgive me. Python is a language with dizzying capabilities and a low entry threshold. At first, even at first it seems to beginners that this is some kind of easy, “educational” language (until you start poking them into coroutines and functional).

Well, you say, but where to go next ? Not a single python ...? Of course not. Where is it pulling you? The web? Desktop? Scripts? System level Mobile phone? You, dear, decide, there are no universal solutions!

Like site building? Well, let’s write like a parrot here: html, javascript and others like them (still there python with django and some others quietly lurked there)

Want harsh web services? PHP, node.js, ruby, Java and the same Python.

Want to be closer to hardware and operating systems? Grasp C / C ++ (just don’t shoot yourself a leg and cut yourself, although everyone went there in a cast). By the way, I would advise all programmers to at least deal with the basics of C / C ++ and the base classes from STL, you know, it helps to then look at the GC with different eyes. If a piece of iron falls on your head, learn assembler.

Want to script, parse, mine, work with big data, build models, write bots, administer the OS and much more?Take already voiced Python3 +. If more work with data - you can still take R.

Dreaming of writing a desktop application? Here on anything! Though Delphi take it! A joke, of course. Here you need to look at what system to write for, and whether cross-platform is needed. For example, Python or Java code will be portable. C / C ++ will have to be built separately for each platform.

Want to know java core? So you already know why you need java. Do not know? How would you explain now why you need it. Have you seen the air? Nevertheless, one cannot live without it. :)

There are of course fancy stuff, Kotlin, for example. Cool thing, this language killed my old friend, nicknamed NPE, well, as he killed - he injured! I just didn’t understand how to study it normally for people who don’t know java? No, “Hello world” is written on it easily and without Java, but I don’t know any further.

Maybe you decided to write games? There are many ready-made designers, the same Unity3D, as well as two-dimensional engines, usually immediately under a bunch of platforms. You already look there yourself: C #, Java, etc. And all this is polished from above by knowledge of various data transfer protocols, operating systems, frameworks, encryption and cryptography, authorization and authentication, XML, JSON, database technologies, application protection, version control systems and much, much more.

Now I’ll open the biggest secret how to become a programmer: program! Anything! Write programs even when nobody needs it. Write because you need it, not someone else. Constantly rest against incompetence, fill in these gaps and again rest against new ones. And so long as there is enough memory in all the possible caches of your head.

How else can you answer the question: “What language to learn?”. Obviously the one you are going to talk to.

Sincerely, Edward Koch,
Lecturer at HackerU International School of IT and Cybersecurity

All Articles