Was ist der Unterschied zwischen College-Level- und Corporate-Programmierung? [geschlossen]

28

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?

vish213
quelle
24
In der Schule ging es nie darum, Ihnen die notwendigen Fähigkeiten zu vermitteln, um einen Job zu finden. Es geht darum, Ihnen die notwendigen Werkzeuge zu geben, um einen Job zu finden. Nichts kann die Erfahrung der realen Welt ersetzen, aber du brauchst immer noch die Schule.
Robert Harvey
5
Ich denke, der Titel stellt eine nützliche Frage dar, aber der Hauptteil der Frage bittet um eine Karriereberatung, die auf dieser Site nicht zum Thema gehört.
Bryan Oakley
Möglicherweise ist der Chat- Kanal für Programmers.SE (das Whiteboard) ein nützlicher Ort, um solche Fragen zu stellen - dort sind oft Leute mit einer Vielzahl von Fähigkeiten aus der Unternehmenswelt.
3
In Wartestellung??? Dies ist NICHT für Karriereberatung gefragt. Ja, diese Frage hat wenig mit Diskussion zu tun, ist aber beantwortbar. Es gibt so viele nette Antworten auf diese Frage, dass diese Frage nicht entfernt werden sollte oder so, es sei denn, Stackexchange verfügt nicht über genügend Arbeitsspeicher. Siehe die akzeptierten Antworten. Gibt es einen Karrieretipp?
Vish213

Antworten:

32

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.

kriss
quelle
Mit Corporate Programming meine ich die Programmierumgebung in Unternehmen. Schöne Antwort übrigens :-)
vish213
3
Gute Antwort @kriss. Ich möchte hinzufügen, dass es wichtig ist, das Sprechen in der Sprache des Kunden zu lernen, nicht in "Programmes". Dies hilft sowohl Ihrem Kunden als auch Ihnen.
Paddy Landau
38

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.

Karl Bielefeldt
quelle
Nach meiner Erfahrung strebt der Großteil des "Unternehmenscodes" nicht danach, verwaltbar, testbar und effizient zu sein, sondern ist gut genug, um das vorliegende Problem in kurzer Zeit zu lösen. In vielen Fällen ist der Code nicht einmal "richtig", sondern nur "richtig genug".
Simon
26

Diese Frage basiert auf einer ungültigen Annahme:

"Wie wechselt man eigentlich vom Anfänger zum Profi im Programmierbereich?"

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.

Steven A. Lowe
quelle
4
Das ist alles ein guter Rat, aber er beantwortet die Frage nicht wirklich, oder?
Bryan Oakley
6
Ich bin damit einverstanden, dass ein professioneller Programmierer nie aufhört zu lernen - aber wenn Sie nicht bezahlt werden, werden Sie professionell. Ich habe viele Amateure getroffen, die dafür bezahlt wurden, schrecklichen Code zu schreiben. Bei Professional geht es darum, den Job richtig zu machen - und den richtigen Job zu machen - und nicht darum, dafür bezahlt zu werden, Code zu produzieren.
Bevan
@Bevan Man kann auch behaupten, dass das der Unterschied zwischen einem "Programmierer" und einem "Entwickler" ist. Ich bin mir jedoch nicht sicher, wo ich darauf stehe.
Izkata
3
@Bevan: Das Wort "Profi" ist wirklich mehrdeutig; Die im Wiktionary-Eintrag aufgeführten Sinne umfassen sowohl "Von, die zu einem Beruf gehören oder diesem entsprechen" als auch "Das wird für Geld getan, insbesondere als Existenzgrundlage." Wenn Sie automatisch bezahlt werden, sind Sie ein professioneller Programmierer im letzteren Sinne, auch wenn er nichts über den ersteren aussagt.
Ruakh
12

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.

Telastyn
quelle
4

Würde ich durch das Erreichen eines C # -Vorschussniveaus profitieren?

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.

... höhere Levels für Unternehmen keine Rolle spielen, weil sie sich auf ihre Ausbildung verlassen, um zu lehren, wie die Dinge in der Unternehmenswelt funktionieren und mehr zu lernen, hilft mir nicht viel?

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.

Wie wechselt man eigentlich vom Lernenden zum Programmierprofi?

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.

Lernen Sie so lange, bis Sie perfekt sind, oder müssen Sie einer Firma beitreten, sobald die Grundlagen abgedeckt sind?

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.

Psychischer Rausch
quelle
1

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.

Marc
quelle
1

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

Wie wechselt man eigentlich vom Lernenden zum Programmierprofi?

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.

minusSeven
quelle
1

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.

SidJ
quelle
1
Wollte nur zusätzlich zum App Store hinzufügen, kannst du versuchen, dich freiwillig für ein kleines Projekt zu melden. Meine erste Aufgabe bestand darin, dem Arbeitsplatz meiner Mutter zu helfen, Urlaubs- und Überstundenberichte zu erstellen :)
SidJ
0

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.

Tim Spann
quelle
-1

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.

k3b
quelle