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.
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 :)
la source
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.
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.
Commencez petit .
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.
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.
Aidez d'autres personnes sur SO! La meilleure façon de comprendre est d'essayer de l'enseigner à d'autres personnes.
É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.
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 :)
Ne jamais arrêter d'apprendre de nouvelles technologies.
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
la source
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.
la source
la source
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.
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.
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
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.
la source
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.
la source
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
la source
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".
Ajouté en tant que pensées après coup:
la source
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 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.
la source
Quelques commentaires, du point de vue de quelqu'un qui est développeur depuis plus de 20 ans:
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.
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.
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!
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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:
la source
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 .
la source
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!
la source
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.
la source
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.
la source
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.
la source
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
la source
Tout d'abord, accrochez-vous!
Deuxièmement, voici ce qui m'a aidé:
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.
la source
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.
la source
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.
la source
Ne t'inquiète pas. Rome ne s'est pas construite en un jour.
MODIFIER:
#! diff A B
la source
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.
la source
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)
la source
Eh bien, voici mes deux cents ... couplés avec des citations provenant de quelques autres sources.
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!
la source