ti-enxame.com

Como posso compensar por ter ido para uma JavaSchool?

Em ma pergunta anterior , pedi conselhos de carreira para novos engenheiros de software que se saíram bem antes e durante a faculdade. Mas e as pessoas que não tiveram a sorte de ir para MIT ou Yale, por qualquer motivo? E se você fosse para o que Joel Spolsky chama de ma JavaSchool ?

O que os alunos do JavaSchool podem/devem fazer para desenvolver suas habilidades e compensar as coisas que perderam na faculdade? (Ou Joel estava errado sobre essas escolas serem desvantajosas?)

18
Pops

Apesar das afirmações feitas por Joel naquele artigo - e ele próprio admite - muitas das áreas temáticas que podem ser perdidas por uma "JavaSchool" não são necessárias em muitos trabalhos.

Eu participei de algo que suponho lembra uma JavaSchool em que passamos a maior parte do nosso tempo focando em linguagens de alto nível como C # e Java, mas isso não muda o fato de que "Algoritmos e Estruturas de Dados" é ainda faz parte da lista de classes obrigatórias - para não mencionar todas as outras classes teóricas. Concedido, nem todas as "JavaSchools" são iguais, mas esse não é o ponto.

Em minha opinião, mais importante do que entender alguns dos tópicos de desenvolvimento mais corajosos é ser capaz de resolver problemas de forma eficaz quando surgem desafios únicos. Como engenheiros de software, fazemos a maior parte do nosso aprendizado no trabalho e, como tal, dois dos maiores aspectos de nossa descrição de trabalho são a capacidade de resolver problemas e de pegar conceitos desconhecidos. Se, durante uma entrevista, alguém for incapaz de fazer uma tentativa discernível e lógica de resolver um problema que é novo para eles, então sua incompatibilidade para um dado posição provavelmente se revelará.

Obviamente, ao contratar alguém para uma posição que requer exposição constante e uso de algum tópico intrincado que pode passar despercebido por uma JavaSchool, muitas vezes é a escolha lógica ir com alguém que tem um conhecimento prévio, mas a falta de experiência não deve sempre impedir a elegibilidade para o emprego .

Mais do que provavelmente, o Java cara de 50 anos em sua empresa que está lá desde que alguém se lembra) não tinha nenhum conhecimento de Java até seu trabalho (atual ou anterior) pedia que ele aprendesse - e ele o fez.Rigorosamente falando, é uma má prática demitir "o velho" para que um candidato mais jovem e mais "atualizado" possa ocupar seu lugar; Dito isto, se a descrição do cargo para qualquer funcionário jovem ou velho mudar, é responsabilidade desse funcionário ser atualizado ou encontrar um novo emprego. Só porque um indivíduo (especialmente um programador com experiência anterior) não entende alguns conceito, não significa que eles estejam indispostos ou incapazes de aprender. Na verdade, se eles não estão dispostos a aprender, então provavelmente não pertencem a nenhum trabalho - muito menos o seu.

É justo dizer que algumas "JavaSchools" são melhores do que outras, e esse fato certamente deve ser considerado ao selecionar um candidato para uma posição, mas existem características pessoais muito mais importantes do que apenas onde alguém estudou.

É nossa aptidão para resolver um problema e encontrar uma solução que nos defina como engenheiros, quase todo o resto é secundário.

12
Nathan Taylor

Eu sinto sua dor, pois também fui para uma JavaSchool. O meu está realmente bem classificado no Reino Unido pelo que é, embora os alunos do meu ano não tenham tido uma única aula de Estruturas de Dados. Tive a sorte de poder escolher o DSA como um curso opcional devido a erros administrativos em meu curso, mas essa é outra história angustiante ...

Pela minha experiência, você experimentará algo em uma JavaSchool que não experimentará nas melhores universidades e esse é o aluno que quer provar seu valor. Assim como em qualquer outra universidade antiga ou de tijolo vermelho em meu país, tínhamos os preguiçosos típicos e os desempenhos decentes, mas havia um pequeno grupo de alunos que estavam cientes de seus arredores e do que estavam perdendo em sua educação. Inevitavelmente, essas pessoas não tiveram necessariamente um desempenho brilhante em seus cursos, mas deixaram a universidade sabendo mais do que todo mundo. Estagiamos em qualquer empresa de software que nos levasse durante os intervalos que tínhamos, aprendemos as línguas que nunca deveríamos aprender e estudamos as matérias que os outros evitavam porque eram difíceis.

Dos meus amigos, dois de nós estamos continuando nossos estudos até o nível de mestrado, retomando todos os cursos avançados nos quais sentimos que perdemos totalmente o fundamento, e um cara espera que sua recente entrevista na Microsoft resulte em um completo trabalho de tempo. Estou prestes a iniciar meu mestrado em breve, principalmente para preencher as lacunas na minha educação e para passar mais um ano desenvolvendo as habilidades de que preciso para maximizar meu potencial neste setor.

No mundo real, as pessoas sempre terão esses preconceitos e, na maioria das vezes, eles são totalmente fundamentados na verdade. Se você acha que sua escola é inadequada, diga a eles e use sites como este para melhorar seu nível de educação.

1
Mike B

Por que não trabalhar em um livro que apresenta a programação de maneira diferente de como você a aprendeu? Por exemplo, existem vários livros bons e gratuitos que usam o paradigma funcional. Como projetar programas é muito acessível. A clássica Estrutura e Interpretação de Programas de Computador (http://mitpress.mit.edu/sicp/) é menos, mas fornece um profundo senso de Iluminação.

Eu recomendo fortemente assistir às primeiras duas palestras SICP de Abelson para uma perspectiva diferente sobre o que é ciência da computação. Eles são mais velhos, mas envelheceram muito bem (http://video.google.com/videoplay?docid=5546836985338782440#).

1
Hélène Martin

A melhor coisa que posso pensar é ir e (re) aprender programação em um paradigma completamente diferente, a fim de me libertar do modo de pensar orientado a objetos.

Eu sugeriria no mínimo:

  • linguagem assembly, para obter uma apreciação real de como a máquina funciona
  • Haskell, para uma visão muito pura da programação funcional
  • LISP , para programação funcional impura e metaprogramação (Clojure seria minha primeira escolha, mas Scheme ou Common LISP também são ótimos)
0
mikera

Bem, você pode obter um software de trabalho de escrita em Java. Contanto que você seja bom no que faz, a escola que você frequentou e/ou seu curso não são terrivelmente relevantes após o primeiro emprego, se mesmo assim.

0
GrandmasterB