Hadmut Danisch

Ansichten eines Informatikers

Was jeder Informatiker lernen sollte

Hadmut
11.7.2011 0:12

Ein Leser hat mich gerade gefragt, was meines Erachtens jeder Informatiker im Rahmen der Universitätsausbildung lernen sollte.

Mmmh, gar nicht so einfach. So spontan hab ich mal folgendes aufgelistet:

  • Mathe (Analysis, Algebra, Statistik, Nachgetragen: Etwas Zahlentheorie)
  • Technische Informatik, Elektronik
  • Programmieren (aber mal so richtig)
  • Recht (Datenschutz, und was man so braucht um den Beruf auszuüben, Strafrecht)
  • Betriebswirtschafts-Grundlagen, Management, Buchhaltung, Firmengründung usw.
  • Betriebssysteme
  • Datenbanken
  • Internet und LAN
  • Benutzerschnittstellen
  • Maschinenmodelle
  • IT-Sicherheit, Forensik
  • System- und Netzwerkadministration
  • Multi-Media- und Präsentationstechnik, Desktop Publishing, Fotografie, Videos usw.
  • Soft-Skills wie Vortrags- und Redetechnik, Schulungen halten, Personalführung
  • Wissenschaftliches Arbeiten, Papers schreiben, Sachverständigenrecht
  • (Nachgetragen:) Algorithmen und Komplexität

Was vergessen?

52 Kommentare (RSS-Feed)

Fabian
11.7.2011 0:57
Kommentarlink

Wenn du es nicht unter “Programmieren (aber mal so richtig)” subsumierst: was ist mit Algorithmen?


Hadmut
11.7.2011 1:00
Kommentarlink

Oh, stimmt, ja, die sind auch ein Thema. Und Komplexität.


Jens der Andere
11.7.2011 1:14
Kommentarlink

Thelogie. Logisch… Manchmal sind auch Grundkenntnisse in Proktokologie von Vorteil, wenn man denn unbedingt auf jeden Fall Karriere machen will.

Im Prinzip reicht allerdings ein Mathematikstudium – alles andere läßt sich herleiten. 🙂

Ansonsten? Sorry. Die Liste oben ist “nice to have”, paßt aber in kein Studium, welches in brauchbarer Zeit abgeschlossen werden kann und trifft nicht den Bedarf ALLER Informatiker. Zur Schaffung eines Allrounders ist das Fachgebiet inzwischen zu groß. Also erst einmal raus mit den nicht-Kernthemen.

Da bleiben für mich:

– Mathematik für Informatiker
– Grundlagen der Informatik (Hier auch Digitalelektronik etc.)
– Softwareentwicklung (incl. Methodiken, Projektplanung, Dokumentation, Algorithmen und Datenstrukturen…)
– Betriebssysteme
– Datenbanken
– Netzwerke (bitte auch Theorie 🙂 )
– Benutzerschnittstellen und ERGONOMIE
– Maschinenmodelle
– IT-Sicherheit
– System- und Netzwerkadministration
– Theoretische Informatik (ja, sicher)

Was ist herausgeflogen?

– Technische Informatik, Elektronik

Die Zeiten, zu denen man noch Nullmodemkabel löten und die innere Funktionsweise von Pegelwandlern verstehen mußte, sind wohl vorbei.

– Recht (Datenschutz, und was man so braucht um den Beruf auszuüben, Strafrecht)

Sicher nützlich – aber wie lange soll das in brauchbar dauern?
In zwei Wochenstunden kommt man da nicht weit.

– Betriebswirtschafts-Grundlagen, Management, Buchhaltung, Firmengründung usw.

Wer eine Firma gründen will, soll sich ein Existenzgründerseminar geben. Und – Management? Jeder Studiengang meint, zu Höherem bestimmt zu sein. Projektmanagement ist allerdings unverzichtbar. Buchhaltung und BWL bringt zwar Geld (kommerzielle Software ist immer noch das Butter-und-Brot-Geschäft vieler), kann aber auch die Hölle sein, wenn man die Buchhaltermentalität und -denke zutiefst verabscheut…
(Ernsthaft, etwas BWL schadet nie, aber man findet immer einen Buchhalter, der einem die Problemstellung erklärt. Und der sicher ist, daß SEINE Buchhaltung anders ist als ALLE anderen auf der Welt.)

– Forensik

Wahrscheinlichkeitsrechnung! 🙂 Wie hoch ist die Prozentzahl der Informatiker, die diese Kenntnisse jemals brauchen und dann auch kompetent und nach dem Stand der Technik anwenden werden und können?

– Multi-Media- und Präsentationstechnik, Desktop Publishing, Fotografie, Videos usw. Soft-Skills wie Vortrags- und Redetechnik, Schulungen halten, Personalführung, Wissenschaftliches Arbeiten, Papers schreiben, Sachverständigenrecht

Einiges davon sollte jeder Studierende lernen, anderes ist “nice to have”.


Hadmut
11.7.2011 1:22
Kommentarlink

Naja, also „Mathematik für Informatiker” und „Grundlagen der Informatik” sind so allgemein-Formulierungen, die man ja erst definieren muß. Das als Inhalt zu nehmen, wäre ein Zirkelschluß.

Technische Informatik muß schon sein, sonst fehlt einfach das Verständnis. Man muß auch mal wissen, welche Teile in einem PC oder sonst einem Rechner vorkommen, sonst kann man vieles nicht machen.

Mit 4SWS kann man schon eine ganze Menge Recht treiben.

Ohne Grundkenntnisse in Betriebswirtschaft kommt heute fast niemand mehr aus, weil es überall ums Geld geht.

Forensik anwenden zu müssen ist nicht der einzige Grund, davon wenigstens die wichtigsten Punkte kennen zu müssen, braucht man auch für Software und Management.


Jens der Andere
11.7.2011 1:42
Kommentarlink

Bei Mathematik für Informatiker würde ich zur Aufzählung oben noch numerische Mathematik aufnehmen – ansonsten steht das so, auch wenn Statistik schrecklich viel Zeit fressen kann.

Wahrscheinlich verstehen wir unter Grundlagen der Informatik und Technischer Informatik relativ ähnliche Bereiche. Ich assoziierte mit dem Bereich Technische Informatik eher solch Gemeinheiten wie den CAN-Bus, Maschinensteuerungen und ähnliches. Aber klar, man sollte wissen, was ein Register ist, wie Daten gespeichert werden (auch sowas wie ASCII, Unicode usw. sollte klar sein). Ob man bei Turing-Maschinen oder bei Assembler (oder gar MIX) anfangen sollte, ich weiß es nicht…

Recht. Hmm. Datenschutzrecht, Wirtschaftsrecht, Vertragsrecht, Arbeitsrecht, Strafrecht und so weiter. Ich hätte mir nach dem Studium schon gewünscht, mehr über Werkverträge zu wissen, die meisten Kommilitonen brauchten aber, soweit ich das beurteilen kann (und das ist über 20 Jahre her), recht wenig davon. Dafür fehlten einige EU-Richtlinien (Ergonomie!) in der Ausbildung, ebenso beispielsweise Vorschriften zur Exportkontrolle. Wie man’s macht, ist es unvollständig und teilweise überflüssig. Aber was davon muß jeder Informatiker kennen?

BWL: Ja, nützlich. Ich habe mich damals durch BWL und VWL gequält, aber Gesellschaftsformen und ähnliches kann man brauchen. (Vokabular! BWL ist Vokabular und nicht viel mehr… 🙂 )


Also auch für Dich ist ein Informatiker ein Programmierer. Warum nennst Du ihn dann nicht Programmierer?

Carsten

Ich bin Sexist, ich kille nur weibliche Mücken.


Hadmut
11.7.2011 9:48
Kommentarlink

@Carsten: Unfug, der Informatiker ist kein Programmierer, muss das aber beherrschen, um seinen Job zu tun, um zu wissen, was geht und was nicht, um Programmierer auszubilden und zu überwachen, und um eben auch mal selbst was schreiben zu können. Auch ein Architekt muss Ahnung vom Mauern haben um ein Haus planen zu können. Ein Informatiker, der nicht progammieren kann, ist eine erbärmliche Erscheinung.

Davon abgesehen brauchen die meisten Informatiker auch einen Führerschein und sind deshalb trotzdem noch lange keine Taxifahrer.


j.
11.7.2011 7:43
Kommentarlink

Wenn schon Programmieren und Algorithmen, dann bitte auch Entwurfsmuster.


Usul
11.7.2011 7:52
Kommentarlink

Technische Informatik würde ich auch auf jeden Fall drinbehalten. Es muss ja nicht runter bis ans Löten gehen, aber zumindest die groben technischen Vorgänge muss man mal gesehen und verstanden haben. Das ist insbesondere dann wichtig, wenn es mal um physikalische Limits geht, die sich gar nicht mal so unhäufig bis ganz hoch zur Anwendung durchschlagen (Latenzen z. B.).


flippah
11.7.2011 8:53
Kommentarlink

wenn Informatiker das wirklich können würden, hätten wir gelernten Programmierer (ich bin DV-Kaufmann) weit weniger Probleme mit denen. Auf dem Bau würde niemand einen Architekten einstellen, der einen Maurer sucht. In der EDV ist es hingegen üblich, Uni-Informatiker auf Entwicklerstellen zu setzen, die oft kaum eine Zeile Code geschrieben haben und völlig in wirren Theorien verstrickt sind. Die FH-Informatiker sind da meistens schon brauchbarer.


yasar
11.7.2011 9:06
Kommentarlink

Forensik ist auch für IT-Sicherheit wichtig. Gebrauchte Festplatten bei ebay sind dabei noch das kleinste Problem.

Außerdem würde ich Informatikstudenten mal dazu verdonnern mal einen rechner auseinander und wieder zusammenzuschrauben udn wenigstens einmal ein OS (nach Vorgaben) zu installieren. Nicht etwa, weil die das später in ihrem beruf unbedingt selbst machen müßten, sondern damit sie wissen, mit welchen Problemen man im praktischen Alltag konfrontiert werden kann.

Un dzu wissen, wie man ein Nullmodemkabel löten kann ist auch für die heutige Netzwerktechnik wichtig, damit man weiß, warum man “Crossover” machen muß, wenn bestimmte Geräte kein Auto-MDX können.


der andere Andreas
11.7.2011 9:25
Kommentarlink

wo es jetzt schon nen vorlesungsverzeichnis gibt hoffe ich mal stark, dass der herr (fast)Prof. (fast)Dr. Danisch noch ne literaturliste für interssierte nachreicht.^^

vllt im rahmen einer buchempfehlung einsteiger/fortgeschrittene? hätte mal was.


Manolo
11.7.2011 9:26
Kommentarlink

Also ich (Dipl.Inf., um die 40) würde heutzutage überhaupt keine Informatik mehr studieren und eher gleich zu richtiger Mathematik oder wenn es praktisch sein soll zu einem Physik oder modernen Ingenieursstudiengang raten (Werkstoffwissenschaften, etc.). Informatik empfinde ich immer mehr als nichts halbes und nichts ganzes und sie taugt eher als Nebenfach.


Hadmut
11.7.2011 9:55
Kommentarlink

@Manolo: Da ist was dran. Ich habe bis heute auch noch nicht so genau herausgefunden, was der Informatiker eigentlich so macht und wofür er gut ist. Wie so vieles in der Informatik ist auch der Informatiker selbst die Lösung für ein Problem, das man noch nicht gefunden hat.

Wenn ich allerdings bedenke, wieviele Akademiker in der Realität etwas machen, was mit ihrem Beruf überhaupt nichts zu tun hat (besonders Physiker und Chemiker), ist der Informatiker noch ziemlich gut dran.


Michael
11.7.2011 9:44
Kommentarlink

Sehr schöner Überblick. Jetzt fehlt eigentlich zu jedem Themenbereich nur noch eine Buchempfehlung zum Einstieg.


Hadmut
11.7.2011 9:59
Kommentarlink

Buchempfehlungen kann ich da derzeit eigentlich nicht geben, weil ich da erstens keinen aktuellen Überblick habe, mich da zweitens selbst eher über Internet weiterbilde, und drittens den Großteil meiner diesbezüglichen Bücher kürzlich einem Informatik-Jungstudenten vermacht habe.


Jens der andere
11.7.2011 11:30
Kommentarlink

Im praktischen Leben ist Informatik eine Ingenieruswissenschaft.
Und siehe: die meisten Themen werden so an Fachhochschulen gelehrt, da ist dann auch Platz für die ganzen Nebenfächer. Allerdings findet dort natürlich auch eine Spezialisierung statt.

Informatik als Hauptstudium an einer Universität soll sicher umfassendere Kenntnisse des Faches vermitteln. Da hat man dann für viele nette Themen wenig Platz. Auch wenn “Umgehen mit dem echten Leben” zu kurz kommt – die ganzen soft skills beispielsweise. Nun, das hat bisher auch niemanden abgehalten, an einer Uni zu studieren und hinterher seinen Lebensunterhalt erfolgreich zu verdienen.

Und wer studiert Informatik, um als Taxifahrer zu enden, weil er zwar alles über Warteschlangentheorie weiß, ihm aber jede praktische Anwendbarkeit fehlt? (Finde mal einer einen Praktikumsplatz für Diplomtheoretiker…)

Also kläre man doch zuerst einmal die Frage: Was ist das Berufsbild des Uni-Informatikers? Auf alle Eventualitäten wird man ihn nicht vorbereiten können, aber was ist das verbindende Element?


KMS
11.7.2011 11:47
Kommentarlink

Hadmut, was hältst du von der Behauptung, dass man sich Programmierung und alles Praktische ohne weiteres schon vor Studienbeginn aneignen kann und daher eigentlich im Studium möglichst nur Mathematik und theoretische Informatik belegen sollte?

Also wäre nicht für jemanden, der schon programmieren kann ein Mathematikstudium mit Nebenfach theoretischer Informatik die beste Ausbildung?


Hadmut
11.7.2011 12:02
Kommentarlink

@KMS: fast soviel wie davon, daß sich ein Arzt das Operieren doch bitte schon vor Studienbeginn aneignen und im Studium was anderes belegen soll. Nämlich nichts.

Ich war jahrelang Tutor, dann wissenschaftlicher Mitarbeiter. Und habe unglaublich viele Leute erlebt, die sich im ersten Semester für die tollsten Programmierer hielten, weil sie vorher schon so wahnsinnig viel programmiert und teils damit auch schon Geld verdient hatten. Manche gar, die angeben wie Schweinesülze, weil sie jedem mitteilen wollen, wie toll sie sind und nicht ertragen können, daß es keiner wissen will. Die zu jeder Übungsaufgabe statt des geforderten ein Riesen-Perl-Projekt einreichen weil sie demonstrieren wollen, wie toll sie drauf sind und was sie alles können (und dann Punktabzug bekommen haben, weil sie die Aufgabe nicht gelöst hatten). Das allermeiste, was ich von solchen Leuten gesehen habe, war zwar manchmal sogar sehr beeindruckend und hätte für den Sieg bei irgendeinem Obfuscated-Wettbewerb gereicht, aber industriell-qualitativ gesehen war es – man gestatte mir den Ausdruck – einfach Scheiße. Das mit dem selbst aneignen gelingt nur den wenigsten. Gerade beim Programmieren kann man sich unglaublich schlechten Stil angewöhnen und den letzten Murks für gut halten, wenn man da so im eigenen Saft vor sich hin bruddelt.

Und jemandem, der glaubt, daß er auf ein Informatik-Studium verzichten könne, weil er schon „programmieren” kann (oder glaubt, es zu können), dem würde ich generell von einem Informatik-Studium abraten, weil er falsche Vorstellungen davon hat. Der ist da eh falsch. Und in der Mathematik eigentlich auch. Solchen Leuten sollte man eher Wirtschaftswissenschaften oder Soziologie empfehlen. Nicht weil sie es könnten, sondern weil ich den Wiwis und den Soziologen solche Leute gönne.


FF
11.7.2011 13:07
Kommentarlink

Das refrainartige Soziologen-Bashing halte ich für unangebracht. Max Weber, Èmile Durkheim, Pierre Bourdieu. Soziologie hat absolut nichts mit Kristina Schröder zu tun. Normalerweise.


tonne
11.7.2011 13:55
Kommentarlink

Da fehlen die Bereiche Sprachen und Software Engineering und Projektorganisation :

– Compilerbau (Grammatiken, Automaten, Sprachentheorie (funktionale, deklarative, prozedurale etc)

– Software Engineering (Projektanalyse, Workflowanalyse, Modellierung, Standards, Schnittstellen, Abstraktion, Entwicklungskonzepte, Extreme Programming, Auswahl der geeigneten Werkzeuge und Zutaten, Umsetzung großer Projekte, Umsetzung großer Projekte im Team, Auswirkungen der eigenen Arbeit auf Nutzer, …)

Im Verlauf des Studiums sollten mal so 30+ verschiedene Sprachen auf verschiedenen Abstraktionsebenen gelernt werden, ihre Vor/Nachteile verstanden, 2-3 davon richtig beherrscht werden.

Teamarbeit (aber mal so richtig). Es sollten im Verlauf des Studiums im Team einige große Projekte unter realen Bedingungen (Zeitdruck, unklare Vorgaben, Änderung der Vorgaben mitten im Projekt etc, Wechsel der Leitung, Rollentausch, abschließender Echteinsatz) realisiert werden.

Die ursprüngliche Liste wirkt ein bisschen wie der Ausbildungskatalog für den Informatiker-Architekten/wissenschaftlichen Mitarbeiter, der einem Rudel Programmierer vorsteht. Diese Unterscheidung halte ich für praxisfern bis gefährlich. Und selbst wenn man solche Hierarchien auf Dauer tragfähig kriegt, erwartet man zurecht von einem Bäckermeister auch, dass er ein Brot backen kann, und zwar amtlich. Genauso wie man von “Programmierern” erwarten können muss, dass sie begründen können, warum sie Logik auf einer bestimmten Ebene ansiedeln und nicht woanders.


Hadmut
11.7.2011 14:15
Kommentarlink

OK, ja, Sprachen und Grammatiken sollte man können, bei Compilerbau wär ich mir aber nicht so sicher, da muß ich mal drüber nachdenken.

Meine Liste war auch nicht lange überlegt, sondern relativ spontan hingeschrieben, insofern sehr verbesserungsfähig.


John
11.7.2011 14:34
Kommentarlink

Teilweise tauchen auch Computergrafik und Bioinformatik in den Curricula auf.


Hadmut
11.7.2011 14:46
Kommentarlink

Computergrafik habe ich überlegt, aber das, was man davon wirklich braucht, habe ich mal unter Benutzerschnittstellen mit abgelegt.

Bioinformatik? Nee, kann ich nicht nachvollziehen…


pepe
11.7.2011 14:55
Kommentarlink

30 Sprachen, was soll das bringen? Wir hatten eine Vorlesung “Programmiersprachen”, die war vom Inhalt her genau richtig. Da wurden diverse Konzepte besprochen und jeweils an einer ausgewaehlten Sprache dargestellt. Gibt auch Buecher in der Form. Sowas kann man ruhig richtig tief machen damit die Konzepte klar sind und worum es dabei geht.

Davon ab braucht man nur 2-3 Handwerssprachen tiefer zu lernen, derzeit vermutlich Java(*shrug*) und C. In Wahlpflichtvorlesungen kann man noch andere bringen, zB haben wir in einer KI-Vorlesung Prolog/Lisp ganz high-level benutzt und in einem Embedded Crypto Praktikum haben wir mit ASM fuer ne Smartcard implementiert.

Alles andere lernt man spaeter im Job. Software-Engineering ist eine gute Idee. Nach den zwei Vorlesungen die ich dazu gesehen habe, gibt es sowas aber bisher nicht. Es gibt nur eine kurze Liste offensichtlicher Daumenregeln.


KMS
11.7.2011 15:02
Kommentarlink

Ich finde das ja jetzt interessant, dass du auf einmal so eine Lanze fürs Informatikstudium brichst, nachdem du nicht müde wirst, die deutsche Informatikausbildung zu kritisieren.
Ich studiere Physik und kenne einige Informatikstudenten (Bachelor) und was die praktisch lernen, finde ich ehrlich nicht grade beeindruckend. Da wird in Mini Codeausschnitten mit Java rumgewichst und kein Mensch hat Ahnung von Speicherarithmetik und den Sicherheitsproblemen, weil man in der VM alles so schön bequem hat. C hat noch keiner gesehen (jedenfalls nicht als Studieninhalt).
Also finde ich es grade fragwürdig, sich darauf zu verlassen, im Informatikstudium programmieren zu lernen..ok, man lernt, wie man mit Eclipse in Java im Industriestandard Module zusammenbastelt, aber da scheint es bei vielen dann auch zu enden..(das ist aber wie gesagt nur ausschnittsartig, von dem, was ich aus deutschen Bachelor Studienplänen kenne).


Hadmut
11.7.2011 15:14
Kommentarlink

@KMS: Da hast Du mich falsch verstanden. Ich wollte auch keine Lanze brechen. Jemand hat mich gefragt, was meines Erachtens jeder Informatiker drauf haben sollte.

Das heißt aber nicht, daß ich der Meinung wäre, daß die Ausbildung in Informatik hier gut wäre oder daß ich aus dem Stand den Soll-Zustand beschreiben könnte.

Deinen Eindruck, daß da mitunter in Mini-Codestücken mit Java „rumgewichst” wird und kein Mensch Ahnung von Speicherarithmetik und Sicherheitsproblemen hat, kann ich voll und ganz bestätigen, und Deine Kritik daran ist mehr als angebracht. Wenn ich diese Themen oben aufgelistet habe, dann meine ich, daß man sie lernen sollte und nicht, daß es genügen würde, das anzuhören, was da an Vorlesungen geboten wird.

Diese Liste bezeichnet, was man (spontan hingeschrieben) lernen sollte. Sie heißt nicht, daß das Informatik-Studium das vermittelt. Es heißt aber auch nicht, daß „sich selbst aneignen” in der Regel funktioniert. Es heißt, daß wir in Deutschland eigentlich überhaupt keine brauchbare Ausbildung haben.


ini
11.7.2011 15:10
Kommentarlink

Na dann haben wir ja alles zusammen was eh schon unterrichtet wird und irgendwie doch nicht, weil kein Vorlesungsverzeichnis dem einer anderen Hochschule gleicht.
Solche Empfehlungen haben keinen Sinn, weil da jeder seine persönlichen Erfahrungen und Geschmäcker, Vorlieben und Abneigungen einfliessen lässt.

Einfach das Studium durchziehen und nach Interesse vertiefen. Was hält einen davon ab ein Buch zu einem Thema zu lesen das einen interessiert? Und selbst wenn es ein Thema ist wovon die meisten Informatiker nichts davon halten, einfach machen. In der Praxis ist eh anders als an der Hochschule, wer bleibt schon freiwillig dort?

Schnell und schmerzlos das Studium durchziehen, sonst verblödet einen das Hochschulumfeld zunehmend (Professorales Gehabe, Praxisversager, Beamtenmentalität, Filz, korrupte Strukturen, Herrschafts/Untertandenken wie vor 100 Jahren, Willkür, …)


Hadmut
11.7.2011 15:16
Kommentarlink

@ini: Ziemlich wenig von dem, was ich in den letzten 10 Jahren im Beruf gebraucht habe, wird an der Uni gelehrt. Woher auch? Die Universitäten werden mit Leuten besetzt, die keine Berufserfahrung in diesem Umfeld haben. Wie sollten sie lehren können, was sie selbst nicht beherrschen?


Stefan H.
11.7.2011 15:27
Kommentarlink

@Hadmut: dann müssen wir mal andersrum fragen: was hast du denn in den letzten 10 Jahren im Beruf gebraucht, was nicht an der Uni gelehrt wird?


Hadmut
11.7.2011 15:30
Kommentarlink

@Stefan H.: Ersetz mal in der Frage das wird durch wurde, dann kann ich es konkreter beantworten und auf mein Studium beziehen.

  • Sehr viel über IT-Security und alles, was damit zusammenhängt (Firewalls, Angriffstechniken, Beweistechniken usw.)
  • Sehr viel, sehr tief über Internet und Netzwerke
  • Programmieren, aber eben nicht diese kleinen Code-Schnipsel-Naiv-Übungsaufgaben, und vor allem nicht nur partiell korrektes, sondern sicheres und robustes Programmieren.
  • Projektmanagement
  • Recht (Datenschutz, TKG, Strafrecht,…)
  • Generell Management
  • Englisch
  • Betriebssysteme, Administration, Unix, Linux
  • Fehlersuche und Analyse
  • Einige Soft-Skills
  • Pragmatisches Fehlerlösen, Leute nicht mit „geht nicht” sondern mit einem praktikablen Lösungsvorschlag wieder rausschicken
  • Betriebswirtschaftliche Aspekte
  • Kenntnis konkreter Produkte
  • 15 Jahre Berufserfahrung inklusive Dirty Tricks, Straßenkampf, every shit that can happen
  • Umgang mit echten Angreifern und nicht theoretisch-hypothetischen
  • So machen, daß es innerhalb eines begrenzten Zeit- und Geld-Aufwandes läuft und nicht um möglichst viele Punkte auf dem Übungsblatt zu holen
  • kritisches Denken
  • …(mir fällt sicherlich noch viel ein, nur jetzt nicht aus dem Stand)

KMS
11.7.2011 15:44
Kommentarlink

was genau machst du eigentlich grade, also Security in welchem Kontext? angestellt beim Großkonzern, freies Consulting..?


Hadmut
11.7.2011 16:12
Kommentarlink

Bis vor ein paar Tagen war ich bein einem Konzern. Im Moment bin ich gerade dabei, mich wieder mal zu erneuern und neu zu orientieren und mache solange freies Consulting. Man muß da sehr aufpassen, daß man nicht zu lange im eigenen Saft vor sich hin schmort, sondern vorne dran bleibt.


Jens der Andere
11.7.2011 17:56
Kommentarlink

So langsam kommt der Thread in die Hufe. Spannend!

Softwarearchäologie könnte auch nicht schaden. In der Lage zu sein, eine 30 Jahre alte COBOL-Applikation zu begreifen und entweder zu warten oder zu portieren ist eine nützliche Fähigkeit. Denn – man erfindet ja fast nie das Rad neu, eher muß man damit leben, Löcher zu flicken und das Profil nachzuschneiden.

Ansonsten kann und soll ein Fachstudium keine Lebenshilfe liefern. Wer kein Englisch kann, soll bitte, bitte, bitte einen Englischkurs irgendwo buchen, aber nicht verlangen, daß jemandem, der in der Schule nicht aufpaßte, das Hinterteil nachgetragen wird. Für Fachenglisch reicht ein entsprechendes Wörterbuch. Ansonsten verweise auch ich hier auf die Geisteswissenschaften als Alternative.

Vorsicht auch mit dem Ruf nach Managementtraining. Wer direkt nach dem Studium erwartet, in Führungspositionen eingesetzt zu werden, wird sich bei den meisten Arbeitgebern wundern. Davon abgesehen fehlt vielen Absolventen da auch das Interesse. Und “Viele Häuptlinge, wenige Indianer” war schon vor über 20 Jahren eine idiotische Idee.


Hadmut
11.7.2011 17:58
Kommentarlink

Management-Fähigkeiten werden nicht nur für Häuptlinge gebraucht, das ist ein Trugschluß.

Selbst wenn man ganz alleine als Consultant unterwegs ist oder zum Kunden geschickt wird, braucht man sowas. Als Informatiker muß man immer auch den Kunden managen können.


Battleaxe
11.7.2011 18:01
Kommentarlink

Mir fehlt in Deiner Aufstellung noch der Psychologie-Teil.

Einzelkämpfer gibt es selten. Es sind immer Gruppen in denen der einzelne sowohl teamfähig sein muss als Mitglied wie als Leiter. Gruppendynamische Prozesse sollten bekannt und verstanden sein. Wenn es Probleme in der Gruppe auf menschlicher Ebene gibt kann das Gruppenergebnis nicht gut/schnell/”aus einem Guss” sein.

…. und Dokumentation/Handbücher/Howtos – ich weiss, das mag keiner. Aber auch kaum einer hat gelernt wie er das anpackt.

Gruß BA


KMS
11.7.2011 18:41
Kommentarlink

Battleaxe:

Das ist aber nicht Informatik spezifisch, sondern wäre grundsätzlich wünschenswert für jeden Menschen – und “Teamfähigkeit” (wie es so schön heißt) sollte in der Schule vermittelt werden.
Schlimm genug, dass manche im Studium noch keinen Anstand haben und in Gruppen nur parasitär mitschwimmen. Das ist aber nicht Aufgabe der Dozenten, den Charakter seiner Studenten zu verbessern.


Battleaxe
11.7.2011 19:48
Kommentarlink

@KMS:

Das ist nicht informatikspezifisch jedoch ist es in der Informatik das absolute “Killer”-Kriterium. Heute kann kaum noch ein Projekt als “Einzelkämpfer” gestartet/durchgezogen – also gewuppt werden. Viele Projekte die ich kennengelernt habe sind an der Teamfähigkeit gestorben/kranken daran. Denn bei solchen Projekten geht es nicht dass der erste die Zeichnung macht, der zweite die Drehteile, der 3. die Frästeile, der 4. die Normalien bestellt, der 5. die Hilfsstoffe bereitstellt und der 6. montiert.

Bei solchen Projekten werden fortwährend alle Fähigkeiten parallel gebraucht (auch weil die Entwicklung das fordert) und das erzwingt eine fortwährende Kommunikation.

In anderen Branchen (Beispiel oben Maschinenbau) ist das wünschenswert und schön. In der Informatik ist es essenziell.

Gruß BA


User
11.7.2011 19:57
Kommentarlink

Hallo zusammen,

also ich war mal für 2 Semester Informatik an der FH in München und habe auf verschiedensten Gebieten versagt.
Eines davon war sicherlich der Programmierteil. Mir wurde im Vorfeld immer gesagt dass ich keine Programmierkenntnisse zwingend vorher brauchen würde. Ich wollte es ja auch erst lernen. Aber schon bald hat sich das als sehr ambitioniert herausgestellt. Unsere erste Aufgabe war gleich das PRgrammieren eines Chats in Java. Ich war total überfordert, musste mir ersteinmal selbst so gut ich konnte überhaupt mal beibringen was Java ist und bin da auch nicht weiter gekommen.

Ich will nicht rumheulen aber zu sagen man geht da am besten ohne Vorkenntnisse rein – zumindest habe ich das so rausgelesen – ist aus meiner Erfahrung eher keine gute Empfehlung.


Jens der Andere
11.7.2011 21:21
Kommentarlink

Hadmut,

Jetzt könnte ich kontern: Du sollst den Kunden nicht managen, Du sollst ihm etwas verkaufen. Deine Leistung, die Leistung seiner Firma, den augenblicklichen Bug als Feature…

Also eher doch Vertriebs- und Rhetoriktraining, Manipulation und Psychologie. Der Umgang mit Kunden ist ein heikles Thema, wobei es dem vielleicht einmal als Einkäufer tätigen Informatiker helfen mag, über Vertriebsmethoden und Manipulationstechniken etwas zu wissen.
(Der Skillset zum Umgang mit Kunden und dem mit Mitarbeitern ist vielleicht verwandt, aber ich sehe sie doch unterschiedlich.)

Zum Thema Sicherheit: Informatiker haben oft einen Tunnelblick, wie andere Spezialisten auch. Wie kann man in der Ausbildung vermitteln, daß Sicherheit ein sehr breites Thema ist, welches zum Beispiel in der Peripherie nur mit “DV-Bordmitteln” nicht annähernd zu erschlagen ist?

Oh – Risikoanalyse! Fast vergessen, aber für rational begründbare Entscheidungen wichtig. (Genau so wichtig wie den Unterschied zwischen “nice to have”-Feature und “pays for itself in three months”-Feature zu begreifen. Da macht dann BWL Sinn.)

Trotzdem sollte man sich wenn möglich auf Kernthemen konzentrieren.
Man erwartet schon, daß jemand mit abgeschlossenem Studium in der Lage ist, sich in Themengebiete selbständig einzuarbeiten.
Daher sehe ich Persönlichkeitsbildung zwar als wichtig; die Frage aber bleibt: ist es eine Kernkompetenz?


Hadmut
12.7.2011 10:46
Kommentarlink

@Jens der Andere: Nein! Ich habe mich nie als Verkäufer, sondern immer als Consultant und Ingenieur verstanden. Und auf diese Unterscheidung auch immer großen Wert gelegt, weil man sich sonst seiner Kompetenz und Glaubwürdigkeit begibt.

Beispielsweise habe ich im Laufe meiner Tätigkeit immer darauf geachtet, daß ich keine Verkaufsgespräche führe und keine Preislisten usw. mit mir führe und verteile, weil ich nie fahrender Händler und Klinkenputzer sein wollte. Für sowas habe ich immer den Vertrieb herangeholt und die das machen lassen. Und wenn ich Workshops abgehalten habe, habe ich nie – wie das viele Firmen oder Vortragende so machen – irgendwelche Produktlisten oder Preise an die Wand geworfen, sondern immer nur die fachliche Seite beleuchtet. Dann gab’s dann irgendwann Pausen mit Fingerfood, und den Vertrieblern habe ich vorher Bescheid gesagt, wann sie sich da bereit halten und aktiv werden sollen, aber ich habe mich dann rausgehalten, um die Trennung aufrecht zu erhalten.

Auch bei der Kleidung habe ich immer darauf geachtet, bei solchen Veranstaltungen einen anderen Kleidungsstil zu haben als die Vertriebler, um mich schon optisch von diesen abzuheben.

Selbst wenn ich Angebote selbst erstellt habe, habe ich die immer über den Vertrieb und nicht direkt zum Kunden schicken lassen.


tonne
11.7.2011 23:38
Kommentarlink

@pepe: “30 Sprachen, was soll das bringen?”

Wenn Du mal durchzählst, bist Du bei einem richtigen Studium schnell auf 30, ich hab extra allgemein Sprachen geschrieben, meine nicht nur die aktuell typischen Programmiersprachen C++ und Java etc, sondern querbeet sowas wie XML, perl, python, Ruby, php, SQL, Sprachen für Stored Procedures, Javascript, CSS, Lisp, Smalltalk, Shellskriptsprachen, der ein oder andere Assembler, Postscript, Visual Basic, Bytecodesprachen, graphische Programmiersprachen, UML, vielleicht mal Datenflussprogrammierung wie LabView, historische Sprachen wie Cobol, Fortran usw, mit und ohne Entwicklungsumgebungen, so dass man nach dem Studium jede neue oder bis dahin unbekannte Sprache oder Sprachkonzepte beurteilen und bei Bedarf in kurzer Zeit damit umgehen kann. Dann hätten wir vielleicht weniger zusammengeschusterten Murks an Sprachen als derzeit. Und mehr große wartbare Systeme, wo die Logik dort angesiedelt wäre, wo sie hingehört.

“Software-Engineering ist eine gute Idee. Nach den zwei Vorlesungen die ich dazu gesehen habe, gibt es sowas aber bisher nicht”

An der TU Berlin gab es das, ungefähr in der beschriebenen Form. Wie es da heute aussieht, weiss ich nicht.

@Hadmut: “bei Compilerbau wär ich mir aber nicht so sicher, da muß ich mal drüber nachdenken.”

Ist gut geeignet, ein breites Spektrum an grundlegenden Konzepten zu vermitteln, wie saubere funktionale Abgrenzung der Teile eines Systems/Modularisierung, Speicher- bzw allgemeiner Ressourcenverwaltung, Reguläre Ausdrücke, Rekursion, effiziente Algorithmen, Sprachverständnis, Abstraktion von und gleichzeitig konkreter Bezug auf darunterliegende Systeme, verschiedene Zielplattformen.

@KMS: “Teamfähigkeit” (wie es so schön heißt) sollte in der Schule vermittelt werden.
Schlimm genug, dass manche im Studium noch keinen Anstand haben und in Gruppen nur parasitär mitschwimmen. Das ist aber nicht Aufgabe der Dozenten, den Charakter seiner Studenten zu verbessern.”

Teamfähigkeit wird leider eher nicht in der Schule vermittelt, dort ist es nicht zwingend, darauf kann man sich nicht verlassen. Teamfähigkeit verstehe ich sehr weitgehend, sie kann im IT-Sektor nicht hoch genug eingeschätzt werden, denn die meisten Arbeiten in der IT passieren im Team und müssen es auch. Dazu gehört auch, im Team zu Entscheidungen zu kommen, vernünftige Selbstorganisation, realistische Selbsteinschätzung, die Arbeit und Zeit anderer zu respektieren, im Team mit Stress umzugehen, früh genug Fehlentwicklungen zu erkennen und gegenzusteuern, und die Last angemessen zu verteilen. Im weitesten Sinn gehört sogar Netiquette dazu.

Im Idealfall wird Teamfähigkeit in der Schule vermittelt, aber Unis sind doch wesentlich besser in der Lage, Bedingungen zu schaffen, in denen die Notwendigkeit, sich diese Fähigkeiten anzueignen, ganz offensichtlich wird. Dozenten müssen sich dabei gar nicht groß reinhängen, das Thema Trittbrettfahrer ist inoffizieller Ausbildungsinhalt *innerhalb* der Teams, denn später hat man noch viel mehr Trauer, wenn man damit keinen vernünftigen Umgang entwickelt hat. Eine Projektaufgabe, die alleine oder zu zweit schlicht nicht zu bewältigen ist, reicht hierbei völlig. Da den richtigen Punkt zu treffen, wäre die Aufgabe des Dozenten. Im Anschluss an das Projekt könnte es mit dem Dozenten eine Abschlussbesprechung geben, bei der jedes Teammitglied erzählt, und was separat in die Beurteilung einfließt.


Tom Schoe
12.7.2011 0:17
Kommentarlink

@Hadmut: ist deiner Meinung nach “selbst aneignen” nun funktional?

Ich würde es vorsichtig bejahen, wenn das Studium an FH oder Uni einen Grundstein an Kenntnissen und Fertigkeiten legen konnte, was sicher nicht das standard procedure ist.

Ich mutmaße mal, dass du dir den Großteil deiner Kenntnisse außerhalb von Hochschulen aneignen musstest, wenn diese gerade gebraucht wurden. Und wenn ich mich nicht sehr täusche, ging oder geht es vielen so.

Den Punkt der “eigentlich nicht vorhandenen brauchbaren Ausbildung” halte ich für den eigentlichen Denkansatz: jeder angehende Informatiker (oder überhaupt jeder Student) sollte von Dozenten mit pädagogischer und Fachkompetenz gelehrt werden, nicht von solchen …[wie nennt man Menschen mit dissoziativen Persönlichkeitsstörungen, die unfähig sind, normal zu kommunizieren, Augenkontakt zu halten, Argumentationsketten zu bilden, auf dem Flur angesprochen zu werden und nicht wegzulaufen, etc. bla?], wie (nicht nur) ich sie leider erleben durfte.


Hadmut
12.7.2011 10:31
Kommentarlink

@Tom Schoe: Kann man so pauschal nicht beantworten. Ist Autofahren gut? Kommt drauf an, wer fährt.

Wer mal ein paar Jahre Erfahrung gesammelt hat, und sich bereits auskennt, bei dem kann das „Selbst aneignen” wesentlich besser und effektiver sein als eine Lehrveranstaltung. Siehe etwa meine Kritk an der Programmiersprache Scala und dem meines Erachtens vermurksten Lehrbuch von Odersky, der sich nicht entscheiden kann, ob er eine Sprache einführen oder generell Programmieren lehren will (und beides nicht gut macht). Im Vergleich zu einer so verhunzten Einführung kann selbst aneignen durchaus besser sein.

Andererseits werden sich bei jemandem, der vorher einen schlechten Programmierstil hat oder schwere Fehler macht, diese durch „selbst aneignen” nur verstärken. Ab und zu braucht man einfach mal einen Externen, der einem auf die Finger schaut, damit man nicht zu sehr im eigenen Saft schmort.

Letztlich ist „selbst aneignen” damit nicht eindeutig gut oder schlecht, sondern verstärkt meist nur das, was vorher schon da war. Und das kann eben gut oder schlecht ausfallen. Weil aber die meisten Studienanfänger entweder schlecht bis gar nicht programmieren können oder sich als Schüler, Bastler oder früh Berufstätige manchmal einen ganz grauenhaften und hundsmiserablen Programmierstil angewöhnt haben, kann das natürlich nach hinten losgehen.


Nein, ein Architekt muß nicht tapezieren können!
Der Beruf Informatiker ist ein typischer Hype. Zuerst erfand jemand eine Worthülse und alle plapperten sie nach und jetzt bemüht man sich um Inhalt für das Drechselkunstwerk.
Das genaue Gegenteil ist Mechatroniker. Da war der Inhat da, zwei Berufe in einen, und keine Bezeichnung. Ein Bürokratenhirn schuf dann dieses Wortungetüm.
Daß das grundsätzlich nicht verstanden wird beweist die Tatsache, daß Programmieren als Informatik gelehrt wird.

Carsten

Credo quia absurdum (Ich glaube, weil es absurd ist)
Michail Bakunin


Kritik an lausigem Programmierstil gibt es genausoviel wie an lausigem Fahrstil. Mach doch mal einen Artikel über guten Programmierstil, und das bitte bitte sprachübergreifend. Dann entwicken wir daraus vielleicht einen universellen Styleguide und dann die ideale Sprache.

(na das gibt ‘ne Schlacht — *grins*)
Carsten

Der Unterschied zwischen der graphischen Gestaltung des
Erscheinungsbildes eines Zeichens und dessen digitaler Repräsentation
dürfte sehr vielen noch nicht klargeworden sein. Bei der
(Nicht-)Unterscheidung bzw. Verwechlung von o/0 sollte man sich aber
auch auf deren große räumliche Nähe auf dem Tippbrett besinnen. Obwohl
wir im Jahr 2ß11 leben.
Ralf Kusmierz


Hadmut
12.7.2011 11:03
Kommentarlink

So was ähnliches habe ich vor ein paar Monaten sogar schon angefangen, als ich eine Schulung über sicheres Programmieren vorbereiten wollte.

Allerdings artet sowas leicht in ein episches Werk aus und macht einen Haufen Arbeit, für die mir die Zeit fehlt.

Davon abgesehen hab ich in letzter Zeit zuwenig mit Programmen (vor allem Programmen anderer) zu tun um da ganz up to date zu sein, und sich nur fiktive Beispiele auszudenken, bringt’s ja auch nicht.

Für sinnvoller halte ich es übrigens, solche Erkenntnisse in die Kontstruktion von Programmiersprachen einfließen zu lassen.


yasar
12.7.2011 11:36
Kommentarlink

Selbst lernen ist halt so eine Sache:

Es gab zu meiner Studienzeit (übrigens auch in KA) Professoren, bei denen man schnell merkte, daß man statt die Zeit in der Vorlesung abzusitzen, man besser in anderen interessanteren Vorlesungen aufgehoben war, die parallel liegen, z.B. das Informatikkolloquim, das eine zeitlang deutlich interessanter war, als z.B. die Vorlesungen Informatik I bis IV.

Aber es gab auch Vorlesungen, insbesodnere im Hauptstudium, die man als Autodidakt nur mit höherem Aufwand sich hätte erarbeiten können.


yasar
12.7.2011 11:48
Kommentarlink

Apropos Verkäufer/Berater:

Ich kann mir wie Hadmut den Luxus vertrieb und Beratung voneinander als Person zu trennen nicht leisten, da ich als Ein-Mann-Betrieb alles machen muß.

Trotzdem ist es wichtig, beim Kunden eine deutliche Trennung zwischen der Beratung/Dienstleistung und dem Verkausgespräch einzuhalten. Nur dann kann man dem Kunden einigermaßen eine Gefühl der Objektivität geben.

Meine Kunden sind oft auch erstaunt, wenn ich z.B. für Hardware ihnen sage, daß es andere Quellen gibt, die teilweise deutlich günstiger als ich anbieten können und diese sogar explizit angebe. Oder wenn ich, falls ich manche Dienstleistung nicht selbst erbringen kann, darauf hinweise und dem Kunden anbiete dabei zu helfen, den passenden Dienstleister zu finden.

Interessanterweise kaufen viele Kunde trotzdem bei mir. 🙂


quarc
12.7.2011 21:18
Kommentarlink

Im Rahmen des Mathematikteils würde ich auf jeden Fall noch diskrete
Mathematik (Graphen, Bäume, Kombinatorik) und ein wenig Ordnungstheorie
empfehlen. Das ist häufig näher an den Bedürfnissen der Infornatiker als
vieles aus der Analysis, wird aber zuweilen etwas vernachlässigt, weil
man sich noch am traditionellen Aufbau der Hauptfachmathematik orientiert.


_Josh @ _[°|°]_
13.7.2011 6:32
Kommentarlink

Sehr interessiert lese ich die Kommentare zu Hadmuts Eintrag. Und da fällt mir spontan nur fogender Satz ein — den ich allerdings nicht weiter ausführen werde, da ich ‘abhängig’ Beschäftigter bin:

Leute, wartet einfach mal ab, wenn die Potsdamer HPI-Chargen von ‘Prof. Dr. sc. nat. Christoph Meinel’s Gnaden die IT-Leiter-Macht in diesem Land übernehmen; dagegen sind Hadmuts KIT-Erfahrungen ein kleinkarirkter, kindischer Kleckerkram, soviel sei an dieser Stelle bereits verraten.

Diese kenntnisfreien, aalglatten, nichts könnenden, BWL-infizierten, Powerpoint indoktrinierten Dampfplauderer sind bereits dabei, die (Deutungs-)Herrschaft zu übernehmen… =:-/

Wehe uns allen, gelangt auch nur ein Einziger dieser debilen, vollbehinderten Klone in irgendeine Art von ‘Enquête’-Kommision.

Anmerkung dazu vom Blog-Admin: Gelbe Karte! So geht das nicht, sowas ist eine beleidigende Schmähkritik und sowas will ich hier nicht haben (und lasse es auch nur durchgestrichen durch, um aufgrund der Diskussion um die Auswahl von Blog-Artikeln zu zeigen, womit ich nicht einverstanden bin). Ich mag weder Meinel noch das HPI, und ich bin durchaus nicht der vom Wissenschaftszirkus lancierten Auffassung, daß man Kritik nicht ad personam richten darf, denn das darf man durchaus, wenn der kritisierte Aspekt zur Person gehört. Aber man muß es immer begründen und nachvollziehbar erläutern, und sowas wie „kenntnisfrei” oder gar „vollbehindert” geht überhaupt nicht. Das ist nicht nur inhaltlich unvertretbar, sondern auch eine unzulässige und rechtlich angreifbare sogenannte Schmähkritik. Und auf diesem Niveau möchte ich mein Blog auch nicht sehen.

Das gilt umsomehr, da Du ja anonym auftrittst und die rechtliche Verantwortung dafür bei mir als Blog-Betreiber hängen bleibt. Und so etwas möchte ich weder verantworten noch äußern. Wenn Du diese Ansicht vertreten willst, bitte, aber mach es in Deinem Blog und halte mich da raus.

Das ist umso tragischer, als Du mit deiner Zielrichtung durchaus Recht hast, denn wie ich hier im Blog (und unter forschungsmafia.de) schon öfters geschrieben habe, hege ich größte Zweifel und übe heftige Kritik an der Person Meinels, am Hasso-Plattner-Institut und an der Vorgehensweise Hasso Plattners selbst (bei dem mir noch nicht klar ist, ob ich ihn eher als Täter oder als Opfer des HPI-Zirkus ansehen soll). Aber gerade weil die genug Stoff zu echter Kritik hergeben, muß man sich nicht selbst durch eine solche Wortwahl und durch inhaltsleeres Beschimpfen entwerten (und damit letztlich denen in die Hände spielen).

Also: So nicht.
Hadmut


_Josh @ _[°|°]_
13.7.2011 6:39
Kommentarlink

Ooops. aus Versehen auf ‘Submit Comment’ gekommen, doofes, unergonomisches, von Betriebswirten erfundene ‘touch area’ auf nahezu allen Laptops … =,-O

Wie auch immer, wollte noch angemerkt haben, daß das HPI _die_ Schmiede schlechthin ist. Hat irgendjemand den Film ‘They Live’ gesehen? Zugegeben, schlecht verfilmt, allerdings, ganz den Inhalt betrachtend, ist das ziemlich passend.