C++ Interview Fragen
-
volkard: ja, bin deiner meinung, aber wird sich wahrscheinlich nicht besonders auf die laufzeit auswirken

die lange deklaration der schleife ist auch gewoehnungsbeduerftig

-
Was wird sich nicht besonders auf die Laufzeit auswirken? Das /2 oder das strlen() im Schleifenkopf?
Das strlen() im Schleifenkopf ist übel. Das wird der Compiler nicht wegoptimieren können...
O(N^2)
-
Jetzt sagt Arcoth gleich, "Menno, wer im Info-Studium nicht wenigstens so viel rafft, daß er einen strrev inplace nicht in O(n) packt, der ist arbeitsmarklicher Sondermüll."
Nein, wer im Info-Studium nicht wenigstens so viel rafft, dass er beweisen kann dass 3SAT NP-vollständig ist, hat einfach nicht aufgepasst. Und wenn jemand nicht aufpasst, wieso sollte ihn dann jemand schulen wollen?
Wenn jemand strlen in den Schleifenkopf schmeisst, dann hat er kein Auge für
kleinewichtigeDetailsDinge. Du hast es - hast mal erzählt, du hättest in einem kleinen Code-Schnipsel direkt den Fehler gesehen, an dem sich deine Kameraden den Kopf zerbrochen haben (im letzten Ausdruck vonforwurden zwei Integrale dividiert). Und wenn deine Buben das nicht gesehen haben, ist's problematisch, gell.Er kanns sich reinknallen, dem kann ich am Donnerstag eine neue Zeitgeisttechnologie vor den Latz knallen und ein gutes Handbuch und am Montag schon ist er produktiv.
So Erfahrungen hast du gemacht, gell? Erzähl'!
-
Arcoth schrieb:
Jetzt sagt Arcoth gleich, "Menno, wer im Info-Studium nicht wenigstens so viel rafft, daß er einen strrev inplace nicht in O(n) packt, der ist arbeitsmarklicher Sondermüll."
Nein, wer im Info-Studium nicht wenigstens so viel rafft, dass er beweisen kann dass 3SAT NP-vollständig ist, hat einfach nicht aufgepasst. Und wenn jemand nicht aufpasst, wieso sollte ihn dann jemand schulen wollen?
Als ich zur Fachschaft kam sagten mir die alten Hasen "Musst keinen eigenen Rechner haben. Musst auch nicht programmieren lernen wie ein Affe. Informatik ist was viel höherwertiges." Was verdammt ist "Informatik"? Ich studiere hier einen Scheiß und weiß nicht, was es ist.
Später begriff ich, daß die alten Hasen deswegen nicht programmieren können müssen, weil sie höhere Aufgaben machen, nämlich wie Datenbankdesign und so. Alles klar. "Informatiker" machen die Pläne und hergelaufene Polen/Chinesen/Inder proggern das aus.
Ein wenig später begriff ich, daß die alten Fachschaftshasen deswegen alte Hasen sind, weil sie ihr Studium nicht hinkriegen, es sind "alte" Hasen. Aber sie hatten voll viel Ahnung, konnten Linux-Rechner aufsetzen und so, das war nir damals noch fremd.
Hab mich ein wenig von ihnen getrennt. Hab's ihnen nicht so geglaubt. Nee, wer nicht wenigstens rudimentär proggern kann, der kann kein Gefühl dafür haben, wie so Sachen skalieren. So würde ich es heute ausdrücken. Damals hatte ich es einfach nur fett im Gefühl, daß jemand, der überhaupt gar nicht proggern kann, daß der auch keine Projektverantwortung in Sachen Software haben darf.
"dass 3SAT NP-vollständig ist"
Ähm, das war mir bisher schnuppe.
Würde es eines Deiner Projekte besser machen? Würde es das Maut-Dilemma verhindert haben, wenn die Eintscheidungsträger das wüßten?edit: Weil *Du* es wichtig findest, schaffe ich mir das gerade mal noch mal an.
Arcoth schrieb:
Wenn jemand strlen in den Schleifenkopf schmeisst, dann hat er kein Auge für
kleinewichtigeDetailsDinge. Du hast es - hast mal erzählt, du hättest in einem kleinen Code-Schnipsel direkt den Fehler gesehen, an dem sich deine Kameraden den Kopf zerbrochen haben (im letzten Ausdruck vonforwurden zwei Integrale dividiert). Und wenn deine Buben das nicht gesehen haben, ist's problematisch, gell.int a,b,n; … for(double x=a;x<=b;x+=(b-a)/n;//oder so, aber ähnlichDie beiden verzweifelten nen Tag lang und mehr und ich sah es im Augenschein. Nuja, der eine ist voll aufgestiegen und der andere nicht. Ob man diesen Popelfehler schon früh im Studium erkennt, sollte kein Maß sein normalerweise. Kinkerlitzchen, darauf fällt jeder mal rein, einmal, zweimal, zehnmal, hat mit der eingespielten Produktivität wenig zu tun.
edit: Haha! Ich bin sogar der Vollidiot vor der Herrn! Was ich schon für viele Fehler gemacht habe! Kannste Dir gar nicht vorstellen. Diverse Programmiersprachen auch noch. Gelegentlich halte ich Seminare, wo die Teilnehmer am Rechner üben. Da meldet sich jemand und sagt einen halben Satz, sattt mich erstmal herkommen zu lassen (im Forum wäre das Stammeln und den Code nicht zeigen) und ich sage ihm, wo er sich vertippt hat. Das kann ich nur, weil ich mehr als hundert mal diesen Fehler auch gemacht habe.
Arcoth schrieb:
Er kanns sich reinknallen, dem kann ich am Donnerstag eine neue Zeitgeisttechnologie vor den Latz knallen und ein gutes Handbuch und am Montag schon ist er produktiv.
So Erfahrungen hast du gemacht, gell? Erzähl'!
Absolut. Hab immer am Freitag schon anschaffen können. Mein Problem, wie ich es mir in den Kopf knalle, der Auftraggeber kriegt den "volkard kann es Dir besorgen".
-
edit: Weil *Du* es wichtig findest, schaffe ich mir das gerade mal noch mal an.
Ich finde es absolut irrelevant für das Proggern. Nur mache ich folgende (bitte zu korrigierende Annahmen):
- Wenn jemand sich für ein Fach begeistern kann, geht er auf die Uni
- Wenn er immer noch vom Fach begeistert ist, begeistert genug nicht abzubrechen, dann lernt er, was er lernen soll (und will)
- Genug gelernt, um das Abschlussexamen zu bestehen, hat jemand, der auch das Cook-Levin Theorem beweisen kann (da so etwas ja zu den Basislektionen in Komplexitätstheorie aka theoretischer Informatik gehört)
- Wenn jemand auf der Universität etwas gelernt hat, verlernt er es nicht so schnell.
- Du bist Fuffzig, daher hast du eine Rechtfertigung für den vorhergehenden Stichpunkt.Edit:
Absolut. Hab immer am Freitag schon anschaffen können. Mein Problem, wie ich es mir in den Kopf knalle, der Auftraggeber kriegt den "volkard kann es Dir besorgen".
:'D
-
Arcoth schrieb:
Du bist Fuffzig, daher hast du eine Rechtfertigung für den vorhergehenden Stichpunkt.
Und Du bist Teenie, und wir sind alle gottsfroh, daß Du uns die Welt erklärst. Halleluja!
-
Arcoth schrieb:
edit: Weil *Du* es wichtig findest, schaffe ich mir das gerade mal noch mal an.
Ich finde es absolut irrelevant für das Proggern. Nur mache ich folgende (bitte zu korrigierende Annahmen):
- Wenn jemand sich für ein Fach begeistern kann, geht er auf die UniEr studiert "Computer", weil er computerbegeistert ist, also computerspielsüchtig. BEGEISTERT! Begeisterung ist ein echter Grund, was zu studieren,
Rest Deiner Darlegung ist damit gestorben.
-
Arcoth schrieb:
- Genug gelernt, um das Abschlussexamen zu bestehen, hat jemand, der auch das Cook-Levin Theorem beweisen kann (da so etwas ja zu den Basislektionen in Komplexitätstheorie aka theoretischer Informatik gehört)
Das scheint mir ziemlich verdreht. Warum sollte es für das Abschlussexamen (was auch immer das genau sein soll) genügen, wenn man einen Beweis aus einer Grundvorlesung noch kann? Noch dazu genau den!? Es gibt so viele interessante Beweise bei denen man auch strukturell viel lernt. Aber ausgerechnet der? Das ist doch ein typischer Fall von Aussage zentral und wichtig, Beweis absolut irrelevant. In dem Beweis steckt im Prinzip nur eine einzige kleine Idee und der Rest ist technisches Handwerk. Ich sehe nicht, was es bringen soll gerade diesen Beweis zu kennen.
Versteh mich nicht falsch, ich will damit nicht das Resultat klein machen. Als das bewiesen wurde war es ein riesiger Durchbruch, weil bis dahin nicht klar war, ob es solche Probleme überhaupt gibt und wie man denn beweisen könnte, dass es eins gibt. Wenn man aber schon weiß, dass die Aussage stimmt und was die Beweisidee ist, dann bleibt (nach nunmehr 40 Jahren in denen das gereift ist) so arg viel nicht mehr übrig.
Du musst auch sehen, dass theoretische Informatik zwar Pflichtfach ist, aber einen durchaus großen Anteil (wahrscheinlich sogar die Mehrheit) der Leute echt nicht interessiert. Die wollen was anderes machen und brauchen davon maximal Bruchteile. Also sitzen sie das soweit ab, bestehen es und vergessen den Kram dann wieder. Genauso wie ich mal was über Datenbanken und Kommunikationsnetze oder Rechnerarchitektur gelernt hab... nur weil ich mich für Informatik begeistere heißt das doch nicht, dass ich allen Mist, der mir irgendwann mal erzählt wurde im Kopf behalte.
-
Compiler-Optimierung sind nichts gegen handoptimierten Code und damit meine ich nicht immer Assembler sondern z.B. die Ausnutzung der Caches durch Anpassung der Algorithmen. Hier mal ein Vortrag wie man das auch zu Teilen automatisieren kann. Wer per Hand für den jeweiligen CPU-Typ optimiert, der kann noch mal bis zum Faktor 30 an Geschwindigkeit rausholen. Das macht natürlich nur Sinn wenn der Anwendungsteil schnell sein muss/soll.
Vertraut nicht zu viel auf die Optimierung des Compilers, selbst das Hirn einschalten ist oft schneller.
-
Arcoth schrieb:
- Wenn jemand auf der Universität etwas gelernt hat, verlernt er es nicht so schnell.
*kopfkratz* Du musst auf einer anderen Uni gewesen sein als ich. Ach richtig, auf keiner. So macht es Sinn

-
SehrSchnellesRechnen schrieb:
Benötigt Falsh, DAS Beispiel fuer schlechte Programmierung.
-
was auch immer das genau sein soll
Staatsexamen, Magisterprüfung, Diplomprüfung, ...
durchaus großen Anteil (wahrscheinlich sogar die Mehrheit) der Leute echt nicht interessiert.
Wie was? Wie kann das sein, das ist doch (mMn.) sehr interessant?
Will der Großteil einfach nur Programmieren lernen?, aber warum gehen die dann auf die Uni und nicht auf eine FH oder so? Also ich finde die Theorie spannend, und deswegen werde ich auf die Uni gehen, nicht weil ich einfach ein Papier mit der Bestätigung brauche, dass ich was lernen kann. Im Prinzip wäre ja dann das Studium genau wie die Schule wieder nur so eine "vergiss gerne zu 80-90% was du hier lernst, geht ja darum dass du was lernen kannst"
-
Arcoth schrieb:
Im Prinzip wäre ja dann das Studium genau wie die Schule wieder nur so eine "vergiss gerne zu 80-90% was du hier lernst, geht ja darum dass du was lernen kannst"

Das ist bei den meisten Studienrichtungen auch so.
-
Arcoth schrieb:
was auch immer das genau sein soll
Staatsexamen, Magisterprüfung, Diplomprüfung, ...
durchaus großen Anteil (wahrscheinlich sogar die Mehrheit) der Leute echt nicht interessiert.
Wie was? Wie kann das sein, das ist doch (mMn.) sehr interessant?
Will der Großteil einfach nur Programmieren lernen?,Auf keiner Hochschule lernt man Programmieren. Das muss man zu Hause selber lernen.
Der Großteil will einfach nur bestehen. Es kommt soo viel Stoff rein, daß man heilfroh ist, überhaupt eine 4 zu bekommen. Grundlagenvorlesungen mit 70% Durchfallern sind nicht selten. Man stellt auf ein Art Durchzugslernen um, ohne tieferes Verständnis paukt man Aufgaben für die nächste Klausur und vergißt das Thema sofort nach der Klausur. Nicht zuletzt auch, weil gleich in den ersten Vorlesungen deutlich gemacht wird, wie alt oder praxisirrelevant der Stoff ist.
Arcoth schrieb:
aber warum gehen die dann auf die Uni und nicht auf eine FH oder so?
Auf der FH ist es nicht wirklich anders, sondern nur allgemein leichter.
Arcoth schrieb:
Also ich finde die Theorie spannend, und deswegen werde ich auf die Uni gehen, nicht weil ich einfach ein Papier mit der Bestätigung brauche, dass ich was lernen kann. Im Prinzip wäre ja dann das Studium genau wie die Schule wieder nur so eine "vergiss gerne zu 80-90% was du hier lernst, geht ja darum dass du was lernen kannst"

Zeitweise wirst Du die 90% für untertrieben halten. :p
Prof liest über nen Excess-28-Code??? Richtig wäre Excess-128-Code, aber Druckfehler im Script und er weigert sich, über Grundlagendinge nachzudenken. Hinweis, daß es nur 128 heißen kann, lehnt er nach Blick ins Skriptum kategorisch ab, natürlich hieße es 28. Und er "liest" tatsächlich, er liegt wie ein Schluck Wasser auf dem Pult und liest gelangweit das Skrip Wort für Wort vor, sagt sogar bei jedem Umblättern die neue Seitenzahl an, damit die Studenten mitlesen können.
http://www.mathcs.emory.edu/~cheung/Courses/255/Syllabus/5-repr/excess-n.html Oh, Wikipedia kennt ihn nicht, so irrelevant ist er. Helau.
Und in der Prüfung kommen dann so Fragen wie "Was sind die vier grundlegenden Operationen eines Prozessors?" und im Skript auf Seite 32 war eine total sinnlose Tabelle in der sie aufgezählt waren "Eingabe, Ausgabe, Sortieren, Kopieren" oder sowas. Will man Einsen schreiben, muß man auch mal bewußt Schwachsinn hinschreiben. Hoffe, das motiviert Dich ein Bißchen.
-
Arcoth schrieb:
Wie was? Wie kann das sein, das ist doch (mMn.) sehr interessant?
Deine Meinung nach. Es gibt verschiedene Typen von Menschen und Informatikern. Wenn du auf theoretische Informatik stehst, dann werden dir Compilerbau und aus Gattern eine ALU bauen keinen Spaß bringen, wo andere sagen man muss einfach wissen wie ein PN-Übergang funktioniert. Du solltest nicht Leute für dumm halten die andere Interessen oder Wissen haben als du. Der Trick ist gerade Leute verschiedener Qualifikationen zu kombinieren.
-
SehrSchnellesRechnen schrieb:
Compiler-Optimierung sind nichts gegen handoptimierten Code und damit meine ich nicht immer Assembler sondern z.B. die Ausnutzung der Caches durch Anpassung der Algorithmen. Hier mal ein Vortrag wie man das auch zu Teilen automatisieren kann. Wer per Hand für den jeweiligen CPU-Typ optimiert, der kann noch mal bis zum Faktor 30 an Geschwindigkeit rausholen. Das macht natürlich nur Sinn wenn der Anwendungsteil schnell sein muss/soll.
Vertraut nicht zu viel auf die Optimierung des Compilers, selbst das Hirn einschalten ist oft schneller.
Was soll der Blodsinn? Hab Dir doch genau dazu schon geantwortet. Lies bitte vorher die anderen Postings im Thread.
-
Arcoth schrieb:
Wie was? Wie kann das sein, das ist doch (mMn.) sehr interessant?
Ja, aber es gibt auch Leute, die wollen Roboter bauen, Perzeptions- und Steuerungssysteme für autonome Autos entwerfen, drahtlose adhoc-Kommunikationsstrukturen für Krisensituationen etc. Das ist auch alles interessant, aber es benötigt halt quasi nix aus den Grundlagenvorlesungen (außer vielleicht etwas Automaten und Grammatiken). Es gibt so vieles was interessant ist, da muss man einfach selektieren.
Ich muss allerdings sagen, dass ich derart negative Erfahrungen wie volkard nicht gemacht habe (weder im Hinblick auf den Stoff, noch bezüglich der Vorlesungen). Auf meine Nachfragen wurde meist hinreichend eingegangen, und ich versuche das auch selber so zu halten und einfach nur "Skript vorlesen" kam bei mir, wenn auch nicht in dieser krassen Form allerhöchstens einmal vor (und das war das gescheiterte Experiment einen Prof der E-Technik studiert hat, viele Jahre als Maschinenbauer gearbeitet hat und nun einen Lehrstuhl für Robotik hat eine Grundlagenvorlesung, deren Stoff er weder kennt noch braucht, halten zu lassen. Der Mann hat sich redlich bemüht, aber dass das nicht geklappt hat war nicht wirklich seine schuld.)
-
In springe mal schnell zur Verteidigung der Lehrkräfte ein. Es geht nämlich auch anders rum.
Man gibt sich wirklich Mühe das Thema interessant aufzuarbeiten. Und am Ende interessiert es die Studenten null. Gucken ein nur mit großen Augen an wenn man simple Fragen stellt, um den Stoff in der Übung gemeinsam zu erarbeiten. Die meisten wollen den Stoff einfach nur vorgeklatsch bekommen, und wenn sie es nicht verstehen ist der Prof schuld. Das ist diese moderne "Knopfdruck"-Mentalität.
Es kostet alles Zeit wenn man sowas vorbereitet, und es ist nicht die Hauptaufgabe Lehre zu halten. Irgendwann packt man dann sein Kram zusammen und liest wieder nur vor. Heißt ja auch so: Vorlesung.
-
volkard schrieb:
[...]Zeitweise wirst Du die 90% für untertrieben halten. :p
Prof liest über nen Excess-28-Code??? Richtig wäre Excess-128-Code, aber Druckfehler im Script und er weigert sich, über Grundlagendinge nachzudenken. Hinweis, daß es nur 128 heißen kann, lehnt er nach Blick ins Skriptum kategorisch ab, natürlich hieße es 28. Und er "liest" tatsächlich, er liegt wie ein Schluck Wasser auf dem Pult und liest gelangweit das Skrip Wort für Wort vor [...]Ganz plötzlich habe ich eine extrem hohe Meinung von meinen Professoren

Über die Hälfte "könnten" ihre Vorlesung verkaufen.Bin erst im 2. Semester, also mal sehen was noch kommt

-
Ich glaube ja das hat sich Volkard nur ausgedacht
