Je suis diplômé en informatique mais je ne me sens pas capable de programmer


1050

Je suis diplômé en informatique, mais je vois des sites Web comme Stack Overflow et des moteurs de recherche comme Google, mais je ne sais même pas où je commencerais à écrire quelque chose comme ça. Au cours d’un été, j’ai eu l’occasion de travailler en tant que développeur iPhone, mais j’avais l’impression que j’étais surtout en train de coller des bibliothèques que d’autres personnes avaient écrites sans trop bien comprendre les mécanismes sous-jacents.

J'essaie d'améliorer mes connaissances en étudiant des algorithmes, mais c'est un processus long et douloureux. Je trouve les algorithmes difficiles et au rythme que j'apprends, une décennie aura passé avant de maîtriser le contenu du livre. Étant donné ma situation actuelle, j'ai passé un mois à chercher du travail, mais mes compétences (C, Python, Objective-C) sont relativement superficielles et peu souhaitables sur le marché local, où le développement de C #, de Java et du Web est beaucoup plus élevé. en demande. Cela ne veut pas dire que les opportunités C et Python n'existent pas, mais elles ont tendance à exiger plus de 3 ans d'expérience que je n'ai pas. Mon GPA est OK (3,0) mais il n'est pas assez élevé pour postuler aux grandes entreprises comme IBM ou revenir aux études supérieures.

En gros, je suis diplômé en informatique mais je n'ai pas l'impression d'avoir appris à programmer. Je pensais que rejoindre une entreprise et programmer à plein temps me donnerait une chance de développer mes compétences et d'apprendre de ceux qui sont plus expérimentés que moi, mais j'ai du mal à trouver du travail et je commence à être vraiment frustré.

Je vais élargir mon filet et regarder au-delà de la ville dans laquelle j'ai grandi, mais qu'est-ce que d'autres personnes dans la même situation ont essayé de faire? J'ai travaillé dur mais je n'ai pas la confiance pour sortir seul et écrire ma propre application. (C’est-à-dire, devenez un développeur indépendant sur le marché des applications pour iPhone.) Si rien ne se produit, j’aurai besoin de mettre à niveau et d’apprendre des compétences plus populaires ou d’essayer quelque chose de marginal, comme l’informatique, mais vu tous les efforts que j’ai déployés comme sortir.

Réponses:


533

Le meilleur moyen d'apprendre à programmer est d'écrire des programmes.

Deux suggestions:

  • développer un jeu
  • développer un site web

Les algorithmes, bien qu'utiles et qu'il convient de comprendre, jouent en second lieu avec la conception de logiciels. TDD / Design Patterns / Architecture / Refactoring / Test unitaire / Assembler du code / etc ont tendance à être des compétences bien plus importantes.

Aussi, mieux vaut le faire à votre rythme. N'attendez pas pour régler ce problème au travail. Je trouve que les gens qui ont tendance à faire mieux sont ceux qui, au début de leur carrière, s'efforcent de développer leurs compétences à leur rythme. Habituellement parce qu'ils sont réellement passionnés par le développement de logiciels

  • Une dernière chose à faire est de " lire des livres et des échantillons " et de ne pas avoir honte de demander. Si vous voulez apprendre, vous devriez demander :)

70
+1 d'accord. Et si vous NE VOULEZ PAS faire ce genre de choses par vous-même, votre carrière ne sera peut-être pas la meilleure. Si vous assemblez des éléments maintenant, vous pouvez créer un portefeuille pouvant compléter votre GPA.
Chris

68
@ Chris, -1. C'est un peu comme dire qu'un avocat qui ne fait pas de travail bénévole pour les indigents de son temps libre est dans la mauvaise carrière. Je sais que beaucoup de programmeurs feraient mieux de passer moins de temps à programmer et plus de temps à faire presque tout le reste.

21
en fait, beaucoup d’avocats se coupent les dents, sont mal payés et consacrent beaucoup d’heures supplémentaires à leur avenir.

22
Vous ne pouvez pas vraiment comparer un travail d’avocat avec un travail de programmeur. Avec la programmation, vous pouvez acquérir des compétences vous-même; vous n'avez besoin d'aucun employeur ou client pour améliorer cette partie.

31
Vraiment, vous devez arrêter de penser que la programmation est spéciale. Les avocats peuvent travailler / apprendre seuls, comme nous le pouvons. Ils peuvent commencer par des emplois mal rémunérés et travailler de longues heures, mais beaucoup de programmeurs aussi ... La ligne "si vous ne programmez pas comme un loisir, vous ne devriez pas être un programmeur" est vraiment très subjective.

388

Je me sentais comme si je collais surtout des bibliothèques que d'autres personnes avaient écrites

Bien que je comprenne pourquoi vous pensez que ce n’est pas une "vraie programmation", la vérité est que le travail d’intégration représente un pourcentage important de la charge de travail typique d’un programmeur en entreprise. Votre expérience pourrait être un peu plus précieuse que vous ne le pensez :)


126
+1 pour la colle. Personne ne voudrait engager un groupe de professionnels pour construire une nouvelle maison et s’attendre à ce qu’ils inventent de nouvelles techniques de construction de maison. En fait, toute personne intéressée par la gestion des risques et du budget préférerait probablement ne pas le faire.
Dan Bryant

14
Je conviens qu'il existe des cas extrêmes, mais je dirais que 75 à 80% des emplois en programmation sont du genre où vous ne faites que coller des bibliothèques.

15
Et il n'y a rien de mal à simplement coller des bibliothèques. C'est ce qui vous rend productif!

10
Définitivement, 90% de mon travail consiste à connecter le code d'autres personnes (bibliothèques ou code hérité) ou à conserver un code plus ancien. Mais je passe plus de temps à apprendre au fur et à mesure, de sorte que je sache maintenant comment fonctionnent beaucoup de ces bibliothèques et que je comprenne beaucoup mieux ce qui se passe sous le capot en général. Soyez un apprenant à vie et vous finirez par tout comprendre.
CodexArcanum

53
Lorsque je ne colle pas des bibliothèques, je crée généralement des bibliothèques que je collerai ensemble par la suite.

238

Tout d'abord, merci pour cette question extrêmement honnête. Il existe un certain nombre de moyens pour résoudre les problèmes actuels. Voici quelques conseils que j’ai jugés très utiles par le passé et que je continue à utiliser pour élargir mes connaissances.

  1. Apprendre, apprendre et apprendre encore plus. C’est probablement le conseil le plus important que je puisse vous donner. Ne jamais arrêter d'apprendre . Connaître une langue, c'est bien, connaître plusieurs, c'est encore mieux. Avoir la connaissance d'autres langues fera de vous un meilleur programmeur, facilitera certaines tâches et vous aidera à acquérir une meilleure connaissance des structures de données communes.

  2. Commencez petit .

  3. Commencez un projet de loisir pendant votre temps libre. Ne faites pas quelque chose que vous pouvez accomplir assez facilement. Prenez un projet dans lequel vous ne savez pas par où commencer. Jetez-vous dans la partie profonde. L'avantage de ceci est que vous apprendrez des choses dont vous n'aviez jamais su l'existence et que lorsque vous les compléterez, vous ressentirez une immense fierté et une grande satisfaction. C'est ce qui me fait avancer.

  4. Ayez une véritable passion pour ce que vous faites. Bien que les gens seront en désaccord avec moi sur celui-ci. Je ne crois pas que vous puissiez exceller dans ce domaine si vous considérez simplement que c'est un travail de 9-5. Il doit y avoir une passion pour le faire.

  5. Aidez d'autres personnes sur SO! La meilleure façon de comprendre est d'essayer de l'enseigner à d'autres personnes.

  6. Étudiez les programmes des autres peuples et essayez de comprendre leur fonctionnement, puis appliquez des techniques similaires dans vos propres programmes. Essayez de le lire et de le comprendre, puis faites-le vous-même, plutôt que de le copier-coller.

  7. Gardez-le . Les choses peuvent parfois devenir très frustrantes, mais très enrichissantes une fois terminées. Si vous ne comprenez pas quelque chose, faites une pause, effacez vos pensées et essayez à nouveau. Demandez nous à SO! Nous sommes un groupe volontaire :)

  8. Ne jamais arrêter d'apprendre de nouvelles technologies.

  9. Lire des livres. Je comprends que, étant un étudiant, vous auriez lu une tonne de choses. Voici quelques livres pratiques que vous pourriez trouver utiles… espérons-le - Le programmeur pragmatique: De compagnon à maître - Code complet: Un manuel pratique de la construction de logiciels


13
Ajouter un code propre à vos listes à lire, c'est très bien.

7
"Connaître une langue, c'est bien" -> faux. Connaître une langue ne suffit pas . Connaître plusieurs langues, c'est bien, apprendre encore plus de langues, c'est encore mieux.
Denilson Sá Maia

10
"Commencer petit" signifie non seulement sélectionner des projets abordables, mais aussi commencer à mettre en œuvre des parties exploitables au sein d'un projet. Un de mes projets a débuté avec une petite expérience de parallaxe, et je me suis dit "ça ressemble à un champ d’étoiles plutôt cool pour un fond de jeu". Ajoutez un navire ... ajoutez un étranger ... ajoutez quelques missiles, le contrôle du clavier et la détection de collision (chaque problème simple par eux-mêmes) un à la fois et bientôt, j’ai vendu un jeu commercial pour lequel je me suis vendu le temps) un bon peu d'argent. Par contre, "écrire un jeu" est une tâche vague et inaccessible. Un peu à la fois.
mmc

2
@Denilson OP a déclaré qu’elle ne pensait pas savoir programmer. Il est bon de connaître une langue pour une personne qui n’est pas sûre de la programmation. Ma liste est uniquement applicable à ce contexte.

7
@Denilson, auriez- vous pu apprendre plusieurs langues sans d'abord apprendre une langue?
Péter Török

141

Lancer un projet personnel. Le problème avec l'école, c'est que la chose la plus compliquée que vous ayez faite est un projet qui a duré 15 semaines à un an et qui a impliqué plusieurs personnes. Le domaine du problème était bien compris (votre professeur ne vous a confié aucune tâche qui ne rentre pas parfaitement dans votre semestre.) Ce n'est pas un luxe que le monde réel offre.

Si vous devez faire quelque chose de majeur, du début à la fin, qui peut vous passionner, votre cerveau commencera à comprendre le processus. Tant qu'il ne s'agit que d'une carrière et que vous n'aimez pas cela, vous aurez toujours l'impression que vous ne l'avez pas encore fait.


J'ai divisé mes journées entre 1) l'envoi de CV 2) la lecture de livres mais il semble que 2) pourrait être mieux dépensé à l'écriture de code. Je pense que beaucoup d’employeurs ne veulent pas prendre le risque d’embaucher une personne ayant très peu d’expérience dans le secteur, de sorte que le stage que je n’ai pas pris me semble très attrayant en ce moment.

5
+1 Je suis complètement d'accord. Lancez une petite application, puis ajoutez des fonctionnalités à votre guise. Au fur et à mesure que le bâtiment avance et que vous commencez à comprendre ce qu'il est possible de faire de plus, vous pouvez l'ajouter.

11
"Le domaine du problème était bien compris (votre professeur ne vous a confié aucune tâche qui ne rentre pas parfaitement dans votre semestre.)" C'est l'un des plus gros problèmes de la formation en informatique. Il existe quelques logiciels ou programmes de génie logiciel qui traitent de ce problème, mais la plupart ne vous font pas sortir des sentiers battus. Vous devez vraiment prendre en charge vos propres projets. Si vous ne savez pas comment Stackoverflow a été construit, essayez de créer vous-même un clone. Vous apprendrez beaucoup plus que n'importe quelle classe peut vous apprendre.
Matt Olenik

excellente idée. Mais commencez par quelque chose de petit avec des fonctions essentielles et ajoutez-y lentement. Ce sera plus motivant que d’essayer d’obtenir une application parfaite géante. Je pense aussi que vous ne trouverez jamais autant d'informations et de tutoriels que la profusion d'informations contenue dans les livres
Xster

@Ster, c'est ce que je veux dire. La tâche d’écrire une application "questions-réponses" dotée de fonctionnalités très basiques est un bon point de départ.
Matt Olenik

106
  1. Commencez par l’un de ces langages à la demande, en utilisant un projet comme le dit K. Nicholas.
  2. Ne vous mesurez pas par StackOverflow. Cela vous découragera inutilement.

81
+1 pour # 2 - ne vous comparez pas avec la connaissance d'une foule.
gf

8
StakOverflow lui-même est un produit virtuose. Sans oublier qu'il existe des personnes qui ont une expérience de plusieurs décennies dans une grande variété de produits.

6
Je ne considérerais pas que ce soit une mauvaise chose de se mesurer à StackOverflow, il y a beaucoup de gens intelligents ici. Certains sont plus intelligents que vous ne le serez jamais. Cependant, ce sont les personnes qui vous donnent envie de continuer à apprendre.

15
Hey, je sais pourquoi je suis accro à SO! C'est formidable pour une douzaine de raisons. Mais c'est humiliant d'être continuellement exposé à toutes les choses que vous ne connaissez pas. Il faut être un peu prudent pour ne pas se sentir découragé, c'est tout.

@Georg - Nice gravitar game-of-go gravitar. KGS Smandoli

72

Je ne peux pas vous aider avec votre situation professionnelle, mais j'espère pouvoir vous aider à développer vos compétences et également mettre en perspective vos sentiments à propos de vos propres compétences.

Je suis diplômé en informatique mais je n'ai pas l'impression de savoir programmer.

Il est possible que vos instructeurs aient honte de quelque chose. Il est également possible que votre sentiment de ne pas savoir programmer soit naturel et approprié à cette étape de votre vie et de votre éducation. Voici quelques idées qui peuvent aider:

  • Beaucoup d’employeurs ne se soucient pas de savoir quels cours figurent sur votre relevé de notes ou même quelle est votre moyenne cumulative. Au lieu de cela, ils veulent savoir ce que vous pouvez faire, et surtout ce que vous avez construit. Pour un bon travail, ce que vous avez construit est plus important que la technologie (C, C #, qu'avez-vous) sur votre CV.

  • Si vous n'avez pas eu la chance de construire un certain nombre de projets intéressants pendant votre formation, honte à vos instructeurs. Mais vous pouvez construire ces projets maintenant. Parcourez les sites Web à la recherche de problèmes intéressants. Nos étudiants du second semestre viennent juste de terminer "Recherche de chansons". Nous avons tiré une énorme quantité de paroles de texte pour un site Web, ils ont créé un index inversé, vous l'avez alimenté en mots-clés et les paroles contenant ces mots sont affichées dans leur contexte. Ce n'est pas Google mais il a été conçu sur les mêmes principes avec des structures de données similaires, et vous pouvez commencer à le créer maintenant.

J'ai travaillé fort, mais je n'ai pas la confiance pour sortir seul et écrire mon application.

Peut-être que vous n'avez pas travaillé dur sur le bon type de problèmes? C'est bien de trouver des problèmes qui

  • Sont ouverts
  • Avoir plus d'une bonne solution
  • Avoir beaucoup de mauvaises solutions

Si vous vous attaquez à ce genre de problèmes, vous apprendrez à faire des choix, à en assumer les conséquences et, si les choses ne fonctionnent pas, à revenir en arrière et à revoir vos choix. Vous apprendrez plus de vos échecs que de vos succès, mais vos succès vous donneront plus de confiance que vos échecs.

Les bons problèmes - avec des propriétés comme celles que je énumère ci-dessus - sont comme de l'or, sauf que si vous obtenez un bon problème de quelqu'un d'autre, il ne perd rien. Parcourez le Web à la recherche de bons problèmes et pratiquez, pratiquez, pratiquez. Si vous devez commencer par les problèmes d’Euler, ils conviennent aux débutants. Mais vous voudrez bientôt construire des projets de petite ou moyenne taille que vous jugez vraiment cool . Si vous êtes enthousiasmé par quelque chose que vous avez construit, cela impressionnera les employeurs potentiels. Si vous n'êtes pas excité, il est difficile de vous engager.

Peter Norvig rapporte qu'il faut dix ans pour devenir un expert . Bien sûr, vous ne vous sentez pas expert juste après l'obtention de votre diplôme. Je vais vous révéler un petit secret: la plupart des membres de la faculté de Harvard (j'en étais un depuis huit ans) ont l'impression de ne pas appartenir à Harvard, ils n'en savent pas assez, et ce doit être une erreur ils ont été embauchés. Ce genre de sentiment est très, très commun chez les personnes qui font la transition de l’école au travail ou d’un type de travail à un autre. Si commun qu'il porte un nom: "le syndrome de l'imposteur".

Même si vous avez votre diplôme, votre université vous parlera toujours. Si vous avez de très bons professeurs, ils se soucient probablement toujours de vous. Ils se soucient certainement du fait que l’un de leurs étudiants ait obtenu une moyenne de B et pense néanmoins qu’elle n’a pas maîtrisé les compétences de base de son métier. Recherchez donc un ou deux des professeurs les plus énergiques et les plus sympathiques de votre programme et obtenez de l’aide pour trouver de bons problèmes. Puis mettez- vous en charge de vos compétences, de vos connaissances et de vos sentiments à leur sujet. Construisez un petit quelque chose tous les jours et ne perdez pas votre temps précieux à construire quelque chose qui ne soit pas vraiment cool. Finalement, je vous promets que vous retrouverez un enthousiasme pour la programmation et que, par la suite, vous pourrez également développer votre confiance en vous.


Je suis d'accord. Allez-y et prouvez à vos employeurs potentiels que vous connaissez C, Python, Objective-C et construisez une application indépendante qui fait quelque chose. Les gens choisissent souvent des jeux parce que, selon les jeux, ils peuvent impliquer une conception et une mise en œuvre difficiles, et de nombreuses bibliothèques sont gratuites. Si vous créez un jeu pour Windows, GDI / + ou DirectX sont des bibliothèques gratuites à utiliser, etc.
DeadMG,

La partie "La plupart des membres de la faculté de Harvard (je suis membre depuis huit ans) a le sentiment de ne pas appartenir à Harvard, ils n'en savent pas assez, et cela a dû être une erreur de leur embauche", me rappelle-t-il. de l'effet Dunning – Kruger =)

2
+1 pour construire quelque chose: cela vous distingue de la foule, surtout si c'est quelque chose qui est utile.

5
@ Alex, ne passez jamais par les RH. Si vous avez de la chance, quelqu'un que vous connaissez connaît quelqu'un où vous voulez travailler.
Norman Ramsey

1
Vous savez, maintenant que vous en parlez, c'est comme cela que j'ai généralement trouvé des emplois. Je suppose que dans le futur, je devrais me concentrer davantage sur les travaux au sein de mon réseau (ou en marge de celui-ci) et m'épargner l'indignité des scanners de mots clés.

59

Il y avait une scène sur un vieil ordre Law & Order dans lequel une procureure se plaint de n'avoir rien appris sur la façon de faire son travail à la faculté de droit, de n'avoir rien appris du monde réel. Le professeur à qui elle se plaint répond: "C'est une école de droit, pas une école d'avocat."

La même chose s'applique à l'informatique. Vous n'avez peut-être pas appris à contribuer immédiatement à un projet que vous voyez en ligne, mais vous avez probablement développé les bases dont vous avez besoin pour réussir à long terme.

D'abord, trouver un travail, n'importe quel travail. Devenir autonome. Dans l'économie actuelle en particulier, je ne reprocherais jamais à un candidat de travailler dans une librairie ou ailleurs pendant qu'il cherche un emploi plus approprié. J'ai des questions pour les gens qui ne font rien.

Trouvez un projet, n'importe quel projet. Par exemple, il y a beaucoup de projets applicables sur github.com.

La bonne nouvelle est que beaucoup plus tôt que vous ne le pensez, personne ne se souciera du lieu où vous avez été à l'école, de ce que votre GPA a été ou quoi que ce soit du genre.

Accrochez-vous! Cela peut être difficile, mais vous serez heureux de l'expérience un jour.


8
Nous avons récemment eu une discussion au travail à ce sujet. Pensez-vous vraiment que l'obtention d'un emploi sans lien avec votre carrière aidera votre cv? Si vous avez besoin de récolter des fruits pour des raisons financières, c'est bien, mais je ne pense pas que cela ait une place dans votre cv si vous essayez de bâtir une carrière de programmeur. Si vous ne rencontrez pas de contraintes financières, vous participerez mieux à un projet sans compensation économique ni pour tenter de créer votre propre entreprise. Participer à des projets open source ou à quelque chose lié au terrain, même en tant que technicien de terrain, est bien meilleur à mon avis.

1
@piotr - Vous l'avez dit vous-même - "Si vous n'avez aucune contrainte financière." Tout diplômé récent va avoir ce problème à moins de vivre avec maman et papa. Je suis d'accord avec David M - si vous ne pouvez pas trouver un emploi directement dans votre domaine, trouvez-vous un emploi. Montrez que vous ne restez pas assis. Ensuite, lorsque vous ne travaillez pas à votre travail de jour, continuez à apprendre la nuit et à comprendre votre domaine par le biais de projets, etc. Bien sûr, appelez et envoyez des CV également.

N'importe quel travail semble meilleur sur un CV qu'un écart.
Jim C

Au début de votre carrière, un travail indépendant est préférable à aucun emploi, à mon avis. Cependant, je ne suis pas d'accord pour dire que n'importe quel travail est meilleur sur un CV que pas de travail. S'il y a une bonne raison pour "pas de travail", alors ça peut être mieux que "n'importe quel travail". J'ai volontairement connu de longues périodes de chômage, mais j'avais de bonnes raisons que je peux expliquer de manière cohérente.

5
piotr: "Pensez-vous vraiment que l'obtention d'un emploi indépendant de votre carrière aidera votre cv?" Oui absolument. Je pensais beaucoup plus à un programmeur travaillant dans la construction pendant les temps morts qu’à un programmeur restant à la maison toute la journée. Cela montre une éthique de travail. Je n'ai jamais fini par vouloir embaucher un génie solitaire qui rédige son code seul à la maison. Ils n'ont pas tendance à savoir comment bien travailler avec les autres ou à faire le sale boulot.

59

Avez-vous regardé ProjectEuler ? Je me suis enseigné Python en faisant les problèmes sur ce site. :] Si vous voulez apprendre Java ou C #, vous pouvez l'essayer. Aussi, je vous recommande d'essayer vos mains sur la programmation graphique aussi.

Modifier:

Voici un excellent sujet sur les SO pour de nombreux liens sur lesquels vous pouvez vous pencher pour la pratique du codage:

https://stackoverflow.com/questions/662283/websites-like-projecteuler-net


4
J'ai beaucoup entendu parler du site, mais je n'ai jamais eu le temps de tenter de résoudre ces problèmes, mais de nos jours, il me semble que la seule chose qui me reste est du temps libre, alors autant rester occupé.

44
Le projet Euler est très peu utile pour un programmeur novice qui souhaite acquérir des connaissances en programmation. Il est orienté vers la résolution de problèmes mathématiques en codant des algorithmes. Vous pouvez en faire un million sans devenir un bon programmeur (vous deviendrez probablement un grand mathématicien). Écrire de bons algorithmes n'est pas une grande priorité pour la plupart des travaux de programmation.

1
Je ne suis pas d'accord. Charles-Euler fournira la motivation nécessaire pour comprendre certains concepts et les appliquer.
Broam,

L’utiliser comme Xavier Ho semble intéressant et utile. C'est-à-dire que vous maîtrisez les bases d'une nouvelle langue. Je soupçonne que PE vous aidera à programmer (sur une petite échelle) OU aux mathématiques; afin que vous puissiez plonger dans les deux sens. Ces points mis à part, je suis d'accord avec Charles.

6
pythonchallenge.com est la clé! Bien qu'Euler soit un problème mathématique à résoudre par la programmation, pythonchallenge est un pur problème de programmation
Xster

48

Je devine à partir de votre nom d'utilisateur que vous êtes une femme ... Sinon, n'hésitez pas à l'ignorer, ou à l'adapter à votre propre point de vue.

D'après mon expérience, les femmes diplômées en informatique se considèrent beaucoup moins compétentes que leurs homologues masculins aux compétences similaires. On pourrait dire que les femmes sont (ou, pour être exact, les femmes que je connais) tout simplement plus honnêtes par rapport à leurs propres faiblesses, mais au final, elles ont plus de mal à se vendre à des employeurs.

(J'ai passé la plupart de mes études supérieures à me sentir comme un échec total par rapport à mes pairs et j'ai fini par obtenir le meilleur grade de ma classe.)

Mon conseil serait donc de rester honnête avec vous-même et de continuer à travailler dur pour développer vos compétences. Mais ne minimisez pas ce que vous savez lorsque vous recherchez un emploi et ne vous empêchez pas de postuler à des emplois "de portée".

  • Trouvez un mentor qui peut vous donner une évaluation réelle de votre valeur.
  • Faites de fausses interviews et apprenez à projeter confiance, énergie et passion.
  • Lorsque vous décrochez une interview, parlez de vos projets personnels et posez des questions techniques. Votre volonté d'apprendre et votre énergie sont votre meilleur atout.

Ajouté en tant que pensées après coup:

  • Lorsque vous décrochez votre premier emploi, n’ayez pas peur de négocier votre salaire. Trop de femmes acceptent la première offre avec gratitude et n'obtiennent jamais ce qu'elles méritent.

Cela concerne ....
Paul Nathan,

+1, tous les bons points. J'ai rencontré des sentiments similaires avec des collègues féminines lorsque j'étais à l'école.
Heather M

6
Pas seulement une chose féminine; Les personnes qui sont soit déjà compétentes, soit capables de voir qu'elles ont besoin de grandir (oui, oui!) Ont tendance à s'interroger davantage sur leur propre compétence que celles qui ne commencent pas à soupçonner leur propre incompétence. Il y a un nom pour ce phénomène. L'effet Dunning – Kruger. Votre expérience à l’école a été un succès phénoménal si vous quittez l’école pour poursuivre votre chemin d’apprentissage, quelle que soit votre carrière, quelle que soit votre carrière. Je vous souhaite bonne chance !!!
Warren P

1
Warren: Absolument vrai. beaucoup de mes pairs masculins moins francs avaient le même problème. Dans de nombreuses cultures du monde, y compris en Amérique du Nord, les petites filles ne sont pas encouragées à faire face à la concurrence de manière agressive et à montrer leurs compétences autant que les petits garçons. J'ai donc vu ce trait plus souvent chez les femmes. Mais ce n'est certainement pas juste une chose féminine.

Réponse géniale, je suis totalement d'accord. De plus, j'ai remarqué que dans ma promotion, les femmes qui réussissaient étaient souvent parmi les meilleures. (Cela signifie malheureusement que beaucoup de femmes qui ont abandonné auraient pu faire des programmeurs parfaitement compétents ...)

39

Beaucoup de gens ont dit que vous devriez commencer un projet personnel. À mon avis, c'est le meilleur conseil qui soit. J'ajouterais des choses que je n'avais pas vues en lisant les autres réponses ...

  • Choisissez quelque chose dans une région que vous êtes passionné au sujet . Le meilleur endroit pour le savoir est peut-être vos intérêts en dehors de l'informatique. Cela pourrait être un but non lucratif auquel vous participez, un passe-temps qui vous passionne, un sport que vous pratiquez.

  • Trouver un collaborateur . Le codage seul est difficile, donc une autre chose qui aiderait énormément serait si vous trouviez un ami qui collaborerait avec vous sur ce projet. Cela le rend beaucoup plus amusant et vous permet de rester motivé. Dans son blog récent, Jeff Attwood parle de cette chose exacte dans son expérience de la construction de SO. http://www.codinghorror.com/blog/2010/05/on-working-remotely.html

  • Choisissez quelque chose de modeste (au départ) . Le projet idéal commencerait par quelque chose de petit. Si l'objectif est trop ambitieux, il deviendra trop décourageant. Ayant réalisé le développement pour les ordinateurs personnels, les téléphones, les systèmes intégrés et le Web, je dirais que le Web est le meilleur endroit pour rechercher quelque chose de réalisable que d’autres personnes pourraient commencer à utiliser immédiatement.

  • Si possible, choisissez quelque chose que d'autres personnes utiliseront . Même si vous n'avez que dix "clients", le sentiment de faire utiliser la chose que vous avez construite à d'autres personnes est comme une drogue. Incroyablement satisfaisant. Apprendre des clients et y répondre constitue également une expérience d'apprentissage aussi précieuse.

Si ce projet est un travail d'amour sur lequel vous travaillez volontiers au plus profond de la nuit, puis que vous sautez du lit le lendemain matin pour y revenir, de bonnes choses suivront. Vous apprendrez, la confiance grandira. Et une fois que vous avez quelque chose que les gens peuvent voir, cela devient le début de votre portefeuille. Rien n’impressionne les programmeurs et les gestionnaires d’embauche (décents) que quelque chose de réel.


Si possible, choisissez quelque chose que d'autres personnes utiliseront ... c'est le meilleur moyen d'obtenir des commentaires
balalakshmi

34

Quelques commentaires, du point de vue de quelqu'un qui est développeur depuis plus de 20 ans:

Je vois des sites Web comme Stackoverflow et des moteurs de recherche tels que Google, mais je ne sais même pas où je commencerais même à écrire quelque chose comme ça.

Elles sont le produit d’équipes, reposant principalement sur des bibliothèques et des infrastructures (.net, java, asp.net, etc.) produites par d’autres équipes et bénéficiant de l’expérience et des ressources nécessaires. Que vous ne sachiez pas par où commencer pour faire quelque chose de similaire est tout à fait compréhensible. Ne t'inquiète pas pour ça.

Au cours d’un été, j’ai eu l’occasion de travailler en tant que développeur iPhone, mais j’avais l’impression que j’étais surtout en train de coller des bibliothèques que d’autres personnes avaient écrites sans trop bien comprendre les mécanismes sous-jacents.

Beaucoup de travail de développement est maintenant comme ça, j'en ai bien peur. Mais il y a beaucoup de possibilités de faire un travail intéressant "en plus" de ces bibliothèques. Et ne vous inquiétez pas de la difficulté de trouver des algorithmes - vous n’aurez presque jamais à mettre en place de tri rapide, de liste chaînée ou autre au cours de votre carrière. C'est à ça que servent les bibliothèques.

En gros, je suis diplômé en informatique mais je n'ai pas l'impression d'avoir appris à programmer.

Savoir programmer et savoir fonctionner en tant que développeur professionnel sont deux choses très différentes. Vous avez juste besoin d'une certaine expérience, de préférence de travail avec d'autres développeurs sur des systèmes réels. Essayez d’ajouter soit C # soit Java à vos compétences - il n’ya pas beaucoup de différence entre elles, les connaissances sont donc transférables. Méfiez-vous de devenir trop spécialisé trop tôt. Vous devrez peut-être accepter que vous ne gagnerez pas beaucoup d’argent tout de suite, alors maintenez si possible vos coûts personnels au minimum.

Commencez à travailler sur le projet que vous avez mentionné, mais en plus d’approfondir vos connaissances en programmation, l’utiliser était un moyen d’acquérir une expérience des compétences connexes telles que le contrôle de version, les tests unitaires et d’intégration, et même la rédaction de documentation simple. Ce genre de compétences distingue un développeur d’un programmeur et constitue une bonne vitrine pour un employeur potentiel. De nombreux outils gratuits (les éditions express de Visual Studio, github, nunit, Google apps) sont disponibles.

D'après ce que vous avez écrit, il semblerait que votre diplôme de CS vous ait appris à réfléchir aux problèmes techniques. Vous semblez également avoir un bon niveau de connaissance de soi, y compris en ce qui concerne vos limites techniques et votre expérience. Utilisez-les comme des avantages. Ce n’est pas le bon moment pour entrer sur le marché du travail, mais si vous travaillez dur, vous irez bien. Ne vous inquiétez pas, apprenez, acquérez de l'expérience, restez à jour, essayez de faire des choses qui vous plaisent.

Bonne chance!


"vous ne devrez probablement jamais mettre en œuvre de tri rapide, de liste chaînée ou quoi que ce soit au cours de votre carrière" Dans mon poste actuel, j'ai dû implémenter un tri rapide pour une liste chaînée personnalisée. Je n'ai pas eu à mettre en œuvre la liste cependant. Savoir comment fonctionnent les éléments de base présente un intérêt certain.

Je conviens qu'un bon développeur doit savoir comment fonctionnent ces structures de données et algorithmes de base et être capable de les mettre en œuvre. J'ai dû faire mes propres listes de liens plusieurs fois, mais jamais (heureusement pour moi), je n'ai eu à écrire un tri rapide. Mon point de vue était que l'OP ne devrait pas trop s'inquiéter des algorithmes qu'elle aurait pu étudier pendant son cursus car de nombreux langages / plateformes (.net, Java, C ++, etc.) incluront probablement des implémentations pré-écrites.

31

La programmation ne concerne pas uniquement votre compréhension des algorithmes ou votre GPA au collège. La programmation consiste à avoir la capacité de penser en dehors de la boîte, le désir et la volonté d'apprendre et le plus important de tous, la créativité.

Sur une note personnelle, je venais de terminer mes études collégiales en mai dernier et j'avais une terrible moyenne. Je m'étais davantage concentré sur ma vie sociale que sur le monde universitaire et j'en ai payé le prix.

Cependant, lors de mon récent entretien d'embauche en dehors du collège ( qui m'avait pris moins d'un an ), j'ai montré ma créativité, ma passion pour l'apprentissage et mes compétences analytiques, ce qui m'avait aidé à obtenir le poste.


27

Note: Je m'attends à ce que ce post soit voté. Ce n'est pas une réponse à l'affiche originale mais une observation sur la plupart des commentaires que j'ai lus ci-dessus.

Les réponses que je lis ci-dessus me font vraiment peur. Il semble exister un sentiment quasi universel selon lequel les degrés comp.sci sont inutiles ou ne sont pas pertinents, ou ne vous apprennent rien. Les diplômes comp.sci sont-ils vraiment devenus si mauvais, ou est-ce que tout cela vient des développeurs sans diplômes qui essaient de justifier leur absence?

Sérieusement les gens, qu'enseignent-ils à l'université aujourd'hui? Lorsque vous faites un diplôme de CS (au moins quand j'étais étudiant), lorsque vous aurez obtenu votre diplôme, vous maîtriserez bien la conception du compilateur, comp. complexité, méthodes et logique formelles, tout un zoo de structures de données et d'algorithmes, recherche opérationnelle élémentaire (LP, etc.), bases de données, cyptographie et sécurité, algorithmes de planification, protocoles de réseau, développement Internet, conception d'infrastructure et de noyaux, algorithmes parallèles et structures de données, algorithmes numériques et beaucoup plus. L'ensemble est généralement complété par un énorme projet de programmation qui fait partie de la thèse finale. Ne me dites pas que les diplômés de comp.sci ne reçoivent pas assez de programmes de pratique.

J'apprécie également le fait que certains des degrés comp.sci plus traditionnels omettent certains aspects du cycle de développement logiciel, vous n'entendrez probablement pas beaucoup parler de TDD, les tests unitaires. Mais soyons honnêtement honnêtes: ce n'est pas vraiment sorcier, n'est-ce pas? Vous n'entendrez pas parler de SCRUM ni de l'analyse de points de fonction non plus. Enseigner des cours détaillés sur de telles questions fondamentales serait assez redondant, bien que de nombreux diplômes proposent actuellement un cours sur la conception de systèmes dans lequel ils donnent aux étudiants une idée du fonctionnement de ces éléments.

Certes, vous n'êtes peut-être pas un expert en .NET, PHP ou les autres normes industrielles actuelles, mais cela ne devrait pas être pertinent. Dans 5 à 10 ans, les langues de choix auront quand même changé. Ce n’est pas parce que vous apprenez à conduire dans une Peugeot que vous ne devriez pas être capable de conduire une Fiat, il en va de même pour les langages de programmation. Il faut quelques mois de pratique avec quelques bons livres pour être capable de travailler dans n'importe quelle langue.

Certes, si quelque chose est une perte de temps, ce sont ces "certifications" coûteuses qui impliquent essentiellement de passer un examen électronique à choix multiples et de vous poser des questions sur des détails (généralement inutiles) d'une architecture ou d'une langue particulière. Ils ont tendance à mesurer la compétence d'un programmeur par sa connaissance de certains cas de programmation pathologiques.

J'ai travaillé dans le secteur des technologies de l'information dans différentes entreprises et j'ai également participé au processus d'entrevue pour d'autres développeurs de logiciels. Nous avons posé quelques-unes des questions habituelles de fizzbuzz, mais elles visaient principalement les personnes sans formation ou les stagiaires. Je n'ai jamais rencontré un diplômé de comp.sci pas capable de répondre à des questions de programmation de base et pas tellement de base.

Remarque Je vis en Europe et ne connais que les diplômes universitaires européens. Cependant, je suis à peu près sûr que le standard universitaire américain est beaucoup plus élevé que celui de l'UE.


4
C’est la même chose pour tout le monde. L'école en général vous prépare à un large éventail de situations. Une fois que vous aurez commencé à travailler, vous pourrez alors vous spécialiser davantage et vous aurez peut-être l'impression de gaspiller toute votre énergie à l'école, mais comment avez-vous su ce que vous alliez finir par faire? Il est préférable d’apprendre beaucoup de choses sur lesquelles vous pouvez compter que de ne jamais en avoir entendu parler.

1
Je vois les deux côtés de l'argument. J'ai rencontré des diplômes CompSci très intelligents, mais j'ai également rencontré des diplômés de CompSci qui travaillent maintenant dans un centre d'appels parce qu'ils ne s'intéressaient pas vraiment à CompSci. J'ai beaucoup appris lors de mes cours CompSci, mais je dois admettre que la plupart des compétences techniques qui m'ont permis d'obtenir des emplois que j'ai appris en dehors de l'école, sont mon temps libre. Lorsque j'interviewe pour des emplois en génie logiciel, ils testent généralement vos connaissances sur des technologies spécifiques, des stratégies de résolution de problèmes et des compétences interpersonnelles. Aucun de ceux qui sont explicitement enseignés au collège.
Cerin

1
J'ai rencontré des dizaines de diplômés en CS - tout en les interviewant - qui ne pouvaient expliquer aucun algorithme de tri, même s'ils devaient réfléchir pendant cinq minutes. Peut-être que la norme universitaire, ici dans les États, n'est pas parfaitement appliquée dans tous les domaines. Comme @Chris S le fait remarquer, il est assez facile de passer d’un diplôme à l’autre sans apprendre grand-chose.
Dean J

Vous mélangez deux choses ici. J'ai trouvé que faire un diplôme était extrêmement utile - je sais que cela m'a permis de devenir un meilleur codeur, mais je ne peux jamais comprendre exactement pourquoi (probablement une combinaison d'un peu de connaissances et d'une meilleure approche de la résolution de problèmes). Cela dit, de nombreux diplômés (issus d'une université assez prestigieuse) ne savent même pas comment mettre en œuvre l'ECC (9,5) avec une table de recherche de 512 octets. Les bons codeurs sont ceux qui vont au-delà de "Je ne comprends pas cela, mais je peux poser les questions de l'examen".

1
problème intéressant, mais pourquoi feriez-vous normalement un test ECC;), sauf pour le matériel, bien sûr, mais c’est un bon exemple d’auto-ingénierie que vous ne pouvez pas / ne pouvez pas? Apprenez à compSci

24

Votre humilité vous servira bien. The Beginner's Mind est utile pour tous les types d’apprentissage, quels que soient notre niveau d’éducation et d’expérience.

Travaillez à travers des exercices, comme d'autres l'ont suggéré - dans le cadre du projet Euler et ailleurs.

Trouvez des solutions pour aider les autres ici sur SO. L’exercice de compréhension de la question, de détermination de ce que vous savez pouvoir appliquer et, enfin, d’exprimer une réponse vous aidera à renforcer votre confiance en vous, tout comme les exercices à développer vos compétences.

S'en tenir à cela; ça ira.


9
L'humilité vous sera utile, sauf quand ce ne sera pas le cas - pour vous mettre en position ( y compris sur un projet personnel), vous avez besoin d'une certaine quantité de chutzpa. Vous devrez peut-être même avoir une confiance irrationnelle.

@ Ian, j'accepte humblement votre correction. ;-) Sérieusement - c'est un bon point et un bon article. Je n'aime pas la conclusion, que les femmes devraient être des abrutis, tout comme les hommes, mais il est difficile de se disputer avec le côté pratique.
Carl Manaster,

@Carl - trop rapide dans sa conclusion :-) L'embauche de personnel / de responsables gruge cette arrogance / auto-promotion. Surtout lors de l'évaluation des candidats à des postes techniques qu'ils ne commencent pas à comprendre les exigences de. J'ai vu beaucoup d'hommes très qualifiés dans le même bateau que ces pauvres femmes, quand cette personne trop confiante et auto-promotionnelle se présente et vole la vedette. Je ne pense pas que nous puissions considérer comme une victoire d’encourager plus de femmes à avoir trop confiance en elles. Le meilleur moyen, IMHO, est de former les responsables des ressources humaines à prendre de meilleures décisions ou de réorganiser le processus.

23

Avoir obtenu un diplôme en sciences informatiques ne fait pas plus de vous un bon programmeur que de passer d'un programme musical, vous êtes un grand musicien.

Rien ne peut remplacer la pratique, la pratique, la pratique et l'expérience. Programme 8 heures par jour et dans 5 ans, vous pourriez avoir cette compréhension qui vous manque en ce moment.


6
C'est un catch-22 n'est-ce pas? Programmez à temps plein pour obtenir le travail que vous voulez.
Jim Schubert

16
Non, dans 5 ans, vous réaliserez que vous ne savez rien :)
Earlz

1
@Earlz, Et le rien que vous savez enfin est déjà obsolète.
Dan Bryant

4
En effet, avec toutes les "écoles Java" (ce qui peut être ou non le cas ici), il est facile d’oublier que l’informatique n’est pas de la programmation. Je connais des gens qui ont obtenu un diplôme en sciences et qui ont fréquenté une école de médecine, ainsi que des biologistes qui ont fini par devenir des programmeurs. Pourtant, personne ne demande jamais pourquoi un diplôme en biologie ne fait pas d'eux un chirurgien: tout le monde sait qu'étudier la biologie n'est pas une pratique de la médecine.

1
@Earlz how very Zen :)
Tullo_x86

23

Une question si franche, d'excellentes réponses - je vais y répondre brièvement :)

Les réponses obtenues jusqu’à présent me faisaient un peu lol - elles célèbrent potentiellement notre propre grandeur un peu ironiquement. Je viens à SO en raison d'une documentation médiocre et de bugs dans les frameworks. Il y a évidemment un autre or ici mais cela vaut la peine de conserver votre humilité, même si vous devenez un grand dev - et je le dis du point de vue de l’arrogance historique personnelle (?).

N'oubliez pas que vous n'êtes peut-être pas (et probablement pas) embauché par un technicien, mais que les meilleurs spécialistes des ressources humaines et gestionnaires utiliseront un technicien pour vous évaluer.

Les employeurs ont un plan pour leurs employés, essayent de le percevoir tout au long de leur parcours et y adhèrent respectueusement, en leur donnant peut-être un peu de retouche personnelle et d’amélioration. Des difficultés et des opportunités peuvent survenir lorsqu'un employeur n'a pas vraiment de plan spécifique. Poser de bonnes questions et l'aider à préciser le plan peut vraiment vous faire rebondir dans ces situations.

Les gens d’affaires peuvent être (à juste titre) paranoïaques de la part des développeurs qui les conduisent, car nous devons souvent gérer leurs perceptions pour les aider à prendre des décisions qu’ils ne comprennent pas - et je dis cela, d’une manière irréfléchie, pour vous montrer la perspective de ne PAS en avoir. ou développer de vos collègues non-tech. Je pense humblement qu’il est important de comprendre que c’est là l’essence même des relations entre techniciens et non-techniciens - et qu’il est difficile de l’éviter, ce que nous faisons est obtus.

Être professionnel, ouvert d'esprit et respectueux, c'est obtenir des emplois - si vous êtes flou sur ce qu'est un professionnel, je suis sûr qu'il y a des endroits pour travailler sur Internet - j'aurais aimé que quelqu'un me le dise quand j'ai commencé. :)

La dernière chose que je dirais, c’est que, à mesure que vous vous perfectionnez en développement et en architecture, et que vous parlez déjà comme si vous aviez emprunté cette voie, vous constaterez peut-être que votre code professionnel peut devenir extrêmement décevant, même si c’est le cas. solution appropriée.

Je ne sais pas quelle est la solution, mais essayez de trouver un point de vente et de vous impliquer moins émotionnellement dans votre travail. Cela vous aidera à vous maintenir en équilibre et à mener une vie meilleure. quelque chose de «correct» - vous allez souvent créer des complications pour vos collègues et vous ne pourrez presque jamais consacrer le temps dont vous avez besoin pour le réaliser dans les délais impartis pour votre projet. Un symptôme de ceci est "la noirceur" - quand vous ne voulez pas expliquer ce que vous voulez faire à qui que ce soit. Beaucoup des meilleurs développeurs peuvent expliquer l'essentiel de ce qu'ils font à un laïc - c'est une grande compétence à apprendre et j'ai trouvé intellectuellement libérateur de pratiquer.

Heh, et pour estimer, pour commencer, divisez votre tâche en bits, faites le total du temps puis doublez-le (c'est ce qu'on appelle, diviser, conquérir, rentrer à la maison;)

Bonne chance! J'ai quitté l'école en espérant devenir moniteur de ski et j'ai fini par devenir un dev. Je suis sûr que vous ferez bien à tout ce que vous finirez par faire aussi.


10
Votre première phrase disait que vous feriez un bref commentaire ... Pourtant, vous avez l'une des réponses les plus longues ici. ;)

+1 pour "divisez votre tâche en bits, faites le total du temps puis doublez-le (c'est ce qu'on appelle, diviser, conquérir, marcher à la maison;)" ... même si vous devez quadrupler votre tâche dans de nombreux emplois la moitié du temps et ajouter un autre projet qui devrait être fait dans le même laps de temps sans permettre l'extension de votre estimation. J'ai même entendu parler de "multiplier par deux et augmenter l'unité (1 heure => 2 jours, 1 jour => 2 semaines, 1 semaine => 2 mois, 1 mois => 2 trimestres, 1 trimestre => 2 ans, .. .) et après une vraie expérience de travail, ce n'est pas aussi drôle que je le pensais toujours

vient d'imprimer cela et collé au mur
Quelle est la question

22

Oui, c'est assez normal. La plupart des écoles, même prestigieuses, enseignent l'informatique et le développement de logiciels. La situation s'améliore lentement, mais le chemin à parcourir est encore long.

Quoi qu'il en soit, on dirait que vous faites la plupart des choses bien:

  • Programme en dehors du travail
  • Lire des livres sur le développement de logiciels (Code Complete, Design Patterns, Mythical Man-Month, etc.).
  • Continuez à apprendre de nouvelles technologies - l'école aurait dû vous apprendre à apprendre les langues, pas les langues elles-mêmes. Apprenez de nouveaux frameworks, IDE, API, bibliothèques, outils de construction, etc.
  • Traîner sur des sites comme SO et ici. Interagir régulièrement avec des personnes expérimentées est l’un des rares demi-raccourcis vers la sagesse.

1
Honnêtement, Mythical Man-Month est un peu surestimé, n'est-ce pas? (Mais j'aime beaucoup les livres "* in a Nutshell").
Camilo Martin

2
@Camilo n'est pas d'accord. Le Mois de l'homme mythique porte sur le génie logiciel, alors que les livres de synthèse traitent uniquement d'une technologie unique. Éventuellement, vous devrez comprendre les problèmes liés à Peopleware lors du développement logiciel. MMM est l'une de ces lectures qui couvre le sujet.
Brian Wigginton

21

Vraiment bonne question. Je suis sûr que beaucoup de gens vivent exactement ce que vous avez décrit dans tous les domaines de la vie et sur les marchés du travail.

Premièrement, ne vous inquiétez plus pour des choses qui sont hors de votre contrôle. Vous n'êtes pas autorisé à stresser ou même à penser à l'école, à ce que vous avez appris ou non ou à vos résultats scolaires.

Deuxième - se spécialiser. Il y aura toujours une demande pour des personnes qui sont vraiment douées dans ce qu'elles font, même si ce qu'elles font se révèle être obscur. Vous devez choisir votre langage de programmation préféré et vous résoudre à le maîtriser complètement et à le personnaliser. Vous avez déjà beaucoup de bons conseils sur la façon d’améliorer les compétences en programmation, mais au bout du compte, rien ne se compare à la livre faisant autorité sur le sujet et vous enfermant dans votre chambre pendant quelques jours pendant que vous ne faites que lire chaque page et écrire chaque exemple que le livre donne.

Troisième - annoncez-vous. Dans cette histoire de l'informatique, cette étape n'a jamais été aussi facile qu'aujourd'hui. Les réponses que vous donnez et les questions que vous posez sur SO sont votre CV. Prenez sur vous de devenir la principale autorité sur SO pour cette langue que vous avez décidé de maîtriser. Assumez la responsabilité de toute question qui passe par ce serveur avec votre tag, même si cela signifie des heures de recherches approfondies et de réponses tardives. Faites une recherche dans les archives et lisez toutes les questions jamais posées sur votre sujet. Corrigez les informations erronées, apportez vos propres réponses et variations aux réponses et combinez quelques réponses existantes en une seule réponse. Inonder SO avec un flot infini de vos commentaires, réponses et modifications, devrait être votre raison d'être. (plus son plaisir parce que vous obtenez des points de réputation).

Quatrième - travaillez sur votre image publique. La confiance en soi est essentielle pour décrocher le meilleur emploi. Les entreprises veulent des collaborateurs, des collaborateurs et des communicateurs de qualité. Si vous pensez que cela pourrait être un problème, dites à vos amis que vous avez besoin pour augmenter votre ego et vous doucher avec des compléments sans fin puis passez à votre bibliothèque locale et ramasser un de ceux - ci .


2
+1 pour avoir mentionné l'importance des compétences de collaboration / communication. La plupart des diplômés en manquent.
Denis Otkidach

1
Je ne suis pas d'accord avec la spécialisation, chaque technologie mourra un jour, donc si vous vous spécialisez trop, vous vous retrouvez sans travail ... ok, certaines technologies (=> COBOL) meurent très lentement, vous laissant assez de temps pour vous spécialiser dans une nouvelle technologie. mais c'est quand même risqué.

1
La spécialisation a sa place, mais je ne suis pas sûre que le bon moment soit à la sortie de l'université. Je plaiderais également en faveur de l'offre et de la demande - une partie de l'astuce de la spécialisation consiste à trouver le créneau qui doit être comblé, pas celui qui est déjà plein. (et sur le front COBOL - il y a quelques années, mon compagnon de siège dans un avion semblait avoir entre 25 et 20 ans, mais il s'agissait d'un projet de portage d'un système hérité ... et d'après ce que j'ai compris ils restaient fidèles à COBOL, ils devaient juste passer à un nouveau matériel - il y a donc potentiellement une nouvelle génération de programmeurs COBOL)

21

Ok, alors j'ai vu cette news sur les hackers et j'étais comme "HOLY CRAP C'EST MOI !!"

J'ai donc obtenu mon diplôme en sciences en décembre dernier en décembre dernier et j'ai eu le sentiment que j'avais réussi à réussir mes cours et à obtenir un diplôme sans le mériter. J'avais l'impression que tous mes camarades de classe avaient des compétences incroyables en matière de codage et que je ne pouvais que faire des programmes Java de base. Apprendre à coder et devenir un bon codeur prend juste une tonne de temps. Il y a tellement de choses à apprendre et mon conseil est de les prendre un peu à la fois. Vous apprendrez des choses au fur et à mesure. Comme tout le monde a de la tristesse, la meilleure façon d'apprendre consiste à faire de la programmation en particulier. Sans parler du fait qu'il y a Tellement de choses sur la construction d'applications que même ils ne s'embêtent pas à vous dire à l'école. Ne vous sentez pas mal, sachez qu'il y a beaucoup à apprendre, et réalisez qu'il faudra du temps pour l'apprendre.

Je pense que vous devriez certainement regarder au-delà de la ville où vous avez grandi. Il y a une tonne d'entreprises qui embauchent des diplômés en CS, et toutes ne demandent pas ou ne s'attendent pas à ce que vous soyez un bon programmeur dès la sortie de l'école. J'ai réalisé de nombreuses interviews sans poser de questions sur le codage (beaucoup m'ont également demandé de résoudre des algorithmes et de coder). Adressez-vous à des entreprises qui se soucient davantage de votre capacité à apprendre que de ce que vous savez déjà (d'après mon expérience, les grandes entreprises se soucient davantage de cela, car cela ne les affectera pas autant si vous n'êtes pas en mesure de générer du code tout de suite).

Je ne sais pas si vous voulez faire du codage, mais il y a aussi beaucoup de travaux non techniques qui nécessitent une formation technique. Vous pouvez examiner ces options.

Je ne me concentrerais pas sur l'apprentissage des tenants et les aboutissants d'un langage comme C # ou Java, ni sur les principes de la programmation. Vous devriez être capable de transférer de bonnes compétences de codage et de les appliquer dans n’importe quelle langue (c’est important pour la longévité de votre carrière. Java ne va pas chauffer pour toujours). D'autre part, connaître les «compétences de pointe» peut aider à décrocher un emploi. Les techniques d’interview sont VRAIMENT importantes. Prenez chaque interview que vous obtenez, même si c'est juste pour la pratique.

Quoi qu'il en soit, ne croyez pas que les grandes entreprises comme IBM sont hors de votre portée. Je ressentais la même chose que vous il y a quelques mois et je travaille maintenant chez IBM. Mon GPA n'était pas si génial non plus. Je suis toujours aussi nul en programmation mais je sais que je vais m'améliorer avec le temps. Ayez simplement confiance en votre capacité d'apprendre!


1
Je dirais que les grandes entreprises telles qu'IBM sont plus à la portée de tous les autres endroits: elles ont suffisamment de personnel pour pouvoir former leur vivier de talents, contrairement aux endroits plus petits où l'on pourrait s'attendre à ce qu'ils soient sur le terrain. Et il y a toujours des stages - il est peut-être un peu tard d'avoir déjà obtenu son diplôme, mais de nombreux organismes gouvernementaux recrutent des stagiaires d'été ... afin que vous puissiez insérer cette "NASA" ou équivalent dans votre CV.

20

Wow, quelle réponse avant celle-ci.

Que diriez-vous d'une réponse complètement différente ...

Permet de recadrer votre problème en termes d’être humain.

"J'ai terminé les cours de conception et je suis sur le point de naître. Ma mère est couronnée de succès et je serai livrée demain matin. Mais quand je regarde des athlètes comme Usain Bolt, je me dis" comment puis-je courir vite?".

Mais vous y êtes, vous êtes un humain à part entière, vous avez traversé l'école, vous pouvez marcher, parler et si vous avez suivi un cours d'informatique, vous êtes assez intelligent pour démarrer. Rien à avoir honte.

Maintenant, Usain Bolt est-il né et a-t-il soudainement commencé à vivre des moments insensés sur la piste, ou bien a-t-il fallu passer d'une bonne journée à la vie, découvrir ce qui l'intéressait, suivi d'une quantité incroyable d'applications puis soudainement " Bam! " il était là.

Plus probablement le dernier. Alors ne vous donnez pas de difficulté à ne pas savoir ce que vous devriez faire. Il faut du temps pour trouver ce qui vous convient le mieux. C’est pour vous , pas ce que vos parents pensent, ni ce que pensent vos pairs. Ce qui est juste pour vous . Ce qui allume ton feu . Qu'est-ce qui vous fait penser * oui c'est cool "même quand tout le monde pense que c'est un pantalon.

Il n’est pas rare de commencer (et / ou) de quitter son diplôme sans avoir la moindre idée de ce que vous voulez faire.

Pour moi, j'étais bon à l'école aux niveaux O (un diplôme britannique) mais je ne pouvais pas me soucier du niveau A (requis pour entrer à l'université pour obtenir un diplôme). Alors je suis allé dans un endroit moins fréquenté pour obtenir mon diplôme (et par conséquent pas le diplôme que j'aurais préféré). Mais j’ai persévéré (je ne savais toujours pas ce que je voulais comme carrière) et j’en ai appris beaucoup sur l’électronique et des choses que la plupart des développeurs de logiciels n’apprennent jamais. Pendant ce temps, je travaillais en tant qu'écrivain en jeux informatiques.

Le résultat final? Après avoir obtenu mon diplôme (avec mention élogieuse), je suis entré dans un emploi avec un entretien d'embauche avec un salaire plus élevé que ceux qui font de l'électronique directe et je ne me suis pas fait changer les cheveux ni porter un costume. Quelle? Eh bien, à 23 ans, c'est important (quand je regarde en arrière, à 44 ans, j'en ris, mais c'est la faiblesse de la jeunesse pour vous).

Cette entreprise a fait faillite et j'ai commencé à devenir plus sérieuse. Mais ce n’est probablement pas avant quelques années que j’ai soudainement trouvé (par accident) ce qui m’intéressait vraiment. S'est avéré être des outils logiciels de bas niveau. Cela aurait dû être évident - tous les jeux informatiques que j'ai écrits ont été écrits en assemblée, j'ai toujours aimé les choses de bas niveau que personne d'autre ne pouvait comprendre. Mais pour voir cela comme un avenir, cela prend plus de maturité et il n’est pas surprenant que cela ne se soit pas vraiment manifesté avant mon milieu des vingt ans.

Je suis souvent impressionné (et émerveillé) par le fait que les jeunes, souvent encore adolescents, semblent savoir ce qu’ils veulent faire. Mais la vraie question est: le font-ils encore à 27 ans? Ou ont-ils changé de cap parce que leurs idées initiales n'étaient pas correctes pour eux?

Comment puis-je faire quelque chose d'aussi impressionnant que ÇA (peu importe, Google, SO)? Eh bien, vous le faites en morceaux, comme vous faites des logiciels et tout le reste de la vie. Vous commencez avec les bases, acquérez de l'expérience. Si vous êtes assez bon, vous continuez et obtenez plus d'expérience, etc., ou vous l'abandonnez parce que vous réalisez que vous n'êtes pas assez bon ou que c'est aussi ennuyeux que possible (c'est pourquoi je ne fais pas de comms même si c'est toujours été une mine d’or. Pour moi, c’est ennuyeux!).

Certainement, regardez vos pairs, regardez vos aînés, examinez leurs choix et leurs intérêts. Mais examinez le vôtre aussi. Souvent, ce qui semble à première vue fou / dingue est en réalité la vraie affaire. Faire quelque chose que vous trouvez intéressant (plutôt que de payer les factures) est TELLEMENT plus gratifiant.

Oui, je sais qu'en tant que jeune homme de 23 ans, vous vous concentrez sur l'Audi TT et sur le cool flat et que vous êtes tenté par l'argent plutôt que par des choix de carrière judicieux, mais vous réaliserez sérieusement qu'à un moment donné, la cool n'a pas tout à fait raison. être - cette fille devrait vous aimer pour qui vous êtes, pas pour ce que vous conduisez.

Sérieusement, réfléchis-y. La solution pas si cool peut être juste la bonne réponse.


-1: Pourriez-vous resserrer cela un peu et vous concentrer davantage sur la question et moins sur vous-même?
Jim G.

2
Il ne s’agit pas de «moi», c’est de la façon dont je suis arrivé ici sans savoir au début où se trouve «ici». J'utilise simplement ma propre expérience à titre d'exemple parce que je connais mon expérience mieux que celle de quelqu'un d'autre. Si vous le lisez comme à propos de moi, vous le lisez du mauvais point de vue. Souvent, si vous "resserrez" les choses comme vous le dites, vous ne fournissez pas d'arrière-plan pour exprimer le point de vue et laissez le lecteur perplexe. J'aurais pu écrire "Je ne savais pas ce que je voulais faire après avoir obtenu mon diplôme, mais maintenant je le fais bla bla". Cela n'inspirerait personne pour continuer - pas de "vraie raison de croire" (TM).

Bonne réponse, Stephen. Juste d'un POV différent que d'autres réponses ici.

+1, j'aimerais pouvoir ajouter 1000 votes pour en faire la réponse la plus haute. M'a touché!

18

En plus des excellents conseils donnés par d’autres personnes, j’ajouterais à ma participation aux événements pour développeurs organisés dans votre région. Recherchez des rencontres, des groupes d'utilisateurs, des camps de bars, des camps de codes, etc. Cela vous aidera à réseauter avec d'autres développeurs, à trouver des offres d'emploi, à suivre l'évolution des nouvelles technologies et à donner un aperçu réaliste du niveau de compétence des autres développeurs.


Je veux intervenir sur celui-ci. Fais ça. Je venais tout juste de sortir d'une école de technologie travaillant dans les dossiers médicaux d'un hôpital. J'ai commencé à aller à des réunions .NET locales. Cela a pris du temps, mais j'ai finalement obtenu un poste dans une entreprise de développement spécialisée dans le support des serveurs et des applications. Bien que ce ne soit pas mon objectif final dans la vie, il est plus facile que de scanner des dossiers médicaux.

17

Suivez la règle des 10 000 heures.

Pour devenir maître de quelque chose, vous devez vous exercer pendant au moins 10 000 heures. Passez donc 10 000 heures à programmer et vous en deviendrez un maître. Si vous n'avez pas passé 10 000 heures à programmer et que vous ne vous sentez pas comme un maître du métier, ne soyez pas découragé, passez plus de temps à coder.

Notez également que cela vous prendra probablement environ 3 ans et demi si vous programmez 8 heures par jour. Si vous programmez uniquement pendant les heures ouvrables, cela vous prendra probablement environ 4 ans. Si vous n'avez pas passé autant de temps au cours de votre programme d'études de 3/4 ans, vous ne vous sentirez probablement pas comme un maître.


1
et vous devez vous assurer que vous ne faites pas la même heure encore et encore! Poussez-vous pour continuer à apprendre.
Froome

+1 pour la règle 10k. J'en ai entendu parler pour la première fois, mais cela semble très bien sur le plan marketing et réel.

14

Juste quelques réflexions, si je peux.

Wendy dit que l'on peut obtenir un diplôme en sciences tout en ayant une petite idée de la pratique de la programmation. N'est-ce pas énormément troublant, voire horrible? C'est aussi troublant que la fraude qui a submergé les départements anglais dans les années 70: la littérature n'est pas un ensemble d'idées compréhensibles et pouvant être intégrées, mais plutôt un ensemble de "textes" que l'étudiant doit résumer et "déconstruire" ( http: / /www.answers.com/topic/deconstruction ). Heureusement, cette marée fétide est sur le point de s’effacer, peut-être parce que les instructeurs qui ont été balayés par les vagues dégoûtantes prennent leur retraite maintenant.

Il y a des années, des décennies, mon premier cours en informatique m'a appris le langage d'assemblage (avant l'invention de C) à l'aide de problèmes concrets tels que le tri, le hachage et la recherche (et, bien sûr, la récursion). Mon deuxième cours a été consacré à la conception et à la réalisation d’un vrai compilateur travaillant en direct. J'étais un étudiant à temps partiel au MIT et ces deux cours étaient tout ce dont j'avais besoin pour commencer à être payé en tant que programmeur; et de devenir quelque peu productif deux ou trois mois plus tard.

Donc ce matin, en entendant les cris de Wendy, je pense que le MIT, de tous les endroits, n'a certainement pas dilué ses offres et induit en erreur ses étudiants avec (dans le contexte de la pratique de la programmation) des conneries plutôt inutiles. Mais quand je regarde le programme EE / CS du MIT, je vois que c'est juste ce qui s'est passé:

http://student.mit.edu/catalog/m6a.html

Je remarque en particulier que le département utilise Python comme langue d'enseignement! Je veux dire vraiment! Il semblerait qu'un diplôme de CS au MIT signifie qu'un élève soit qualifié pour devenir professeur de CS au MIT. Parlez de récursivité!

Ensuite, je suis tombé sur cette contribution à Coding Horror ( http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html ) et je l’ai beaucoup pensé. de cette conversation:

"Je suis un partisan tardif de cette discussion [sur la prédiction du succès chez les candidats programmeurs], mais dans mon expérience de premier cycle senior de 30 ans en floraison tardive, j'ai trouvé que les cours de programmation étaient inutiles et moins mal enseignés que Je ne suis allé que dans un collège communautaire, puis à l'Université de l'Illinois à Chicago, mais les cours d'introduction à la programmation étaient les suivants:

"1. Orienté objet, ce qui laisse les étudiants avec peu ou pas de compréhension des méthodes procédurales, et

"2. Les classes sans ressources. Les classes consistaient principalement en des descriptions de différents types de problèmes et des mathématiques qui les sous-tendent, plutôt qu'en une ayntaxe et une structure pour lesquelles il était dit aux gens de lire le livre.

"Le code était à peine reconnu directement jusqu'au noyau de Data Structures, et ensuite il dépendait toujours de votre instructeur, certains étant très légers et d'autres très lourds. Vous pourriez dire que c'était une grande tentation pour les enseignants de l'éclairer. à ce stade, car s’ils se concentraient sur le code, ils devraient aussi s’efforcer d’enseigner aux étudiants qui suivaient un cours d’informatique depuis deux ans comment programmer.

"Etant donné que le codage est un passe-temps pour beaucoup de jeunes, je pense que les établissements d'enseignement se sont appuyés sur cela pour établir les courbes d'apprentissage attendues, laissant ceux qui n'avaient que peu ou pas d'expérience dans la programmation quand ils sont entrés à l'école ne pouvaient que tricher comme des fous. n’étudient pas de manière abstraite mon expérience, car toutes les personnes que je connais qui ont abandonné CS se sont retrouvées dans le domaine de l’ingénierie électrique. sur le plan abstrait. Ils ne savent toujours pas programmer, tout en faisant des maths que je ne peux pas faire la tête ni la queue. Souvenirs les plus absurdes:

"1. Java comme langage de programmation requis. Je ne vais pas critiquer Java ici, mais ne serait-il pas agréable pour les étudiants d'apprendre leur propre collecte de déchets? Et les pointeurs ne seraient-ils pas une bonne chose à apprendre, même si on n'a jamais décidé de programmer dans une langue avec eux?

"2. Vous prenez un cours de base sur la théorie des systèmes d’exploitation, après avoir été submergé de Java, et vous vous êtes rendu compte que c’était en C (bien sûr) sans même un seul cours sur le campus?

"Bien sûr, j'ai trente ans et aussi l'un de ceux qui ont toujours programmé, donc je n'ai pas eu de problèmes, mais j'ai vu beaucoup de gens que je savais être meilleurs en abstraction que moi (des cours de calcul, de DiffEQ et de physique avant ) et leur agonie totale à essayer de terminer un programme qui avait été empilé contre eux ".

Quelques points de données mais, comme d'autres l'ont dit, hantent.

- Pete


Je suis si fatigué de ce point de vue blasé.
Andres Jaan Tack le

Python est l'une des meilleures langues d'enseignement existantes
Casebash le

@ Icplben, Pete ou Jamaal de codinghorror.com?
Zaki

14

Tout d'abord, accrochez-vous!

Deuxièmement, voici ce qui m'a aidé:

  1. Continuez votre recherche d'emploi au-delà de votre région d'intérêt. Certainement être ok pour re-localiser. Belle chance de sortir et de voir un nouvel endroit!
  2. Parce que l'expérience est faible, je pense que les intervieweurs veulent s'assurer que vous êtes quelqu'un qui sera enthousiaste et dynamique pour travailler et résoudre les problèmes. Je me suis donc assuré que je souhaitais coder pour l'entreprise. Que j'étais;)
  3. Posez des questions à votre interlocuteur. Effectuez une recherche sur l'entreprise et préparez du matériel au cours de l'entretien. Quels modèles de design utilisez-vous? Pourquoi la technologie X au lieu de la technologie Y? Je pense que cela vous complète en tant que personne lors de l'entrevue et vous donne une chance de faire une pause.
  4. Code pour le plaisir à la maison! Il ne doit pas nécessairement réussir, mais écrivez simplement un code qui utilise peut-être une technique que vous avez déjà décrite ou une technologie comme une base de données.

Troisièmement, j'étais dans un bateau similaire à vous lorsque vous avez obtenu mon diplôme, restez avec vous et continuez à chercher. Votre premier emploi est là-bas.


14

Très peu de gens obtiennent leur diplôme, peu importe la discipline, en tant qu'experts dans un domaine qu'ils ont seulement étudié. L'informatique n'a rien de spécial à cet égard. Rien ne vaut une expérience empirique et vous ne tirez cela que du développement de logiciels à part entière pour de vrais clients, avec toutes les exigences, les contraintes de temps, les changements et le travail d’équipe que cela implique.


1
Malheureusement, c'est vrai. Un baccalauréat est inutile, sauf en tant que badge que vous avez réussi à faire passer. Cela dit, le programme d’études préparatoires est horrible au premier cycle. Le programme de CM nécessite 5 mathématiques, mais combine langage formel, automates et calculabilité en un seul cours, au choix.
MIA

4
D'accord à 100%. Pourquoi voudriez-vous être un expert dans quelque chose que vous venez de qualifier ??
Alex Feinman

13

J'ai trouvé ce site moche l'autre jour http://99designs.com/ Sous Conception de site Web ou autre conception, vous pouvez probablement trouver des projets liés aux logiciels.

Ce serait un excellent moyen de coder, de développer de nouvelles compétences, de rencontrer de nouvelles personnes qui pourraient être des employeurs potentiels et vous pourriez même gagner de l'argent.

J'ai trouvé qu'il était très utile pour les employeurs de montrer que même si vous n'aviez pas d'emploi, vous n'étiez pas assis sur vos fesses. Montrez que vous êtes sorti et que vous avez réalisé des projets, de préférence des projets que vous pouvez montrer lors d'une interview.


J'ai divisé ma journée entre 1) l'envoi de CV 2) l'examen de livres mais je n'ai pas travaillé sur des projets. Soit dit en passant, ce site est très intéressant. Cela semble cibler davantage les artistes et les concepteurs que les développeurs de logiciels, mais je devrai approfondir mes recherches.

Je ne m'inquiéterais pas tellement des livres. Comme mentionné ailleurs, le seul moyen sûr d’apprendre est de le faire. Ne tardez pas à trouver un emploi. C'est malheureux, mais il faut parfois plusieurs mois pour trouver le bon. Continuez d'essayer :) Je suis d'accord avec vous, le site est plus ciblé sur l'art / le design, bien que si vous êtes intéressé par des sites Web, il y en a certains. L'avantage est que vous pouvez faire un projet sans avoir l'idée vous-même, et vous pouvez être payé, sinon vous pouvez consulter sourceforge.net pour d'autres idées de projets

13

Ne t'inquiète pas. Rome ne s'est pas construite en un jour.

For each P in PeopleYouKnow
Try
  ask/call P for a Job apply for job;
Catch Denial As Exception
  don be worry;
  //you'll get a job later
End Try

Finally
 If you haven't found a job yet
  For each programmingJobAd in internet

 Try
    apply for job;
    Follow up;
  Catch Denial As Exception
   don be worry;
  //you'll get a job later
 End Try
end
//Keep trying.
//find a bug from this code.

MODIFIER: #! diff A B

3c3
<   ask/call P for a Job apply for job;
---
>   ask/call P for a Job job; if job is available apply for job;
9a10
>  //(sic)
14c15
<     apply for job;
---
>     apply for programmingJobAd;
20c21
< end
---
> End

12

Tout d'abord, ne vous inquiétez pas que vous ne pouvez pas coder Google. Google a été créé au cours des années par de nombreux programmeurs très expérimentés. C'est comme finir un diplôme en arts visuels et se demander comment on pourrait faire The Last Supper.

Pour la recherche d'emploi, ne pas transpirer les exigences. Appelez-les simplement et dites-leur que vous n'avez pas les années, mais que vous aimeriez quand même postuler. S'ils veulent vraiment l'expérience, demandez-leur s'il existe des postes moins expérimentés - ils pourraient peut-être créer un nouveau poste juste pour vous. La plupart des emplois sont créés pour une personne spécifique. Assurez-vous de contacter le chef de projet, pas le service des ressources humaines. Habituellement, les ressources humaines ne créent pas de nouveaux emplois, elles se contentent souvent de sélectionner les candidats pour les emplois existants. Google est votre ami dans ce cas;)

N'essayez pas de coder une application Web (comme Google ou un débordement de pile) à moins de vouloir investir environ 6 mois. C'est une courbe d'apprentissage énorme. Vous devez apprendre à gérer un VCS, à exécuter un serveur Web, au codage HTML JS et CSS, à un système de base de données et au langage des applications Web. C'est brutal. La plupart de ces technologies ne sont pas transférables, sauf si vous souhaitez travailler sur le Web.

Si vous souhaitez créer des applications Web, vous pouvez installer une application Web simple (comme cette application de recherche de pays basée sur un django - http://www.coulix.net/blog/2006/aug/17/ip- pays-drapeaux-django-commentaires / ). Vous pouvez chercher un code de réduction dreamhost de 90 $ (pour pouvoir travailler sur un vrai serveur Web) et essayer de tout configurer. Ne vous inquiétez pas trop sur la sécurité ou la performance (mais ne utilisez ssh) - il est juste un projet d'apprentissage.

Si vous voulez faire des choses sur le bureau, vous pouvez jeter un oeil à pygame.


Je pensais que la première version de google avait été faite en peu de temps? Comme sur un été ou quelque chose comme ça
Earlz

Apache fonctionnant sous Linux sur votre bureau est un "vrai serveur Web", pas besoin de dépenser de l'argent. Que pensez-vous des hébergeurs?
TMN

@TMN, par serveur Web, je voulais dire une pile de matériel et de logiciels de production. Je sais que DH utilise Apache et MySQL, mais le développement sur un serveur de production présente des avantages (tout est configuré, y compris des tâches complexes, comme le courrier, et ils enregistrent le domaine pour vous), ainsi que des inconvénients (pas de root, par exemple). utilisé pour le développement à distance). L'utilisation d'un serveur de production vous fait plonger dans le travail Web.

11

Vous pouvez tout lire sur la programmation, mais vous ne saurez pas vraiment programmer avant de commencer ... à commencer à programmer!

Je vous recommanderais de démarrer un projet personnel. Qu'est-ce que tu veux créer? un jeu? Un blog? Ça n'a pas d'importance. Juste faire quelque chose!

Ensuite, après quelques codages réels (quelques semaines ou quelques mois), je vous recommande d'essayer de contribuer à des projets open source. Le projet personnel vous aide à comprendre comment programmer lorsque l'objectif n'est pas déjà défini pour vous (savoir comment concevoir réellement quelque chose n'est pas souvent enseigné à l'école). Contribuer à des projets existants vous apprend à travailler en équipe et à respecter les normes du code.

Je ne perdrais pas mon temps à lire beaucoup d'autres choses. Je dirais tout au plus que vous devriez probablement lire environ 20% du temps et écrire du code les 80% restants. (bien sûr, par temps, je veux dire votre temps réservé pour programmer des choses liées à la programmation)


9

Eh bien, voici mes deux cents ... couplés avec des citations provenant de quelques autres sources.

Une proportion étonnamment importante de candidats, même ceux ayant obtenu une maîtrise ou un doctorat en informatique, échouent au cours des entretiens lorsqu'on leur demande d'effectuer des tâches de programmation de base.

- Dan Kegel via Jeff Atwood

http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

C’est un problème que j’ai vu souvent, même jusqu’au point où des personnes qui ont des années d’expérience sur leur curriculum vitae ne sont pas en mesure d’exécuter des tâches simples. Personnellement, je pense que les instituts d’enseignement sont en grande partie responsables de cela, de la part du corps professoral qui ne connaît pas la matière ou ne peut pas l’enseigner aux conseillers qui devraient guider des étudiants qui ne veulent que se lancer dans un financement sans un intérêt raisonnable dans le domaine lui-même.

D'après le son de votre question, vous sortez de l'université en pensant que vous venez de vous faire avoir par quelques années de votre vie pour obtenir un bout de papier. C'est ainsi que beaucoup d'agences d'embauche perçoivent un diplôme en ce moment pour les programmeurs. Ils veulent des gens qui ont prouvé qu'ils peuvent programmer, pas seulement des personnes qui ont un bout de papier. Mais le fait que vous posiez cette question en premier lieu me montre une volonté d'apprendre réellement à programmer.

Une des meilleures choses que vous pouvez faire pour apprendre a déjà été signalée à plusieurs reprises, à savoir la programmation. Malheureusement, même si cela augmentera absolument vos connaissances et votre compréhension de la technologie, il n’est pas très probable que cela vous aide à trouver du travail, sauf si vous pouvez le mettre sur votre CV.

Je vous suggère de commencer par créer vous-même quelques applications avec un objectif spécifique, de déterminer ce que vous pouvez faire et ce qui vous incitera à aller de l’avant, puis de vous rendre dans des endroits où vous pouvez obtenir du travail en freelance. Ne vous attendez pas à être payé un montant énorme pour un travail indépendant que vous allez chercher sur le Web, vous souhaitez l'ajouter à votre CV, pas à votre portefeuille. Une fois que vous avez entre 3 et 5 éléments sur lesquels vous pouvez pointer et dire "J'ai construit cela" ou "J'ai conçu cette fonctionnalité pour eux", puis répertoriez tous ces éléments et trouvez une agence de recrutement (ils sont PARTOUT .. . les chasseurs de têtes) et travaillez avec quelques-uns de leurs employés pour rationaliser votre CV, afin de mettre en valeur votre formation et votre débrouillardise pour trouver du travail, et pour minimiser l’aspect de votre manque d’expérience.

La chose la plus importante à retenir lorsque vous parlez à des employeurs potentiels (que je vois des gens en désordre tout le temps), et que tout le monde devrait prêter attention à cela, c'est que même si vous ne voulez absolument pas vous vendre à découvert ou minimisez ce que vous POUVEZ faire, ne vous superposez pas et faites-leur croire que vous pouvez faire des choses que vous ne savez pas comment. Les employeurs ont toujours le talent de vous demander de faire des choses que vous ne savez pas comment faire. C'est à vous de le résoudre, mais si vous leur dites que vous le pouvez déjà, vous allez inévitablement manger vos paroles plus tard. .

Bonne chance à vous!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.