While still a student, especially in recent years, I often caught myself thinking that this or that subject was completely not interesting for me and did not help me in any way to become a good programmer. This worsened when I went to work as a programmer at the 4th course and for almost a year I did nothing but learn to work as a programmer. I can’t call myself an excellent student, rather the opposite, but one way or another I graduated from the Institute (ITMO in St. Petersburg, Parfenov Department), having received a Master of Mathematics.
Most of my fellow students, like me in the sixth year, have already worked as programmers in various IT companies. Almost all of our diplomas were about all kinds of information systems, portals, bases, and so on. However, the diploma commission of everyone who defended such a diploma asked: “Where is the mathematics here? You are preparing to become a master of mathematics! ". I think you do not need to explain that in most cases it was very difficult to answer this question. Some, like for example, I deliberately invented, fastened, finished, so that at least some formulas in the presentation appeared, but the question arises, why?
Why can't I go to our country to study and get a master of computer science, to defend my thesis and become a candidate or doctor of computer science? You say that all this is math? I will give an example of an Ideal Higher Education Institution for Programmers. I suggest everyone who is interested in this topic to participate in the addition of faculties.
So:
Faculties and departments:
1.
What in the world is called Computer science
a. Algorithms
b. Application architectures (OOP / OOD / AOP, immediately patterns, UML, etc.)
c. Discrete mathematics, computer science (as a science), various CAD systems
2.
System programming
a. Operating systems and drivers
b. Compilers, formal grammars, etc.
c. Artificial Intelligence (Neuro-networks, genetics, mathematics and linguistics)
3.
Computer graphics
a. Games
b. Mathematical / Simulation Modeling
4.
System Administration
a. Here I am not very strong, but I am sure that there will be enough chairs for several. For example, Unix and Windows
5.
Management (Management in IT)
a. Methodologies and processes
b. Quality Management (QA, testing etc.)
6.
Web programming
a. It can be divided into scripting languages like PHP, perl, and .net / java - but this is an option
7.
Databases
8.
Marketing, PR, sociology (did not come up with the name)
It is clear that not all departments will be graduates, but people who really get sick of this area, write articles, participate in conferences will work there and teach students. Students, even from other departments and faculties, will arrange their lectures, simply in different volumes. I am also sure that without basic matans, rulers, functionals, diffurs, and theorvers, too, nowhere, but still the goal is to learn a real programmer.
')
PS Back in Soviet times, a graduate engineer from a university was quoted, sometimes, above experienced engineers, since the graduate’s knowledge is more modern. Now a student who has worked for a couple of years in the industry can easily be mentors for a candidate of technical sciences who studied, tried, but did not have time to work.
PPS PPNH. Thanks for attention.