C++ und wie geht es weiter?



  • Z schrieb:

    Eduart schrieb:

    Die Finger lassen solltest du von Software auf der Anwendungsebene, also so Sachen wie 3d Engines, Compiler und CO,

    Das lässt sich so pauschal nicht sagen. Ich komme aus dem E-Technik-Bereich und durfte auch schon mal eine Grafik-Engine für ein Fluorscent-Display coden, mit den üblichen Faxen wir BitBlt, Linien, Kreisen, etc. bis hin zur Darstellung animierter Gifs. Auch einen rudimentären Javaskript-Interpreter habe ich schon hinter mir, der aus Compiler und Virtual Machine besteht. Das Ding funktioniert zwar, aber wäre sicherlich viel besser geworden, hätte ich mich vorher mit Compilerbau auseinandergesetzt. Letztlich kann es nie schaden, sich auch als E-Techniker die Themen anzuschauen, mit denen sich Informatiker sonst herumschlagen.

    Der Punkt ist, das ein Informatiker aufgrund des dafür benötigten Hintergrundwissen es besser hingekriegt hätte. Zwar kann man sich auch bei anderen Themen umschauen, aber wenn er Informatikersachen machen will, dann soll er auch Informatik studieren.

    Warum du nun so etwas programmieren durftst, dürfte Zufall sein oder der Chef war schlichtweg zu geizig einen Informatiker dafür einzustellen.



  • Eduart schrieb:

    Z schrieb:

    Eduart schrieb:

    Die Finger lassen solltest du von Software auf der Anwendungsebene, also so Sachen wie 3d Engines, Compiler und CO,

    Das lässt sich so pauschal nicht sagen. Ich komme aus dem E-Technik-Bereich und durfte auch schon mal eine Grafik-Engine für ein Fluorscent-Display coden, mit den üblichen Faxen wir BitBlt, Linien, Kreisen, etc. bis hin zur Darstellung animierter Gifs. Auch einen rudimentären Javaskript-Interpreter habe ich schon hinter mir, der aus Compiler und Virtual Machine besteht. Das Ding funktioniert zwar, aber wäre sicherlich viel besser geworden, hätte ich mich vorher mit Compilerbau auseinandergesetzt. Letztlich kann es nie schaden, sich auch als E-Techniker die Themen anzuschauen, mit denen sich Informatiker sonst herumschlagen.

    Der Punkt ist, das ein Informatiker aufgrund des dafür benötigten Hintergrundwissen es besser hingekriegt hätte. Zwar kann man sich auch bei anderen Themen umschauen, aber wenn er Informatikersachen machen will, dann soll er auch Informatik studieren.

    Warum du nun so etwas programmieren durftst, dürfte Zufall sein oder der Chef war schlichtweg zu geizig einen Informatiker dafür einzustellen.

    Eigentlich stellt man für sowas wie einen JS-Interpreter keinen Informatiker ein, sondern nimmt eine freie Software, oder kauft ihn sich dazu. Aber in dem Fall war der Auftraggeber selbst ein Softwarehersteller, der Netzwerkkomponenten aller Schichten für embedded Systeme anbietet, der keinen Fremdcode verwendet und der kurzfristig mal eben eine Scripting-Engine brauchte. Er erinnerte sich, dass ich mal rumgelabert hatte einen BASIC-Interpreter programmiert zu haben, und bot mir den Auftrag an. Ganz unerfahren in solchen Dingen war ich also nicht.

    Letzlich läuft es ja oft so, dass derjenige den Job bekommt, der genug rumtrommelt und nicht der, der still und leise in seinem Kämmerlein hockt, aber möglicherweise der bessere Kandidat wäre.



  • Also vielen Dank nochmal.

    Gibt es jetzt ein Anfänger Buch welches ihr mir für die Programmierung von uC empfehlen könnt ?

    Bin aufjedenfall sehr erfreut über die vielen Antworten !



  • Rudi205 schrieb:

    Also vielen Dank nochmal.

    Gibt es jetzt ein Anfänger Buch welches ihr mir für die Programmierung von uC empfehlen könnt ?

    Bin aufjedenfall sehr erfreut über die vielen Antworten !

    Ich würde mal an deiner Stelle hier nachfragen, da sind auch die ganzen Elektroniker usw. vertreten:

    http://www.mikrocontroller.net/forum/mikrocontroller-elektronik

    So generell kann man deine Frage nämlich nicht beantworten, weil es erstmal darauf ankommt, für welchen µC du überhaupt programmieren möchtest.

    Da alle µC in der Regel in C programmiert werden, wäre ein gutes Buch für C der erste Schritt.
    Wie du dann aber dein gelerntes C wissen bei einem bestimmtem µC umsetzt, das ist wieder HW abhängig.



  • Eduart schrieb:

    Z schrieb:

    Eduart schrieb:

    Die Finger lassen solltest du von Software auf der Anwendungsebene, also so Sachen wie 3d Engines, Compiler und CO,

    Das lässt sich so pauschal nicht sagen. Ich komme aus dem E-Technik-Bereich und durfte auch schon mal eine Grafik-Engine für ein Fluorscent-Display coden, mit den üblichen Faxen wir BitBlt, Linien, Kreisen, etc. bis hin zur Darstellung animierter Gifs. Auch einen rudimentären Javaskript-Interpreter habe ich schon hinter mir, der aus Compiler und Virtual Machine besteht. Das Ding funktioniert zwar, aber wäre sicherlich viel besser geworden, hätte ich mich vorher mit Compilerbau auseinandergesetzt. Letztlich kann es nie schaden, sich auch als E-Techniker die Themen anzuschauen, mit denen sich Informatiker sonst herumschlagen.

    Der Punkt ist, das ein Informatiker aufgrund des dafür benötigten Hintergrundwissen es besser hingekriegt hätte. Zwar kann man sich auch bei anderen Themen umschauen, aber wenn er Informatikersachen machen will, dann soll er auch Informatik studieren.

    Warum du nun so etwas programmieren durftst, dürfte Zufall sein oder der Chef war schlichtweg zu geizig einen Informatiker dafür einzustellen.

    na klar doch....
    was ich schon alles tolles von informatikern erleben durfte.
    abstraktion hoch 1000 wo keiner mehr durchblickt (nicht mal der 'verursacher' selbst), jede programmzeile ist ein designpattern, wichtiger als das ergebnis ist wie der code aussieht, kein verständnis für hardwarenahe sachen, nicht in der lage schnelle oder pragmatische lösungen zu liefern.

    ein ehrgeiziger ET student kann problemlos in der software branche fuss fassen, ein informatiker in der ET branche hingegen sicher nicht!

    ich will nicht informatiker schlechtreden, aber den müll den du von dir gibst schon.



  • Rudi205 schrieb:

    Hallo an Alle,

    Da die Programmiersprache C++ in meinem Studium (Elektrotechnik) nur zwei Semester gelehrt wurde, frage ich mich aktuell, wie soll es weiter gehen ?

    Ich bin von der Programmierung angetan und finde es spaßig. Allerdings auf der anderen Seite auch kompliziert.

    Von der Uni hat man im Gründe genommen die Basics von C++ bekommen welche ich sicherlich nochmal auffrischen könnte.

    Allerdings frage ich mich wie man dann weiter machen kann ? Welche Anwendungen und spezielle Gebiete kann man hier in den Fokus fassen? Was mir einfällt ist , da bei Elektrotechnik naheliegend, die Programmierung von Mikrocontrollern. Dazu gab es in den Vorlesungen nie etwas.

    Als Ausblick hieß es immer Java ist besser haha allerdings denke ich würde ich lieber mit c++ weitermachen als java.

    Was denkt ihr zu dem Thema ?

    Grüße

    Im Prinzip steht dir mit C++ alles offen.
    Und auch als Elektrotechniker steht dir alles offen in Sachen Softwareentwicklung.
    In unserer Firma entwickeln wir mit C++ für unsere embedded systems, welche Linux als OS haben.
    Wir stellen inzwischen wieder eher Elektrotechniker als Informatiker für die SW Entwicklung ein. Viele Informatiker leben in ihrer abstrakten Welt. Versuchen alles möglichst allgemein zu gestalten. Letztlich ist die SW dadurch extrem langsam geworden.

    Aber zurück zum Thema, programmiere am PC einfach ein paar interessante Sachen:
    +Musik einlesen, mit FIR Filtern oder anderen digitalen Filtern bearbeiten und dann wieder abspeichern
    +Bilder einlesen, und verschiedene Bildbearbeitungen/erkennungen implementieren
    +GUI Frameworks kennenlernen (z.B. wxWidgets)
    +Mathematische Algorithmen probieren, z.B. FFT für Musikdateien
    +HEX Editor
    +einfache Spiele wie Snake
    +einfacher Matheparser der Ausdrücke wie (1+2)*3 lösen kann
    +Mikrocontroller Startset kaufen und mit C oder C++ programmieren
    +Raspberry pi kaufen, Linux kennenlernen und mit C oder C++ programmieren
    +usw...

    Als Buch empfehle ich "Der C++ Programmierer"

    P.S.: Dass Java besser ist, stimmt nicht, das ist eine ziemlich schwache Aussage des Lehrenden. Zumindest ist mir kein Betriebssystem bekannt, dass in Java programmiert wurde.



  • sdfsdfsf schrieb:

    na klar doch....
    was ich schon alles tolles von informatikern erleben durfte.
    abstraktion hoch 1000 wo keiner mehr durchblickt (nicht mal der 'verursacher' selbst), jede programmzeile ist ein designpattern, wichtiger als das ergebnis ist wie der code aussieht, kein verständnis für hardwarenahe sachen, nicht in der lage schnelle oder pragmatische lösungen zu liefern.

    ein ehrgeiziger ET student kann problemlos in der software branche fuss fassen, ein informatiker in der ET branche hingegen sicher nicht!

    Für den ET ist Software niemals Selbstzweck. Er steht auf dem Standpunkt: die beste Software ist keine Software. Das geht mir jedenfalls so. Ich versuche den Code auf das Nötigste zu beschränken. Für einfache Variablen nehme ich einfach "int", obwohl sie nie negativ werden können, und verzichte auf "const", obwohl sich ihr Wert nicht ändern kann. Code muss performant und möglichst primitiv sein. 🙂



  • tippgeber schrieb:

    P.S.: Dass Java besser ist, stimmt nicht, das ist eine ziemlich schwache Aussage des Lehrenden.

    Java ist nicht "besser" sondern anders.

    tippgeber schrieb:

    Zumindest ist mir kein Betriebssystem bekannt, dass in Java programmiert wurde.

    http://www4.cs.fau.de/Projects/JX/index.html



  • tippgeber schrieb:

    P.S.: Dass Java besser ist, stimmt nicht, das ist eine ziemlich schwache Aussage des Lehrenden. Zumindest ist mir kein Betriebssystem bekannt, dass in Java programmiert wurde.

    Jo. Anfangs waren es Deppen, die auf Java abfuhren, das war der erste große Hype. Ich nenne ihn die Zeit der veralberten Trottel. Dann kam der riesige Hype getragen durch die Ideologen, die Sun für viel viel fairer als Microsoft hielten und nur deswegen Mozilla-Firefox und Java benutzten, ich nenne ihn die Zeit der Professoren. Dann kam ein zwischen-Hype, wo alle Banken Java benutzen zur Kryptologie (!!! einself !!!, rofl, komischer gehts gar nicht, lecker, damals setze C gegen 70k Zeichen pro Sekunde durcgh und Java gegen 0.0007 Zeichen pro Sekunde durch den gleichen Algo, aber man läßt sich ja auf Messen bequatschen und der Fremde Verkäufer hat stehts viel mehr Recht als der Fachmann im Haus). Das war der dritte Hype von Bankern getragen. Und zur Zeit leben wir im vierten Java-Hype, der von Trollen getragen wird.

    Je nach lokaler Zeitdellatation kann es Leute, Organisationen und Landstriche geben, die noch vonn in den Hypes 1 bis 3 sind, Hochschulen bleiben gerne bis zu 50 Jahren veraltet, Banken so ca 30 Jahre, die IHK (als Aufsicht über die deutschen Ausbildungeberufe) so 80 Jahre, private Fortbildungsinstitute so ca 25 Jahre, populärwissenschaftliche Buchverlage (Galileo Press) 15 Jahre.



  • Java im Dauerhype, kann ja gar nicht besser sein.



  • Z schrieb:

    sdfsdfsf schrieb:

    na klar doch....
    was ich schon alles tolles von informatikern erleben durfte.
    abstraktion hoch 1000 wo keiner mehr durchblickt (nicht mal der 'verursacher' selbst), jede programmzeile ist ein designpattern, wichtiger als das ergebnis ist wie der code aussieht, kein verständnis für hardwarenahe sachen, nicht in der lage schnelle oder pragmatische lösungen zu liefern.

    ein ehrgeiziger ET student kann problemlos in der software branche fuss fassen, ein informatiker in der ET branche hingegen sicher nicht!

    Für den ET ist Software niemals Selbstzweck. Er steht auf dem Standpunkt: die beste Software ist keine Software. Das geht mir jedenfalls so. Ich versuche den Code auf das Nötigste zu beschränken. Für einfache Variablen nehme ich einfach "int", obwohl sie nie negativ werden können, und verzichte auf "const", obwohl sich ihr Wert nicht ändern kann. Code muss performant und möglichst primitiv sein. 🙂

    Ich denke auch, dass man SW nicht zu sehr abstrahieren darf.
    Wenn ich an unsere Firma denke, so sind die Module, die voll mit "super wiederverwendbaren Design Patterns" sind, die starrsten. Da wird tausendmal voneinander abgeleitet, da kannst du nicht mal einfach was ändern. Aber hauptsache alles ist "superflexibel".

    In meiner letzten Firma hat ein Info Student die Aufgabe bekommen, ein Modul zu schreiben dass E-Mails empfangen kann. Und das mit C#, in einer Sprache, wo dank der großen Klassenbibliothek eh schon vieles vorhanden ist.
    Jedenfalls hat dieser Typ wohl alles, was er in der Uni gelernt hat, umgesetzt. Das Ergebnis war eine riesige Ansammlung von sinnlosen Klassen die nur dazu da waren, "Struktur reinzubekommen und flexibel zu sein". Achso, funktioniert hats auch nicht. Dafür war die Klassenstruktur schön 😮
    Am Ende hat ein Maturant alles neu geschrieben und siehe da, es hat dann auch funktioniert.

    Versteht mich nicht falsch, es gibt super gute Informatiker, auch hier im Forum. Aber genau so Typen wie "Sone" sind es, die massenhaft Scheiße bauen (sprich Abstraktion hoch tausend, C++11 wo immer es geht einfach nur weil es "cooler" ist als C++03, alles vertempletifizieren usw...), und davon aber auch noch voll überzeugt sind.

    Schönen Tag noch!



  • xxxxyyyy schrieb:

    Versteht mich nicht falsch, es gibt super gute Informatiker, auch hier im Forum. Aber genau so Typen wie "Sone" sind es, die massenhaft Scheiße bauen (sprich Abstraktion hoch tausend, C++11 wo immer es geht einfach nur weil es "cooler" ist als C++03, alles vertempletifizieren usw...), und davon aber auch noch voll überzeugt sind.

    Sone ist aber auch kein Informatiker, sitzt an keiner produktivsoftware, sondern spielt nur rum. Er lernt noch, ist Schüler, was erwartest du? Viele C++-Programmierer haben ihre Template-Frickelphase. Das ist okay. Das geht vorbei, spätestens bei dem ersten Projekt. Aus Sone wird sicherlich mal ein guter Programmierer, er muss es nur nicht bereits heute sein.

    //edit wow, gruselige tippsler.



  • volkard schrieb:

    Dann kam ein zwischen-Hype, wo alle Banken Java benutzen zur Kryptologie (!!! einself !!!, rofl, komischer gehts gar nicht, lecker, damals setze C gegen 70k Zeichen pro Sekunde durcgh und Java gegen 0.0007 Zeichen pro Sekunde durch den gleichen Algo,

    Die gängigsten Crypto-Algorithmen, Hashfunktionen, etc. bringt Java ja schon als Library mit. Und ich nehme an, die sind alle aus Geschwindigkeitsgründen in C geschrieben. Javas BigInteger-Bibliothek hat auch eine ModExp-Funktion dabei, wenn man sich sein RSA selbst bauen will, vermutlich auch compilierter C-Code als Java-Library verpackt.

    Erstaunlich finde ich eher sowas: http://www.c64-wiki.de/index.php/JaC64

    Die CPU läuft zwar nur mit 1MHz Takt (wie das Original), aber es werden gleich mehrere Chips parallel emuliert, also ein ganzer Computer. Und das alles in Java.



  • Also ich muss sagen, ich finde das außerordentlich unbeeindruckend. 1Mhz ist doch einfach nichts mehr. Das würde bei mir ja noch flüssig laufen wenn der "Tradeoff" 1 : 3000 wäre.



  • cooky451 schrieb:

    Also ich muss sagen, ich finde das außerordentlich unbeeindruckend. 1Mhz ist doch einfach nichts mehr. Das würde bei mir ja noch flüssig laufen wenn der "Tradeoff" 1 : 3000 wäre.

    Die CPU ist ja nicht das Ding, aber z.B. einen halbanalogen Soundchip nachzuprogrammieren, der angesteuert wird wie das Original und dann auch noch so klingt, ist schon eine Meisterleistung, vor allem wenn man dazu Java nimmt. Der Chip besteht hauptsächlich aus Oszillatoren und Filtern, hat aber auch Nebeneffekte, die von C64-Programmierern ausgeschlachtet wurden, um besonders abgefahrene Klänge zu erzeugen. Die Emulation kommt aber auch damit klar. So etwas finde ich faszinierend.

    http://de.wikipedia.org/wiki/MOS_Technology_SID


Anmelden zum Antworten