After reading the previous post, namely its part about “Education in the West”, I could not restrain myself not to write this post.
It so happened that after graduation (at the insistence of the parents) of a medical university in Russia, fate brought me to Germany, where I decided to go to study again at the age of 28, choosing computer science as my profession (which had been my main hobby before). Now I finish the second course (just the exams by the end of September), moving from the “introductory course” (Grundstudium) to the “main course” (Hauptstudium).
So, how is computer science training in Germany.
Specialty "computer science".
It should immediately be said that I do not study computer science in its pure form, my specialty is called Informatik-Ingenieurwesen in German, and although it seems that computer science is in the first place, in fact (according to the rules of the German language), this is “engineering” with bias in computer science. Judging by the number of subjects where the device is taught processors, different assemblers, VHDL + Verilog, and different "circuit designs", it is rather the direction of an electronics engineer with programming elements at a low level.
')
In Germany, the educational system is designed in such a way that there is a “university education”, broader and designed for a broader perspective of graduates, which is achieved by reducing the hours of practical training, and “institute” (Fachhochschule), where, perhaps, not so many different subjects but then the skills of programming and administration are honed to the maximum (for sys. admins). However, at the university, unlike the “institute”, you can always additionally make the courses you need that are of interest to you personally, either completely free of charge or for a nominal fee (see below).
In general, in Hamburg, where I am, the opportunity to study computer science is provided in three places:
- The University of Hamburg has a general specialty "computer science". This is the broadest approach to computer science, with a bias in distributed systems (as it is called), but the course includes such subjects as “bioethics of computer science”, “legal aspects of the Internet” and other courses that are rather far from computer science.
- In the "Polytechnic Institute" (Fachhochschule) there is an opportunity to study the same direction as the university ("distributed systems"), but the subjects are maximally adapted to this area, many practical aspects are considered (using the example of many Java workshops).
- In Technical University, where I actually went, a bias in the engineering direction: assemblers, microcontrollers, VHDL, FPGA, and more.
Receipt.
To enter the technical specialty in Germany is quite simple. Obviously, this is due to the complexity of teaching technical specialties, but in regular universities for technical specialties there is a shortage each year, and they accept everyone who has applied. In my specialty, for example, about 90 applications were filed for 140 places - and I was enrolled absolutely without any problems.
The order of training.
First, during the 4 semesters, the so-called “basic course” (Grundstudium) takes place, during which general educational subjects are studied: the course of algebra (3 semes.), Linear algebra (2 semes.), Diffures (2 semes.), Theory of systems and signals. (3 sem.), Introduction to computer science (3 sem.), Electronics (2 sem.) And others.
I will leave mathematics aside, and tell you only about computer science. Computer science itself as a subject begins only from the 2nd semester, in the 1st semester all students must undergo practical training on the subject of “programming methodology”, where the C language is considered at a fairly good level (from the very beginning to the level of pointers, arrays of pointers and complex data structures in memory) , so far without any theory. As a result of this practice, you need to write a small course project - a small game in C (this is given for 4 weeks).
After the introductory course, different informatics begin, and at first informatics practically does not differ from mathematics, and only around the end of the 2nd course does it acquire normal features. C ++ and Java are considered as programming languages (approximately equally, with a slight predominance of C ++), it is often possible to choose between these languages in the performance of tasks or on the exam. Other modern languages are generally not considered.
If lectures are usually given by professors aged 40-50 years old, and their material may indeed be a little irrelevant (which happens, however, quite rarely), then young graduate students and in rare cases associate professors teach classes (on complex subjects), and there absolutely relevant things. In particular, modern Persistence frameworks, Data Access Frameworks (JDBC, ADO), IDE (Eclipse) and XML tools are considered.
Examinations.
Most of the exams at my university are written. The ratio of oral to written: 1 to 20, I guess. Examinations take place in a session, which is divided into a number of periods: exams are usually taken at the beginning and at the end, and in the middle there is a small pause of 2-3 weeks. But this is the specificity of our university, in other universities in a different way.
In Germany, the “inverse” rating system, that is, the best estimate is 1.0 (1 comma zero), and the worst is 5.0. The last assessment, which still makes it possible to “count” the item - 4.0 = “satisfactory”, an analogue of our “troika”. Unlike Russia, education is structured in such a way that with 100% knowledge of the subject you get an estimate in the region of 2.0-3.0. To get 1.0 you need to know the subject by 200% (that is, to be actively engaged in additional work), or (in most subjects) to be able to write quickly, because if you even think about what you write for 20-30 seconds, you don’t have time . Moreover, if on complex subjects there is usually enough time, and the difference in assessment is provided by questions on “to think” (for example, computer science often comes across in a written exam questions that involve a general outlook and reasoning skills, for example, “discuss the advantages and disadvantages of 3 network protocols of choice” ), then on more or less simple items, usually time is running out, and excellent skills are required. For example, often on the stochastic exam, one has to take difficult integrals (although this is not the most important thing in the exam) and so on.
As a rule, there are three types of exams: on which nothing can be used, on which a limited number of materials are allowed (for example, 2 sheets of formulas written by your hand), and on which you can use anything you like. The latter are particularly difficult, with tasks that only remotely resemble tasks of a textbook or seminars.
For “introductory course” subjects, it’s normal if about 50% of students take their courses, while the distribution of marks is often:
50% - did not pass
30% - between 3.0 and 4.0
15% - between 2.0 and 3.0
5% - higher than 2.0.
The exam, which did not pass, can be retaken twice, after which the last attempt of the oral exam is given, after which you will finally depart from the university without the right to study this specialty in any other university in Germany.
Additional education.
In addition to the university course, any student has the opportunity to receive additional education, either free of charge or for a very reasonable fee. So, as a student at the Technical University, I can attend any courses at any other universities in Hamburg (as part of my curriculum) for free. I can also borrow books in the library of these universities (after pre-registration, but on my “card” and not paying anything extra).
By the way, almost all modern publications can be found in the library; it receives, by subscription, all the books published in O'Reilly, Sams Publishing, Microsoft Press and others. Many publishers (for example Springer Verlag) give access to online publications instead of books, and the book can be downloaded from the university campus and printed (which, of course, is not always convenient, but, as a rule, you can get a book that came out last week) .
The university regularly offers various additional courses and exams in the most relevant areas. So, once every 2-3 months, the universities of Hamburg hold an LPI exam, which costs around 60-70 Euros for students (2 times cheaper than the normal price). In addition, various courses are regularly offered, for example, on LaTeX (free of charge) or on SAP R / 3 (about 200 Euros per semester). Just yesterday, I saw an advertisement for Ruby on Rail courses ...
In addition, a number of organizations give you, as a student, a discount on normal exams, for example, Microsoft has a separate series of 072 exams, which cost 2 times less than regular certification exams.
Job.
Since study usually takes about 4-5 hours a day (and you can often arrange the schedule in such a way that one or even two days a week are free - and Saturday is a day off in itself!), There remains quite a lot of time for self-study or a side job.
I work 3-4 days a week in a firm as a programmer, and it is as a programmer, and not as a student. But I was very lucky with the work, usually firms are much more profitable (in terms of wages) to take a student to a student position: while, of course, the demand is lower, but wages are much lower.
There are many, many different sentences with different skills for informatics students, most often Java and web design are required, but there are more specific requirements. This is not taught at the University (well, except for basic Java), but most employers do not expect much experience - usually you get such experience in such projects. Unfortunately, the remuneration of labor in such projects usually leaves much to be desired and the students, who worked for 2-3 semesters, try to find a more qualified job.
Graduation and employment.
According to statistics that hangs on the information boards in our dean's office, every year in Germany the need for graduates of engineering specialties is about 14,000 places, while only about 7-8 thousand people graduate throughout Germany. So employment is almost guaranteed.
The starting salary of an engineer-programmer starts from about 30 thousand Euros per year and grows to the level without restrictions, the average in the region is about 60-70 thousand Euros per year.
UPD: According to numerous requests, I wrote a post about the possibilities of immigration to Germany. Since this topic is not quite suitable for this collective blog, I posted this post
in a personal blog.