Forum: Ausbildung, Studium & Beruf Woher relevante Erfahrungen in C/C++ sammeln??


von Thomas (Gast)


Lesenswert?

Hey Leute,
habe es während meines Studiums aufgrund von anderen Interessen 
ausserhalb der Technik versäumt, mich mit C/C++ zu beschäftigen.
Habe da jetzt neulich privat mich mit beschäftigt und wollte mal fragen, 
wie man "relevante", für den lebenslauf wichtige Erfahrung in diesem 
Bereich sammelt? Stehe kurz vor der BSC-Arbeit.
Soll ich ne Abschlussarbeit in C/C++ machen? Mit Bewerbungen für den 
Werkstudentenjob im Bereich C/C++ bin ich bisher gescheitert.
VG

von offene Soße (Gast)


Lesenswert?

Open Source

von michael (Gast)


Lesenswert?

Du könntest an einem Open Source-Projekt mitarbeiten. Da kannst du dich 
mit anderen Entwicklern austauschen und programmierst auch noch was 
sinnvolles. Wenn du da nur an einigen Ecken mitarbeitest, wird es für 
einen Arbeitgeber schwer nachzuvollziehen, was du da eigentlich getan 
hast. Etwas anderes ist es, wenn du ein eigenes Projekt auf die Beine 
stellst oder zu einem bestehenden Projekt einen größeren Teil, der mehr 
oder weniger eng umrissen ist, beisteuerst.

von Konrad (Gast)


Lesenswert?

Mach bei einem Open Source Projekt mit.

von michael (Gast)


Lesenswert?

Vielleicht ist google summer of code was.
siehe: https://developers.google.com/open-source/gsoc/
Ich glaube, du bekommst einen Mentor und vielleicht am Ende auch einen 
Zettel, auf dem draufsteht, dass du was sinnvolles gemacht hast.

von Programmierer (Gast)


Lesenswert?

Was ist C/C++? C und C++ sind zwei sehr unterschiedliche Sprachen. C 
lernt sich schnell, C++ vollständig zu lernen dauert lange da sehr 
komplex. Erstmal solltest du dich also für eine der Sprachen 
entscheiden. Ich persönlich würde immer zu C++ raten, da es für 99% der 
Plattformen mittlerweile C++ Compiler gibt, C++ (mindestens!) genauso 
effizient wie C ist und es allgemein wenig Grund gibt noch das doch arg 
eingeschränkte C zu lernen.

Erfahrungen sammeln: Gute Bücher durcharbeiten und dort ggf. vorhandene 
Übungsaufgaben machen, und dann üben, üben, üben: Einfach coole 
Hobby-Projekte ausdenken die dir Spaß machen und durchziehen. Die kann 
man auch gerne im Lebenslauf angeben, insbesondere wenn's was 
vorzuführen gibt. Das macht man natürlich nicht so schnell, dauert ein 
paar Jahre bis man nennenswerte Erfahrung & Kenntnisse gesammelt hat. 
Hilfreich sind auch Wettbewerbe, wie z.B. Formula Student 
(Embedded-lastig).
Deine Abschlussarbeit in der Sprache zu machen ist natürlich auch gut.

von g457 (Gast)


Lesenswert?

> Habe da jetzt neulich privat mich mit beschäftigt und wollte mal fragen,
> wie man "relevante", für den lebenslauf wichtige Erfahrung in diesem
> Bereich sammelt?

Mach ein paar ordentliche(!) Projekte, die Deinen Wissensstand 
widerspiegeln und die Du bei einer Bewerbung vorzeigen kannst. Und mach 
bei einer Bewerbung korrekte Angaben dazu. Aber glaub mir, weder C noch 
C++ lernt man mal so eben. Bis man C oder C++ 'ein bisschen' kann 
vergehen jeweils ein paar 10k Zeilen Code, denn die Syntax alleine zu 
kennen reicht bei weitem nicht. Um sich 'gut' auf die Fahne schreiben zu 
dürfen brauchts eher grob 2 (C) bzw. 5 (C++) Jahre belastbare Erfahrung 
(Vollzeit, also 40h/Woche). Das Prädikat 'sehr gut' schaffen nur wenige 
(kein Schwerz). Und wirf keinenfalls C und C++ in einen Topf, auch wenn 
andere das häufig tun. Das sind zwei eigentlich grundverschiedene 
Programmiersprachen, C++ kann nur zufällig (zumindest sollte man das so 
sehen) einen Großteil von dem was C kann.

von Sebastian S. (amateur)


Lesenswert?

Es gibt da eine Seite im Internet, mit Namen: www.mikrocontroller.net.
Da posten alle möglichen Leute Probleme die sie mit den beiden Sprachen 
haben, und manchmal kannst Du auch die Lösung verfolgen.

Natürlich gibt es auch viele andere Foren, aber oft ist dort der Tenor: 
"Hier hast Du, friss oder stirb". Also tolle Programme, aber kein Ton 
dazu, warum so und nicht anders. Sich als Anfänger durch ein Programm zu 
hangeln, das mehrere hundert Zeilen hat, ist der richtige Job für jeden 
der Sisyphos heißt.

Anleitungen, in Form mehr oder weniger aussagekräftiger Manuskripte, 
gibt es natürlich zuhauf im Netz. Da hast Du aber nur die Wahl: Gefällt 
mir der Stiel oder verstehe ich nur Bahnhof.

von Sina A. (sinapse)


Lesenswert?

hmm.. warum auf c++ versteifen??

open source... da muss man schon ein bestimmter typ mensch sein für den 
das freizeit und nicht arbeit bedeutet... sonst wird es hart neben 
studium/arbeit.

bacheler arbeit in c++ ist moeglich macht es aber um so schwerer.

werkstudentenjob ist immer noch die beste möglichkeit... brauchst nicht 
so viel eigendisziplin und wirst bezahlt. also weiter versuchen.


aber denke ich muss man flexibel bleiben... wuerde das feld zumindest 
ausweiten auf jobs wo objekt orientiert geproggt wird. das bringt dich 
in der hinsicht auf jeden fall weiter... letztendlich auch in c++


lg

von Thomas (Gast)


Lesenswert?

Sina A. schrieb:
> hmm.. warum auf c++ versteifen??
>

Soll in die Richtung Microcontroller/Embedded gehen.

VG

von php7 (Gast)


Lesenswert?

einfach hinsetzen und ranklotzen, ein paar kleine private projekte zu 
vorzeigen bei bewerbungen umsetzen, sauber dokumentieren, vielleicht 
auch testfälle schreiben.
aber wenn bald die abschlussarbeit ansteht wirds wohl zu knapp, du hast 
es einfach verpennt und 'andere Interessen' waren wichtiger. gibs zu: 
saufen, weiber und party machen war es, richtig?

von fwefw (Gast)


Lesenswert?

Programmierer schrieb:
> Was ist C/C++? C und C++ sind zwei sehr unterschiedliche Sprachen. C
> lernt sich schnell, C++ vollständig zu lernen dauert lange da sehr
> komplex.

!!!
Lern das als Erstes.

Wer C/C++ schreibt und glaubt, es wäre dasselbe, der outet sich sofort 
als Supernoob.

von D. I. (Gast)


Lesenswert?

Und immer dran denken:

Je mehr C++ man kann, desto weniger C++ kann man.

von Ratlos (Gast)


Lesenswert?

Thomas schrieb:
> Sina A. schrieb:
> hmm.. warum auf c++ versteifen??
>
> Soll in die Richtung Microcontroller/Embedded gehen.
>
> VG

Also eher C?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ratlos schrieb:
> Also eher C?

Als Grundlage zur MC Programmierung ist es sicher ganz klug, erstmal C 
zu lernen. C++ ist hier noch nicht so verbreitet, wie z.B. auf PCs und 
Macs.
Sicher wird ein komplexes Programm auf PCs heute keiner mehr im reinen C 
schreiben, genauso wie die wenigsten kleinen bis mittleren MC Projekte 
in C++ gemacht werden.

Ein schönes Beispiel für komplexere Projekte auf dem PC, Linux und Mac 
ist z.B. Torque3D, eine OpenSource (MIT Lizenz) Spieleplattform in C++, 
an der jeder selber mit basteln kann.

http://www.garagegames.com
Programmiere da selber ein wenig mit und es macht Spass, es gibt da auch 
eine nette Community.

von temp (Gast)


Lesenswert?

Matthias S. schrieb:
> Als Grundlage zur MC Programmierung ist es sicher ganz klug, erstmal C
> zu lernen. C++ ist hier noch nicht so verbreitet, wie z.B. auf PCs und
> Macs.

Es gibt aber auch eine ganze Menge Code und Projekte in C++. Ich sage da 
mal nur mbed und Arduino. Trotzdem wirst du in der MC Welt ohne C nicht 
klar kommen. Wichtig ist vor allem die Unterschiede zu kennen und auch 
die Fallstricke bei gleichzeitigem Einsatz von C, Assembler und C++. Für 
ein "blinky" auf einem ESP8266/Arduino werden 17 C++ 22 C und 1 
ASM-Dateien übersetzt. Bei mbed ist der C-Anteil wesentlich kleiner.
Ich persönlich halte es nicht für klug mit C++ anzufangen. Die meisten 
Lehrbücher unterdrücken bewusst alles was aus den C-Bibliotheken kommt. 
Das macht auch vor printf und Konsorten nicht halt. Da werden dann mal 
eben für einfache Konsole - Ausgaben zig-mal new und delete verwendet, 
auch wenn man das auf dem ersten Blick nicht sieht. Auf einem PC spielt 
das keine Rolle aber im Embedded-Bereich sieht das schon wieder ganz 
anders aus. Da ist aber auch die Anzahl der vernünftig nutzbaren C++ 
Konstrukte deutlich kleiner.

von Armes Deutschland (Gast)


Lesenswert?

> Was ist C/C++? C und C++ sind zwei sehr unterschiedliche Sprachen.
so ist es.
> C lernt sich schnell, C++ vollständig zu lernen dauert lange da sehr
> komplex.
das Gleiche gilt für C; schon mal was von GTK+ gehört, etc.?
Da wünsche ich Dir viel Spaß mit dem schnellen Lernen von C.
Wenn Du von C++ auf C reduzierst, kann es sogar noch schwieriger werden, 
da eine Reihe von selbsternannten C++ Dozenten, die natürlich auch C 
"können" die Konzepte von C nicht verstanden haben. Es gibt jede Menge 
Müllcode und schlechte Beispiele im Netz - mit dem Ergebnis: C++ ist 
besser.
Für C gilt das Gleiche wie für C++
An der der Oberfläche kratzen kannst Du nämlich bei beiden Sprachen und 
bist dann der Experte für beide Sprachen ... wer es glaubt ...
Ein guter C++ Programmierer wird niemals ein guter C Programmierer sein 
und umgekehrt - beide Sprachen sind komplex und werden kontinuierlich 
weiterentwickelt.

von temp (Gast)


Lesenswert?

Armes Deutschland schrieb:
> Ein guter C++ Programmierer wird niemals ein guter C Programmierer sein
> und umgekehrt - beide Sprachen sind komplex und werden kontinuierlich
> weiterentwickelt.

Ein guter Programmierer ist vor allem einer der sein Problem in einer 
vernünftigen Zeit löst und dabei wartbaren und dokumentierten Code 
hinterlässt. Ständig den neusten Errungenschaften der Compilerbauer 
hinterher zu hecheln macht in meinen Augen keinen Sinn. Das man der 
ultimative Experte für eine Sprache ist wird höchstens an einer 
Hochschule bezahlt, ansonsten steht das Problem in Vordergrund und dabei 
ist manchmal weniger mehr. Klar machen die neusten Errungenschaften von 
C++ an manchen Stellen Sinn, es ist aber nicht so, dass es für irgend 
ein Problem eine zwingende Voraussetzung ist. Es gibt auch genügend 
Projekte die laufen über 10 und mehr Jahre, die kann man nicht alle paar 
Jahre neu machen nur weil es an der einen oder anderen Stelle heute 
etwas eleganter geht. C++ ist sicher an einigen Stellen komplex aber C? 
Komplex ist eventuell das was man damit macht, die Sprache selbst aber 
nicht.

Armes Deutschland schrieb:
> das Gleiche gilt für C; schon mal was von GTK+ gehört, etc.?
> Da wünsche ich Dir viel Spaß mit dem schnellen Lernen von C.

Was hat das Verstehen des gtk+ Codes mit dem Verstehen von C zu tun? 
Hier haben die Programmierer eine geballte Ladung komplexen Code 
abgeliefert der aber nicht durch die Sprache C so komplex ist sondern 
durch die Komplexität der Aufgabenstellung. Es wird wohl keine Sprache 
geben, mit der man so was für jeden sofort verständlich implementieren 
kann.

Ein ähnliches Beispiel für c++ ist wxWidget. Ich würde mir auch nicht 
erdreisten zu sagen die Entwickler kratzen nur an der Oberfläche, obwohl 
hier bei weitem nicht alle C++ Möglichkeiten ausgereizt sind. Das 
Projekt läuft aber auch schon deutlich länger als 10 Jahre.

von Armes Deutschland (Gast)


Lesenswert?

> Ein guter Programmierer ist vor allem einer der sein Problem in einer
> vernünftigen Zeit löst und dabei wartbaren und dokumentierten Code
> hinterlässt.
das sind die Basic Skills und da mag es sicherlich schon hapern.

> ständig den neusten Errungenschaften der Compilerbauer
> hinterher zu hecheln macht in meinen Augen keinen Sinn.
als Informatiker mußt Du aber auf dem neuesten Stand bleiben und kannst 
Dich nicht auf vorhandenen Wissen ausruhen - auch wenn diese Strategie 
natürlich ausreichen kann!

> Das man der ultimative Experte für eine Sprache ist wird höchstens an
> einer Hochschule bezahlt, ansonsten steht das Problem in Vordergrund und
> dabei ist manchmal weniger mehr.
Du mußt die Vorgaben Deiner Firma erfüllen und die meisten haben auch 
ganz klare Vorgaben bezüglich Tools und Compiler mit der die Aufgabe zu 
lösen ist.
Du hast nicht die freie Auswahl für die Lösung der Aufgabe als 
Angestellter.
Natürlich wird derjenige eingestellt, der nachweisbar mit Visual C++, 
etc. programmiert hat und erst wenn der nicht dabei ist wird weiter 
geschaut bzw. auf Freelancer oder Dienstleister ausgewichen.

> C++ ist sicher an einigen Stellen komplex aber C?
> Komplex ist eventuell das was man damit macht, die Sprache selbst aber
> nicht.
Du siehst C offenbar als abgeschlossene statische Sprache an ?!
Selbst Basic-Interpreter Sprachen findest Du auf dem Markt als 
Neuauflage bzw. Revival mit allerlei interessanten Neuerungen ... nur 
kein Schwein nutzt die natürlich wegen schlechter Doku, usw., usw.
Die Aufgaben ändern sich und damit auch die Möglichkeiten vorhandener 
Sprachen ... oder es entstehen ganz neue Sprachen so wie Java, Ruby, 
usw., um die Aufgabe überhaupt bestmöglich lösen zu können.

> Hier haben die Programmierer eine geballte Ladung komplexen Code
> abgeliefert der aber nicht durch die Sprache C so komplex ist sondern
> durch die Komplexität der Aufgabenstellung.
Hiermit gibst Du Dir die Antwort - es werden Erweiterungen geschaffen, 
um ansonsten nicht lösbare Aufgaben lösbar zu gestalten.
Gtk+ und wxWidget kann man natürlich komplett isoliert betrachten, aber 
da macht man es sich m.E. zu einfach - das ist Ansichtssache.

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
Noch kein Account? Hier anmelden.