Zum Inhalt springen

Welche Programmiersprache lernen? C++?


rlippmann

Empfohlene Beiträge

Ich versuche einem Umschüler bei der Vorbereitung auf die Prüfung Fachinformatiker für Systemintegration zu unterstützen.

Ein Teil ist Programmieren. Man kann jetzt überlegen was in seiner Umgebung sinnvoll ist, aber wichtiger für meine stategische Überlegung ist was in der Prüfung abgearbeitet werden muss.

Welche Programmiersprache muss er für die IHK-Prüfung in Nürnberg lernen? C++?

Link zu diesem Kommentar
Auf anderen Seiten teilen

C++ wäre für einen FISI wie mit Kanonen auf Spatzen schießen. Ich vermute mal, dass er damit sowieso nicht viel anfangen kann.
Da ein FISI eher mit Scripten arbeitet und die PowerShell von Microsoft objektorientiert aufgebaut ist, wäre es wohl nicht verkehrt, die Grundprinzipien der Objektorientierung zu erklären. Explizit eine Programmiersprache auszuwählen braucht man nicht und ich weiß nicht mal, ob überhaupt eine Programmieraufgabe in den Abschlussprüfungen vorkommt. Wenn ja, dann ist sie auch mittels Pseudocode lösbar. Also reichen auch ein paar Trockenübungen für die imperative Programmierung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe FISI beider IHK Nürnberg mit der Berufsschule Erlangen gelernt. Wir hatten im 1.Lj C/C++ und im 2.Lj Java.

Ich fand es gut, dass wir mit C/C++ angefangen haben und das ist nicht "mit Kanonen auf Spatzen schießen". Allerdings war das auch keine Umschulung. Frag mal den Umschüler, welche Sprache sie bei der Umschulung verwenden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Allerdings war das auch keine Umschulung. Frag mal den Umschüler, welche Sprache sie bei der Umschulung verwenden.

Dir ist aber schon bewusst, dass Umschüler die gleiche Prüfung schreiben wie Azubis mit Berufsschule?

Ich erinnere zu den Prüfungen ebenfalls, dass es meist um Pseudocode und UML geht. Aber SQL kommt noch ziemlich regelmäßig dran.
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb SaJu:

Allerdings war das auch keine Umschulung. Frag mal den Umschüler, welche Sprache sie bei der Umschulung verwenden.

Sowohl C, als auch C++. Ist zumindest bei uns so. (Umschulung FISI)
Die AE bekommen noch C# und Java, während wir dann Server- und Netzwerkkram machen.

Bearbeitet von Ma Lte
Link zu diesem Kommentar
Auf anderen Seiten teilen

In der Prüfung braucht man keine explizite Sprache, da eben die einen C# lernen, die anderen Java usw.  Ich habe hier in München in der Berufsschule nichts anderes außer Java gesehen, andere gibts die eben nur C# lernen. Bring ihm die Grundlagen bei und wie man ein Programm in Pseudocode auf Papier "schreibt" bzw. UML Diagramme/PAP usw. dann wird das schon, du musst ihm jetzt nicht extra C++ etc. beibringen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb SaJu:

Ich fand es gut, dass wir mit C/C++ angefangen haben und das ist nicht "mit Kanonen auf Spatzen schießen". Allerdings war das auch keine Umschulung. Frag mal den Umschüler, welche Sprache sie bei der Umschulung verwenden.

Was in den Berufsschulen gelehrt wird und was in der Prüfung vorkommt, sind zwei unterschiedliche Paar Schuhe. Eine Prüfung ist auch ohne einer Programmiersprache machbar. Die Pseudocode-Beispiele, die man im Wikipedia-Artikel findet, reichen alle male. Das Problem ist eher, dass die Programmieraufgaben, aufgrund ihrer eingeschränkten Sichtweise (z.B. Arrays anstatt Listen, deren Größe erst mal initialisiert werden müssen) oftmals umfangreicher werden, als sie es überhaupt sein müssen. Auch ist die Aufgabenstellung oft sehr merkwürdig aber ein FISI dürfte wohl sowieso keine allzu großen Programmieraufgaben bekommen.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube ich würde ihm PHP zeigen. Er hat hier schnell Ergebnisse und muss sich keine großen Gedanken über unterschiedliche Variablen, etc. machen.
Wenn du ihm hier einfach Schleifen sowie die IF Bedingung zeigst, kann er einen Taschenrechner programmieren. Danach sollte er genug Wissen haben um Pseudo Code in der Prüfung erstellen zu können.

vg,
smite

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb smite:

Wenn du ihm hier einfach Schleifen sowie die IF Bedingung zeigst, kann er einen Taschenrechner programmieren.

Ein Taschenrechner, der nichts taugt. Super. 

Ein Taschenrechner ist für mich eines der denkbar schlechtesten Übungen, die man sich nur vorstellen kann. Am Ende kommt nur ein Haufen Spaghetticode raus, der so ziemlich gegen jedes Prinzip der Softwareentwicklung verstößt und der Taschenrechner kann nur zwei Zahlen verarbeiten. Eine Operatorreihenfolge (Punkt- vor Strichrechnung) und Klammern kennt er nicht.

Um if-anweisungen zu erklären, kann man auch bessere Beispiele nehmen, wie z.B. das FizzBuzz-Spiel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 48 Minuten schrieb Whiz-zarD:

Ein Taschenrechner, der nichts taugt. Super. 

Ein Taschenrechner ist für mich eines der denkbar schlechtesten Übungen, die man sich nur vorstellen kann. Am Ende kommt nur ein Haufen Spaghetticode raus, der so ziemlich gegen jedes Prinzip der Softwareentwicklung verstößt und der Taschenrechner kann nur zwei Zahlen verarbeiten. Eine Operatorreihenfolge (Punkt- vor Strichrechnung) und Klammern kennt er nicht.

Um if-anweisungen zu erklären, kann man auch bessere Beispiele nehmen, wie z.B. das FizzBuzz-Spiel.

Wir sprechen hier von jemandem der noch nie programmiert hat und nicht weiß was eine Variable, Schleife, etc. ist. Da ist es dann auch egal ob er Spaghetticode schreibt oder nicht.
Mehr braucht man ja auch nicht wirklich um etwas Pseudocode schreiben zu können.

Ob man jetzt das FizzBuzz Spiel, einen Taschenrechner oder ein Programm erstellt was auf der Konsole geometrische Figuren ausgibt ist da eigentlich egal.

Ich finde den Taschenrechner halt ein schönes Beispiel, da man dort einen praktischen Bezug hat.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 28 Minuten schrieb smite:

Wir sprechen hier von jemandem der noch nie programmiert hat und nicht weiß was eine Variable, Schleife, etc. ist. Da ist es dann auch egal ob er Spaghetticode schreibt oder nicht.
Mehr braucht man ja auch nicht wirklich um etwas Pseudocode schreiben zu können.

Ja, eben. Also warum so ein kompliziertes Beispiel, wie ein Taschenrechner, der nichts taugt? Für mich ist sogar der Spaghetticode-Taschenrechner kontraproduktiv, weil der Code so unübersichtlich wird, sodass der Anfänger schnell den Überblick verliert, was bei einem Anfänger zu Frust führen kann. Zu solchen Taschenrechnern findet man z.B. auf Youtube tausend Videos und in vielen ist es sogar so, dass der Sprecher sogar den Überblick verliert und ins Stottern gerät, weil er ein Fehler produziert hat.

vor 28 Minuten schrieb smite:

Ich finde den Taschenrechner halt ein schönes Beispiel, da man dort einen praktischen Bezug hat.

Ja, wenn der auch was taugen würde aber er ist eben unflexibel und hält die Operatorreihenfolge nicht ein. Zu einem vernünftigen Taschenrechner gehört nun mal etwas mehr, als nur vier if-Anweisungen für die Grundrechenarten, die dann in einer Methode/Funktion verwurstelt werden und da rumgestülpt weiteren Code, nur damit die Oberfläche keine Zicken macht. Man sollte sich dann auch mit binären Bäumen und mit der Prä- und Postfix-Schreibweise eines mathematischen Ausdruckes beschäftigt haben, was einem Anfänger nicht zuzumuten wäre. Mit diesem Spaghetticode-Taschenrechner gaukelt man dem Anfänger nur vor, es hätte praktischen Bezug aber diese Taschenrechner sind Beispiele, wie man nicht programmieren sollte.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...

Also zunächst mal, in den Prüfungen kommt wirklich nur Pseudocode vor, ich hab mir genug von denen angesehen. Auch bei den AEs. Das einzige wo man "richtigen" Code sieht ist SQL.

Ich selbst mache grad auch eine Umschulung zum FiSi, und da ist im 1 Jahr insgesammt 2 Monate Programmierung eingeplant (1 Monat Prozedurale Programmierung , 1 Monat  Objektorientierte Programmierung). Dabei wird soweit ich weis Java hergenommen, ich selbst werde aber versuchen die dazu zu kriegen dass ich C++ benutzen darf (geht ja nur um das Verständnis der Konzepte).

So viel Programmierung ist im übrigen auch durch den Rahmenlehrplan vorgsehen, 220 Stunden. Hab das mal angehängt, da ist auch ersichtlich WAS man lernen soll. Die Sprache mir derer man das lernen soll ist hingegen nicht definiert.

Aber was derjenige für eine Sprache nutzt innerhalb der Umschulung sollte eigentlich feststehen oder sich erfragen lassen. Wenn nicht, für die Grundlagen verstehen reicht durchaus Python oder ähnliches.

Fachinformatiker97-04-25.pdf

Unbenannt.JPG

Bearbeitet von Tarnsocke
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 26 Minuten schrieb Tarnsocke:

Dabei wird soweit ich weis Java hergenommen, ich selbst werde aber versuchen die dazu zu kriegen dass ich C++ benutzen darf (geht ja nur um das Verständnis der Konzepte).

Wenn es um die Konzepte geht, dann solltest du das nehmen, was die Schule auch lehrt, denn C++ ist nicht Java. Auch wenn beide Sprachen objektorientiert sind (was bei C++ nur die halbe Wahrheit ist), haben dennoch auch objektorientierte Sprachen andere Konzepte. z.B. in C++ muss man mit Pointern rumhantieren, während in Java dies auf ein Minimum reduziert wurde und sich dort Referenzen nennen. Auch hat C++ keinen Garbage Collector. Du musst dich dort selbst um die Reservierung und Freigeben des Speichers kümmern, während in Java dies der Garbage Collector für dich dies übernimmt. C++ unterstützt außerdem das Konzept der Mehrfachvererbung und benötigt daraufhin keine Interfaces. Interfaces in C++ wären Klassen mit virtuellen Methoden. Apropos virtuelle Methoden: Die Überladung von Methoden funktioniert in C++ genau andersrum als in Java. Nur virtuelle Methoden können in C++ überschrieben werden, während in Java alle Methoden, außer die, die mit einem final markiert sind, überschrieben werden.

Wenn ihr also was entwickeln sollt und du nimmst C++, während der Lehrer nur Java kennt und du nicht weiterkommst, dann siehst du halt sehr alt aus. C++ ist also nicht immer das Allheilmittel für alle Fälle und wenn es um das Erlernen der Konzepte der Objektorientierung geht, dann ist C++ auch nicht wirklich die beste Sprache, weil man sehr viel Boilerplate Code schreiben muss. 

Bearbeitet von Whiz-zarD
Typo
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb Tarnsocke:

Ich selbst mache grad auch eine Umschulung zum FiSi, und da ist im 1 Jahr insgesammt 2 Monate Programmierung eingeplant (1 Monat Prozedurale Programmierung , 1 Monat  Objektorientierte Programmierung). Dabei wird soweit ich weis Java hergenommen, ich selbst werde aber versuchen die dazu zu kriegen dass ich C++ benutzen darf (geht ja nur um das Verständnis der Konzepte).

Wir sind seit kurzem mit dem ganzen "Spaß" durch und wir haben tatsächlich C++ verwendet. Was davon besser geeignet ist, kann ich nicht beurteilen, weil ich Java nicht kenne. C++ als Allererstes zu nehmen, würde ich aber für recht ambitioniert halten, ich fand das durchaus nicht einfach. Vorher in der prozeduralen Programmierung hatten wir C, das hat dann für C++ schon weiter geholfen.

Bearbeitet von Ma Lte
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb Whiz-zarD:

Wenn es um die Konzepte geht, dann solltest du das nehmen, was die Schule auch lehrt, denn C++ ist nicht Java. Auch wenn beide Sprachen objektorientiert sind (was bei C++ nur die halbe Wahrheit ist), haben dennoch auch objektorientierte Sprachen andere Konzepte. z.B. in C++ muss man mit Pointern rumhantieren, während in Java dies auf ein Minimum reduziert wurde und sich dort Referenzen nennen. Auch hat C++ keinen Garbage Collector. Du musst dich dort selbst um die Reservierung und Freigeben des Speichers kümmern, während in Java dies der Garbage Collector für dich dies übernimmt. C++ unterstützt außerdem das Konzept der Mehrfachvererbung und benötigt daraufhin keine Interfaces. Interfaces in C++ wären Klassen mit virtuellen Methoden. Apropos virtuelle Methoden: Die Überladung von Methoden funktioniert in C++ genau andersrum als in Java. Nur virtuelle Methoden können in C++ überschrieben werden, während in Java alle Methoden, außer die, die mit einem final markiert sind, überschrieben werden.

Wenn ihr also was entwickeln sollt und du nimmst C++, während der Lehrer nur Java kennt und du nicht weiterkommst, dann siehst du halt sehr alt aus. C++ ist also nicht immer das Allheilmittel für alle Fälle und wenn es um das Erlernen der Konzepte der Objektorientierung geht, dann ist C++ auch nicht wirklich die beste Sprache, weil man sehr viel Boilerplate Code schreiben muss. 

Ich denke sowieso nicht, dass die das mitmachen würden, und was du schreibst werde ich um Java wohl dann nicht herum kommen. Aber es könnte schlimmer sein, C++ kann ich ja privat noch lernen.
Ich mag aus Gründen die ich nicht benennen kann Java einfach nicht, hat aber keinen rationalen Grund. Aber jede Sprache zusätzlich schadet nicht, und macht es später einfacher, auch wenn ich kein AE werde.
Danke auf jeden Fall für die Info

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...