Comment puis-je compenser pour être allé à une JavaSchool? [fermé]

18

Dans une question précédente , j'ai demandé des conseils de carrière aux nouveaux ingénieurs logiciels qui ont bien fait avant et pendant les études collégiales. Mais qu'en est-il des gens qui n'ont pas eu la chance d'aller au MIT ou à Yale, pour une raison quelconque? Et si vous alliez à ce que Joel Spolsky appelle une JavaSchool ?

Que peuvent / devraient faire les anciens élèves de JavaSchool pour développer leurs compétences et compenser les choses qu'ils ont manquées au collège? (Ou, Joel avait-il tort de dire que ces écoles étaient désavantageuses?)

Pops
la source
Lisez .
Shog9
4
"Ne laissez pas la scolarité entraver votre éducation" - Mark Twain
BlackJack

Réponses:

12

Malgré les affirmations de Joel dans cet article - et il le concède lui-même - beaucoup de sujets qui peuvent être manqués par une "JavaSchool" ne sont pas nécessaires pour de nombreux emplois.

J'ai assisté à quelque chose qui, je suppose, ressemble à une école Java en ce que nous passons la plupart de notre temps à nous concentrer sur des langages de haut niveau comme C # et Java, mais cela ne change pas le fait que "Algorithmes et structures de données" fait toujours partie de la liste de classes requise. - sans parler de toutes les autres classes théoriques. Certes, tous les "JavaSchools" ne sont pas identiques, mais ce n'est pas le but.

À mon avis, plus important qu'une compréhension de certains des sujets de développement les plus difficiles est de pouvoir résoudre efficacement les problèmes lorsque des défis uniques se présentent. En tant qu'ingénieurs logiciels, nous effectuons la grande majorité de nos apprentissages sur le tas et, en tant que tels, deux des aspects les plus importants de notre description de poste sont la capacité de résoudre des problèmes et de pouvoir choisir des concepts inconnus. Si, au cours d'une entrevue, on est incapable de faire une tentative discernable et logique de résoudre un problème qui leur est nouveau, alors leur incompatibilité pour une position donnée se révélera probablement.

De toute évidence, lors de l'embauche d'une personne pour un poste qui nécessite une exposition constante et l'utilisation d'un sujet complexe qui peut être manqué par une école Java, c'est souvent le choix logique d'aller avec quelqu'un qui a une compréhension préalable, mais le manque d'expérience ne devrait pas exclure toujours l'admissibilité à l'emploi .

Plus que probablement, le gars de Java de 50 ans dans votre entreprise, qui est là depuis aussi longtemps que vous vous en souvenez, ne comprenait pas Java jusqu'à ce que son travail (actuel ou précédent) lui demande de l'apprendre - et il l'a fait. À proprement parler, c'est une mauvaise pratique de renvoyer "le vieil homme" pour qu'un candidat plus jeune et plus "à jour" puisse prendre sa place; cela étant dit, si la description de poste d'un employé, jeune ou âgé, change, il est de la responsabilité de cet employé de se rattraper ou de trouver un nouvel emploi. Ce n'est pas parce qu'un individu (en particulier un programmeur ayant une expérience passée) ne comprend pas un concept, qu'il ne veut pas ou ne peut pas l'apprendre. En fait, s'ils ne veulent pas apprendre, ils n'appartiennent probablement à aucun travail - encore moins le vôtre.

Il est juste de dire que certains "JavaSchools" sont meilleurs que d'autres, et ce fait doit certainement être pris en compte lors de la sélection d'un candidat pour un poste, mais il existe des traits personnels beaucoup plus importants que le simple lieu où quelqu'un est allé à l'école.

C'est notre aptitude à résoudre un problème et à trouver une solution qui nous définit en tant qu'ingénieurs, tout le reste est secondaire.

Nathan Taylor
la source
+1 "C'est notre aptitude à résoudre un problème et à trouver une solution qui nous définit en tant qu'ingénieurs, tout le reste est secondaire."
Bill
J'ai fréquenté une école où les langages de programmation étaient rarement abordés (nous avions une base de C / C ++ / Java, malheureusement pas de langage fonctionnel), et nous ne faisons que des connaissances de passage avec la théorie CS. D'autre part, nous avons parlé des bases de données, de l'exploration de données, des réseaux téléphoniques / mobiles / Internet, de l'interface homme-machine, etc. Nous avons appris en profondeur plutôt qu'en profondeur. Je ne pense pas que ce soit une mauvaise affaire :)
Matthieu M.
1

Pourquoi ne pas travailler à travers un manuel qui présente la programmation différemment de la façon dont vous l'avez apprise? Par exemple, il existe plusieurs bons livres gratuits qui utilisent le paradigme fonctionnel. Comment concevoir des programmes est très accessible. La structure et l'interprétation classiques des programmes informatiques (http://mitpress.mit.edu/sicp/) le sont moins, mais fournissent un sens profond de l'illumination.

Je recommande fortement de regarder les deux premières conférences SICP d'Abelson pour une perspective différente sur ce qu'est l'informatique. Ils sont plus âgés mais ont très bien vieilli (http://video.google.com/videoplay?docid=5546836985338782440#).

Hélène Martin
la source
1

Je ressens ta douleur, alors que je suis allé dans une école JavaSchool. Le mien est en fait classé assez haut au Royaume-Uni pour ce qu'il est, même si les étudiants de mon année n'ont pas eu un seul cours sur les structures de données. J'ai eu la chance de pouvoir choisir DSA comme cours optionnel en raison d'erreurs administratives avec mon cours, mais c'est une autre histoire poignante ...

D'après mon expérience, vous vivrez quelque chose dans une école Java que vous ne vivrez pas dans les meilleures universités et c'est l'étudiant qui veut prouver sa valeur . Comme dans toute autre université ancienne ou en briques rouges de mon pays, nous avions les fainéants typiques et les interprètes décents, mais il y avait un petit groupe d'étudiants qui étaient conscients de leur environnement et de ce qui leur manquait dans leurs études. Inévitablement, ces personnes n'ont pas nécessairement réussi brillamment dans leur cursus, mais elles ont quitté l'université en sachant plus que tout le monde. Nous avons été internés dans les éditeurs de logiciels qui nous emmenaient pendant les pauses que nous avions, nous avons choisi les langues que nous ne devions jamais enseigner et nous avons étudié les matières que les autres évitaient parce qu'elles étaient difficiles.

De mes amis, deux d'entre nous poursuivent nos études jusqu'au niveau Master, reprenant tous les cours avancés sur lesquels nous pensions avoir complètement raté la fondation, et un gars espère que sa récente interview chez Microsoft se traduira par un plein- travail à temps. Je suis sur le point de commencer ma maîtrise bientôt, principalement pour combler les lacunes de mon éducation et pour passer une année de plus à développer les compétences dont j'ai besoin pour maximiser mon potentiel dans cette industrie.

Dans le monde réel, les gens auront toujours ces préjugés et, le plus souvent, ils sont entièrement fondés sur la vérité. Si vous pensez que votre école est inadéquate, dites-le-leur et utilisez des sites comme celui-ci pour développer votre niveau d'éducation.

Mike B
la source
0

Eh bien, vous pouvez obtenir un logiciel d'écriture de travaux en Java. Tant que vous êtes bon dans ce que vous faites, l'école où vous êtes allé et / ou votre majeure n'est pas vraiment pertinente après le premier emploi, même si c'est le cas .

GrandmasterB
la source
0

La meilleure chose à laquelle je peux penser est d'aller et de (ré) apprendre la programmation dans un paradigme complètement différent, afin de se libérer de la pensée orientée objet.

Je suggère au minimum:

  • Langage d'assemblage , pour une réelle appréciation du fonctionnement de la machine
  • Haskell , pour une vision très pure de la programmation fonctionnelle
  • Lisp , pour une programmation fonctionnelle et une métaprogrammation impures (Clojure serait mon premier choix, mais Scheme ou Common Lisp sont également excellents)
mikera
la source