Por que é sempre “que idioma devo aprender a seguir” em vez de “que projeto devo abordar a seguir”? [fechadas]


14

Por que os programadores iniciantes (como eu) sempre perguntam sobre o próximo idioma que devem aprender em vez de perguntar sobre o próximo projeto a ser abordado?

Por que Eric Raymond, na seção " Aprenda a programar " do seu ensaio " Como se tornar um hacker ", fala sobre a ordem em que você deve aprender idiomas (versus a ordem em que você deve abordar projetos).

Os carpinteiros iniciantes perguntam "Eu sei como usar um martelo ... devo aprender a usar uma serra ou um próximo nível?"

Pergunto porque estou descobrindo que quase qualquer projeto significativo que estou interessado em abordar (por exemplo, um aplicativo da Web, um conjunto de ferramentas de análise de pôquer) exige que eu aprenda apenas o suficiente de uma infinidade de linguagens (Python, C, HTML, CSS , Javascript, SQL) e estruturas / bibliotecas (wxPython, tkinter, Django) para implementá-las.

Obrigado,

Mike


5
Isso parece um pouco ... seguro, para ser honesto. Talvez você possa remover as insinuações e deixar apenas sua pergunta?
Anon.

4
Eu acho que você está descascando etapas cronologicamente. As probabilidades são de que o carpinteiro já saiba como usar essas ferramentas, se ele souber enquadrar uma porta. Mas no início de sua vida, ele também seguiu o caminho de qual ferramenta eu deveria investigar a seguir.
CrazyPenguin

Comentário justo re: ranty ... foi divertido. Desculpas se pareceu tão certo.
9609 MikeRand

4
A linguagem de programação para comparação de ferramentas manuais não é uma comparação muito boa. Parece fazer sentido superficialmente, mas se desfaz rapidamente e acaba sendo mais prejudicial do que útil. Também muitas pessoas o tratam como se fosse uma verdade inquestionável. Esse cara faz um trabalho decente descrevendo algumas razões pelas quais não funciona. journal.dedasys.com/2007/12/12/…
Nick Knowlson,

Eu gosto dessa pergunta ...!
Michael K

Respostas:


6

Eu acho que quando a maioria das pessoas decide aprender um idioma, o faz porque quer abordar um projeto escrito nesse idioma, agora ou no futuro. Para fazer isso, eles precisam aprender esse idioma, o que leva tempo. As linguagens de programação são como ferramentas, mas, embora você possa aprender a usar um martelo em cerca de sessenta segundos, as linguagens demoram um pouco mais para aprender a usar; assim, muitas pessoas se concentram em aprender um idioma antes de se concentrarem em trabalhar em um projeto escrito nesse idioma.

Em outra nota, acho que quando a maioria das pessoas pergunta qual idioma aprender em seguida, elas realmente estão pensando em qual projeto aprender, mas se concentram em aprender o idioma primeiro.

Por fim, aprender idiomas pode ser divertido , mesmo que você não tenha um projeto ou objetivo específico em mente.


6
  • O motivo de muitos desenvolvedores em tempo integral é ser mais empregável.

  • Ser mais empregável geralmente significa passar pelo obstáculo do examinador de RH (e depois passar pelo obstáculo da entrevista real).

  • O examinador típico de RH geralmente possui uma lista de verificação de idiomas que podem ser comparados com um currículo, mas não tem como avaliar habilidades ou projetos.

  • O sucesso de uma entrevista real geralmente depende mais da sorte e das habilidades mínimas em um idioma do que da experiência e de um profundo entendimento de um idioma.

Portanto, ser medíocre em muitos idiomas é melhor para empregabilidade do que ser especialista em alguns, a menos que alguém esteja se candidatando a cargos seniores.


Infelizmente, para passar da tela de RH, você deve fornecer a lista de palavras do dia. O processo de triagem de RH é um filtro de curso que deixará muitos candidatos qualificados para trás.
Jeff

1
@ Jeff, pelo que ouvi sobre a triagem de RH, tudo o que eles querem é reduzir o número de currículos para um nível gerenciável e aplicar muitos filtros arbitrários, como "bin se mais de 2 páginas".
Dominique McDonnell

2

As opções de programação análogas para o carpinteiro seriam "Qual aplicativo devo construir a seguir?" ou "Que sistema devo construir em seguida?" que são bastante válidos e separados de um projeto que pode realmente ser aplicado quase universalmente. Eu poderia ter um projeto para mudar minha dieta ou perder 20 libras com a mesma facilidade que poderia ter algo que exige que algum software novo seja escrito para amarrar as coisas.

Para responder à pergunta, acredito que a idéia é que um idioma represente uma ferramenta na caixa de ferramentas dessa pessoa que possa ser útil em um currículo. Algumas pessoas podem optar por se tornar um programador para pagar as contas e, em caso afirmativo, podem perguntar qual a próxima ferramenta a adicionar, que geralmente seria uma linguagem, mas existem outras possibilidades, como aprender sobre implantação, controle de origem, testes e metodologias de desenvolvimento para cite algumas outras áreas. Se um carpinteiro tiver que divulgar quais ferramentas ele possui, ele pode ter uma perspectiva semelhante, eu argumentaria. No entanto, existe um conjunto geral de ferramentas que a maioria dos carpinteiros tem ou tem acesso para obter, se solicitado rapidamente. Você já viu quantos tipos diferentes de serras e martelos existem para as pessoas usarem?


1

Talvez seja parcialmente sobre a mentalidade hacker, pelo menos para alguns dos programadores. Hacker é definido no arquivo Jargon como

"Uma pessoa que gosta de explorar os detalhes de sistemas programáveis ​​e como ampliar suas capacidades, em oposição à maioria dos usuários, que prefere aprender apenas o mínimo necessário".

Portanto, para uma alma hacker, trata-se mais de aprender e "mexer" com o processo, conceitos, ferramentas e, sim, linguagens de criação de algo, do que o próprio produto final. Mais sobre o processo em si.

É uma luta constante pela próxima novidade e / ou desafio. Projeto finalizado perde apelo rápido. Às vezes (na maioria das vezes?) Os maiores desafios técnicos ou criativos são vencidos antes da conclusão do projeto. Muitos projetos são abandonados quando uma mente sedenta por novos desafios mentais avança.

Especialmente hackers estão interessados ​​em novos pontos de vista, conceitos, abstrações e maneiras de pensar, tipo de hackers mentais:

"Uma linguagem que não afeta a maneira como você pensa sobre programação, não vale a pena conhecer." - Alan Perlis


0

Atualmente, existe uma variedade de linguagens de baixa qualidade em uso comum: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic etc. Os programadores compensam a insatisfação inerente a essas linguagens, aprendendo e misturando muitas delas. juntos.

Há uma pequena comunidade conhecida como a comunidade Lisp que está livre da loucura que permeia a computação moderna.

Como o Lisp é uma linguagem de programação programável, você pode expressar todas as suas idéias sem precisar se afastar para outras linguagens ou outros formatos de dados, como XML. O Lisp pode ser aplicado em qualquer lugar, até no nível do hardware, como vimos nas máquinas Lisp .


Você deve conhecer o maior número possível de idiomas para codificar o Lisp com eficiência. Caso contrário, você acabará reinventando a roda em vez de simplesmente roubar conceitos e idéias apropriados de outras linguagens e implementá-las no Lisp.
SK-logic

Concorde com o seu sentimento sobre o poder do Lisp, mas discorde que é inútil aprender outras línguas: a maioria dos truques que utilizo no Lisp explora ativamente o que aprendi de outras línguas (como padrões ou
antipadrões

0

Porque aprender uma nova linguagem de programação é um investimento enorme e ninguém gosta de fazer um investimento ruim.
Aprender uma nova linguagem de programação não é memorizar como escrever construções de loop, declarar classes, importar outro módulo ...
Você precisa saber como escrever um código idiomático nessa linguagem e esse processo realmente leva uma quantidade considerável de tempo e dedicação .
O tempo é um recurso limitado, o esforço é um recurso limitado, mas a distração, o estresse diário, as contas e os jogos esportivos aos domingos estão sempre presentes e devem ser vividos.
Programadores querem investir com sabedoria.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.