Hi, Habr! Much has already been said about education, in particular for programmers, about programs that are better suited or not suitable, but every year the situation changes and no matter how sad it is, you have to figure it out (whether you are an applicant or an employer). It is very important to begin your journey with the choice of alma mater
... I ask everyone who is not intimidated by the long article on the topic.
This article / post can be viewed as a tutorial or reference for anyone who is already in IT or wants to connect their lives with IT. Immediately make a reservation: here we are not talking about system administrators, designers or engineers, but about programmers (from 1C to Deep learning).
The first thing we encounter in life is school. This is just a huge part of our life, often our second home (unfortunately, in the current realities - in terms of time spent in school). And as a very important event, you must responsibly and consciously approach the choice of your future educational institution.
Maths
A special role in the life of a person inclined to rational thinking or loving to think is played by exact sciences such as: mathematics, physics and computer science. Many may argue that mathematics is not much needed in a larger range of tasks in the field of IT, but let me disagree. Everything, starting from the mechanical calculating machines to the creation of the first computer, was based on mathematical principles and models. Yes, this, of course, was not one narrow branch of mathematics, but for each task its own approach is needed and it could be found in mathematics. The ability to think yet did not bother anyone, this is a very useful skill, but one sound thought is not enough, an additional library is needed, with the help of which you can realize your idea. So in the role of such a library serves mathematics.
Physics
Physics is not needed by a βpureβ programmer, but if a young mind still understands that science is not just given, then it is right. Physics is not needed where even theoretically it is not used, but in the whole spectrum of tasks it is simply vital. Look at least at game development, you can use ready-made solutions, engines, but wouldn't you like to fix something, redo it, or simply understand how it works? And if you need to remake? Without knowledge of the fundamentals, you will rummage through textbooks or on websites in search of truth, but if you know what it is and how to use it, then you will not have to waste time searching and lose nerve cells. You will begin to appreciate not just as a monkey-coder, but as a thinking person who can solve a fundamental problem. Isn't that the point? All scientific calculations, visualizations, and other things are now done on computers, and programs are written by those programmers.
It is also worth accepting because it solves a number of everyday tasks. For example, if you have problems with the power supply, then you will easily replace the exploded capacitor and continue to work. You will understand why malfunctions can occur at the hardware level and how to avoid it. Therefore, in school years, physics definitely should not be avoided, especially since the program is not so complicated.
Computer science
What can I say - it does not matter if something is not working out for you or you donβt like it too much (after all, this is only secondary school). But, if you like and feel the urge to do it - great!
In the Russian realities without computer science lessons, going into programming is not so attractive. Of course, you will be taught in some universities, but this will not be the right approach, and most likely you will quit this job.
Should I teach computer science to a computer programmer, or should I pay more attention to mathematics at school? Good question, it all depends on how well you are with each of the subjects. It is impossible at the expense of the first to be content with the second.
The most important thing is to take part in olympiads. So you become smarter, gain experience and get to know the world of βthinkingβ people better. Perhaps you are so unlucky that you will not win a single Olympiad, but I will say the good news: I do not know a single person who would constantly participate in this movement and would not win a single Olympiad (or at least did not become a prize winner).
We can say that the school knowledge of these subjects has much more advantages than disadvantages. The younger you are, the more you should absorb useful information.
There is a difficult choice: to devote your time to good training and passing state. examinations (such as EGE), or, can penetrate into professional activities and begin to engage in applied programming, and can do focus on the olympiads and algorithms?
There is no definite answer, although I still advise taking part in competitions, it is very useful.
As for dedication to βrealβ programming, this path is not for everyone. The goal that ultimately needs to be achieved is to become a programmer, a real professional Brain Coder. Recall the stories of those people who threw universities and then became billionaires in the it field: Steve Jobs, Bill Gates, Mark Zuckerberg, Michael Dell and others. But understand one very important thing: none of them set out to quit their studies. Someone was the son of wealthy parents and had a talent for doing business, someone was born in a famous family and was also not a fool, someone less fortunate, but he was a genius. Each has its own story, but if some drop out of school due to difficulties in survival and only then βget on their feet,β then others immediately have a head start in the form of a family and they donβt have anything to do with training when they can take and start their own business.
By the way, despite the prestigious status of the Zuckerberg and Gates families, they were talented students and spent their time in the best universities in the world.
So, if the life situation allows you to feel good: you have a home, food and close people, then you should never sacrifice a certain present for the sake of an uncertain future. Learn while you can, write programs, learn exact sciences, because in the end, your first significant goal in this case is a good university. But whether it is the exam or the Olympiad, it is necessary to prepare. You can not waste time on such things as biology, chemistry, geography, because now you donβt need them, in 10-11 classes there is too narrow information and it makes no sense to remember how many oil fields in Tyumen or what offspring the spotted cat will have. Of course, IT is much more tolerant in terms of employment, but you can start complexes because the rest are educated and you donβt, that some have gone through some steps, and you donβt, and even then you will be 5 times exceed the skills of their colleagues, then you will not leave the feeling that you did not have time, forgot, did not finish ...
In general, now in more detail about the training.
If you aim at a good university, you need a good school. How to choose it? It's very simple: google school / high school ratings, read about everyone you like, ask students and make their own control rating. In the end, go where you will be comfortable in all respects. We'll have to work a lot, but it's worth it.
But if you did not get where you wanted, do not despair. First, remember about self-education, the more it will come in handy to you more than once. Secondly, you have a great opportunity to spend time on good preparation. Most likely, the teacher will not help you in the Olympiad direction, but you can prepare well for the USE. Search for courses, build a class schedule and start working. If you follow the schedule clearly, you will see how much better you began to know the material. So it is quite achievable, score 300 or 400 points on the exam. Look for courses, read books, decide options!
It's time to bot!
Very unexpected. Who are interested in colleges? - you ask. Thousands of ninth-graders - I will answer.
Maybe for someone it will be news, but in our country there is the following type of institutions - college.
Even 10 years ago colleges polls reminded those vocational schools that play the role of memes on different Internet sites. But literally today the demand for secondary vocational education (secondary vocational education) has increased many times among students. What is the reason? I can name a few reasons:
Very many people do not like the USE system and therefore this is often the first reason to go to college. You can not blame for this, because any exam is stressful, and if it cannot be retaken also in the same year, then all the more. In fact, in a good way it should be the most insignificant reason. Many are tempted by the opportunity to take internal exams instead of the exam.
Professional skills and specialized subjects are just an integral part of every college. Besides the fact that you get basic knowledge in prof. areas you are already starting to apply them in this area. Technical knowledge, skills, experience, all this makes this school more attractive.
And of course, a diploma that says that you have become an expert in your field ( not really ).
It all starts with choosing a course of study and submitting an application to the admissions office. This is very similar to the reception of applications in the university, where people also sit at the table in the same way, students are inviting and offering to come to the faculty. I want to introduce you to a specialty in which Iβm completing my studies last year (there are not so many programming specialties, there is also applied computer science, but the most reasonable choice is PKS).
02/09/03 - Programming in computer systems (PKS).
Link to the description and list of secondary schools
Since we are talking about programmers, it is logical to assume that the most appropriate specialty is PKS. It is entirely focused on the training of personnel versed in modern trends in application programming. Whether it be a web or a desktop, maybe even mobile development all this belongs to this specialty. In many educational institutions, the program may vary, but the most common mandatory disciplines are: 10-11 class (standard is the first year of study, usually emphasis is placed on mathematics and physics), the basics of programming, algorithmization (the fundamentals of algorithmization), elements of mathematical logic (a- For the βlightβ version of discrete mathematics), the basics of mathematical analysis (which partially included the program of linear algebra of the first semester of a technical college), operating systems, networks and communication systems, computer architecture system At senior courses may appear such subjects as: application programming, web programming, information security. From college to college, the curriculum and orientation change, but one way or another these subjects are always there. You should always look through the curriculum on the official website of the educational institution, this is important.
- Basics of programming:
In these classes, you will learn the "basics" of logic, learn to write code, and parse flowcharts (the variable part). Quite useful lessons to get at all into this whole system and understand what's what. If you already have experience in programming, then the classes may seem boring to you, there's nothing you can do.
- Algorithmization:
Well what can I say, this subject is devoted to algorithms. But be careful, for example, in our program we meant it: the Turing machine, the Mark machine and the Post machine. So to say, they gave logic tasks. Further, there were examples of recursion and the concept of functions, etc., but in the mathematical aspect. You must understand that everything will depend on the teacher here.
Comment from the author:
This course is one of the few that I liked in the school where I studied, and not because there was a unique or interesting teacher, but because we imbued with these ideas and tasks, tried to solve for speed and then compared our solutions to each other and looking for the best! It was really cool! True when we explained the recursion using the mat. formulas, then we did it so badly that we simply selected problem solving by practical consideration ...
- Mathematical logic:
This is a small course of discrete mathematics for general development. Personally, I understood not only the concept of set and what DNF is, but also how the processor basically works and much more. Those. mathematics, but it is, firstly, useful in high school, and secondly, it opens its eyes to many things.
- Fundamentals of mathematical analysis and linear algebra
In short: the basic concepts from each semester of the university program. Those. we solved differential equations, but suppose we didnβt tell us about double integrals. On linear algebra, we were told about matrices, what are the operations on them and what is the determinant and how to calculate it.
Honestly, I was pleased with this program, i.e. it's just an introduction to the course of higher mathematics, but we got such a wonderful teacher that I really liked everything, I decided everything we were given and competed with group mates to make everything faster (and correctly, of course, also). Definitely worth attending these classes, the more this base is useful to you at the university.
- Probability theory and mat. statistics
These two disciplines were conducted by the same teacher as the basics of the mat. analysis. Those. it was wonderful. These lectures will also be useful to you in high school.
- Computer Systems Architecture
An excellent opportunity to understand how a computer works at the physical level, what happens to the hardware at work, etc. The principles of building architecture of microcontrollers, processors, etc. are considered. It is also possible to work in LogiSim and perform practical work in it.
Unfortunately, we got a very lazy teacher and we almost did not understand anything. He constantly stuck in his laptop and on the βleave me aloneβ he gave jobs that he did not understand how to do. It happens, nothing can be done.
- Operating Systems
The course on operating systems considers, in fact, the work of modern operating systems (Linux, Windows, real-time systems, etc.). There are also laboratory.
Not perfect, but I found out about signals in Linux, about various architectures of building operating systems, and also learned how to work in vim!
- Networks and communication systems
The course on networks is simply necessary for the programmer. If you do not know what a mask is, or how the network address differs from the node address, then you will look like a black sheep. Here are the basic concepts in network terminology, topology, work in Cisco Packet Tracer, and even setting up real equipment.
We had two similar subjects and both pro networks. One was led by a lazy teacher from the βarchitecturesβ, but the second one told us quite useful things. I tried to squeeze at most from these classes and did all the work I could. Definitely like the disciplines.
- System Programming
The system programming course deals with low-level programming in assembly languages. In my college, it was MASM611. Useful introductory course for those who want to learn more about what is happening in the computer already from the point of view of the programmer. Laboratory, theory - all for βFeng Shuiβ.
So you know, for example, why in normal languages ββthe index of the first element in an array starts from zero?
Because the index is simply an offset in memory of the size of the type of the array element, and the first element is already at the very beginning.
- Application programming
This course is compulsory, but the training program is chosen and conducted by each teacher in their own way. completely different programming languages ββcan be represented. Actually, the most important course for the programmer.
We have a very funny (sad) story. We were told that we will conduct this course with a new teacher with real work experience. It turned out that the last time she (the teacher) had programmed in assembler 20 years ago at some factory and had absolutely no idea how to conduct classes. And then I offered to take a course on C # instead. I was preparing for classes (in which a wonderful teacher of the Mytishchi School of Programmers helped me), inventing assignments, laboratory, control, homework assignments. In the first semester, I also took the exam. I am pleased!
UPD: In fact, if a student instead of a teacher leads couples during the semester on an ongoing basis, then this is a very bad situation, because talks about the low qualifications of teachers.
- Information Security
There is too much variation, so there is no clear plan for how to conduct this at all (in universities, this is generally a separate area). Waiting reset to zero.
Such subjects as: philosophy, economics, management, record keeping, etc., does not make sense to consider, because this is absolutely not what I would like to spend time on learning. By the way, with this we were slaughtered more than with profile objects, and this is terrible. Just a huge minus to college karma.
: , β . Those. ! - . , , , , - . , .
:
, ( - , ). ( ). ( ). . . There is nothing wrong with that. . . , . , . . , , , (, , .. ).
β , , , . , - front-end . , , β . .
UPD: . .
. . (, - ), , . , , - . 4 , , , CTF , - ( ) , (99%), , , .
. . , .
:
, . Yes you can. , , , , , , .
, .
UPD: : Β« Β» IT , .
. :
, β . .
: C# , , big data, . ββ ββ .
:
ββ ββ.
Attention! . .
ββ. : , , (. ), . , , , ( ).
, , , , .
, , . , , ,
, , , β β :
, , . Those. , data scientist ( ), ( ..). , , ( ) .
, . , , , .
2017 2018 (2017/2018/):
β 295/295/310 (+)
β 298/297/310 (+)
β 422/425/510 (+ , + )
. β 277/268/310 (+)
β 309/283/310 (+)
β 266/263/310 (+)
β 253/249/310 (+)
* , . (). , ( ) 2018 . , ( , , .. ).
ββ. Those. , , .
, : ( ).
. , , , , . , , . , .
2017 2018 (2017/2018/):
β XXX/273/310 (+)
β 251/246/310 (+)
ββ. ββ, .
β .
. , . , , . , , . , .
PS , , .
2017 2018 (2017/2018/):
β 267/264/310 (+)
β 258/254/310 (+)
ββ, , ββ .
, 9. , , β .
.
, , . ,
? , , , . ββ . , , , .
2017 2018 (2017/2018/):
β 389/410 (+, +)
β 257/263/310 (+)
. β 275/278/310 (+)
β 272/272/310 (+)
β 255/249/310 (+)
ββ ββ. . , , , ββ.
.
β .
. ,
, . , ? .
2017 2018 (2017/2018/):
. β 272/274/310 (+)
β 285/282/310 (+)
ββ, .. , Γ³ , .
PS : , β β ( , ).
β .
β .
, . , , ,
, " " , , , , . . . , , . , . , , , data scientist, , , / . .
2017 2018 (2017/2018/):
β 296/296/310 (+)
. β 275/287/310 (+)
β 282/284/310 (+)
β 282/281/310 (+)
β 259/262/310 (+)
"", , , .
UPD: , . ! β . . .
. , "Computer Sceince", . , , .
, .
- "" . , , ( ), . - , "" .
PS , :
, .
, ( , 300/400 ) , , .
, , , . ( ). . .
, ( . )...
UPD: , .
β
, .
, , (, ), ?
, , , . , 10 , , ...
? ?
, , , ( ), . 9 , ( -).
?
, , .
?
, , ) 6 + 4
?
, :)
? , ?
, , , : 96+84+84+71, 80/100
? ?
, ( ( , -)), , . , .
, ?
? ? ?
*, . , β , ( ) β data science :) : ( Linux) β , , .
, , . , ( , , β ). ( , , , ).
β , .*
//?
, ( )
, , ?
β ( ), () . . , , , , , () .
, ?
, , , . , β , ( , β , ////etc. )
- ?
β ( 40 ), . , 40 . - , , β .
, , ?
* . , , , . , β ( , , β . , , , .
, ( , , , , // ) . , , , - . β ( - β , Samsung ), , , , , . , .
β ( https://cs.msu.ru/departments ) β , . , , .
, . , , - , ( , β , ( Bushwhackers ), ). , , .*
.
?
, 4 .
, , .
: ?
, , β , , ( ); , . - "", . , β , .
?
β (, ) . , , β , β , ; ( -, ). β , () .
, ?
, , , β , , .
!
.
, , (, ), ?
-, 104 (1- ), 653( 2- 7- ), 664 ( , 8- 11- ). , . , .
? ?
1 1 , :)
(, )?
.
:
?
Not.
?
. 4.
? ?
( , ). .
...
?
, , β :)
, , ?
. , ( 10 ). , (, ). Those. .
, ?
, . , . .
, ?
, , .
/ ? ?
, . .
?
2000-, :)
- ?
, :)
, , ?
, 11 . . , . - , .
:
? , ?
, . Booking.com. . 3 .
, /?
. , . , .
, ?
Computer Science, (Android ), .
Other:
: ?
, . .
, ?
. , .
, !
, , (, ), ?
, : , . , .
? ?
, , . , .
?
, .
(, )
deputy :
:
?
, .
?
, , . , )
? , ?
, . 75, , , . , β .
? ?
, . .
:
/?
.
, , ?
, , , .
, / ?
, . , .
, ?
, .
/ ? ?
, . , 3-5% , . , , . , , :)
?
Not.
- ?
. , , .
, , ?
, , . , . , . , . , .
:
? , ?
3 , , , .
, /?
.
, ?
.
Other:
: ?
. .
?
, , . , , .
, ?
, . .
:
, , (, ), ?
1563 .
? ?
, β .
?
.
(, )?
.
:
?
Yes.
? , ?
, .
:
/?
.
, , ?
, , ( ).
, / ?
Yes.
, ?
.
/ ? ?
3 .
?
Not.
?
, .
:
? , ?
, 2 .
?
.
?
, .
Other:
, ?
.
: ?
Yes.
, ?
Yes.
, : , , , . β . , .
, / . (PS : https://docs.google.com/spreadsheets/d/1utkv_GnvsU378ktW-Ztlcjdqb7zp8PCYShEBZOuLyjc/edit?usp=sharing )
Warning!
:
. , - , - , .
. , - , .
- , , , !
β . , !
: https://goo.gl/forms/W7DGa1htfFCZlzOD3
UPD: , !
, 4 5, : , /.
. , .
, .
.
.
, , .
/ ?
, . , 01.03.xx 02.03.xx 09.03.xx. 17% , . , , . , ( ) , .. , , , .
: - , - HR , , β . (), C# . Those. . : , Copter Express, , ( , ?), , Delta Solutions. , 3- . - , . . : !
- , , , .
Source: https://habr.com/ru/post/434908/
All Articles