Programmiersprache für Anfänger

goblin

Motivierter Amateur
Das erklärt, warum der Informatikunterricht in NRW scheinbar eine Art JAVA-Programmierkurs ist.
Immernoch besser als in BW, da ist "Informatikunterricht" gleichbedeutend mit der Anwendung von Microsoft Office. Wer Glück hat, und einen engagierten Lehrer, der hat auch noch Chancen auf etwas HTML...

So wenig ich Java mag, das ist immernoch mehr Informatik als dieses EDV-Gedöns.
 
C

CrimsonKing

Guest
In Niedersachsen sind die ersten vier Semester des Informatikstudiums im Wesentlichen "Algorithmentheorie und Java".

Vier Semester.

Kein Wunder fehlt uns Nachwuchs.
 

lme

FreeBSD Committer
Immernoch besser als in BW, da ist "Informatikunterricht" gleichbedeutend mit der Anwendung von Microsoft Office. Wer Glück hat, und einen engagierten Lehrer, der hat auch noch Chancen auf etwas HTML...

So wenig ich Java mag, das ist immernoch mehr Informatik als dieses EDV-Gedöns.
Bei mir (NRW, Ende der 90er) bestand das erste halbe Jahr Informatik aus Mausgeschubse mit Mircrosoft Works, dann kam Logo auf nem 8088er, den Rest habe ich verdrängt und erst in der Oberstufe wurde Pascal gelehrt.
In der FiSi Ausbildung dann C++ und ein ganz kleines bisschen PHP / HTML und später an der FH C, die sind aber inzwischen auf Java umgestiegen.
 

zuglufttier

Well-Known Member
Ich habe nun auch Java gelernt, davon gibt's nur ein Semester einen Programmierkurs am Anfang. Bin auch in Niedersachsen ;)

Deine Aussage stimmt ja nun auch nicht ganz... Man lernt eben irgendeine Programmiersprache, um gewisse Konzepte zu verstehen und dann geht's weiter. Bei Java lernt man doch die Objektorientierung gut und die anderen Konzepte sind überall recht ähnlich. Danach wird hier in Oldenburg sehr viel in Python gemacht. Eben nicht unbedingt im Bachelor aber in der Forschung oder teilweise auch in den Mastermodulen.
Und ich nehme auch an, dass die ersten vier Semester überall in Deutschland recht ähnlich aussehen. Bisschen technische, theoretische sowie praktische Informatik. Dazu ein Sack Mathe :D

Ganz konkret Programmierung und Algorithmen bedienen hier drei von 20 Modulen in den ersten vier Semestern.
 
C

CrimsonKing

Guest
Ich habe nun auch Java gelernt, davon gibt's nur ein Semester einen Programmierkurs am Anfang. Bin auch in Niedersachsen ;)

Bei mir "damals": Grundlagen der Informatik (Java), Objektorientierte Programmierung (Java), Betriebliche Informationssysteme (Java), Softwaretechnik/CASE (Java), Rechnernetze (Labor: Java), ...

C++ war tatsächlich ein Semester lang dran, und das auch nur eher zufällig. Andere Sprachen? Wofür? Die "Profs" können's alle nicht. Brauchen sie auch nicht - brauchen ja nur Java. Dafür hätt' ich nicht studieren müssen.
 
C

CrimsonKing

Guest
In der FiSi Ausbildung dann C++ und ein ganz kleines bisschen PHP / HTML und später an der FH C, die sind aber inzwischen auf Java umgestiegen.

PHP/HTML ist (sind?) in Ausbildungen tatsächlich mehr vertreten als im Studium, scheint mir. Bedauerlich.
 

zuglufttier

Well-Known Member
Eine Programmiersprache zu erlernen ist auch nicht der Grundgedanke eines Informatikstudiums. Das ist nur ein Werkzeug. Ein guter Freund von mir schreibt gerade an seiner Doktorarbeit in der Informatik, ist aber nicht in der Lage sich mal Windows neu zu installieren. Programmieren kann er dagegen schon, so nicht ;) Aber man nimmt auch immer an, dass man als Informatiker sofort mit allen Betriebssystemen klar kommt.

Ich habe nun auch ein Modul über OpenGL gehört und dazu eins zur Maschinennahen Programmierung, habe also noch Shader, C und Assembler zumindest mal gesehen. Man muss sich das schon ein bisschen raussuchen, wenn man was bestimmtes erlernen möchte. Ich bin aber auch nicht so der Programmierer und werde später vermutlich gar nichts mehr damit zu tun haben. Dennoch wird wohl zur Bachelor-Arbeit auch noch Python dazu kommen. Im Softwareprojekt gab's auch noch eine Stange HTML, CSS und Javascript. Nach sechs Semestern werde ich also folgende Sachen zumindest mal gesehen und auch angewendet haben: Java, C, Assembler, HTML, CSS, Javascript, SQL, SQL mit Java, Shader und Python.

Ich denke, das ist ausreichend ;)
 

Yamagi

Possessed With Psi Powers
Teammitglied
Wie sagte ein Professor von mir mal so schön: "Infromatik hat nichts mit Computern zu tun." Und nun mal zurück zum Thema. :)
 
C

CrimsonKing

Guest
Stimmt, Informatik ist Automatentheorie. Automaten können aber kein Java.
 

zuglufttier

Well-Known Member
Ein bisschen Zeit und ein paar mehr Zettel vorausgesetzt und schon male ich dir eine Turingmaschine (auch ein Automat), die Java kann :D

So, will auch nicht weiter spammen aber die Falschaussage konnte ich so nicht stehen lassen!
 

CW

Netswimmer
Einer von mir meinte: Computer und Informatiker sind wie Teleskope und Astrologen.
Das stimmt auch.

Generell können Fachinformatiker (also Leute, die eine Ausbildung gemacht haben) wesentlich besser coden als studierte Informatiker (die zwar gut "reden" können, aber ansonsten die Tastatur meistens fürs Facebook und Youtube nützen).

Zumindest ist dies meine Erfahrung mit den Leuten, die ich in Bewerbungsgesprächen hatte. Irgendwann war bei mir ein "Informatikstudium" fast ein Ausschlusskriterium, weil ich keine Lust mehr hatte, anderthalb Stunden meines Lebens in etwas zu investieren, das sich zumindest wirtschaftlich nicht rentierte.

Aber FachinformatikerInnen sind sehr, sehr oft richtig fähige KollegInnen und da kann ich nur sagen: die gute, alte Ausbildung im deutschen Mittelstand. :)
 

CW

Netswimmer
Ach, bevor ich es vergesse: unter Cygwin hast du auch eine mingw-Version des gcc, mit welcher du ein non-cygwin1.dll-Kompilat erstellen kannst, das dann ohne Cygwin läuft. Also hast du am Ende alle, was du von MinGW erwartet hättest, nur dass es diesmal auch kompiliert ;)

Einfach mal bei der Cygwin-Paketauswahl unter "dev" die richtigen gcc-Versionen auswählen.
 

ShawnStein

Anfänger
Das stimmt auch.

Generell können Fachinformatiker (also Leute, die eine Ausbildung gemacht haben) wesentlich besser coden als studierte Informatiker (die zwar gut "reden" können, aber ansonsten die Tastatur meistens fürs Facebook und Youtube nützen).

Zumindest ist dies meine Erfahrung mit den Leuten, die ich in Bewerbungsgesprächen hatte. Irgendwann war bei mir ein "Informatikstudium" fast ein Ausschlusskriterium, weil ich keine Lust mehr hatte, anderthalb Stunden meines Lebens in etwas zu investieren, das sich zumindest wirtschaftlich nicht rentierte.

Aber FachinformatikerInnen sind sehr, sehr oft richtig fähige KollegInnen und da kann ich nur sagen: die gute, alte Ausbildung im deutschen Mittelstand. :)

Ich muss zugeben, dass ich mein Studium nur deshalb mache, dass ich was vorzeigen kann. Was bringen mir Referenzen von Projekten an denen ich mitgearbeitet habe, wenn sie auch von Google sein könnten. Ich sehe mich also vor einem Personalchef in der Beweispflicht, dass ich was drauf habe oder eben nicht.Aber du hast schon Recht: Wenn ich bedenke, dass wir die Programmiersprachen teilweise nur ein Semester behandeln, dann ist das ein "Beschnuppern" der Möglichkeiten, die bspweise eine Hochsprache wirklich kann. Finde ich schade irgendwie, dass sich da nicht mehr Zeit genommen wird. Es ist immer wieder herrlich zu sehen, wie meine Kommilitonen (ohne Programmiervorkenntnisse) mit dem theoretischen Stoff zwar was anfangen können, aber nie in Programmen umsetzen (Beispiel: RegEx, was wir nur theoretisch behandeln haben, aber nie praktisch, ich aber für enorm wichtig halte).
 

darktrym

Fahnenträger
Ganz generell können Leute mit einer Ausbildung nicht viel, glauben aber alles zu beherrschen und das müssen sie dann kompensieren mit sinnlosen Sch****vergleichen. Dazu haben sie dann keinen Ahnung vom Studentenalltag oder Problemen, woher auch?
Ich habs miterlebt, einer mit Ausbildung, gejobbt in einer Firma, dann FH Studium und bei einem gemeinsamen Praktikum gibt er mir dann seine JavaScript Filter Funktion die er so oft im Einsatz hatte. Funktionsprinzip: Bei jedem Filterzeichen einmal komplett durch die Eingabe gehen. Generell meinte er auch er hätte Python Erfahrung, hat's schon mal genutzt und glaubt dann nicht dass es kein private gibt oder das es immer eine gute Idee ist die Namenskonvention oder Design aus der C++-Welt auf andere Sprachen zu pappen.
Klar gibts auch Nieten mit Bestnoten auf der Uni, ist ja schließlich nicht Aufgabe der Uni einem das programmieren beizubringen. Aber jemand der schon nebenher aktiv programmiert und Uni Hintergrund hat, kommt mit komplexen Problemstellungen iA. besser klar, die er dann auch selbstständig bearbeiten kann. Mir ist es egal was für ein Hintergrund einer hat, solange man ehrlich & offen damit umgeht und bereit ist dazuzulernen gibts keine Probleme von meiner Seite. Aber jemand der alles ohne Widersprüche von seinem Lehrer übernimmt sollte besser ein Handwerk ausüben als programmieren.
 

CW

Netswimmer
Ganz generell können Leute mit einer Ausbildung nicht viel, glauben aber alles zu beherrschen und das müssen sie dann kompensieren mit sinnlosen Sch****vergleichen. Dazu haben sie dann keinen Ahnung vom Studentenalltag oder Problemen, woher auch?
Ich habs miterlebt, einer mit Ausbildung, gejobbt in einer Firma, dann FH Studium und bei einem gemeinsamen Praktikum gibt er mir dann seine JavaScript Filter Funktion die er so oft im Einsatz hatte. Funktionsprinzip: Bei jedem Filterzeichen einmal komplett durch die Eingabe gehen. Generell meinte er auch er hätte Python Erfahrung, hat's schon mal genutzt und glaubt dann nicht dass es kein private gibt oder das es immer eine gute Idee ist die Namenskonvention oder Design aus der C++-Welt auf andere Sprachen zu pappen.
Klar gibts auch Nieten mit Bestnoten auf der Uni, ist ja schließlich nicht Aufgabe der Uni einem das programmieren beizubringen. Aber jemand der schon nebenher aktiv programmiert und Uni Hintergrund hat, kommt mit komplexen Problemstellungen iA. besser klar, die er dann auch selbstständig bearbeiten kann. Mir ist es egal was für ein Hintergrund einer hat, solange man ehrlich & offen damit umgeht und bereit ist dazuzulernen gibts keine Probleme von meiner Seite. Aber jemand der alles ohne Widersprüche von seinem Lehrer übernimmt sollte besser ein Handwerk ausüben als programmieren.

Coding ist Handwerk, keine Wissenschaft.

Und es gibt keinen Grund, als Coder nicht darauf stolz zu sein, ein Handwerker zu sein.
 

darktrym

Fahnenträger
Wäre "Coding" was immer du dir darunter vorstellst Handwerk, würden wir immer noch Assembler programmieren um das letzte Quäntchen an Performanz rauszuholen. Gott sei Dank ist Software Entwicklung mehr als das.
 

Athaba

Libellenliebhaber
Jetzt wird's aber auch schon ziemlich philosophisch und wir suchen nach der Definition von Handwerk, oder? ;)

@darktrym: Ich kenne das was du beschreibst eher von Leuten, die studiert haben und dann eben jede Sprache, die sie finden wie Java behandeln und sich dann darüber beschweren, dass die Sprache nicht Java ist oder glauben, dass der Compiler ja eh schreit, und deshalb keine Tests schreiben.

Generell glaube ich, dass Leute, die studiert haben zu Overengineering neigen und Leute, die nicht studiert haben irgendwas hinhacken und glauben zu wissen, was sie tun, ohne dass das der Fall ist. Von Letzteren habe ich schon Code gesehen, der echt zufällig funktioniert, wo die Programme dann funktionieren weil sie die Bugs einer Library nutzen, oder ähnlichem.

Das so zu verallgemeinern ist schwer. Bei dem was ich so sehe gibt es den selben Anteil an Autodidakten, Bachelorn, Mastern und Doktoren, die miesen Code schreiben und Leuten, die tollen Code schreiben. Gerade bei den Doktoren ist es scheinbar deshalb, weil die sich dann auf ein Thema spezialisieren und dann Jahrelang zum Beispiel nur irgendein XML parsen oder generieren, das dann oft quasi nur im universitärem Umfeld relevant ist. Klar, wer weiß was daraus mal cooles, geniales wird, aber das passiert nur mit einem Bruchteil und meist erst dann wenn es jemand außerhalb der Universität falsch und für irgendwas, für das es nicht gedacht war verwendet. So entstehen ziemlich oft die Dinge, die dann die große Innovation sind - oder auch nicht.

Ist auch ein wenig wie bei Programmiersprachen. Du wirst überall miese und geniale Programmierer finden und die genialen vor allem dort, die gewillt sind viel zu lernen. Ich denke es ist auch eine Community-Entscheidung. Zumindest bei mir ist es das oftmals. Ich finde Java und Python zum Beispiel ziemlich cool, aber mich stört dort etwas, dass alle meinen, dass nur weil sie diese Programmiersprache nutzen das Richtige tun und von Haus aus keinen miesen Code schreiben können ist schonmal abschreckend genug. Da gibt es dann immer große Verteidigung warum der Bug jetzt eigentlich das Richtige ist oder ähnliches.

Das ist auch ein bisschen wie mit der Handwerksdiskussion. Aber ich glaube wenn man ein guter Programmierer ist, dann weiß man wann welche Ansicht gebraucht wird. Im Endeffekt geht es ja vor allem darum, dass man Code erzeugt, der die Eigenschaften hat, die gebraucht werden. Manchmal ist alles schnell genug, manchmal will man nur ein hingehacktes Skript, das jetzt sofort, schnell irgendwas macht und manchmal will man anständig durchdachten, wartbaren Code auf dem man aufbauen kann. Deshalb redet man dann schnell mal aneinander vorbei. Einmal ärgert man sich darüber, dass da ein Hello World Overengineered wird und ein andermal, dass der Code buggy ist, keine Sanitychecks hat, unlesbar ist und man den Schrott eigentlich wegwerfen und neu schreiben sollte. Ich glaube da die richtigen Entscheidungen treffen zu können ist schonmal ein großer Punkt, der einen guten Programmierer oder eine gute Programmiererin ausmacht. Da muss man aber einfach viel Real Life Projekte kennen und geschrieben haben und es ist relativ egal, ob du in einer Uni warst oder nicht. Und die meisten Uni-Vorlesungen gehen ja sowieso nach irgendeinem Buch. Da ist dann auch die Frage wie jemand gut lernt.

Ich hab schon so viel in alle Richtungen gesehen, dass ich garnicht mehr wirklich an einen Trend glaube, dass die Mehrheit der Leute, die X gemacht haben und irgendeine Programmiersprache verwenden auch nur im Schnitt besser sind und es hat auch noch keine Studie irgendsowas herausgefunden. Am Anfang habe ich immer das eine oder andere geglaubt und zumindest grundsätzliche Trends zu sehen geglaubt, aber umso mehr ich sehe umso eher scheint es mir echt zufällig angeordnet zu sein. Das sind nicht irgendwelche Ausreißer oder so. Java ist ja so ein tolles Beispiel. Jeder lernt es in Schule und Uni und alle haben so verschiedene Ansichten, weil es einfach so viele Leute gibt, die das verwenden und es gibt Unmegen an schlechten Javaprogrammiereren und Unmegen an genialen Programmieren. Und es gibt jede Menge Zeug, das mies an der Sprache ist und vieles, das echt cool daran ist. Und dass es so viel verwendet wird, ist so eine Mischung an Trend, Glück, Marketing und Leuten die die guten Teile verstehen und nutzen.
 

CW

Netswimmer
Wäre "Coding" was immer du dir darunter vorstellst Handwerk, würden wir immer noch Assembler programmieren um das letzte Quäntchen an Performanz rauszuholen. Gott sei Dank ist Software Entwicklung mehr als das.

Leute, Leute, vor ein paar Jahren hätte es hier eine Diskussion gegeben. Jetzt aber sage ich nur: shut up and show your code.

Gute Nacht!

ruWzayN.jpg
 

darktrym

Fahnenträger
Die beiden Extrema(Overengineering und Frickeln) gibts leider allzu oft. Für mich ist Software Entwicklung kontext- und zeitabhängig und deshalb mehr als bloßes Handwerk. So wie früher es modern und nötig war kompakter Code zu schreiben, zählt heute Wartbarkeit mehr. Früher hats vielleicht ausgereicht bei jeder Sprungmarke noch ein Kommentar zu setzen und das als toll zu verkaufen.
Ein Hello-World kann schmutzig programmiert werden.Wenn es aber als Beispiel für Neulinge dienen soll oder als Grundlage für was größes, sollte er lieber Maler werden. Da reichts wenn die Farbe gleichmäßig draufbleibt und wenn's nicht passt wird's eben nochmal gemacht.
Jeder meint wenn man lange in einem Thema steckt sich nichts mehr sagen lassen zu können, was ich für falsch halte. Ich kann meine alten Pascal Programme auch nicht mehr leiden. Nur damals war ich 16 und hatte keinen Zugang zu Literatur oder Leuten die es besser konnten.

Leute, Leute, vor ein paar Jahren hätte es hier eine Diskussion gegeben. Jetzt aber sage ich nur: shut up and show your code.
...
Vermutlich hätte ich dir schon damals widersprochen. Mit deinem Spruch hast du dir aber eine nette Diskussionskultur angeeignet.
 

CW

Netswimmer
Vermutlich hätte ich dir schon damals widersprochen. Mit deinem Spruch hast du dir aber eine nette Diskussionskultur angeeignet.

Liegt wohl daran, dass ich code, weil dies auch mein Beruf ist und dadurch eher praktisch denke: Code schreiben, statt über Code zu reden. ;)
 

Morfio

Well-Known Member
Hallo,

ich habe die Ausbildung zum Fachinformatiker Anwendungsentwicklung vor 14 Jahren begonnen und erfolgreich abgeschlossen. Später dann habe ich ein Informatikstudium begonnen, was ich aber nach einer Weile aus Zeitgründen abbrach. Die Berufsausbildung hat rein gar nichts mit dem Studiengang zu tun und die Bezeichnung "Fachinformatiker" ist meiner Meinung nach nicht nur irreführend sondern schlichtweg falsch. Ich fände "IT-Ausbildung mit Schwerpunkt Softwareentwicklung oder Systemintegration" wesentlich sinnvoller, um die beiden Ausbildungszweige (Ausbildung vs. Studium) nicht in Konkurrenz stehen zu lassen.

Ich bilde gerade meinen dritten Azubi aus. Zwei habe ich bereits erfolgreich ausgebildet, bei zwei weiteren haben wir die Ausbildung aufgrund verschiedener Dinge abgebrochen. Alle mit der Fachrichtung Anwendungsentwicklung. Weiterhin betreue ich die Ausbildung eines Informatikkaufmanns.

Dadurch kann ich, denke ich, gut durchleuchten, was in der Ausbildung vermittelt wird. Ich persönlich halte die Ausbildung seitens der IHK für absolut misslungen. Das hat verschiedene Gründe. Die Fächer, die in der Schule wirklich wichtig wären, kommen überhaupt nicht dran. Zum Beispiel Mathematik und Algorithmik.
Programmieren lernen sie in der Schule überhaupt nicht, ein bisschen HTML und CSS sowie JavaScript, einfach if-then-else-Konstrukte in PHP und das war es. Die Ausbildung vermittelt also rein schulisch keine Programmierung. Dies muss man im Betrieb vermitteln. Und da kommt es sehr auf den Azubi an, was er bereit ist, an Zeit und Muße hineinzustecken. Aber drei Jahre mit Abzug von Urlaub, Krankheit und Schule reichen nicht aus, um ausreichende Programmiererfahrungen zu sammeln, zumal auch oft noch andere Dinge zu tun sind. Die meisten Azubis, die ich kenne, haben keine Lust, großartig Zeit zu investieren.

Das Studium war auch nicht unbedingt dafür da, Programmiererfahrungen zu sammeln, wie den meisten hier klar sein dürfte.

Meiner Meinung kommt es tatsächlich auf drei Dinge an: das Engagement des Programmierschülers, die fachlichen Qualifikationen, die die mitbringen, die er fragen kann und des Tuns, nämlich zu programmieren und sich mit der Materie auseinanderzusetzen. Wer dieses Thema nicht übt, wird einfach versagen.
Ich denke, allen Programmierern ist gemein, wenn sie sich ihre alten Quelltexte angucken, werden sie die Hände über dem Kopf zusammenschlagen. Das ist gut und in Ordnung so, denn nur durch Erfahrung lernt man.

Ich war schon in etlichen Bewerbungsrunden dabei und die Leute, die da ankamen, waren oftmals schlimm, egal, ob studiert oder ausgebildet. Einige haben mich mit Zertifikaten (im Systemintegrationsbereich) erschlagen, konnten aber auf einfache Fragen nicht antworten, obwohl sie sich mit dem Kenntnisstand vorher gerühmt haben. Wir hatten einen Informatiker zum Programmieren eingestellt, er wollte das auch und sagte, er könne das. Er hat in der Programmiersprache, die er das gesamte Studium über hatte, nicht einmal ohne seine Unterlagen ein "Hello World" (kein Scherz!) hinbekommen (Java). Die Bewerbungsgespräche waren größtenteils erschreckend. Nur selten ist ein Lichtblick dabei, nämlich jemand, der das nicht nur als Beruf sondern als Berufung ansieht und dementsprechend auch Wissen vorweisen kann.

Das sind meine Erfahrungen.

Viele Grüße

Morfio
 

Morfio

Well-Known Member
Achso, um noch etwas zum Thema zu sagen: die Programmiersprache für Anfänger gibt es nicht. Ich würde eher von Motivation ausgehen, sprich, wann sieht man erste Ergebnisse und wie hoch ist das Frustpotential. Dementsprechend ist Python schon eine ganz gute Wahl, aber auch Pascal (bsplw. mit Lazarus) ist ganz gut. Letztlich ist es aber egal. Frust gibt's dann später bei allen (:
 
Oben