Zukunft der Softwareentwicklung in D?
-
dreaddy schrieb:
Ich sag es mal so, vergleicht man willkürlich einen Programmierer mit Dipl Inf und einen ohne Studium, so wird der mit Studium in 95% der Fälle besser sein.
Sag das mal nicht. In einem Informatikstudium lernt man viel, aber anständig programmieren eher nicht. Es sei denn man ist auch neben der Uni daran interessiert und das sind längst nicht alle...
-
dreaddy schrieb:
Und zum Thema Autodidakt... Als Autodidakt muss man immer beweisen das man was kann, mit Titel müssen die Anderen beweisen das man nichts kann quasi :> .
im staatsdienst vielleicht, aber in der freien wirtschaft müssen alle was können. wer nix kann fliegt raus, hart aber ungerecht
-
dreaddy schrieb:
Ich sag es mal so, vergleicht man willkürlich einen Programmierer mit Dipl Inf und einen ohne Studium, so wird der mit Studium in 95% der Fälle besser sein.
Ist blödsinn. Kenne eine Menge professioneller Programmierer (uA durch meinen Vater) und da sind die meisten ohne Studium.
Alle Sachen die du aufgezählt hast, habe ich schon vor 2 Jahren gekannt. Und ich bin sicher nicht ein genie, kenne leute die jünger sind und mehr drauf haben als ich.
-
(Dipl-)Informatiker != Programmierer
Wenn dein Berufziel das Programmieren ist, brauchst und solltest du nicht
studieren. Da lernst du vieles und anderes das NICHTS mit programmieren zu
tun.Ein langjähriger Programmierer kann ganz sicher besser programmieren als
jemand der das (erstmalig) im Rahmen seines Studiums gelernt hat.Das Umgekehrte gilt jedoch ganz sicher auch.
-
Naja das geht schon auf der Cebit los, komm da als Fachinformatiker an und du wurst da teilweise angeschielt, halt deine heldenhafte Dipl xxx *yournamehere* Visitenkarte hoch und das is gleich ganz anders.
Und so ist das an jeder Ecke.Klar fliegt raus wer nichts leistet und nicht in der Lage ist das zu verschleiern, aber arbeite dich mal ohne Titel nach oben auch wenn du "was leistest".
Spätestens beim nächsten Vorgesetzten der dich nicht direkt kennt hast du irgendwann ein Problem wenn er sieht das du kein Studium hast und die anderen Drei die in Frage dazu kommen schon und dann hallo Sackgasse.
Besonders wenn der Entscheidende selbst studiert hat ist das ein ProblemIst genauso wie viele Auftraggeber von Computerschrauberfirmen irgendwelche MS certified Bratpfannenputzer Scheine von den Bediensteten der beauftragten Firma verlangen(und diese dementsprechend nur welche einstellt die sie haben oder sofort machen lassen in Ausnahmefällen).
Nicht fair aber real :>
-
dreaddy schrieb:
Nicht fair aber real
klar, dokumente zu haben, die aussagen dass man gut ist, ist besser als nichts zu haben. darüber müssen wir nicht diskutieren.
aber hier geht es um die fähigkeiten. und nur durch ein studium ist man nicht zwangsläufig besser. sonst würde ich nicht soviele studenten kennen die flaschen sind.
(natürlich kenne ich auch genug Leute die flaschen sind ohne je studiert zu haben)
-
Redhead schrieb:
(Dipl-)Informatiker != Programmierer
Wenn dein Berufziel das Programmieren ist, brauchst und solltest du nicht
studieren. Da lernst du vieles und anderes das NICHTS mit programmieren zu
tun.Ein langjähriger Programmierer kann ganz sicher besser programmieren als
jemand der das (erstmalig) im Rahmen seines Studiums gelernt hat.Das Umgekehrte gilt jedoch ganz sicher auch.
"Als studierter Held ist man Projektleiter und schickt seine Untergeben rum, programmiert aber nicht selbst" ist so-nicht-stimmender-Standardspruch 2, gleich nach ist so-nicht-stimmender-Standardspruch 1 "Software wird in Indien gemacht, warum programmieren lernen".
Du(und nicht nur du) vergleichst Äpfel mit Birnen, bzw einen langjährigenProgrammierer mit einem frisch fertiggewordenen oder noch nicht mal fertig studierten Studenten(ich kenne Studenten die sind Flaschen... ^^) der keine Praxiserfahrung hat.
Sagen wir mal der Student bekommt nach 4 Jahren Studium noch 6 Jahre Berufserfahrung und der Programmierer hat in der Zeit 10 Jahre gejobbt.
Jetzt würd ich schon sagen der Studierte ist meist besser.Ausserdem kann man eh nicht sein lebenlang Programmieren, erstens wird sich auch das in einigen Jahren vermutlich ändern und zweitens wird man irgendwann wahnsinnig wenn man jeden Tag 8-10 Stunden proggt
.
-
(Dipl-)Informatiker != Programmierer
ICH vergleiche ganz sicher keine Äpfel mit Birnen.
Wer lesen kann ist klar im Vorteil.
-
Sagen wir mal der Student bekommt nach 4 Jahren Studium noch 6 Jahre Berufserfahrung und der Programmierer hat in der Zeit 10 Jahre gejobbt.
Jetzt würd ich schon sagen der Studierte ist meist besser.Und wer stellt einen Studenten ohne Berufserfahrung ein, wenn er einen
Programmierer bekommen kann, mit bereits 4 Jahren Erfahrung (Ich nehm
mal an, dass beide durchschnittlich sind, keine Gurus, keine Flaschen).Wie kommt dann der Student so einfach zu seinen 6 Jahren Berufserfahrung ?
grüße,
ein naives Kind
-
im Informatik-Studium lernt man die SW-Entwicklung aus einem anderen Blickwinkel zu sehen. Insbesondere durch die Hilfe der Mathematik.
Viele meinen, ach Mathe, das braucht man dann z.B. für Grafik oder Analysis, oder Algorithmen. Für sowas gibt es haufen Bibliotheken, die man verwenden kann. Stimmt auch.
Was viele nicht wissen, ist, dass mit Kenntnis mathematischer Modelle viele Probleme oft ziemliche einfach aussehen und auch einfach modelliert werden können. Dadurch können komplexe Probleme anständig gelöst werden.
Bsp. Rekursion: Klar, jeder Programmierer kennt das, und hat das schon mal bei Funktionen verwendet (z.B. Fakultät).
Was viele nicht wissen, ist, dass dieses mächtige mathematische Werkzeug in sehr vielen praktischen Problemen hilfreich sein kann, z.B. Rekursive Datenstrukturen wie im "Composite-Enwurfsmuster" oder Bäume oder auch Listen.
Man hat damit schon mal jede Menge "abstrahiert" und auf einen gemeinsamen Nenner zurückgeführt...Bsp. Objektorientierung: In vielen Büchern kommen die da mit irgendwelchen Autos, oder Tieren und Vererbung und den ganzen Kram an. Man kann das aber auch anders mit Abstrakten Datentypen (ADT), Äquivalenzklassen, Produktordnungen, etc. erklären und sieht die OO-Welt dann auch etwas anders...
Verstehen tut man das aber meistens nur durch Praxis.Bsp. Nebenläufigkeit: Viele nebenläufige komplexe Probleme (z.B. verteilte Systeme, Threads) können nur sehr schwer modelliert und gehandhabt werden. Führt dazu, dass nebenläufige Programme oft viele Fehler haben. Mit Hilfe von Petri-Netzen bspw., kann man sowas einigermaßen anständig modellieren und somit Fehler vermeiden.
Bsp. Compiler: Wenn man sich mit formalen Sprachen nie beschäftigt hat und schonmal einen Taschenrechner programmiert hat, der weiß wie schwierig sowas ist... Mit Kenntnis formaler Sprachen sieht dieses Problem viel einfacher aus...
Und das sind nur einige Beispiele. Informatiker sind nun mal dazu da komplexe Probleme zu abstrahieren um zu verstehen, zu modellieren und die Lösung zu implementieren...
Natürlich können nur einige Informatiker diese Konzepte verstehen und anwenden. Denn dies erfordert auch jede Menge praktische Erfahrung. Aber zumindest werden die denen im Inf-Studium beigebracht...Gruß mathik
-
mathik schrieb:
Bsp. Rekursion: Klar, jeder Programmierer kennt das, und hat das schon mal bei Funktionen verwendet (z.B. Fakultät).
Was viele nicht wissen, ist, dass dieses mächtige mathematische Werkzeug in sehr vielen praktischen Problemen hilfreich sein kann, z.B. Rekursive Datenstrukturen wie im "Composite-Enwurfsmuster" oder Bäume oder auch Listen.Das Composite Pattern ist mir durchaus bekannt, bin übrigens noch lang nicht alt genug um zu studieren. Ein Programmierer, der nicht weiß das Bäume und
Listen rekursive Datenstrukturen sind, dürfte sich eigentlich auch nicht
Programmierer schimpfen. Was also heißt das schon ?
.. ausser das viele Idioten einen Beruf ohne Qualifizierung bekommen ..mathik schrieb:
Bsp. Compiler: Wenn man sich mit formalen Sprachen nie beschäftigt hat und schonmal einen Taschenrechner programmiert hat, der weiß wie schwierig sowas ist... Mit Kenntnis formaler Sprachen sieht dieses Problem viel einfacher aus...
Falls du auf Sachen wie EBNF anspielen willst, das hatten wir in der 10.
Schulstufe bereits, auch dafür ist kein Studium notwendig ..Wobei ich fairerweise gestehen muss, das der Rest der Punkte an dich geht
und wahrscheinlich noch viele weitere an dich gehen würden (Habe ja auch
nicht gesagt, dass ich selbst nicht studieren würde, ich habs bisher
eigentlich schon vor).grüße,
ein naives Kind
-
mathik schrieb:
Was viele nicht wissen, ist, dass dieses mächtige mathematische Werkzeug in sehr vielen praktischen Problemen hilfreich sein kann, z.B. Rekursive Datenstrukturen wie im "Composite-Enwurfsmuster" oder Bäume oder auch Listen.
Man hat damit schon mal jede Menge "abstrahiert" und auf einen gemeinsamen Nenner zurückgeführt...Wieso?
Das ist mir schon seit Jahren bekannt.btw: fakultät berechnet man normalerweise lieber iterativ
Bsp. Objektorientierung: In vielen Büchern kommen die da mit irgendwelchen Autos, oder Tieren und Vererbung und den ganzen Kram an. Man kann das aber auch anders mit Abstrakten Datentypen (ADT), Äquivalenzklassen, Produktordnungen, etc. erklären und sieht die OO-Welt dann auch etwas anders...
Verstehen tut man das aber meistens nur durch Praxis.Und dadurch dass man mehrere Sprachen lernt. Nur mal ehrlich: dazu braucht man kein Studium.
Beta, OCaml, C++, Ruby, Lisp und Eiffel kann ich auch ohne Studium lernen. Und Beta, Ruby und Eiffel werde ich in einem Studium wahrscheinlich nichteinmal kennen lernen.Die wahre Vielfalt der OO-Welt lernt man vermutlich nicht im Studium. Denn dazu dürfte man nicht C++ oder Java lernen, sondern müsste Lisp, Beta, Eiffel, etc. lernen.
Bsp. Nebenläufigkeit: Viele nebenläufige komplexe Probleme (z.B. verteilte Systeme, Threads) können nur sehr schwer modelliert und gehandhabt werden. Führt dazu, dass nebenläufige Programme oft viele Fehler haben. Mit Hilfe von Petri-Netzen bspw., kann man sowas einigermaßen anständig modellieren und somit Fehler vermeiden.
Praxis ist man da aber wohl klar im Vorteil. Keine Ahnung was man diesbezüglich im Studium lernt. Aber gerade mit soetwas denke ich, dass praxis hier am meisten bringt.
Bsp. Compiler: Wenn man sich mit formalen Sprachen nie beschäftigt hat und schonmal einen Taschenrechner programmiert hat, der weiß wie schwierig sowas ist... Mit Kenntnis formaler Sprachen sieht dieses Problem viel einfacher aus...
Wenn man mal einen Parser geschrieben hat, hat man sich damit auseinander gesetzt und uU sogar tief in die Materie eingetaucht.
Und das sind nur einige Beispiele. Informatiker sind nun mal dazu da komplexe Probleme zu abstrahieren um zu verstehen, zu modellieren und die Lösung zu implementieren...
Klar, aber nenn mal die Punkte für die man ein Studium braucht. Ich denke ich weiss sehr gut wie ein Compiler funktioniert und habe mit Multithraeded Anwendungen kein Problem (zumindest keine Probleme die man nicht sowieso bekommt wenn multithtreaded anwendungen schreibt ;)). Ich kann einen Parser schreiben und kenne einige OO Sprachen...
Ich gebe damit _nicht_ an, hier im Forum gibt es genug Leute die mir in nichts nachstehen. Schau dir an was hier für Software geschrieben wird, das niveau ist teilweise sehr hoch.
Denn dies erfordert auch jede Menge praktische Erfahrung. Aber zumindest werden die denen im Inf-Studium beigebracht...
Auch die Praxis? 5 Jahre Praxis _und_ die Theorie? Wage ich zu bezweifeln.
Studium ist sicher gut, keine Frage. Aber nur weil man studiert hat, ist man nicht gleich besser als jemand der diese Zeit in der Arbeitswelt verbracht hat.
-
na son schmarn. wenn man eins im informatik-studium nicht lernt ist es das programmieren (an der uni noch weniger als an einer fh, denk ich). es geht doch viel eher darum die theorie dahinter zu verstehen, das große ganze zu begreifen und ausdauer zu beweisen.
und genau das geht in einer gruppe während dem studium einfacher und schneller als autodidaktisch. möcht ich behaupten.
-
mathik schrieb:
Was viele nicht wissen, ist, dass mit Kenntnis mathematischer Modelle viele Probleme oft ziemliche einfach aussehen und auch einfach modelliert werden können. Dadurch können komplexe Probleme anständig gelöst werden.
Man kann aber auch selber drauf kommen, und hat dann u.U. noch einfachere Loesungen ...
Die Informatik bringt z.T. schon recht interessante Dinge hervor, die man in der Praxis anwenden kann -- muss man aber nicht.
Die Beispiele, die Du genannt hast, sind sowieso simpel fuer jemanden, der einigermassen programmieren kann.
Fuer jemanden, der sich wenig mit so etwas auskennt, kann ein Studium sicher die Erleuchtung bringen, aber Buecher oder eigene Erfahrung koennen das auch.
mathik schrieb:
Bsp. Rekursion: Klar, jeder Programmierer kennt das, und hat das schon mal bei Funktionen verwendet (z.B. Fakultät).
Was viele nicht wissen, ist, dass dieses mächtige mathematische Werkzeug in sehr vielen praktischen Problemen hilfreich sein kann, z.B. Rekursive Datenstrukturen wie im "Composite-Enwurfsmuster" oder Bäume oder auch Listen.
Man hat damit schon mal jede Menge "abstrahiert" und auf einen gemeinsamen Nenner zurückgeführt...Rekursion ist genauso simpel und nuetzlich wie Iteration.
mathik schrieb:
Bsp. Objektorientierung: In vielen Büchern kommen die da mit irgendwelchen Autos, oder Tieren und Vererbung und den ganzen Kram an. Man kann das aber auch anders mit Abstrakten Datentypen (ADT), Äquivalenzklassen, Produktordnungen, etc. erklären und sieht die OO-Welt dann auch etwas anders...
Verstehen tut man das aber meistens nur durch Praxis.OO-Sprachen sind heutzutage praktisch schon Standard. OO-basierte Modelle zahlen sich auch in prozeduralen Sprachen aus.
mathik schrieb:
Bsp. Nebenläufigkeit: Viele nebenläufige komplexe Probleme (z.B. verteilte Systeme, Threads) können nur sehr schwer modelliert und gehandhabt werden. Führt dazu, dass nebenläufige Programme oft viele Fehler haben. Mit Hilfe von Petri-Netzen bspw., kann man sowas einigermaßen anständig modellieren und somit Fehler vermeiden.
Man kann Threads auch Message-basiert programmieren (siehe AmigaOS Messagesystem), und durch eine Input-Queue und Signale beispielsweise Synchronisierungsprobleme vollstaendig eliminieren.
Idiotensichere Programmierung (auch fuer "sich selbst Idiot") ist ganz einfach, wenn man ein paar Grundregeln beherrscht, die man sich selber durch Erfahrung oder aus Buechern beibringen kann. Wichtige Stichworte sind hier: Kapselung / Black-Boxing, White-Boxing, und Message-Queues.
(Loesung des Thread-Problems fuer alle Zeiten: Man schreibe eine Signal-Klasse, die ein Event-Objekt kapselt, eine Message-Queue-Klasse, die bei jeder eintreffenden Nachricht die Nachricht nichtkopierend in eine Queue einklinkt (durch eine Mutex-Semaphore abgesichert) und ein Signal setzt, auf das man warten kann. Ausserdem schreibe man eine Thread-Klasse, die eine Input-Queue besitzt sowie ein Terminierungs-Signal. Die Message-Loop des Threads (falls vorhanden) wartet nun auf eingehende Signale und prueft seine MessageQueues. Die Stop-Methode fuer Threads setzt das Terminierungs-Signal und wartet, bis der Thread beendet ist.)
mathik schrieb:
Bsp. Compiler: Wenn man sich mit formalen Sprachen nie beschäftigt hat und schonmal einen Taschenrechner programmiert hat, der weiß wie schwierig sowas ist... Mit Kenntnis formaler Sprachen sieht dieses Problem viel einfacher aus...
Compiler sind auch ganz leicht von Hand zu schreiben mittels Rekursion und ein paar Baeumen.
Mein Lieblingsbuch fuer Compilerbau ist "BCPL - the language and its compiler" von Martin Richards. Da sieht man, wie einfach und simpel Compilerbau sein kann. Fuer Fortgeschrittene empfiehlt sich dann "Compilers" von Aho / Sethi / Ullman. Dort werden viele Techniken, wie z.B. Optimierungsverfahren beschrieben, aber auf das Meiste kann man auch selber kommen.
mathik schrieb:
Und das sind nur einige Beispiele. Informatiker sind nun mal dazu da komplexe Probleme zu abstrahieren um zu verstehen, zu modellieren und die Lösung zu implementieren...
Natürlich können nur einige Informatiker diese Konzepte verstehen und anwenden. Denn dies erfordert auch jede Menge praktische Erfahrung. Aber zumindest werden die denen im Inf-Studium beigebracht...Was soll daran komplex sein?
-
Power Off schrieb:
mathik schrieb:
Was viele nicht wissen, ist, dass mit Kenntnis mathematischer Modelle viele Probleme oft ziemliche einfach aussehen und auch einfach modelliert werden können. Dadurch können komplexe Probleme anständig gelöst werden.
Man kann aber auch selber drauf kommen, und hat dann u.U. noch einfachere Loesungen ...
Namen für Lösungen machen die Kommunikation einfacher (siehe Design Patterns). Wozu das Rad 1000 mal neu erfinden? Um selber auf bestimmte Sachen zu kommen, benötigt man zunächst Erfahrung...
Power Off schrieb:
Die Informatik bringt z.T. schon recht interessante Dinge hervor, die man in der Praxis anwenden kann -- muss man aber nicht.
Die Beispiele, die Du genannt hast, sind sowieso simpel fuer jemanden, der einigermassen programmieren kann.
Fuer jemanden, der sich wenig mit so etwas auskennt, kann ein Studium sicher die Erleuchtung bringen, aber Buecher oder eigene Erfahrung koennen das auch.
klar, man kann sich alles selber beibringen. Hat ja auch niemand bestritten. Man könnte theoretisch auch alle Schulen abschaffen....
Die Meisten können sich sowas allerdings nicht selber beibringen! Die Wenigsten haben so ein Talent dazu wie du! Und ich rede hier von der Masse, nicht von Einzelfällen.Power Off schrieb:
mathik schrieb:
Bsp. Nebenläufigkeit: Viele nebenläufige komplexe Probleme (z.B. verteilte Systeme, Threads) können nur sehr schwer modelliert und gehandhabt werden. Führt dazu, dass nebenläufige Programme oft viele Fehler haben. Mit Hilfe von Petri-Netzen bspw., kann man sowas einigermaßen anständig modellieren und somit Fehler vermeiden.
Man kann Threads auch Message-basiert programmieren (siehe AmigaOS Messagesystem), und durch eine Input-Queue und Signale beispielsweise Synchronisierungsprobleme vollstaendig eliminieren
.....
es geht mir hier nicht um Lösungen, sondern um Modellierung (z.B. für Geschäftsprozesse). Das ist nämlich meine Argumentation die ganze Zeit. Dass man gut erforschtes Handwerkzeugs in die Hand bekommt um komplexe SW-Probleme in der Praxis zu modellieren und/oder beschreiben und somit besser zu verstehen. Speziell für SW wird dies eben nur im Inf-Studium gelehrt. Oder man bringt sich das hat selber bei...
Dazu muss man nur vorher wissen, dass es für bestimmte Problemstellungen geeignete Lösungen gibt...BTW: ich habe vor dem Studium mir auch alles mögliche selber beigebracht. OO, "Rekursive Datenstrukturen", Algorithmen, BNF... Design Patterns selber erdacht, obwohl ich noch garnicht wusste, was das eigentlich ist. Und auch mein Taschengeld mit Java und C++ neben der Schule über zwei Jahre aufgebessert.
Allerdings betrachte ich die Dinge anders seit dem ich mit dem Studium angefangen habe. Und vieles ist zudem verständlicher, klarer und einfacher geworden. Komplexe Probleme kann ich jetzt besser analysieren, irgendwie modellieren und dadurch besser lösen. Zudem lernt man sehr viele interessante Sachen...Gruß mathik
-
naives kind schrieb:
Und wer stellt einen Studenten ohne Berufserfahrung ein, wenn er einen
Programmierer bekommen kann, mit bereits 4 Jahren Erfahrung (Ich nehm
mal an, dass beide durchschnittlich sind, keine Gurus, keine Flaschen).Wie kommt dann der Student so einfach zu seinen 6 Jahren Berufserfahrung
Wenn du bei uns schon ein Praktikum abgelegt oder gejobbt und dich dabei tapfer geschlagen hast, wenn wir wissen wie Du tickst und du schon weißt wie es bei uns läuft, sparen wir uns gern die Sucherei.
-
mathik: Hier will keiner sagen, dass studieren sinnlos ist. Nur programmieren lernt man dort nicht wirklich.
Ich habe in vergangenen Semestern viele coole Sachen gelernt die ich an allen möglichen Stellen einbringen kann um die Programme performanter zu machen oder gar Lösungen zu finden bei denen ich vorher übelst hätte rumbasteln müssen. Aber wenn ich mich nicht hobbymäßig damit beschäftigt hätte wäre ich heute wohl kaum in der Lage die Gedanken in einen Quellcode zu gießen. Die Progra-Einführungen im 1. Semester sind größtenteils ein Witz vergleichen mit dem, was sich einige Leute schon vor dem Studium aneignen.
Wenn man sich als fertiger Dipl.-Inf. auf eine Stelle als Programmierer bewirbt und nur den einsemestrigen Java/C++-Kurs gemacht hat dann ist man ganz klar eine Flasche verglichen mit denen die sich selber damit beschäftigt haben oder eine Ausbildung zum Programmierer hinter sich haben.
-
Hej,
habe mal ne Frage zum Informatikstudium fuer Anwendungsentwicklung. Wie mathelastig ist das, bzw. wuerdet ihr sowas empfehlen?
Weil ich Habe bereits ne Ausbildung zum TAI (Technischer Assistent fuer Informatik) hinter mir. Dort hat man leider von allem was, aber nichts richtig gelernt, wenn ihr wisst was ich meine
Und Ende Ausgust bin ich mit Zivildienst fertig, will zwar Richtung Programmierung, allerdings denke ich nicht, dass ich in na Firma schon richtig anfangen koennte.
VIelleicht kann mir ja jemand nen Tip geben
MfG, Viking
-
Die Progra-Einführungen im 1. Semester sind größtenteils ein Witz vergleichen mit dem, was sich einige Leute schon vor dem Studium aneignen.
Ich finde es gut, dass die Prg I - Vorlesung nicht so anspruchsvoll ist. Die Erstsemestler sollen sich ruhig an das Studentenleben gewöhnen und erst die Grundlagen lernen.
Nur programmieren lernt man dort nicht wirklich.
Die Theorie lernt man in Fächern wie Programmieren I + II + III , Software Engineering I + II, Funktionale Programmierung, Internetprogrammierung, usw. Im Praxissemester hat man dann die Möglichkeit sein Wissen auch wirklich einzusetzen.
-
Redest du von einer FH?