Wenn ich in einer Stellenausschreibung lese: "Anforderungen: [..] Hierfür erwarten wir gute Kenntnisse in C++ oder Delphi und Mathematik [...]" Ab wann hat man "gute Kenntnisse"? Ich stolpere immer wieder über solche Formulierungen, doch finde ich eine solche Aussage sehr schwammig. Ich habe damals zB sehr viel in Turbo Pascal programmiert und bin jetzt dabei in C/C++ einzusteigen. "Programmieren" an sich habe ich also verstanden. MfG Thomas
man sollte es nicht unterschätzen. Im Vergleich zu Delphi oder Turbo Pascal ist c++, gerade wenn man versucht, OO zu programmieren, eine etwas andere Liga.
Wenn man alle Viertelstunde zweimal die Referenz nachschlagen muss, ist man noch nicht so weit. Die ueblichen Konzepte sollten auch bekannt sein. Doppelt verlinkte Listen, Statusmaschinen, Objektgeneratoren, Singlets, Semaphoren, Scheduler, das Uebliche eben ...
Du kannst in C++ programmieren und C++-Konzepte (Klassen, Streams, ...) für dein Problem richtig einsetzen.
Ich verstehe gute Kenntnisse so, dass man allgemein Programmiererfahrung hat und die Standardsprachkonstrukte kennt. Im Fall von C++ zum Beispiel Bedingungen, Schleifen, Klassen, Templates, vielleicht STL, Umgang mit Header- und Programmdateien. Also so, dass man nicht von Sprachkonstrukten überrascht wird, wenn man sich fremdem Code ansieht.
Wenn ich Delphi waehlen koennte, wuerd ich mir C++ nicht antun.
Dussel schrieb: > Also so, dass man nicht von > Sprachkonstrukten überrascht wird, wenn man sich fremdem Code ansieht. Das sind Grundkenntnisse. Für 'gute' Kenntnisse darf man mindestens noch erwarten, dass man all diese Konzepte von sich aus richtig einsetzen kann.
Ja, das meinte ich eigentlich auch. Ich meine, man kann nicht jede Funktion und ihr Arbeitsweise kennen, aber die Grundlagen, mit denen alles aufgebaut wird, sollte man kennen und nutzen können.
Gut heisst NICHT, das man die paar Schlüsselwörter der Sprache kennt, sondern die tausenden Funktionen der üblichen APIs benutzen kann, und den einen oder anderen Fallstrick aus eigener Erfahrung. Ein Programm in der Sprache geschrieben haben reicht nicht, man sollte schon jahrelang darin programmieren.
Hey noch Was schrieb: > Wenn ich Delphi waehlen koennte, wuerd ich mir C++ nicht antun. für ein Komandozeilen programm, mit vielen Threads, Mutexen und vielen system aufrufen ( CreateProcess, DuplicateTokenEx usw. )? man sollte eine sprache nach der Aufgabe auswählen! Treiber schreiben sich auch sehr schlecht in Delphi.
Was ich vielleicht noch dazu schreiben sollte: Es handelt sich um eine Stellenausschreibung für eine Stelle in der Automatisierungstechnik.
Einen Treiber wuerd ich mir in gar nichts antun. Wenn man ein vernuenftiges Timing haben muss, ist ein PC sowieso ganz falsch. Dann sollte man auf Hardware gehen. Fuer ein beliebig komplexes Steuerprogramm, das nicht ganz so enge Timinganforderungen hat ist auch Delphi richtig. Wird alles unterstuetzt.
Hallo, leider ist es bei solchen Selbsteinschätzungen häufig so, dass man die eigenen Kenntnisse um so kritischer betrachtet, je besser sie in Wirklichkeit sind. Dummerweise gewinnen bei solchen Einschätzungen auch schnell die Blender den Blumentopf, die sich schon dann als "Experte" oder "Spezialist" titulieren, wenn sie kaum den Namen einer Qualifikation buchstabieren können. Ich selbst war vor einigen Jahren auch einmal auf so einen "Experten" hereingefallen. Er besaß angeblich eine jahrzehntelange Berufserfahrung im Bereich UNIX und Linux, machte aber immer wieder wirklich fatale Anfängerfehler. Teilweise waren die Fehler sogar so elementar, dass ich bei der gemeinsamen Fehlersuche nicht auf Anhieb auf die Idee gekommen war, dass man überhaupt so blöde Fehler machen konnte. Dummerweise musste ich ziemlich bald meinem Kunden erklären, dass ich einen Vollpfosten auf sein Projekt angesetzt hatte. Dieser Typ rennt vermutlich auch heute noch als "Experte" durch die Gegend, wobei die Liste seiner "erfolgreichen" Projekte noch länger geworden sein dürfte.
Ungefähr: Gute Kenntnisse in Python = 2 Jahre Praxis Gute Kenntnisse in Java = 3 Jahre Praxis Gute Kenntnisse in C++ = 5 Jahre Praxis Unter der Prämisse, dass man auch 50 % Praxis in anderen Programmiersprachen, also bei Python + 1 Jahr was anderes, bei C++ 2,5 Jahre was anderes als C++. Der C++-Standard ist extrem umfangreich und kompliziert, daher erreicht man gute Kenntnisse recht spät.
kommt auf die stelle drauf an. für nen informatiker ist "gutes c++" sicher was anderes als für einen etechniker z.B.
wenn Du Dir schon selbst unsicher bist, was "gute" Kenntnisse sind, dann hast Du auch keine. Im übrigen lächerliche Fragestellung, bewirb Dich oder laß es bleiben. Wenn Du den Job nicht bekommst, dann war einer besser - so läuft das Spiel.
Andreas Schweigstill schrieb: > leider ist es bei solchen Selbsteinschätzungen häufig so, dass man die > eigenen Kenntnisse um so kritischer betrachtet, je besser sie in > Wirklichkeit sind. Das kann man unterstreichen. Es gibt ein Gleichnis, ich glaube von Descartes, der das Wissen des Einzelnen mit einer Fläche vergleicht. Der Flächeninhalt korrespondiert dann mit dem vorhandenen Wissen. Das Nichtswissen liegt außerhalb dieser Fläche. Nimmt der Flächeninhalt zu, nimmt aber auch Flächenumfang zu, also der Grenze zwischen Wissen und Nichtwissen. Umso mehr jemand weiß, desto stärker wird er sich auch über sein Nichtswissen bewusst.
Im konkreten Fall: Eigentlich würde ich "gute Kentnisse" relativ weit oben ansiedeln; aber hier heißt es "gute Kenntnisse in C++ oder Delphi". Dann würde ich mal von der Schnittmnenge der beiden ausgehen, und damit die Anforderungen etwas bescheidener betrachten. Es sieht eher nach hausbackener Programmierung aus, sonst würde sich die Wahl nicht stellen. Also mit etwas Selbstbewusstsein wird es zu schaffen sein.
es kommt natürlich auch darauf an, ob es eine Stelle für Berufseinsteiger ist oder schon jahrelange Berufserfahrung vorausgesetzt / erwartet wird. Dies wirkt sich natürlich auch auf die erforderlichen Kenntnisse aus. Ich merke es bei mir, wo es an Kenntnissen und Erfahrung fehlt. Im JavaEE Umfeld war ich jetzt nicht so bewandert, bis auf zwei kleinere Projekte (eins während meiner Diplomarbeit und ein weiteres im Nebenjob), aber in JavaSE ganz gut. Aufgrund der Komplexität diverser Frameworks, mit denen ich bislang noch nichts zu tun hatte, macht man als Anfänger durchaus auch den ein oder anderen dummen fehler: Sortierfunktionen in Entities, um sie nach Datum zu sortieren. Total bescheuert ist sowas, funktioniert aber leider ...solange nur eine Person ist System ist ;-)
>wenn Du Dir schon selbst unsicher bist, was "gute" Kenntnisse sind, dann >hast Du auch keine. Na das ist eine sehr kühne Theorie. Es gibt eben Leute mit wenig Selbstvertrauen, die aber wirklich was können und es gibt Blender, die nichts können, aber es nicht merken. Ein Mensch mit wenig Selbstvertrauen kann also ebenso die obige Frage stellen, obwohl er längst Profi ist. Das sind die, die dann ihr ganzes Leben beschissen werden von den Blendern.
Laut Duden bedeutet Kenntnisse "das Wissen über einen bestimmten Sachverhalt". Wenn im Stellenangebot keine langjährige Erfahrung, sicherer Umgang oder ähnliches gefordert wird, dann sollte eine etwas intensivere Beschäftigung im Studium reichen. Programmierprofi schrieb: > Gute Kenntnisse in Python = 2 Jahre Praxis > Gute Kenntnisse in Java = 3 Jahre Praxis > Gute Kenntnisse in C++ = 5 Jahre Praxis Wenn 5 Jahre Programmiererfahrung vom AG gefordert wären, dann hätte er es auch geschrieben. Einer der größten Fehler den man machen kann ist es irgendetwas in eine Stellenausschreibung herein zu interpretieren oder am besten noch dem potentiellen AG im Gespräch die Ausschreibung zu erklären (hatte ich im letzten Monat 2x - bin zum Glück nicht personalverantwortlich). Immer auch den Kontext beachten: AT ist eine komplett andere Baustelle z.B. als Kernel-Programmierung. Ich finde man darf bei so etwas auch nicht vergessen, dass die Lernkurve bei in der Programmierung recht steil ist und man in des seltensten Fällen irgendetwas von Grund auf neuprogrammiert. Solange man dabei nicht komplett wie ein Ochs vor Berg steht, kann man sich ruhig bewerben. Wenn es nicht reichen sollte, gibt es halt eine nette Absage (und vielleicht 5€ vom Amt).
Klaus schrieb: > und man in des seltensten Fällen irgendetwas von Grund auf > neuprogrammiert. Genau so ist es. In der Industrie hat man praktisch immer eine bestehende Codebasis, zu der eine weitere Funktionalität hinzugefügt werden soll. Was man eigentlich viel öfter braucht als selbst etwas komplett neu zu entwerfen ist die Fähigkeit, von anderen geschriebene Software zu lesen und zu verstehen, und die eigenen Änderungen so einzufügen dass das ganze System weiterhin so funktioniert wie gewünscht. Mit dem an den Hochschulen gelehrten Software Engineering hat das nicht immer viel gemein ;-)
Mark Brandis schrieb: > Was man eigentlich viel öfter braucht als selbst etwas > komplett neu zu entwerfen ist die Fähigkeit, von anderen geschriebene > Software zu lesen und zu verstehen, und die eigenen Änderungen so > einzufügen dass das ganze System weiterhin so funktioniert wie > gewünscht. Und wenn derjenige zusätzlich seinen Kollegen die Notwendigkeit der vorgenommenen Änderungen erläutern kann und dann noch die Arbeit vernünftig dokumentiert... Ich mag es mir kaum vorstellen.
>Mit dem an den Hochschulen gelehrten Software Engineering hat >das nicht immer viel gemein ;-) Demnach dürfte ein Hochschulabsolvent nie eine Anstellung bekommen. Die Informatiker lernen oft mit Pseudosprachen. Eine exakte Programmiersprache zu erlernen, ist jedem Studenten dann im Eigenstudium überlassen. Wenn er Delphi richtig beherrscht, sollte der Umstieg auf C++ nicht die große Hürde darstellen. Borland hatte damals ja seinen C++ Builder gänzlich auf Delphi aufgebaut. Ging auch.
Paul schrieb: > Demnach dürfte ein Hochschulabsolvent nie eine Anstellung bekommen. Die > Informatiker lernen oft mit Pseudosprachen Engineering ist etwas komplett anderes als Programmieren. Beim ersten malt man Kästchen und Rauten auf Papier, beim zweiten tippt man kryptische Wörter und Zeichen in den Rechner.
>Engineering ist etwas komplett anderes als Programmieren. Beim ersten >malt man Kästchen und Rauten auf Papier, beim zweiten tippt man >kryptische Wörter und Zeichen in den Rechner. Nichts anderes schrieb ich. Beschäftigung mit Algorithmik, ausgedrückt in Pseudocode. Die eigentliche Programmiersprache tritt in den Hintergrund
Paul schrieb: > Demnach dürfte ein Hochschulabsolvent nie eine Anstellung bekommen. Die > Informatiker lernen oft mit Pseudosprachen. Eine exakte > Programmiersprache zu erlernen, ist jedem Studenten dann im Eigenstudium > überlassen. Wenn er Delphi richtig beherrscht, sollte der Umstieg auf > C++ nicht die große Hürde darstellen. Borland hatte damals ja seinen C++ > Builder gänzlich auf Delphi aufgebaut. Ging auch. Ich bin absolut der Meinung, dass ein Hochschulabsolvent der Informatik/Technischen Informatik/Mathematik/Physik/etc. im Prinzip jede Programmiersprache innerhalb einer überschaubaren Zeit erlernen kann. Es sind die Arbeitgeber, die an dieser Stelle leider sehr unflexibel sind: Da wird in Stellenausschreibungen stets gern verlangt, dass man Programmiersprache X im Dialekt Y seit mindestens drölfzig Jahren beherrscht, und man das Framework ABC bis aufs siebte Bit hinterm Komma genau kennt. > Die eigentliche Programmiersprache tritt in den Hintergrund Nicht in der Realität der Arbeitgeber :-(
@Mark Brandis Ich stimme Ihnen zu. Es ist leider so, dass zu sehr darauf geschielt wird, dass jemand eine Sache Ewigkeiten macht. In zwanzig Jahren C++ kann er vielleicht auch zwanzig Jahre Stuss abgeliefert haben. Ich habe ja darauf hingewiesen, dasas man neben der eigentlichen, gefragten Programmiersprache auch noch andere Sachen können sollte. Ich nehme lieber denjenigen, der fünf Jahre C++ programmiert hat, aber auch insgesamt 15 Jahre extra in anderen Programmiersprachen, als jemanden, der 20 Jahre C++-Erfahrung hat und sonst nichts. Gerade auch "exotische" Programmiersprachen sollte man als Student lernen. Es kommt immer gut an, wenn man sagt, dass man sich z. B. mit Lisp beschäftigt hat. Schnelle Einarbeitung ist aus Arbeitgebersicht wichtig und für den Bewerber auch nachvollziehbar, aber was da auf dem Arbeitsmarkt abgeht ist Realsatire, wenn ein mickriges kleines Unternehmen solche Anforderungen stellt und dann auch noch nicht mal bereit ist, 35k im Jahr zu zahlen, bei einem befristeten Arbeitsvertrag. Ich hatte mal ein Stellenangebot vorliegen, dass jemand gesucht wurde, der drei Programmiersprachen und zwei DBMS beherrschen soll. Dort wo Fachkräfte bei der Einstellung mitwirken, Leute, die früher auch Software entwickelt haben, ist der ganze Bewerbungsprozess wesentlich, weil die wissen, worauf es ankommt und keine Strichliste führen. Will man aber jemanden haben, der schnell eingearbeitet ist, dann sind vorhandene Kenntnisse in der gefragten Programmiersprache von Vorteil. Einen Hinweis an die AGs möchte ich mir noch erlauben: Ich habe doch nicht ohne Grund den Vergleich Python, Java und C++ gemacht. Bei Python lernt man in zwei Jahren das, was man in fünf Jahren C++ lernt, weil Python sehr viel abstrakter, intuitiver und sauberer ist. Daher sollte man, wenn man die Möglichkeit hat, neue Projekte in moderneren Programmiersprachen als C++ entwickeln. Da kann man die Kosten verringern und der Nachwuchs ist auch schneller angelernt.
Meinungen zur Programmierkenntnisse: Anfänger bedeutet: Ja, ich habe schon etwas davon gehört und weiß was Variablen und Konstante zu bedeuten haben. (1. Level) Fortgeschrittene bedeutet: sicheren Umgang mit OOP, Entwicklungsumgebung, diverse Programmiertechiken bzw. Technologien, kann selbständig GUI und Programmmodule entwickeln.(2.Level) Professionell deutet: Softwaresystemen entwerfen,planen und umsetzen. Z.B. Hardwaretreiber, Echtzeit kernel oder komplexe Steuerungsprogramme selbst zu entwickeln dürfte für ein Profis kein Problem sein. (High Level) C++ Gurus: Was ist C++ ? stimmt jemand mir zu ?
>Fortgeschrittene bedeutet: sicheren Umgang mit OOP, >Entwicklungsumgebung, diverse Programmiertechiken bzw. Technologien, >kann selbständig GUI und Programmmodule entwickeln.(2.Level) Natürlich sicherer Umgang mit OOP. Aber es muß nicht C++ sein. Wie gesagt, wenn er mit Delphi o. ä. gut umgehen kann, ist der Umstieg auf C++ nur eine Fleißsache. Und die Spezialisierung auf eine Entwicklungsumgebung ist m. E. nonsens. Jeder Firma kocht da im embedded-Bereich seine eigene Suppe (Keil, IAR, Lauterbach, Metrowerks usw.). Vielleicht bringt da Eclipse mal einen Wandel, wobei die Debugging-Schiene wieder schwierig wird?. Die Einarbeitung in eine neue Entwicklungsumgebung ist eine Sache von Tagen. Kannste eine, kannste alle. >Professionell deutet: Softwaresystemen entwerfen,planen und umsetzen. >Z.B. Hardwaretreiber, Echtzeit kernel oder komplexe Steuerungsprogramme >selbst zu entwickeln dürfte für ein Profis kein Problem sein. (High >Level) Wieviele Informatiker, die wahrlich Profis sind, können hardwarenah programmieren (Hardwaretreiber)? Echtzeitkernel und Steuerungsprogramme ist auch nicht für jeden Profi machbar, obwohl er super in OOP ist und jahrelang z. B. Datenbankanbindungen programmieren kann. Ehrlich gesagt, ich bin kein Informatiker sondern ETler. Einen Hardwaretreiber, komplexes Steuerungsprogramm programmieren, traue ich mir zu (auch schon gemacht). Aber eine relationale Datenbank, einen Kernel, GUI-Gräber überlasse ich lieber dem Informatiker.
Zu Deiner Frage: In deinem Fall dürften "gute Kenntnisse" praktisch anwendbare, also keine reinen Anfängerkenntnisse gemeint sein. Der AG wird kaum "Grundkenntnisse" schreiben, sonst wird er von Bewerbungen erschlagen. Ich schließe dies daraus, dass C++ und Delphi absolut nicht zu vergleichen sind und eigentlich nur in der Anwendungsentwicklung miteinander konkurrieren können. Wenn Du Automatisierung schreibst, könnte ich mir vorstellen, dass die jemanden suchen der eine Anwendung zur Parametrierung irgendeines Systems entwickelt. Am Ende findest Du dich mit C# und .NET wieder. Grundsätzlich: C++ ist wesentlich(!) komplexer als C#, Java, usw.. Man kann 15 Jahre lang Software in C++ machen (z.B. Windows MFC-Anwendungen) und nur einen kleinen Teil der Sprachmöglichkeiten ausnutzen. Dass grosse Teile von C++ in einer Entwicklung "tabuisiert" werden, ist sogar üblich, z.B. Operator-Overloading, virtuelle ("Diamond-") Vererbung. Templates werden auch nur selten benutzt (selbst programmiert!). Sogar der Einsatz von STL ist bereits ein sehr fortgeschrittenes Topic. Um erfolgreich mit C++ zu programmieren, genügen Kenntnisse in Syntax von C++, in OO und Patterns absolut nicht. Man muss wissen können, was der Compiler daraus macht. Java und C#, etc. sind im Vergleich zu C++ Kinderkram. Grüße Stephan
>Ich schließe dies daraus, dass C++ und Delphi absolut nicht zu >vergleichen sind und eigentlich nur in der Anwendungsentwicklung >miteinander konkurrieren können. Borland hat das Gegenteil bewiesen.
@Thomas M.: Bewirb dich einfach, geh hin, wenn sie dich einladen, und du wirst sehen, was sie wollen. Entweder du kommst klar oder nicht. Fertig.
Paul schrieb: > Borland hat das Gegenteil bewiesen. Ich kann mich nicht daran erinnern, dass es Borland geschafft hat, Delphi-Compiler für den Embedded-Bereich zu etablieren, insbesondere Microcontroller. Ggf. hat es noch eine ordentliche Verbreitung bei Embedded PCs auf x86-Basis. Pascal im Embedded-Bereich gab es ja z.B. damals für die KatCe-Rechner; damit hatte ich doch einige Projekte umgesetzt (Steuerrechner für Messatenerfassung, Interferometrie, Rastertunnelmikroskopie).
>Ich kann mich nicht daran erinnern, dass es Borland geschafft hat, >Delphi-Compiler für den Embedded-Bereich zu etablieren, insbesondere >Microcontroller. Das meine ich nicht. Sondern, daß Borland seinen C++ Builder gänzlich als "Kondom" über das Borland Delphi gezogen hat. Wenn man den "Objektcode" des C++ Builders sieht, fällt das Zwischenübersetzen von C++ nach Delphi auf. Das bedeutet, daß Delphi ähnliche Sprachkonstrukte (natürlich strenger typkontrolliert) anbietet wie C++. Übrigens ist C++ im "Hardcore"embedded Bereich auch eher die Ausnahme. Dort wird in Assembler oder C geschrieben. Erst bei größeren Prozessorsystemen (ARM, EPC) ist es angebracht.
Was haben die C++-Kenntnisse mit Statusmaschinen, Semaphoren oder eben Scheduler zu tun? Was du hier aufgeführt hast, gehört eher zum Sw-Design.
Hi, MaWin schrieb: > Gut heisst NICHT, das man die paar Schlüsselwörter der Sprache kennt, > sondern die tausenden Funktionen der üblichen APIs benutzen kann, > und den einen oder anderen Fallstrick aus eigener Erfahrung. Na ja, da bist Du schon etwas mutig! ;-) Ich kenn' da ein paar API's, die Du sicher nicht kennst ... :-) Anyway, ein paar Jahre aktive Programmiererfahrung in nicht nur einer Sprache und nicht nur mit Visual Studio (!!!) ist in Sachen "gute Kenntnisse" schon hilfreich. In's konkrete Umfeld musst Du Dich sowieso immer einarbeiten. Schönen Tag noch, Thomas
MaWin schrieb: > Gut heisst NICHT, das man die paar Schlüsselwörter der Sprache kennt, > sondern die tausenden Funktionen der üblichen APIs benutzen kann, > und den einen oder anderen Fallstrick aus eigener Erfahrung. APIs zu kennen gehört für mich nur sehr sekundär zu 'guten' Kenntnissen. Was der eine täglich braucht und beherrscht, wird der andere nie zu sehen bekommen. Jegliche API-Kenntnisse sind somit Spezialkenntnisse und der Arbeitgeber sollte sie spezifisch angeben. (Wenn ich z.B. Linux-Kerneltreiber schreibe werde ich wohl kein einziges gemeinsames API verwenden wie der Kollege, der sich mit grossen Datenbanken befasst.)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.