Avertissements (à lire avant de sauter pour répondre):
J'ai vu un certain nombre de questions semblables à celle que j'aimerais poser, alors voici quelques questions similaires .
IMHO Ils ne sont ni complètement ce que je demande, ni ils sont aussi complets que je l'espère (je ne veux pas effacer les réponses aux questions ci-dessous, je ne discrédite pas les demandeurs, je veux juste être un un peu plus complet):
Un diplôme CS peut-il profiter à un ancien programmeur?
Importance du diplôme de CS quand postuler pour des emplois de développement?
Laissez-moi être clair, je ne demande pas ce qui suit:
- Comment apprendre la programmation à partir de rien (sans diplôme en CS)
- Comment me présenter comme un bon développeur de logiciels (sans diplôme en informatique)
- Comment obtenir un bon travail bien rémunéré en tant que développeur de logiciels (sans diplôme en informatique)
Un peu de contexte:
Maintenant que les renonciations sont en suspens, laissez-moi préciser ma question en commençant par un bref historique de mon expérience en tant que développeur de logiciels.
Tout d'abord, j'ai eu une chance incroyable. On m'a donné plusieurs opportunités d'emploi (quelques projets back-end PHP / MySQL lourds et plusieurs applications WP7 en XAML / C #) grâce auxquelles j'ai vraiment appris tout ce que je savais sur le développement logiciel. Presque tous les emplois en développement de logiciel que j'ai occupés sont ceux pour lesquels je n’étais pas légitimement qualifié (et j’ai été clair avec mes employeurs avant de m’engager). Je ne veux pas m'accorder du crédit là où ce n'est pas dû, mais je dirais que la parfaite humilité dispense de la modestie .
Dans presque tous les emplois de développement que j'ai occupés, j'ai dépassé les attentes de mon employeur et me suis révélé être un atout précieux. Il y a bien sûr des exceptions 1 . Mais ce que je veux dire, c'est que je suis assez intelligent et que j'ai pu apprendre moi-même ce que je devais savoir pour réussir dans mon travail. A chaque travail que je faisais, j'étais de plus en plus tendu.
Je fréquente le campus de Seattle à l’ Université de Washington et je suis actuellement dans ma quatrième année, alors qu’il me reste deux ans, à travailler sur un diplôme en mathématiques. Au cours des différents emplois que j'ai occupés (voir mon curriculum vitae si vous voulez cette liste), je suis aussi allé à l'école en tant qu'étudiant à temps plein.
Comme je pense, la plupart des développeurs seraient d’accord pour étudier les cours classiques de premier cycle, y compris les cours d’ initiation à la programmation ABSOLUMENT PALES, par rapport à l’écriture de code réel, la création de 2 produits réels , le travail avec des gens formidables et l’influence positive sur la vie des utilisateurs 3 .
Alors… au fur et à mesure… j'ai passé beaucoup plus de temps et d'énergie à travailler que de me concentrer sur mes études. Parfois, mes performances étaient très horribles , mais la plupart du temps, j'ai réussi à rester à flot avec mes notes.
Cependant, le programme d’informatique à UW est très , très , très , très compétitif.
Donc, ce n’était pas une surprise pour moi que j’ai été rejeté par le programme. Deux fois. Ironiquement, dans la même demi-heure que j’ai reçu la notification de rejet par courrier électronique toujours polie, mais décourageante, j’ai reçu un appel téléphonique d’Amazon me proposant un stage d’été 4 en tant que SDE.
En regardant autour de moi d'autres hommes de mon âge (21 ans), qui partagent les mêmes objectifs que moi en matière de développement logiciel, je me sens plutôt bien à propos de l'endroit où je suis, de ce que j'apprends, de qui je suis et de ce que je suis. Je peux faire. Il y a bien sûr beaucoup, beaucoup, beaucoup plus brillants jeunes de 21 ans que moi, je ne veux pas dire que je me démarque dans une foule, mais simplement que je ne me sens pas terriblement en retard sur les progrès de mes pairs .
Je suis confiant dans ma capacité à réussir dans le monde des logiciels. Plus important encore, je suis confiant dans ma capacité et mon désir de continuer à grandir, à apprendre et à être humilié de façon embarrassante lorsque j'en ai vraiment besoin.
Diplôme de maths
Je me trouve poursuivre des études en mathématiques dans le seul but d’obtenir un diplôme. Il y a ceux qui disent que je devrais abandonner mes études et commencer à travailler maintenant (comme j'ai eu l'occasion de le faire), et d'autres qui disent que je devrais vraiment avoir mon diplôme. Je me suis décidé à obtenir mon diplôme pour des raisons totalement différentes de celles que l'un ou l'autre camp tend à exposer, alors ne m'encouragez pas d'une manière ou d'une autre à cet égard. Considérez le problème "fermé" :)
* DEEP BREATH * ... désolé c'est plus long que prévu.
Ceci est essentiellement ma question:
- Comment puis-je déterminer de manière objective quels domaines d'études, connaissances générales et autres compétences j'aurais pu acquérir grâce à un diplôme en informatique qui me fait défaut ou non?
Comment puis-je trier ces compétences par ordre d'importance?
Quel est le meilleur moyen (au cours des deux prochaines années) de compléter mes études pour atteindre ces attributs de manière à égaler, voire dépasser, le niveau d'un étudiant de premier cycle en sciences issu d'une université de premier plan?
Voici les étapes que je suis déjà en train de faire:
- Demandez à la communauté de développement (ce post)
- Poursuivre le mentorat avec des développeurs chevronnés qui partagent avec moi un cheminement de carrière similaire
- Définir les objectifs "d'apprentissage" à court et à long terme et les programmes suivants décrivant les sujets d'étude
- Continuer à écrire du code et à travailler sur des projets qui me passionnent
Si vous en êtes arrivé là, vous méritez un cookie :) J'apprécie votre patience.
Alors ... communauté de développement, développeurs expérimentés, camarades étudiants qui sont dans le même bateau que moi, quel conseil auriez-vous?
Aussi ... s'il vous plaît gardez à l'esprit mes avertissements en haut de ce post sur ce que je ne demande pas .
Mise à jour:
Je me rends compte que je n’ai pas fourni de paramètres très concrets pour ce que je considère comme une "réponse" réussie à ma (mes) question (s). Je pense que la question est très vague et pourrait justifier un certain nombre de réponses "correctes".
Après un laps de temps raisonnable, je sélectionnerai la réponse qui correspond aux attributs suivants:
- Explique le pourquoi derrière leur réponse
- Peut parler d'un certain niveau d'expérience (qu'il s'agisse d'embaucher / d'interagir avec quelqu'un ou de devenir quelqu'un qui a / est à ma place)
- Est concis mais complet, donne des principes généraux de préférence accompagnés d'exemples spécifiques
- Enfin, compte tenu de la longueur que cela semble nécessiter, faites-en une réponse bien communiquée, agréable à lire. J'espère que d'autres personnes pourraient être intéressées par cette question à l'avenir, seront diverties et éduquées par la réponse.
Donc, il y a quelques paramètres pour "correct". Ils sont très élevés, je pense, mais je les ai conçus comme un aperçu de ce que je considère comme la "meilleure" réponse. Évidemment, étant donné assez de temps, je choisirai la réponse la plus proche correspondant à la "réponse".
(1) - J'ai travaillé sur une version antérieure de ce site Web et, même si nous n'avions pas de conversation à ce sujet, j’ai senti que je ne pouvais pas très bien faire du tout (cela peut être en témoignent le fait qu’ils ont entièrement changé de site depuis) (2) - Premièrement, oui, c’est un vrai produit (même si j’écris ce billet dans Chrome ...), et ça donne un coup de pied au cul. Deuxièmement, j’étais un développeur stagiaire du secondaire à l’essai, ai écrit une preuve de code de concept pour certaines des nouvelles fonctionnalités pour IE8 ... donc c'était il y a un certain temps. (3) - Au moment de cet article, je suis le développeur qui a écrit cette application, je ne suis plus responsable de sa base de code (4) - Mon stage débutera en juin 2012 et je travaillerai dans la boutique en ligne. équipe.