5 ms·
There used to be (and maybe still is?) an apprenticeship scheme for software development in Germany. By reputation it produced some excellent developers. The A
by marcus_holmes 2y ago
There used to be (and maybe still is?) an apprenticeship scheme for software development in Germany. By reputation it produced some excellent developers.
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.
- bane 2y agoIn the U.S. at least, the standard undergraduate degree is typically 4 years. Most universities offer a range of degrees in the field outside of C.S. which are very popular as they are now seen as both easier to obtain but also more relevant in the workforce. These include software engineering, systems engineering, information technology, and increasingly just plain old software development.
- baka367 2y agoOne takeaway here is that the university is mostly a theoretical course, that is targeted partly towards the apprentice partly towards the master paths. Out of all the interns i've worked with and hired, it is evident that a university diploma does not guarantee someone to be at a journeyman level, and more likely than otherwise hints towards a mid-level apprentice
- hnbad 2y agoI'm not entirely sure what you mean. 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.
- nairboon 2y ago> 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)
- Tomte 2y ago> Prior to the Bachelor/Master system it was a Magister study Maybe at some universities. Usually it was a diploma study, with a minor (often mathematics or electrical engineering — I did linguistics).
- hnbad 2y agoIt depended on the focus, I think. But I think you're right: I believe Theoretische Informatik was a Diplom study at my university, but there was a related study that used Magister (computational linguistics and humanities computer science, which of course had overlaps with the respective general fields).
- tstenner 2y agoThe two specializations for Fachinformatiker are FI/AE (Fachinformatiker Anwendungsentwicklerung, i.e. software development) and FI/SI (Fachinformatiker Systemintegration, that is as you already guessed system integration).
- wirrbel 2y ago> By reputation it produced some excellent developers 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 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.
- marcus_holmes 2y agoI didn't do an undergraduate degree - I taught myself to code and then just got a job as a developer, and moved on up the ranks. Effectively a DIY apprenticeship, I guess. This used to be a lot more common than it is now. 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.