Ich habe gerade meinen Bachelor in IT abgeschlossen. Ich habe großes Interesse am Programmieren und möchte wirklich ein Profi darin sein. Abgesehen von den Universitätskursen habe ich jetzt selbst Programmieren (C #) gelernt (Programmieren auf Universitätsniveau ist zu einfach). Jetzt habe ich das Gefühl, dass ich etwas mehr Zeit brauche, um in der Nähe eines professionellen Programmierers zu sein. Einige meiner Senioren sagen jedoch, dass sich die Programmierung in der Unternehmenswelt von der Buchprogrammierung zu stark unterscheidet, sodass es sinnlos ist, Zeit zu verschwenden. (Sie sind selbst keine Programmierer, dies ist wahrscheinlich das, was sie gehört haben.)
Würde ich durch das Erreichen eines C # -Vorschussniveaus profitieren? oder da ein mittelmäßiges Niveau ausreicht, um Interviews zu unterbrechen, sind höhere Niveaus für Unternehmen unerheblich, da sie sich auf ihre Ausbildung verlassen, um zu lehren, wie die Dinge in der Unternehmenswelt funktionieren, und mehr zu lernen, hilft mir nicht viel? Bitte, wenn es einige professionelle Programmierer gibt, die helfen können, verspreche ich, dass dies etwas ist, was jeder Student, der sich für Programmierung interessiert, auf meiner Bühne fragen möchte. "Wie wechselt man eigentlich vom Anfänger zum Profi im Programmierbereich?" - Lernen Sie weiter, bis Sie perfekt sind, oder müssen Sie einer Firma beitreten, sobald die Grundlagen abgedeckt sind?
quelle
Antworten:
Es gibt viele Unterschiede zwischen der Programmierung in der Schule und in der realen Welt. Ich bin mir nicht sicher, ob es so etwas wie Corporate Programming gibt .
Abhängig davon, wo Sie tatsächlich arbeiten, gibt es große Unterschiede. Je nach Aufgabenstellung wird es auch große Unterschiede geben.
Es gibt jedoch noch einige häufige Probleme.
Der Code-Lebenszyklus in der realen Welt unterscheidet sich stark von den Hausaufgaben am College. Bei der Programmierung in der realen Welt arbeiten Sie normalerweise an einer vorhandenen Codebasis. Eines der größten Probleme besteht darin, zu vermeiden, dass die Kompatibilität mit dem von Ihren Kunden verwendeten Code (der abhängig von Ihrem tatsächlichen Arbeitsplatz und Fall interne oder externe Kunden sein kann) beeinträchtigt wird. Der von Ihnen geschriebene Code wird wahrscheinlich auch noch Jahre später verwendet (dies hängt davon ab, dass das Problem bei einer Website oder bei Code, der in einigen Geräten eingebettet ist, nicht identisch ist). Wenn Sie sich darauf vorbereiten möchten, müssen Sie für jeden Code Unit-Tests und Funktionstests schreiben. Das geschieht nicht immer mit Code aus der realen Welt, aber es sollte Ihnen das Leben sowohl im College als auch in der Unternehmenswelt vereinfachen.
Design / Anforderungen sind in der realen Welt normalerweise viel unübersichtlicher als in einer kollegialen Atmosphäre. Wenn Sie professionellen Code schreiben, muss jemand den Zweck des Codes definieren, und Sie bekommen nicht nur Spielzeugprobleme oder sogar bekannte Probleme. Es ist sehr wahrscheinlich, dass Sie früher oder später das Entwerfen übernehmen! Kunden wissen normalerweise nicht, was sie wollen (und selbst wenn sie wissen, was sie wollen, ist es möglicherweise nicht das, was sie brauchen), und Manager beschreiben normalerweise nur das Gesamtbild und überlassen den Programmierern viele Details und Auswahlmöglichkeiten. Abhängig von den angewendeten Methoden ("agiler" - "V-Zyklus" usw.) kann es früher oder später zu Entscheidungen und detaillierten Problemdefinitionen kommen. Sie sollten sich jedoch zumindest überlegen, ob Sie tatsächlich was tun ist erforderlich. Sie können auch in Betracht ziehen, die Anforderungen zu ändern, wenn die aktuelle Aufgabe zu schwer zu codieren oder ineffizient ist. Möglicherweise schreiben Sie sowieso etwas Unnützes oder übermäßig Kompliziertes, weil der Kunde oder Ihr Vorgesetzter Ihre Argumente nicht verstanden haben oder nicht mit Ihnen übereinstimmen. Sie sollten jedoch immer die Anforderungen in Frage stellen (dies ist eine Überlebensfähigkeit). Denken Sie auch daran, dass sich die Anforderungen während einer Aufgabe ändern können, und Sie sollten darauf vorbereitet sein.
Wenn du im College eine Aufgabe bekommst, solltest du normalerweise Code schreiben. In der Praxis prüfen Sie in der Regel zunächst, ob Sie stattdessen vorhandenen Code verwenden können: Wiederverwenden oder Ändern von Teilen eines Projekts, Verwenden oder Kaufen von Bibliotheken usw. Wenn Sie vorhandenen Code finden, der zu der Zuweisung passt, können Sie ihn letztendlich verwenden oder nicht (es können Wartungsprobleme, Leistungsprobleme, Urheberrechtsprobleme oder sogar Preisprobleme auftreten), aber die Option, vorhandenen Code wiederzuverwenden, sollte in der Regel in Betracht gezogen werden.
Es gibt offensichtlich viele andere Probleme im Zusammenhang mit Teamarbeit, Projektumfang usw. Die oben genannten Punkte sind jedoch Probleme, die Sie wahrscheinlich in Unternehmensumgebungen sehen, die Sie jedoch bei Ihren Hochschulaufgaben nicht berücksichtigen müssen.
quelle
Der Hauptunterschied zwischen Corporate-Programmierung und College-Programmierung ist die Skalierung. In der Schule bekommt man nie einen Auftrag, den eine Person nicht innerhalb eines Semesters starten und beenden kann. Als Fachmann können Sie mit Dutzenden anderer Programmierer an Software arbeiten, die jahrelang Bestand hat, ohne "fertig" zu sein.
Auf Mikroebene ist die Arbeit nicht so anders. Wenn es zu unterschiedlich wäre, wäre ein Hochschulabschluss für Unternehmen nichts wert. Aber es ist wie der Unterschied zwischen dem Backen von 12 Keksen und dem Backen von 12.000 Keksen. Sie können im ersteren wirklich gut und im letzteren völlig ahnungslos sein.
In der Schule geht es hauptsächlich darum, ein korrektes Programm zu erstellen . Bei der Arbeit reicht es nicht aus, wenn Ihre Software korrekt ist. Es muss wartbar, testbar, effizient sein und von mehreren Personen gleichzeitig bearbeitet werden können. Das ist etwas, was Schulen zu lehren versuchen, aber man kann es nicht wirklich vollständig lernen, außer indem man es tut.
quelle
Diese Frage basiert auf einer ungültigen Annahme:
Sie werden zum Profi, indem Sie dafür bezahlt werden. Sie hören nie auf, ein Anfänger zu sein. Wenn Sie dies tun, ist Ihre Karriere vorbei.
Geh in die Welt und besorg dir einen Job. Ihre Begeisterung für das Lernen ist von Vorteil.
quelle
Kurze Antwort, ja - die Unternehmenswelt ist ganz anders als in vielen Universitätsumgebungen.
Das wissen die Unternehmen. Wir gehen davon aus, dass Hochschulabsolventen nahezu nutzlos sind. Wenn Sie Zeit damit verbracht haben, selbst zu lernen, wie man programmiert, ist das großartig. Sie müssen nicht super genial sein, um sich zu bewerben, aber Sie müssen verstehen, dass es nicht schadet, wenn Sie mittelmäßig bleiben.
Sie werden nicht viel von dem lernen, was Sie im Geschäft brauchen. Bewerben Sie sich so schnell wie möglich und lernen Sie dabei selbstständig weiter.
quelle
Nein. Wir gehen davon aus, dass die Schüler mehrere Monate lang unbrauchbar sind, während wir sie einarbeiten. Der Abschluss ist nur ein Tischgeld. Ihre Begeisterung, Anweisungen zu lernen und zu befolgen, ist Ihr bestes Kapital. Wenn ich Hochschulabsolventen interviewe, möchte ich, dass ein Teamplayer die Gruppe nicht durch einen Hotshot stört.
Dies ist für jedes Unternehmen anders, aber im Allgemeinen haben größere Unternehmen eine strukturiertere Ausbildung. Dies ist Ihre erste große Entscheidung. Mögen Sie eine formelle Ausbildung und einen hohen Grad an Struktur? Wenn ja, suchen Sie Jobs, die das bieten.
Sie wechseln von einem Studenten zu einem Profi, indem Sie einen Job bekommen. Ich empfehle Senioren, über Ihre Schule eine Kooperation mit einem Unternehmen einzugehen. Dies ist der beste Weg, um Ihre Füße nass zu machen und die Angst vor einem neuen Beruf zu überwinden.
Besorgen Sie sich einen Job, warten Sie nicht. Es ist üblich, nervös zu sein, aber seien Sie ehrlich zu Ihren Fähigkeiten und verbergen Sie nicht Ihre Begeisterung, mehr zu lernen. Es ist üblich, Unternehmen mehrmals zu wechseln, insbesondere zu Beginn Ihrer Karriere.
Herzlichen Glückwunsch zum Abschluss Ihres Studiums und viel Glück auf Ihrem Weg zum professionellen Programmieren.
quelle
Ich würde sagen, der grundlegende Unterschied zwischen der Programmierung auf Unternehmens- und College-Ebene besteht darin, dass die Programmierung auf Unternehmensebene viel mehr ein gemeinschaftlicher Prozess ist als das, was Sie in einer Klassenumgebung vorfinden werden, und der Schwerpunkt liegt viel mehr auf der Produktentwicklung als auf pädagogischem Lernen.
quelle
Wenn Sie wirklich damit rechnen, dass die Corporate-World-Programmierung eine fortgeschrittene Programmierkultur auf hohem Niveau sein wird, werden Sie meiner Meinung nach eher enttäuscht sein. Beim Programmieren in der Unternehmenswelt geht es mehr darum, Verantwortung für den von Ihnen geschriebenen Code zu übernehmen und ihn wartbar zu halten.
Aber zu deiner Frage
Dies hat nichts mit der Programmierung auf Unternehmens- und College-Ebene zu tun, sondern mit der Programmierung im Allgemeinen. Wenn Sie wirklich lernen möchten, Ihre eigene Software zu erstellen, etwas, das Sie erstellen möchten, oder mit der Arbeit in Open-Source-Softwareprojekten beginnen möchten. Stellen Sie Fragen, denen Sie gegenüberstehen. Und lese den Code anderer Leute.
quelle
Karls Antwort zur Größenordnung ist genau richtig. Sie müssen nicht ein Array von 15 Zahlen sortieren, sondern einen Datensatz von beispielsweise einer Million Kontonummern sortieren.
Eine Datenstruktur- und Algorithmusklasse wird Ihnen wahrscheinlich ein Dutzend verschiedene Sortiermöglichkeiten aufzeigen. In einer realen Anwendung geben Sie wahrscheinlich eine order by-Klausel ein und lassen sie von der Datenbank optimieren.
Um sich auf die Geschäftswelt vorzubereiten, gibt es zwei Möglichkeiten: a) Wenn Sie ein Praktikum machen, können Sie anderen bei der Arbeit zuschauen, auch wenn Sie schlecht oder gar nicht bezahlt sind. b) Mit all den App Stores in der Nähe können Sie versuchen, eine App in Apple / Google / MS Stores zu schreiben und zu veröffentlichen. Auf diese Weise können Sie die Arbeitsabläufe besser verstehen, den Nutzen von Tests, die Notwendigkeit, die richtige Umgebung und die richtigen Tools einzurichten und vieles mehr.
quelle
Das Wichtigste, was Sie brauchen, um in der Unternehmensprogrammierung erfolgreich zu sein, ist Geduld und die Fähigkeit, mit Benutzern zu kommunizieren, die die Technologie nicht verstehen. Stellen Sie sicher, dass Sie Unit-Tests und Versionskontrolle verwenden, sorgfältig debuggen und die ordnungsgemäße Ablaufverfolgung / Protokollierung verwenden. Die Sprachen mögen sich ändern, aber es wird immer funktionieren, ruhig zu bleiben und sorgfältig nach Problemen zu suchen.
quelle
Neben der hervorragenden Antwort, die "Corporate Programming" liefert, geht es auch um Anforderungen, die nicht klar sind oder sich ändern.
Was würden Sie tun, wenn Ihr Professor die Anforderungen Ihrer Programmier-Hausaufgaben zwei Tage vor der Abgabe ändert?
In der Industrie ist dies durchaus üblich.
quelle