Answer the question
In order to leave comments, you need to log in
System programming, which programming language to choose?
Hello, tell me, please, which programming language is more suitable for system programming? It is planned to write simple (in my opinion) utilities for myself.
I have never done programming, so I would like to get a detailed answer, where is it better to start and what to study to make it easier, thank you in advance.
I'm sorry - I did not indicate that the utilities will be written only under Windows.
PS I apologize if this issue has already been discussed somewhere. I honestly used the search and saw questions about the choice of languages, I did not notice a direct question similar to mine.
Answer the question
In order to leave comments, you need to log in
Well, stop, system programming and "utilities for yourself" are different concepts. System is C and C++ are low-level things.
For utilities, recently, Go has become popular. Spring classic - python. In Mastdyke, sometimes small scripts are written in c#.
It depends on what class of utility and operating system. It will also depend on the need to install additional. software, requirements for cross-platform and other things.
Hello, I will answer part of the question:
I have never done programming, so I would like to get a detailed answer, where is it better to start and what to study to make it easier, thank you in advance.
Wrote quickly, errors are possible.
Or, Which languages to choose, so that later you can easily write in 10 languages. (important, check, no time is wasted).
******************************************************* ******************************************************* ********
I have been teaching programming language for several years.
I watched different people. As a rule, the chosen topic leads a person to the language.
Some people like games, some like programs. someone wants to write bots, etc.
As a rule, after the beginning of language learningthere comes a time when a person learns more about the language and he already wants to write completely different applications.
This does not mean that he has changed his mind, just that he is beginning to understand the possibilities.
Then doubts begin, and whether he chose the right programming language, etc.
1. Mistake. You can not choose a narrow-profile language.
You need to choose a general-purpose language first to learn. Python is more suitable for this.
Python will open the way to any software, as it contains a large number of libraries.
For example, you can write websites using Django. Or you can write graphic programs, for example, I use PyQt (a library written in C ++, controlled by Python).
You can do testing or machine learning (that is, make websites and programs smart, which are able to make decisions on their own. All these packages use the NumPy library written in C. And there are a lot of them.
Skipy is a package that assembles programs for any complex processing of anything.
Look here. Anaconda.
I hope the possibilities are clear.
Python is a language with dynamic typing. That is, half of the work is done for you.
Having studied Python, you will generally enter into programming and will already be making software, it is possible to earn.
If, you If you find that you are interested, then you can move
on.Remember I said at the beginning that it is important to choose a general purpose language.So
C is quite simple, clear language, very concise and fast.
It is needed in order to open the way to all other C-like languages.
In fact, for example, in order to understand C ++, you will only need to look at the differences.
I came to this myself over many years, not so long ago I came across one video from Harvard, I was very pleased that I was right.
This approach is used by many universities.
1. Python, as a general-purpose language, will let you get acquainted with different software.
You will figure out what you want without going beyond the language. I'm talking specifically about time, because its loss is too costly.
2. You will get acquainted with the paradigms that are in each language, the type of object (for example, a list, a string, etc.).
You will become familiar with variables. with operations on objects and it will become clear to you that there is a language from the inside.
I'll explain it easier. Every day we use our head like a computer.
For example, the wife sent to the store, as she was going to cook borscht.
As a rule, most people write down, buy beets, carrots, etc.
That is, in your head you quickly arranged all the actions.
Go to a shop. Get the list, read it, find the food stalls, put it in the basket, pay for it, bring it home. give to wife.
There have been many operations in your head.
It's the same in the computer, only the computer needs to be explained.
For example, if we were writing a program. going to the store, we would need something that can tell the computer what to do.
That's what programming languages were invented for.
I often say to my students that everyone is already a programmer, as he performs certain actions every day.
For the program there was the same list, or rather the data type, or the type of object, which is called the list.
It's just that in the language it is denoted, for example, in Python by two square brackets ['beets', 'carrots']
Please note that the programming language, as a rule, has already been invented for the needs of people.
Anything can be added to the list, such as salt.
This area is called operations on objects.
If we quickly calculated in our head, we went to the counter, extended our hand and put, for example, carrots in a basket.
That, the computer needs to be explained. That is, we understand. that you need to add the same carrots to the basket, but the computer will understand only its own command, for example, add to Python would sound add .
I think the process is clear.
So Python will give you the opportunity to start writing anything, programs. games, programs for android, sites.
If someone tells you (I repeat) that Python is slow, don't believe it.
Do you use YouTube? So most of it is written in Python. (source M. Lutz).
Secondly, as I said earlier, Python has a huge number of libraries, for example, take PyQt, writing graphics programs. The library itself is written in C++ (the fastest language today). And we manage with the help of Python.
The essence of programming is simple. I took a widget, which already contains a lot of actions and the program is ready.
But there is one more important thing you need.
Before you start programming, you only have a desire, but questions remain inside, and which language to choose, then doubts, but is the language chosen ??
That is why it is important to take the first python. It will be exactly that language, because it will lead you to an understanding of what you will actually be programming.
After writing applications in Python, after about 1-1.5 years, you will begin to understand yourself, that is, to understand what you generally want.
That is, for example, you will definitely understand that you will write websites. Django Framework will be more than enough for you.
I will stop here.
The Django Python bundle is a very dangerous approach.
since Django is such a big world that, being carried away by it, a person begins to acquire such a tendency as framework dependence. What it is?
A person begins to lose the ability to write in Python, since Django is a completely autonomous framework that has its own modules, classes, architecture and structure.
And Python itself begins to be forgotten.
Important. Learn for example Django and PyQt. What is the point?
Be sure to study what will develop you in pure Python. I recommend android as it is not only useful but also promising.
Yes need. What should be studied? At a minimum, object types and an initial understanding of OOP.
Object types are needed to minimize wasted time.
For example, I watched a newbie wrestle for a week. and then stated that he did not put a single quote.
If he studied the types of objects, he would immediately see that in the code fragment, strings (object type), they are denoted by single or double quotes.
Secondly, the django help will not be clear, because it is explained there by data types.
And finally I'll finish. since I’ve been bringing up VK C several times already, but I’m postponing everything.
By the time you write Python, you will have an idea of what you want.
Therefore, you will choose the next programming language already consciously.
In order not to miscalculate after Python, you need to learn C.
Because such languages like PHP, Java. C++, C sharp, and many others have similar C syntax at their core.
The very learning of the next Language is simply to look at and immediately apply the differences.
This is how learning just two languages will give access to a dozen languages.
I repeat, the important thing in this approach is progress without loss of time.
You can start by watching a free course,
a technique for instantly understanding python.
Read in the picture that it was
above that the process of going to the store was told. And not just like that. Many do not understand that language was invented to make life easier. ( this is what the girl Anna wrote , as she put it, it eluded her.).
I gave my opinion, you decide.
I have shown you many factors. which you previously did not take into account ..
But at least for me it works.
I hope the article turned out to be simple and comprehensive.
One more detail.
It is important to make language a part of life.
How does understanding a language go from scratch to industrial programming? ( explained here )
Good luck to you.
Thank you for your trust.
Depends on the purpose of the utility:
If it is log rotation/monitoring - the first one in the selection list will be bash/perl.
If it is network packet filtering/driver - C/C++.
Each task has its own tool.
Robert Love "Linux. System Programming". Si.
In this case, you should start by studying C. K&R
I will also add that knowledge of assembler will probably be important for system programming.
I will support the choice of Go. I would also like to mention the easy-to-learn languages Oberon (there are a lot of compilers for different architectures and operating systems) and Component Pascal (a descendant of Oberon) - the next generation of languages after Pascal and Modula-2.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question