Quelle est la différence entre les programmes collégiaux et les programmes d'entreprise? [fermé]

28

Je viens de terminer mon baccalauréat en informatique. J'ai un grand intérêt pour le codage et je veux vraiment être un professionnel. Maintenant, en dehors des cours collégiaux, j'ai appris la programmation (C #) par moi-même (la programmation au niveau collégial est trop basique). Maintenant, je sens que j'ai besoin d'un peu plus de temps pour être proche d'un programmeur professionnel. Mais certains de mes aînés disent que la programmation du monde de l'entreprise est trop différente de la programmation livresque, il est donc inutile de perdre du temps. (Ce ne sont pas des programmeurs eux-mêmes, c'est probablement ce qu'ils ont entendu).

Aurais-je avantage à atteindre un niveau avancé de C #? ou comme un niveau médiocre est suffisant pour briser les entretiens, les niveaux supérieurs n'ont pas d'importance pour les entreprises car elles comptent sur leur formation uniquement pour enseigner comment les choses fonctionnent dans le monde de l'entreprise et en apprendre plus ne m'aidera pas beaucoup? S'il vous plaît, s'il y a des programmeurs professionnels qui peuvent vous aider, je promets que c'est quelque chose que tous les étudiants intéressés par la programmation veulent demander à mon stade. "Comment passez-vous réellement de l'apprenant au professionnel dans le domaine de la programmation?" - continuer à apprendre jusqu'à ce que vous soyez parfait ou rejoindre une entreprise est indispensable une fois les bases couvertes?

vish213
la source
24
L'école n'a jamais été de vous donner les compétences nécessaires pour trouver un emploi. Il s'agit de vous donner les outils nécessaires pour trouver un emploi. Rien ne remplace l'expérience du monde réel, mais vous avez encore besoin d'école.
Robert Harvey
5
Je pense que le titre présente une question utile, mais le corps de la question demande des conseils de carrière qui sont hors sujet sur ce site.
Bryan Oakley
Vous pouvez trouver le canal de discussion pour Programmers.SE (le tableau blanc) comme un endroit utile pour poser de telles questions - il y a souvent des gens avec un large éventail de compétences du monde de l'entreprise.
3
En attente??? Ce n'est PAS demander des conseils de carrière. Oui, cette question concerne peu la discussion, mais elle peut être résolue. Il y a tellement de bonnes réponses à cette question, en aucun cas cette question ne devrait être supprimée ou quelque chose à moins que stackexchange ne manque de mémoire. Voir les réponses acceptées. Est-ce que ça donne des conseils de carrière ??
vish213

Réponses:

32

Il existe de nombreuses différences entre la programmation à l'école et dans le monde réel. Je ne suis pas sûr qu'il existe une chose telle que la programmation d'entreprise .

Selon l'endroit où vous travaillez, il y aura d'énormes différences. Il y aura également d'énormes différences selon les tâches à accomplir.

Cependant, il existe encore des problèmes communs.

  • le cycle de vie du code du monde réel est très différent des devoirs du collège. Dans la programmation du monde réel, vous travaillez généralement sur une base de code existante. L'un des plus grands problèmes est d'éviter de rompre la compatibilité avec le code utilisé par vos clients (qui peuvent être des clients internes ou externes, selon votre lieu de travail et votre cas). Le code que vous écrivez sera également probablement utilisé pendant des années par la suite (cela dépend: le problème n'est pas le même pour un site Web ou un code intégré à certains appareils). Si vous voulez vous y préparer, prenez l'habitude d'écrire des tests unitaires et des tests fonctionnels pour chaque morceau de code. Cela ne se fait pas toujours avec le code du monde réel, mais cela devrait vous simplifier la vie au collège et dans le monde des affaires.

  • la conception / les exigences sont généralement beaucoup plus floues dans le monde réel que dans une atmosphère collégiale. Lors de l'écriture de code professionnel, quelqu'un doit définir le but du code, et on ne vous donne pas simplement des problèmes de jouets ou même des problèmes bien connus. Il est très probable que tôt ou tard ce soit vous qui fassiez la conception! Les clients ne savent généralement pas ce qu'ils veulent (et même lorsqu'ils savent ce qu'ils veulent, ce n'est peut-être pas ce dont ils ont besoin), et les gestionnaires décrivent généralement l'ensemble, laissant de nombreux détails et choix aux programmeurs. Selon les méthodes suivies ("agile" -vs- "V cycle", etc.), les choix et la définition détaillée des problèmes peuvent se produire tôt ou tard, mais vous devez au moins garder un esprit ouvert et vous demander si vous faites réellement quoi est requis. Vous pouvez également envisager de modifier les exigences si la tâche en cours est trop difficile à coder ou est inefficace. Vous pouvez finir par écrire quelque chose d'inutile ou de trop compliqué de toute façon parce que le client ou votre manager n'a pas compris votre point de vue ou qu'il n'est pas d'accord avec vous. Pourtant, vous devez toujours remettre en question les exigences (c'est une compétence de survie). Gardez également à l'esprit que les exigences peuvent changer au milieu d'une tâche, et vous devriez être prêt pour cela.

  • au collège, lorsque vous obtenez un devoir, vous êtes généralement censé écrire du code. Dans le monde réel, vous commencez généralement par vérifier si vous pouvez utiliser le code existant à la place: réutiliser ou modifier des parties d'un projet, utiliser ou acheter des bibliothèques, etc. Si vous trouvez un code existant qui correspond à la tâche, vous pouvez finir par l'utiliser ou non (il peut y avoir des problèmes de maintenance, des problèmes de performances, des problèmes de droits d'auteur ou même des problèmes de prix), mais la possibilité de réutiliser le code existant doit généralement être envisagée.

Il existe évidemment de nombreux autres problèmes liés au travail d'équipe, à l'échelle du projet, etc.

kriss
la source
Par programmation d'entreprise, je voulais dire l'environnement de programmation dans les entreprises. Nice answer btw :-)
vish213
3
Bonne réponse @kriss. J'ajouterais qu'il est important d'apprendre à parler dans la langue du client, pas dans les "programmes". Cela aidera à la fois votre client et vous.
Paddy Landau
38

La principale différence entre la programmation d'entreprise et la programmation collégiale est l'échelle. À l'école, vous n'obtenez jamais un devoir qu'une personne ne peut pas commencer et terminer au cours d'un semestre. En tant que professionnel, vous pourriez travailler avec des dizaines d'autres programmeurs sur des logiciels qui durent des années sans être «terminés».

Au niveau micro, le travail n'est pas si différent. Après tout, si c'était trop différent, un diplôme universitaire n'aurait aucune valeur pour les entreprises. Mais c'est un peu comme la différence entre la cuisson de 12 biscuits et la cuisson de 12 000 cookies. Vous pouvez être vraiment bon dans le premier et complètement désemparé dans le second.

À l'école, vous êtes principalement soucieux de faire un bon programme. Au travail, votre logiciel n'est pas suffisant. Il doit être maintenable, testable, efficace et pouvoir être utilisé simultanément par plusieurs personnes. C'est quelque chose que les écoles essaient d'enseigner, mais vous ne pouvez pas vraiment l'apprendre complètement, sauf en le faisant.

Karl Bielefeldt
la source
D'après mon expérience, la majorité du «code d'entreprise» ne cherche pas à être maintenable, testable et efficace, mais plutôt assez bonne pour résoudre le problème à la main en peu de temps. Dans de nombreux cas, le code n'est même pas «correct», mais seulement «suffisamment correct».
Simon
26

Cette question est basée sur une hypothèse non valide:

"Comment passez-vous réellement de l'apprenant au professionnel dans le domaine de la programmation?"

Vous devenez un professionnel en étant payé pour le faire. Vous n'arrêtez jamais d' être un apprenant. Si vous le faites, votre carrière est terminée.

Sortez dans le monde et trouvez un emploi. Votre enthousiasme pour l'apprentissage est un atout.

Steven A. Lowe
la source
4
C'est tout un bon conseil, mais cela ne répond pas vraiment à la question, n'est-ce pas?
Bryan Oakley
6
Je suis d'accord qu'un programmeur professionnel n'arrête jamais d'être un apprenant - mais pas que le fait d'être payé fait de vous un professionnel. J'ai rencontré de nombreux amateurs qui ont été payés pour écrire un code terrible et terrible. Professionnel consiste à bien faire le travail - et à faire le bon travail - pas à être payé pour produire du code.
Bevan
@Bevan On peut également affirmer que c'est la différence entre un "programmeur" et un "développeur". Je ne sais pas où j'en suis, cependant.
Izkata
3
@Bevan: Le mot "professionnel" est véritablement ambigu; les sens énumérés dans l'entrée de Wiktionnaire incluent à la fois "De, se rapportant aux normes (généralement élevées) d'une profession" ou "conformément à celles-ci" et "Qui est effectué pour de l'argent, en particulier comme moyen de subsistance". Être payé automatiquement fait de vous un programmeur professionnel dans ce dernier sens, même s'il ne dit rien sur le premier.
ruakh
12

Réponse courte, oui - le monde de l'entreprise est très différent de celui de nombreux environnements universitaires.

Cela dit, les entreprises le savent. Nous nous attendons à ce que les diplômés universitaires soient presque inutiles. Si vous avez consacré du temps à votre propre apprentissage de la programmation, c'est parfait. Vous n'avez pas besoin d'être super génial pour postuler, mais comprenez que rester médiocre ne le coupera pas.

Vous n'apprendrez pas beaucoup de ce dont vous avez besoin en affaires par vous-même. Postulez dès que possible tout en continuant à apprendre par vous-même.

Telastyn
la source
4

Aurais-je avantage à atteindre un niveau avancé de C #?

Non. Nous nous attendons à ce que les étudiants soient inutiles pendant plusieurs mois pendant que nous les introduisons. Le diplôme n'est que des enjeux de table. Votre enthousiasme à apprendre et à suivre les instructions est votre meilleur atout. Lorsque j'interroge des diplômés d'université, je veux un joueur d'équipe qui ne s'intègre pas et qui ne perturbe pas le groupe.

... les niveaux supérieurs n'ont pas d'importance pour les entreprises car elles comptent sur leur formation uniquement pour enseigner comment les choses fonctionnent dans le monde de l'entreprise et en savoir plus ne m'aidera pas beaucoup?

C'est différent pour chaque entreprise, mais en général, les grandes entreprises auront une formation plus structurée. C'est votre première grande décision, vous aimez la formation formelle et un haut degré de structure? Si c'est le cas, recherchez des emplois qui offrent cela.

Comment passez-vous réellement de l'apprenant au professionnel dans le domaine de la programmation?

Vous passez d'un étudiant à un pro en obtenant un emploi. Je recommande aux aînés d'obtenir une coopérative avec une entreprise par l'entremise de votre école. C'est la meilleure façon de vous mouiller les pieds et de surmonter l'anxiété d'une nouvelle profession.

Continuez à apprendre jusqu'à ce que vous soyez parfait ou que vous deviez rejoindre une entreprise une fois que les bases sont couvertes?

Obtenez un emploi, n'attendez pas. Il est courant d'être nerveux, mais soyez honnête au sujet de vos compétences et ne cachez pas votre enthousiasme pour en savoir plus. Il est courant de changer d'entreprise plusieurs fois, surtout au début de sa carrière.

Félicitations pour avoir terminé votre diplôme et bonne chance dans votre cheminement vers une programmation professionnelle.

Psychic Rush
la source
1

Je dirais que la différence fondamentale entre la programmation au niveau de l'entreprise et au niveau collégial est que la programmation au niveau de l'entreprise est beaucoup plus un processus collaboratif que ce que vous rencontrerez en classe et l'accent est beaucoup plus mis sur le développement de produits que sur l'apprentissage pédagogique.

Marc
la source
1

Si vous vous attendez vraiment à ce que la programmation du monde de l'entreprise soit une culture de programmation avancée de haut niveau, je pense que vous serez plutôt déçu. La programmation dans le monde de l'entreprise consiste davantage à être en mesure de prendre la responsabilité du code que vous écrivez et de le maintenir maintenable.

Mais à ta question

Comment passez-vous réellement de l'apprenant au professionnel dans le domaine de la programmation?

Cela n'a rien à voir avec la programmation de niveau entreprise et collégial, mais la programmation en général. Si vous voulez vraiment apprendre à commencer à construire votre propre logiciel, quelque chose que vous voulez construire ou commencer à travailler dans des projets logiciels open source. Posez des questions auxquelles vous êtes confronté. Et lisez le code des autres.

minusSeven
la source
1

La réponse de Karl au sujet de l'échelle est parfaite. Vous ne pouvez pas trier un tableau de 15 numéros, vous devrez trier un ensemble de données d'un million, disons, de numéros de compte.

Une classe de structures de données et d'algorithmes vous indiquera probablement une douzaine de façons différentes de trier. Dans une application réelle, vous êtes susceptible de jeter une clause order by et de laisser la base de données l'optimiser.

En ce qui concerne la préparation au monde de l'entreprise, je suggère deux façons: b) Avec toutes les boutiques d'applications autour, vous pouvez essayer d'écrire et de publier une application sur les magasins Apple / Google / MS. Cela vous aidera à mieux comprendre les flux de travail, la valeur des tests, la nécessité de configurer le bon environnement et les bons outils et plus encore.

SidJ
la source
1
Je voulais juste ajouter en plus de l'App Store, vous pouvez essayer de faire du bénévolat pour un projet à petite échelle. Ma première mission a été d'aider le lieu de travail de ma mère à produire des rapports de vacances et d'heures supplémentaires :)
SidJ
0

La principale chose dont vous avez besoin pour réussir dans la programmation d'entreprise est la patience et la capacité de communiquer avec des utilisateurs qui ne comprennent pas la technologie. Assurez-vous que vous utilisez les tests unitaires, le contrôle de version, déboguez soigneusement et utilisez le traçage / journalisation approprié. Les langues peuvent changer, mais rester calme et rechercher soigneusement les problèmes fonctionnera toujours.

Tim Spann
la source
-1

à côté de l'excellente réponse fournie, la "programmation d'entreprise" concerne également des exigences qui ne sont pas claires ou qui ne changent pas.

Que feriez-vous si votre professeur modifiait les exigences de votre programme de devoirs deux jours avant de le livrer?

Dans l'industrie, c'est assez courant.

k3b
la source