H
H
hantalapai2014-02-14 20:59:04
Career in IT
hantalapai, 2014-02-14 20:59:04

Branches of programming. Who can become?

Hello ladies and gentlemen. I am in the 11th grade and have firmly decided to become a programmer. I have some experience in Olympiad programming (I know a little C++). I recently installed Ubuntu 12.04 on my desktop, I'm getting used to it. While there is enough time, following the advice, I try to try myself in various fields (I go to forums, read Habr, toaster, etc.). I am also reading the Deitels book on C++, slowly improving my English. There are no programmers I know / friends, so I ask you - who can you become, what kind of work can you do? I want the profession to remain in demand. I really want to become a professional in my field. I have several options:
1) Web programmer.
2) Software developer.
3) Game developer.
4) System administrator.
5) Anything else.
Can you tell us more about each of the above professions? Add something from yourself, advise, if not difficult. Another question that interests me is where can I find a mentor?
Thank you for your attention!

Answer the question

In order to leave comments, you need to log in

4 answer(s)
O
Oleg, 2014-02-15
@makol

I recommend for review, www.xakep.ru/magazine/xa/116/074/1.asp

D
Dmitry, 2014-02-15
@hsc

It seems to me that it makes sense to start with compiled PLs. They, as a rule, are closer to the hardware, and this, in turn, will play a very important role in understanding the process as a whole, because any program, be it a desktop application, or a mobile one, or some kind of backend, sooner or later turn into processor instructions, and the faster this process occurs and the fewer instructions, the faster it will be executed. Once you have knowledge of C++, this is a wonderful choice to start with. It will show how important optimal algorithms are, teach you how to plan and think through the architecture in order to achieve performance, teach you how to save resources and manage them competently, push you head-on with nuances such as "broken heap", crash the application from the OS side, all kinds of overflows, etc. . Don't be afraid of it, in your case, when there is time, it can become very interesting. In addition, it will be possible to simultaneously gain knowledge about the structure of the OS (virtual memory, stack, descriptors, processes and threads, etc.).
Later it will be possible to look at both web programming and mobile. platforms and server-side programming. Certainly not in C++. Each task has its own tools. There, the choice of a PL will already be carried out not according to the principle "what I know", but according to the principle "which is faster and more efficient", since knowing something like C ++ to another PL can be switched much faster. High-level languages ​​like python, ruby, etc. very convenient, but believe me, knowing what is happening in the OS will qualitatively distinguish you from people who cannot boast of this knowledge. With "low level" knowledge, you will be more likely to get into high-load projects and carry the proud title of a professional.
I think it's worth starting with some ambitious task,. Let it be something difficult, because the more difficulties arise, the better for you. The main thing is patience and perseverance. It is under such conditions that experience and new ideas are born. Read, look for good practices, build hypotheses and discuss with others on the forums. Also, pay attention to the English language.
Apply only to a specialized university. His choice, as for me, is not very important. In our specificity, self-education is everything. The university will provide you, in most cases, only an outdated road map for 3-7 years, examiners, time and, possibly, inspiration if a worthy teacher comes across.
I wish you success!

K
Kirill Arutyunov, 2014-02-14
@arutyunov

The software developer in this list is a very broad area.
One of the directions of this direction (sorry for the taftology) is the development of mobile applications. This is one of the promising and actively developing areas.
It's easier to try and decide what you like. But at the same time, do not rush thoughtlessly from one to another. You can move smoothly. For example, after C ++, look at Java, touch web development there and see how things work there. From here you can already reach PHP/Python/Perl. Gradually, the databases will also catch up (this is if you didn’t write any simple DBMS in C ++).
For example, I stopped on the web. And even here there are so many directions and ways of development that the head is spinning.
As for a mentor, the best option would be to get a job as a junior in some company, get the necessary skills and then either stay with them if everything suits you, or look for another job.
In my first year, I got into the Embria web development school (Photo Country) - in 2 months I got more knowledge than in the entire first course (and the second, as it turned out later, too :).

S
Sergey, 2014-02-14
@begemot_sun

You can't just become someone certain.
As if if you choose one path, then you will work in this direction all your life until retirement? No.
It is better to know everything and little by little, then you can always get a job where you want.
At your age, I wouldn't focus on just one thing. Try yourself everywhere, as long as your time and your parents' finances allow. Then it will be harder.
Be diversified. Especially developed in English (this is a very necessary skill). Then the time will come, and you yourself will choose the direction you need. After some time, again, you will change it to something else, perhaps more specialized.
And now you need to try everything, everything you can.
good luck.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question