The Anglophone thing of having developers do a 3-year degree in Computer Science (an almost entirely unrelated discipline from Software Development) is ridiculous in comparison.
The Anglophone thing of having developers do a 3-year degree in Computer Science (an almost entirely unrelated discipline from Software Development) is ridiculous in comparison.
Computer Science is Informatik in Germany. Prior to the Bachelor/Master system it was a Magister study meaning you'd usually have to take a second major and a minor or two minors alongside it. Typically you'd either study Wirtschaftsinformatik (business computer science), which was focussed on computer science applied to business processes, Technische Informatik (technically used to be a Diplom study I think), which was more focussed on interacting with hardware, or Theoretische Informatik, which is more similar to the pure abstract computer science and more concerned with higher mathematics than applying the knowledge to build real software.
There is also a recognized trade called Fachinformatiker (I think there's another one called Anwendungsinformatiker which is more similar to Technische Informatik) which is a job training of applied computer science, involving a mix of classes in English, computer science, mathematics, business and other subjects. This still exists and IMO it's the best way to build a foundation for a career path as an application developer.
The university studies are more useful for specialist jobs or larger corporations that insist on university degrees. If you have broad knowledge despite having a university degree rather than the job qualification, it's mostly because of things you did outside the university track itself.
There is no apprenticeship track I'm aware of like there is for traditional trades that have an apprentice/journeyman/master (Lehrling/Geselle/Meister) distinction, e.g. carpentry, mechanics, hairdressing.
Something like this kind of exists in Switzerland, even in two forms:
One track goes like: normal Lehre -> EFZ, as a Geselle -> eidgenössischer Fachausweise and later -> eidgenössisches Diplom (Meister)
or in case of a Lehre with Berufsmatura: Lehre -> EFZ + BM -> Bachelor FH -> Master FH (Meister)
Maybe at some universities. Usually it was a diploma study, with a minor (often mathematics or electrical engineering — I did linguistics).
It goes both ways, excellent developers, quite often people who would also have excelled in a computer science program (but failed because bad grades in foreign languages prevented them to get admitted, etc.)
But you also have those that struggle to adopt something other than the Visual Basic they learned in their apprenticeship.
> The Anglophone thing of having developers do a 3-year degree in Computer Science (an almost entirely unrelated discipline from Software Development) is ridiculous in comparison.
Is that different from Germany? Most devs have completed some kind of university degree (or "Hochschule").
If I think of the quality of Software-Engineering instructions I have seen in universities they were always so outdated, that I wonder whether its actually something that can be studied in such an institution in a way that makes sense.
For example I had a lecturer who was ADAMANT that in every software-engineering organisation, Nassi-Schneidermann Diagrams were drawn prior to implementation (https://en.wikipedia.org/wiki/Nassi–Shneiderman_diagram ).
He taught a C++ course which basically was C (with printf and scanf having been replaced by std::cin and std::cout). Of course it was outdated material and if someone had cared enough they could have created new material, but at what pace and at what frequency?
It makes much more sense to teach concepts, that that's what computer science curricula do, then add some engineering concepts in the mix (requirements engineering, validation / verification) and you have someone who can pick up tech on the job quickly.
The same outdated academic thing is true in other disciplines where the cutting-edge is being developed in industry rather than academia. And yes, teach concepts, but that doesn't produce graduates who are able to start writing decent code the day after they graduate.