Programming is not always the same as programming.Depending on what you want to do, there are different priorities to which you value.
- If you care about high performance, for example because you want to develop a game, then you should work your way up from “below”, i.e. start with languages that work very close to memory and processor and abstract little.
In that case, C++ would probably be the best start for you.Later I would recommend you to switch to Rust, which is a modern system programming language and eliminates many of the difficulties you have with C++.
However, web development involves a lot of components that work together, so you’ll have to deal with communication standards, databases, browsers, page layout, network security, later asynchrony and concurrency, and that’s what a deeper understanding is too much. But you don’t have to understand everything 100% to be able to program something.
Python is a scripting language, i.e. the code is translated and executed by an interpreter during runtime. This is very convenient for small applications, but for larger systems the performance and the error detection are not sufficient.It is mainly used by larger companies, as it is very object-oriented and therefore well suited to work in teams. Kotlin is the modern alternative to Java and fills a similar niche to C’ but Kotlin is a little newer, but doesn’t have as good integration with Microsoft Services.
By and large, there’s a lot you could try, depending on what you’re up to.Important clues of a programming language are:
- The strength of typing: There are languages that have a very weak typing, such as Python.
The advantage of this is that every thing (i.e. every data object) can be manipulated very easily and the program can run even if not everything is 100% correct. For languages with a strong typing, however, each object has a more or less fixed type, so it belongs to a certain type or class of objects that is firmly defined.These objects are more restricted in their use, forcing the programmer to write correct code so that the compiler or interpreter translates and executes the program in the first place.This is intentional to help the programmer write robust software, but also makes it difficult to write the software.
An example of minimal abstraction is assembler, which are almost the direct statements that can be executed from a processor core.A little further on is C, which also offers you loops and a much more legible syntax.All this is achieved by the compiler translating the abstract code into machine code. More abstracting are languages such as Java or C, or many others, which usually have a certain focus.With these two languages it is definitely the objectorientation, which means the whole language revolves around working with objects,i.e. with data structures encapsulated from each other, which make it easier for you as a programmer to make the programs easier for you. structure and introduce yourself.In functional languages, such as Haskell, it’s all about functions. In Haskell, it is the case that each function only results in its output, and does not “leave traces”.This means that it cannot access any data that was not part of the input of the function. This is another way to make code easier to understand and make safer. In the end, however, you will also write your own abstractions in each programming language, for your own data structures and functions, so that you don’t have to write the same thing over and over again and make mistakes. Languages such as C++ rely fundamentally on these libraries of abstracting code, rather than anchoring the abstractions firmly into the language.This allows the language itself to be very little abstract, but still allows high abstractions through libraries, i.e. simply code, at the expense of somewhat unflattering syntax. However, this also means that you choose what is compiled into your program in the end, which does not affect the performance. Languages like Java have many mechanisms firmly anchored in the language to save the programmer effort for the price of flexibility and performance. This topic is really very extensive, and there are a lot of advantages and disadvantages of the different approaches.
The best way to start thinking about what you want to program is to learn what the best language is for it.Then work through a few Youtube tutorials and be creative with your projects, most of which you still learn by trying out and looking up independently. Have fun!