wie lange dauert Deine Jobsuche als SW-Entwickler C/C++?
-
Xin schrieb:
Worin hast Du die Note von 1,5?
im Uni Notenspiegel.
Xin schrieb:
Denkst Du, dass C++ kannst oder dass Du einen Aufbaukurs brauchst und wie präsentierst Du Deine C++-Erfahrung bzw. Deine Note von 1,5?
An der Uni gewinnt man normalerweise die Grundlagen über SW-Entwicklung. Note von 1,0 spricht weder vom Genie noch vom Alleswisser an. Es bedeutet nicht mehr als, dass der Student über sehr gute Kenntnisse über einem Fach verfügt. Zweitens, C++ für Kommunikationsanwendungen ist möglicherweise einbisschel anders als C++ Maschinensteuerung implementiert. Meine beruflichen Aufgaben gehen um SW-Enwicklung für Maschinenbau. Der Interviewer setzt auch C/C++ ein, aber in anderer Branche. Drittens, C++ entwickelt sich ständig. Vor ein paar Jahren gibt es C++11/14 ja gar nicht.
Xin schrieb:
Du sagst, du hast 60 Bewerbungen geschrieben. Sind die im Text alle identisch?
fast Tagsüber muss ich fleißig arbeiten...
-
factorypattern schrieb:
volkard schrieb:
factorypattern schrieb:
Hast Du gute online C/C++ Aufbaukurse zu empfehlen?
Du hast nicht C/C++ in die Bewerbung geschrieben.
Das ist quasi das vereinbarte Stichwort, dass man von beidem keine Ahnung hat.
-
Xin schrieb:
Für Fachwissen gibt es Bücher.
Ich glaube es gibt erstaunlich wenig Leute die Fachbücher lesen.
-
vor ein paar Tagen habe ich Buch "Erfolgreich Bewerben für Dummies" in einer Bibliothek entdeckt, aber hatte keine Lust darauf, es durchzulesen. Meiner Meinung nach sollte ich beim Vorstellungsgespräch am besten meine Stärke an fachliches Können und Wissen vorweisen, anstatt soziale Kompetenz zu protzen.
Naja, soziale Kompetenz ist eben schon wichtig. Und dazu gehört nun mal auch, ordentliche Bewerbungsbriefe zu schreiben.
Ich würde dir trotzdem raten, mal so ein Buch zu kaufen und durchzuarbeiten. Schaden wird es schon nichtDu kannst deine anonymisierten Unterlagen hochladen, sodass man sie durchschauen kann. Die Leute beim Arbeitsamt sind meiner Meinung nach nicht geeignet, deine Bewerbungsunterlagen zu bewerten.
Bezüglich C++ auffrischen. Hast du schon "Effektiv C++ programmieren" gelesen?
Und wie bereits andere geschrieben haben, gewöhn dir das C/C++ ab. Da reagieren manche allergisch drauf. Man programmiert entweder C oder C++, aber nicht C/C++. Ok, mache programmieren tatsächlich C/C++, aber das sollte man vermeiden.
Fragen bzgl. C++ willst du wissen? Ich würde jetzt nichts allzu spezielles fragen, denn ob man irgendeine STL/boost Funktion kennt oder nicht hängt nicht unwesentlich vom Zufall ab.
Fragen würde ich auf allgemeines Verständnis:
* Was ist der Unterschied zwischen Stack und Heap? Wie sieht (ganz grob) so ein Prozess im Speicher aus?
* Wie kann man Ressourcen "automatisch" am Blockende wieder freigeben? -> RAII
* grober Überblick über STL, zumindest vector, string, list, map sollte man schon mal gehört haben
* ausgedruckter Code mit ein paar offensichtlichen Schwachstellen: Speicherloch, Übergabe an Funktion per Kopie statt const &, Exception nicht angefangen, ... Um ein Gefühl dafür zu bekommen, wie derjenige mit einer konkreten Problemstellung umgehtDie Tests sollten aber nicht im Mittelpunkt stehen. Nach ein bisschen Small Talk übers Programmieren konnte ich bis jetzt recht gut erkennen, ob jemand Ahnung hat.
-
c++ progger schrieb:
vor ein paar Tagen habe ich Buch "Erfolgreich Bewerben für Dummies" in einer Bibliothek entdeckt, aber hatte keine Lust darauf, es durchzulesen. Meiner Meinung nach sollte ich beim Vorstellungsgespräch am besten meine Stärke an fachliches Können und Wissen vorweisen, anstatt soziale Kompetenz zu protzen.
Werbekosten würde ich sparen Heute bin ich wieder in der Bibliothek, und glücklicherweise steht das Buch "Erfolgreich Bewerben für Dummies" noch m Regal. Es habe ich bereits in die Hand genommen.
Bezüglich C++ auffrischen. Hast du schon "Effektiv C++ programmieren" gelesen?
Peinlich nein zu sagen. Ein paar Ausschnitte habe ich herausgegoogelt, und finde Vorschläge drin jedenfalls praxisnah und wertvoll.
Fragen würde ich auf allgemeines Verständnis:
* Was ist der Unterschied zwischen Stack und Heap? Wie sieht (ganz grob) so ein Prozess im Speicher aus?
* Wie kann man Ressourcen "automatisch" am Blockende wieder freigeben? -> RAII
* grober Überblick über STL, zumindest vector, string, list, map sollte man schon mal gehört haben
* ausgedruckter Code mit ein paar offensichtlichen Schwachstellen: Speicherloch, Übergabe an Funktion per Kopie statt const &, Exception nicht angefangen, ... Um ein Gefühl dafür zu bekommen, wie derjenige mit einer konkreten Problemstellung umgehtDeine Liste ist genau was ich erwarte. bedanke mich ganz herzlich.
Kannst Du Kommentare zu die folgenden Antworten geben?
Zu Stack vs. Heap:
Stack und Heap sind für Datenspeicher gedacht. Im Vergleich zu Stack ist Heap für s.g. dynamischer Speicher geeignet. Heap ändert sich durch new und delete. Andererseits kommt Stack durch push, pop, call, ret zum Einsatz.+-----------------+ |lokale Variable | <- ESP |... | +-----------------+ | | <- EBP +-----------------+ |Rücksprungaddress| |Param | |... | +-----------------+ | | |... | +-----------------+ Bottom of Stack |Argumente | |Umgebungsvariable| +-----------------+
Stack befindet sich in Cache-RAMs, und folglich viel schnell als Heap.
Zu stl:
Bislang setze ich oftstd::vector
und
std::list
ein, und selten
std::map
. Von C++11 habe ich
for(auto& it: vector), std::transform, lambda [&](){}
usw. gelernt. Es gibt unheimlich neue Sache bsw.
std::forward, Args ...
mit "C++0x"
Zu "Kopie statt const &, Exception nicht angefangen":
Eigentlich ist mirconst &
beliebt. Was kann es ein Problem sein? QT Anwendungen haben Schwerigkeit mit try-catch Blocks. Ist
catch(...)
nicht die silver bullet für manche "nicht angefangen"?
-
Du wirkst da jetzt nicht besonders kompetent.
-
Gregor schrieb:
Du wirkst da jetzt nicht besonders kompetent.
es ist völlig unstrittig, dass ich nicht expert mit C oder C++. Was mir derzeit besonders betroffen ist, wie und in welche Richtung meine Kenntnisse mit Programmierung in C oder C++ in kurzer Zeit vertieft werden kann.
Nochmal die Fragen:
1. Sind Fehler in meiner Abbildung von stack frame eingeschlichen?
2. Übergabeart const Reference vs. Kopie:
"Übergabe per Reference ist deutlich schneller als eine Kopie eines großen Objekts" Ist was Lächliches in meiner Beitrag unterlaufen?
3. Habe ich welche Begriffe verwechselt?
-
factorypattern schrieb:
Gregor schrieb:
Du wirkst da jetzt nicht besonders kompetent.
Beispiel?
factorypattern schrieb:
Zu Stack vs. Heap:
Stack und Heap sind für Datenspeicher gedacht. Im Vergleich zu Stack ist Heap für s.g. dynamischer Speicher geeignet. Heap ändert sich durch new und delete. Andererseits kommt Stack durch push, pop, call, ret zum Einsatz.Die Begriffe Stack und Heap sind von der Bedeutung her mehrfach belegt. Du vermischt hier unterschiedliche Bedeutungen. Beim einen redest Du über eine dynamische Datenstruktur, beim anderen über einen Bereich im Speicher. Zudem sagst Du nicht, was es ist, sondern "wie Du es in der Verwendung wahrnimmst"?
Was Du insgesamt da oben gesagt hast sieht wie die ersten Sätze der erstbesten Suchergebnisse einer Internetsuche bezüglich der jeweiligen Themen aus.
-
Sorry, mittlerweile habe ich meinen letzten Beitrag angepasst
Gregor schrieb:
Die Begriffe Stack und Heap sind von der Bedeutung her mehrfach belegt. Du vermischt hier unterschiedliche Bedeutungen. Beim einen redest Du über eine dynamische Datenstruktur, beim anderen über einen Bereich im Speicher. Zudem sagst Du nicht, was es ist, sondern "wie Du es in der Verwendung wahrnimmst"?
Du hast recht. Wie zugegeben, bin ich nicht Informatiker, sonder Quersteiger aus Automatisierungstechnik. Ich sage einfach was gerade im Kopf ist aus.
Was Du insgesamt da oben gesagt hast sieht wie die ersten Sätze der erstbesten Suchergebnisse einer Internetsuche bezüglich der jeweiligen Themen aus.
Du hast völlig recht Aber die Frage: wer derzeit nicht googelt, um einen Überblick über ein Theman zu schaffen?
Jedenfasll danke für Deine Kritik
-
factorypattern schrieb:
Was Du insgesamt da oben gesagt hast sieht wie die ersten Sätze der erstbesten Suchergebnisse einer Internetsuche bezüglich der jeweiligen Themen aus.
Du hast völlig recht Aber die Frage: wer derzeit nicht googelt, um einen Überblick über ein Theman zu schaffen?
Gregor schrieb:
Xin schrieb:
Für Fachwissen gibt es Bücher.
Ich glaube es gibt erstaunlich wenig Leute die Fachbücher lesen.
Sei einer der wenigen! Dann musst Du in Bewerbungsgesprächen nicht darauf hoffen, dass Dein Gegenüber wegen mangelnder eigener Fachkenntnis ausschließlich irgendwelche doofen Brainteaserfragen fragt.
Nebenbei gesagt ist Google aus meiner Sicht absolut ungeeignet, um einen Überblick über ein Thema zu kriegen. Du musst ein Fachbuch lesen, um etwas zusammenhängendes zu haben. Mit Google, Wikipedia und so kommst Du nur an punktuelles Wissen heran. Du kannst dann keine Beziehungen zwischen den einzelnen Wissensfragmenten herstellen und Du weißt auch nicht, ob Dir etwas wichtiges fehlt. Du kannst Google und Wikipedia nutzen, um Dein Wissen aufzufrischen. Du musst also schon im Vorfeld wissen, nach was Du suchst und wie es mit anderen Dingen in Zusammenhang steht. Du kannst Dir ja mal überlegen, ob Du mit Google alleine durch Dein Studium gekommen wärst.
-
Ich weiß nicht, ob solche Fragen tatsächlich in Vorstellungsgesprächen kommen. Wenn derjenige Ahnung hat, wird er schon durch paar nebensächliche Fragen sehen, ob du irgendwie Ahnung von den Grundlagen hast oder nicht, ohne irgendwelche Details nachzufragen. Beim Vorstellungsgespräch fürs Vorpraktikum hat man mir Fragen über Algorithmen (Binärsuche, Hashes) und Designpatterns gestellt.
Deine Antworten hören sich jetzt zumindest nicht sehr sattelfest an. Wobei ich mir nicht sicher bin, ob ich spontan auf alles saubere Antworten liefern könnte. Ich bin nicht der Theoretiker, der sofort auf alles eine formal korrekte Antwort parat hat.
Den Stack hast du zu technisch beschrieben. Zum einen ist die Bedeutung wie Gregor geschrieben hat mehrfach belegt. Zum anderen interessiert normalerweise keinen so genau, wie der Stack genau aufgebaut ist, das ist nicht das entscheidende an der Frage Stack vs. Heap. Und deine Antwort ist plattformspezifisch. Allein schon ESP und EBP sind x86 Register, zieht bei ARM also z.B. überhaupt nicht. Grad wenn du dich mit Automatisierungstechnik auskennst, müsstest du eigentlich auch was anderes als x86 kennen.
Dass du vector und list oft einsetzt und map nicht hört sich auch sehr seltsam an... Zum einen ist std::list in C++ mehr oder weniger verpönnt, die wird extrem selten eingesetzt. Und dass du std::map selten einsetzt, was soll man da jetzt reininterpretieren? Dass du bestimmte Gründe dafür hast und eine effizientere Datenstruktur einsetzt, oder dass deine Programme bisher so trivial waren, dass du das nicht gebraucht hast?
"QT Anwendungen haben Schwerigkeit mit try-catch Blocks."
Hä? Nee.
catch(...) Silverbullet?Also ich seh dich jetzt zumindest schon mal nicht als einen erfahrenen C++ Entwickler an. Es kommt dann drauf an, für was für eine Stelle du dich bewirbst und was du eigentlich willst. Wenn du sagst, du hast drei Jahre C++ Erfahrung, würde ich etwas anderes erwarten. Wenn ich also einen Seniordeveloper suchen würde, der sofort in wichtige Projekte einsteigt, wärst du kein geeigneter Kandidat. Wenn ich einfach weitere Programmierer brauche und dich als Frischling für wenig Geld einstelle, wärs wahrscheinlich ok.
-
Mechanics schrieb:
... (Binärsuche, Hashes) und Designpatterns gestellt.
Danke. Ich merke die drei Punkte vor.
Deine Antworten hören sich jetzt zumindest nicht sehr sattelfest an.
Schade, dass meine Antworten Dich nicht beeindruckt haben.
Allein schon ESP und EBP sind x86 Register, zieht bei ARM also z.B. überhaupt nicht. Grad wenn du dich mit Automatisierungstechnik auskennst, müsstest du eigentlich auch was anderes als x86 kennen.
Während meines Studium habe ich Grundlagen über Mikrocontroller MCS-83 oder 85 (an der Stelle ist leider mein Gedächtnis flüchtiger geworden.) gelernt. Ich habe aber nie Heap von Mikrocontroller gehört. Vielleicht schlief ich gerade ein, als der Professor Rede über Heap von Mikrocontroller hielt. :p
Zum einen ist std::list in C++ mehr oder weniger verpönnt, die wird extrem selten eingesetzt.
Was meinst Du mit mehr oder weniger verpönnt? Ein Beispiel?
Und dass du std::map selten einsetzt, was soll man da jetzt reininterpretieren?
An der Stelle bin ich einfach sprachlos. Was sollte ich sagen, wenn unser Code tatsächlich keine Spur von std::map hinterlassen hat.
"QT Anwendungen haben Schwerigkeit mit try-catch Blocks."
Hä? Nee.Bei mir ist es wirklich passiert, dass exception nicht durch catch Block angefangen, sondern durch override von QCoreApplication::notify(). Ich komme aus Mars
catch(...) Silverbullet?
Habe ich so wie folgendes verstanden:
try { // ... } catch (...) { // ... }
ellipse für alle unspezifische. Komme ich wieder aus Mars
Also ich seh dich jetzt zumindest schon mal nicht als einen erfahrenen C++ Entwickler an. Es kommt dann drauf an, für was für eine Stelle du dich bewirbst und was du eigentlich willst. Wenn du sagst, du hast drei Jahre C++ Erfahrung, würde ich etwas anderes erwarten. Wenn ich also einen Seniordeveloper suchen würde, der sofort in wichtige Projekte einsteigt, wärst du kein geeigneter Kandidat. Wenn ich einfach weitere Programmierer brauche und dich als Frischling für wenig Geld einstelle, wärs wahrscheinlich ok.
Ich gehe davon aus, dass Du den ganzen Thread nicht durchgelesen hast. Nochmal der Haken: Ich bewerbe mich nicht um Senior SW-Entwickler C oder C++. Ich bin bisher bei keinem Vorstellungsgespräch durchgefallen, weil noch kein Interview außer der bevorstehenden Test-Einladung stattgefunden hat.
-
Also bei der Frage zu Heap und Stack hätte ich mir eher eine Antwort der Form erwartet: http://www.geeksforgeeks.org/memory-layout-of-c-program/
Also dass du sagst: "Heap und Stack sind zwei von mehreren Adressbereichen eines Prozesses (...)". Wie welches Byte nun zu interpretieren ist interessiert keinen, da man das nachschlagen kann und je nach Architektur anders ist. Auch das Argument von wegen Stack ist schneller als Heap leuchtet nicht ein. Mag sein dass die Hardware gewisse Teile des RAMs im Cache hat, in aller Regel sind aber sowohl Heap als auch Stack im RAM und somit gleich schnell.Es bringt doch nichts, wenn du dir jetzt Wissen zu irgendwelchen Schlagwörtern ("Hash", "Binärsuche") besorgst. Du musst schauen, Schritt für Schritt das große Ganze zu lernen.
Im Bereich C++ Programmieren lies erst einmal "Effektiv C++ programmieren", und verschaffe dir einen Überblick über die STL. Dass du 3 Jahre C++ programmierst und std::map ein Fragezeichen für dich ist, deutet darauf hin, dass du nie wirklich C++ gelernt hast. Das ist jetzt keine Kritik, nur eine Feststellung.Sieh zu, dass du nicht nur das Werkzeug, also C++ lernst. Beschäftige dich auch mit anderen Themen der Informatik bzw. Computertechnik. Du kannst dich mit 3D Graphik, Netzwerktechnik, Algorithmen und vielen anderen Themen beschäftigen. So setzt du Schwerpunkte, von denen nicht jeder Ahnung hat. Vor allem sind das auch Dinge, die sich nicht so schnell ändern wie die verwendeten Frameworks, du profitierst also langfristig von dem Wissen.
-
factorypattern schrieb:
Stack befindet sich in Cache-RAMs, und folglich viel schnell als Heap.
Wenn mir jemand sowas erzählt, würde ich vermutlich mal genauer nachfragen was er damit meint.
Klingt nämlich wie nachgeplappert aber nicht richtig verstanden.Und es ist mMn. in dieser Formulierung ... falsch.
Caches cachen üblicherweise unabhängig davon ob ein Speicherbereich Stack oder Heap darstellt, oder sonstwie verwaltet wird. Ich kenne zumindest kein System mit speziellen "Cache-RAMs" für den Stack.Ich kenne allerdings zumindest zwei Effekte die Zugriffe auf den Stack "begünstigen":
- Der Stack steht üblicherweise im Cache, da er ein Bereich ist den sich alle aufgerufenen Funktionen eines Threads teilen und immer wieder verwenden. Wenn man dagegen Speicher vom Heap anfordert, dann kann man nicht unbedingt davon ausgehen dass der angeforderte Bereich bereits im Cache liegt.
- Moderne CPUs haben diverse Optimierungen für den Zugriff auf den Stack. Wobei dabei - wenn ich es richtig verstehe - hauptsächlich das Inkrementieren/Dekrementieren des Stack-Pointers beschleunigt wird, weil sich ein spezieller Addierer darum kümmert und auch keine eigenen µOps dafür erzeugt werden müssen. (Siehe z.B. http://www.agner.org/optimize/microarchitecture.pdf "7.7 Stack Engine")
Wenn man die Adresse eines bestimmten RAM Bereichs in einem Register hält, und diesen RAM Bereich oft verwendet, dann wird der Zugriff darauf aber normalerweise gleich schnell sein wie der Zugriff auf den Stack.
-
c++ progger schrieb:
AMag sein dass die Hardware gewisse Teile des RAMs im Cache hat, in aller Regel sind aber sowohl Heap als auch Stack im RAM und somit gleich schnell.
You make my day.
Dass du 3 Jahre C++ programmierst und std::map ein Fragezeichen für dich ist, deutet darauf hin, dass du nie wirklich C++ gelernt hast. Das ist jetzt keine Kritik, nur eine Feststellung.
In meiner Anwendung ist bisher kein std::map zum Einsatz gekommen =/=> Ich habe keine Ahnung über std::map. Ich würde zudem darauf hinweisen, dass die Anwendung eine Zusammenarbeit unseres Teams ist. Warum meine Kollegen std::map auch nicht verwenden, liegt wahrscheinlich nicht unbedingt an einer Gruppe von C oder C++ Alphabeten.
Sieh zu, dass du nicht nur das Werkzeug, also C++ lernst. Beschäftige dich auch mit anderen Themen der Informatik bzw. Computertechnik. Du kannst dich mit 3D Graphik, Netzwerktechnik, Algorithmen und vielen anderen Themen beschäftigen. So setzt du Schwerpunkte, von denen nicht jeder Ahnung hat. Vor allem sind das auch Dinge, die sich nicht so schnell ändern wie die verwendeten Frameworks, du profitierst also langfristig von dem Wissen.
Bei meinem jetzigen Arbeitgeber ist tatsächlich so, dass SW-Enwickler nicht nur programmieren müssen, sondern auch sich mit den Application gut vertraut machen sollen. Leider kenne ich mich nicht mit der Branche des Interviewers aus. Momentan kann ich mich nur um Verbessern meiner Wissenslücke in C oder C++ Programmierung bemühen.
-
factorypattern schrieb:
Während meines Studium habe ich Grundlagen über Mikrocontroller MCS-83 oder 85 (an der Stelle ist leider mein Gedächtnis flüchtiger geworden.) gelernt. Ich habe aber nie Heap von Mikrocontroller gehört. Vielleicht schlief ich gerade ein, als der Professor Rede über Heap von Mikrocontroller hielt. :p
Heap ist ein allgemeiner Begriff, auch wieder mehrfach belegt. Aber wenn der Microcontroller RAM hat, kann man auch von einem Heap sprechen. Und sehr wahrscheinlich auch von einem Stack. Deswegen erwarte ich einfach, dass du abstrahieren kannst. ESP und EBP sind eben nicht die Kernelemente des Begriffs Stack.
c++ progger schrieb:
Auch das Argument von wegen Stack ist schneller als Heap leuchtet nicht ein.
Die Erklärung dazu war auch etwas komisch und wahrscheinlich falsch (je nachdem, wie man sie interpretiert). Aber wenn man in C++ von Stack und Heap redet, dann ist der Stack normalerweise schon "schneller". Es geht eben darum, dynamische Speicherallokationen zu vermeiden. Speicher auf dem Stack zu reservieren ist billig, üblicherweise wird von einem Register ein Wert abgezogen und das wars. Speicher auf dem Heap mit new zu reservieren, bedeutet üblicherweise mehrere Funktionsaufrufe + Schleifen + 1-2 Locks -> sehr viel teurer.
std::list wird selten benutzt, weil sie eben auch zu viele dynamische Speicherallokationen macht und das ist zu 99% kontraproduktiv. std::vector ist fast immer besser.
Es mag Spezialfälle geben, bei denen man std::map überhaupt nicht braucht. Aber die Datenstruktur ist so geläufig, dass jeder mit etwas Erfahrung sie eigentlich ständig benutzt haben sollte.
Wenn etwas nicht funktioniert, muss man genau verstehen, woran das liegt. Wenn eine Exception nicht durch den catch Block gefangen wird, muss man das untersuchen. Das liegt nicht an der Qt grundsätzlich, die kann da auch nicht stören. Außer vielleicht irgendwelche Compileroptionen passen nicht zusammen.
ellipse für alle unspezifische. Ja, und? Was meinst du da mit Silverbullet?
factorypattern schrieb:
Ich gehe davon aus, dass Du den ganzen Thread nicht durchgelesen hast. Nochmal der Haken: Ich bewerbe mich nicht um Senior SW-Entwickler C oder C++.
Ich denke schon, dass ich das meiste durchgelesen habe. Ich beziehe mich auch nicht 100% auf deine konkreten Fragen oder deine Situation, ich teile dir einfach meine Überlegungen mit, vielleicht hilfts dir ja weiter. Und jemand der so eine Bewerbung bekommt, muss sich entscheiden, was er mit dem Mitarbeiter anfangen kann. Deswegen musst du das bei deiner Bewerbung auch berücksichtigen. Und wenn du einfach drei Jahre Berufserfahrung hinschreibst, ist es schon nicht wenig. Da erwartet man normalerweise auch ein etwas höheres Gehalt und evtl. anspruchsvolle Tätigkeiten. Deswegen muss dem Personaler auch klar sein, was du taugst und was du erwartest.
-
factorypattern schrieb:
Leider kenne ich mich nicht mit der Branche des Interviewers aus.
Was für eine Branche?
Normalerweise erwartet man von einem neuen Mitarbeiter nicht unbedingt, dass er sich in der Branche schon auskennt. Das wäre einerseits ein Vorteil, andererseits wäre der Mitarbeiter dann vermutlich auch ein gutes Stück teurer.
Ich arbeite zur Zeit im CAD/PDM Bereich. Natürlich ist es eine Welt für sich und da muss man sich erstmal auskennen. Ich hab etwa ein Jahr gebraucht, um richtig reinzukommen. Lag jetzt auch nicht unbedingt an der Branche an sich, sondern daran, dass unsere Software so komplex und umfangreich ist und wir irgendwie alles mögliche machen, und wenn es bei uns heißt, da gibts irgendwie Komponente "x" und die macht irgendwas, denkt man sich vielleicht erstmal nichts dabei, aber wenn man die sich irgendwann anschauen muss, dann hängt da oft sehr viel mehr dran, als man erwartet hätte. Deswegen fühlt man sich als Anfänger erstmal erschlagen. Wenn man etwas einbauen muss, fängt man und denkt, man ist gleich fertig. Und dann erfährt, dass man noch 200 Sachen nicht berücksichtigt hat... Also, es reicht normalerweise, wenn du als Entwickler gut genug bist, dass du ein Experte in der jeweiligen Branche bist, erwartet man selten.
-
Mechanics schrieb:
... Deswegen musst du das bei deiner Bewerbung auch berücksichtigen. Und wenn du einfach drei Jahre Berufserfahrung hinschreibst, ist es schon nicht wenig. Da erwartet man normalerweise auch ein etwas höheres Gehalt und evtl. anspruchsvolle Tätigkeiten. Deswegen muss dem Personaler auch klar sein, was du taugst und was du erwartest.
Es gibt verschiedenen C oder C++ SW-Enwickler. Manche beherrschen C oder C++ innerhalb eines Jahres schon so gut wie Du, dass ein Buch wie "Effective C++ Programmieren" verfassen können. Es gibt aber auch die Programmierer, die fachlich schleppend vorangehen. Ich gehöre leider zur zweiten Gruppe. Ich bin nicht so schlau wie Du, aber will andere Leute nicht anlügen, dass ich nur 6 Monate mit C++ beschäftigt bin, und in ein paar Jahren Scott Meyers werde.
-
Nicht dass es falsch rüberkommt, ich hab durchaus auch paar Jahre gebraucht, bis ich mich mit C++ anfreunden konnte. Ich hab halt einfach als Schüler angefangen und hatte mehr Zeit.
Es geht nicht unbedingt darum, sehr gut zu sein (natürlich sollte man das selber aber schon als Ziel haben). Man braucht auch "einfach nur Programmierer". Und wenn der Personaler dich richtig einschätzen kann und sowas auch braucht, sollte es schon klappen. Du solltest allerdings weiterlernen.
-
factorypattern schrieb:
Es gibt verschiedenen C oder C++ SW-Enwickler. Manche beherrschen C oder C++ innerhalb eines Jahres schon so gut wie Du, dass ein Buch wie "Effective C++ Programmieren" verfassen können.
Letztes Jahr habe ich Scott Meyers auf der Meeting C++ kennengelernt. Er hielt dort unter anderem einen Vortrag, wie er das neue Effective Modern C++ geschrieben hat. Und wie zu erwarten, schreibt man sowas nicht mal einfach so. Er beschrieb, wie er einen tollen Tipp herausgearbeitet hat, das zur Korrektur und Bewertung an andere Entwickler gegeben hat, die dann festgestellt haben, dass der Tipp gut gemeint, aber kontraproduktiv ist.
Wir sind alle nur Menschen, die über mehr oder weniger Erfahrung verfügen. Erfahrung, die uns vor Fehlern bewahrt, aber auch in Fehler führen kann, wenn die Erfahrung veraltet ist.
Wo ich mir sehr, sehr sicher bin, ist dass es keinen C++-Entwickler gibt, der die Sprache nach einem Jahr wirklich beherrscht. Ich habe vor 21 Jahren mit C++ angefangen und lerne regelmäßig dazu.
factorypattern schrieb:
aber will andere Leute nicht anlügen, dass ich nur 6 Monate mit C++ beschäftigt bin, und in ein paar Jahren Scott Meyers werde.
Mit 6 Monaten Programmiererfahrung in C++ bewirbst Du Dich wohl auch nicht als Software-Architekt.
Beeindruckt haben mich Deine Antworten auch nicht. Du bist halt auf Deinem Weg, Du brauchst bzgl der Umsetzung noch Anleitung, wenn das Professionell werden soll und das ist doch okay. Abgeschreckt haben sie mich jedenfalls auch nicht.
Die Fragen haben mich allerdings auch nicht beeindruckt: Derartiges ist in Bewerbungsgesprächen nicht unüblich.Wir sind alle nicht als Meister vom Himmel gefallen. Vorteil ist natürlich, wenn Du die Zeit hast, Erfahrung zu sammeln, indem Du beispielsweise Datenstrukturen mal selbst nacharbeitest, um sie zu begreifen.
Daraus vielleicht Template-Container machst, um Dich mit Templates anzufreunden.Die Effizient C++ Bücher sind ein Weg, Du kannst nach C++-Idiomen suchen oder Coding Standards und Dir darüber Gedanken machen, worüber sich professionelle Entwickler Gedanken machen und warum. Das hilft, um schnell große Schritte zu machen.
Deine Erwartung an Job und Bezahlung muss entsprechend sein - das schriebst Du ja schon. Große Firmen können es sich leisten, Leute mit 10 Jahren Erfahrung und Diplom zu bezahlen und den Rest zu ignorieren. Für kleinere Firmen kann man aber auch die Chance sein, günstig an jemanden heranzukommen, der C++ wenigstens schonmal gesehen hat.
Und der Rest ist auch ein wenig Glück. Ein Freund von mir, der derzeit in Ausbildung zum FIAE ist, macht durch die Ausbildung Java. Ich rate ihm zu C++. Er hat jetzt eine Praktikumsstelle, die er ohne C++-Kenntnisse erhalten hat, wo er auf C++ auf einem Raspberry PI programmieren soll, was wirklich interessant klingt.