Tudo é uma moda passageira. Você aprenderá mais em seu primeiro ano fora da faculdade do que em todos os seus anos na faculdade. A ciência da computação não tem nada a ver com computadores.
A faculdade oferece uma caixa de ferramentas cheia de ferramentas. Esta é uma chave de fenda, uma chave inglesa. Você PODE começar a usar cada ferramenta uma vez na faculdade. É quando você entra no mundo real é que você realmente descobre o que tem. Você separa os úteis dos demais, os que quer deixar em casa na bancada, por precaução, e os que guarda no bolso todos os dias.
Tqm, Iso, Cmm, Agile, etc. Todos esses são modismos, eles virão e irão, nenhum dos bem-sucedidos é mais do que apenas bom senso. Todos os engenheiros e empresas de sucesso usam um pouco de bom senso, é isso que os tornou bem-sucedidos, poucos precisavam de um nome para isso. O problema é que você não pode vender bom senso, um gerente não pode provar seu valor para a empresa treinando e comprando bom senso sem um nome atraente. Coloque nele um nome que seus superiores tenham lido em alguma notícia ou revista e o gerente ficará com o emprego dele e você com o seu. Muito poucas empresas que afirmam seguir essas práticas realmente o fazem. A maioria passa um cheque para um consultor e recebe seu certificado anual e vitalício para algum clube, para que possa colocar uma imagem em seu site ou uma etiqueta na caixa de seu produto. Muitos vão argumentar que isso é raro ... estive lá, vi, isso acontece. Isso tudo faz parte do negócio, às vezes é preciso economizar para se manter lucrativo e manter as portas abertas e as luzes acesas. Os seguidores ferrenhos de todas essas práticas argumentaram que a última era uma moda passageira e esta não é, a última realmente era muito cara para seguir, esta não é. O último foi falso, você acabou de contratar um consultor, esse é real. Como as linguagens de programação, essas também evoluirão. O último foi falso, você acabou de contratar um consultor, esse é real. Como as linguagens de programação, essas também evoluirão. O último foi falso, você acabou de contratar um consultor, esse é real. Como as linguagens de programação, essas também evoluirão.
Sua capacidade de compreender a realidade dos negócios, o sistema universitário e seu papel nele é a chave. Como tudo na vida, escolha suas batalhas. Não é a universidade ou a empresa ou o governo ou o trabalho de qualquer outra pessoa para ensinar o que você precisa ou deseja saber. É seu trabalho cuidar do número um. Da mesma forma, você não pode culpar ninguém por lhe dar tempo para fazer isso, você tem que fazer. Você vai cair do cavalo, não é uma vítima, levante-se e volte a montar, sem desculpas, a vida não é justa com isso. Aproveite as apostilas, não finja ser independente. E com certeza pague suas dívidas, não esgote uma empresa de esmolas, sem dar a eles algo (o que você tem de melhor na hora?) Em troca.
Por que as pessoas acham que CM ou ágil ou qualquer um dos outros é uma moda passageira? Por que eles pensam que não são? Por que o professor ensinou você a programar dessa maneira? Para evitar gotos ou evitar constantes ou evitar isso e aquilo? É porque ele produz um código mais confiável? Código com melhor desempenho? Reduz o erro humano? Ou é porque é mais fácil classificar trabalhos / programas, dando-lhes mais tempo para fazer pesquisas? É porque não sabem programar e estão apenas seguindo o livro de outra pessoa sobre o assunto? Eles ensinaram que você não pode ter um código de alto desempenho, confiável e sustentável? Você não pode nem mesmo "escolher quaisquer dois" que possam ser mantidos tanto com confiabilidade quanto com alto desempenho? Às vezes, você sacrifica a confiabilidade pelo desempenho. Às vezes você não se preocupa com confiabilidade ou desempenho, você apenas deseja obter a partir da versão 117.34. 2 de outro programa de software de contabilidade para a versão 118.0.0. Seu modelo de negócios consiste na venda de atualizações de versão e suporte técnico e, na medida em que os desenvolvedores de software, qualquer robô antigo fará isso pode escrever o mesmo código da mesma maneira. Substitua o queimado pelo recém-saído da faculdade e continue vendendo atualizações.
Não existem respostas universais para essas perguntas, você tem que descobrir qual é a sua opinião, conviver com ela e defendê-la. Mude sua mente, viva com ela e defenda-a.
Questione tudo ... Será que realmente vou me queimar se tocar na panela quente no fogão? Os efeitos psicológicos de ter medo causarão mais danos do que apenas se queimar? Existe uma maneira segura de testar a resposta sem se machucar?
Quando eu podia pagar, eu comprava e, eventualmente, derretia transistores, capas, resistores, etc. no meu dormitório, todos com um odor ruim característico. É muito mais barato e fácil comprar apenas um amplificador para o seu aparelho de som do que tentar construí-lo no dia seguinte à sua primeira aula de transistor. Linus sendo a exceção, é claro, é mais fácil apenas comprar um sistema operacional do que escrever um ... Você pode fazer mais, embora o que você aprende naquela época seja diferente do que Linus aprendeu.
O mundo dentro e fora da universidade vai adotar essas fórmulas (cmm, ágil, etc) para resolver problemas e quando a próxima sair eles as abandonarão na mesma velocidade. Você não tem que usar o controle de versão para ter sucesso, existem tantos sucessos com ou sem (bem, na verdade, devido à idade da indústria, há muito mais sucessos sem controle de versão até agora). Da mesma forma, você pode ter sucesso com o mínimo de testes (veja os grandes nomes da indústria de computadores como exemplos). Você pode ter sucesso testando seu próprio código, bem como seguir a regra de que você nunca deve testar seu próprio código. Você pode ter sucesso usando emacs e você pode ter sucesso usando vi. Você tem que decidir qual mix funciona para você e, se tiver sorte, encontre um local de trabalho que combine com você.
Quando você sai da faculdade e entra no mundo real, ouça, trabalhe e discuta com os "veteranos". Eles têm décadas a séculos de experiência combinada, armadilhas em que caíram que você pode evitar ou testar por conta própria (talvez você perceba que não precisa tocar na panela quente para descobrir que ela vai queimar você). A maioria terá visto pelo menos um ou dois desses modismos irem e virem, e em particular como foram gravemente queimados e o que fizeram para se recuperar deles. Eles conhecem muitas maneiras diferentes de testar as coisas e os nomes dos estilos de teste que surgiram e desapareceram também. O que funciona, o que não funciona. Onde está o risco e como não perder tempo na tangente. Conforme você amadurece e se torna o veterano, passe adiante. Pague pelo que você aprendeu tentando ensinar seus seguidores. Lembre-se de ensiná-los a pescar, não dê apenas um peixe a eles. E às vezes você tem que deixá-los falhar antes que tenham sucesso, para evitar que se queimem muito.
O que eu realmente queria dizer aqui é que agora estamos em uma situação rara em que podemos testemunhar a evolução de um universo paralelo (e talvez influenciá-lo). Sim, a ciência da computação é uma ciência jovem em comparação com a física. Mas, ao mesmo tempo, evoluiu muitas vezes. Dependendo de onde você trabalha e com quem trabalha, você pode observar engenheiros de hardware. As linguagens de programação no mundo do hardware certamente não são novas, mas não evoluiu tão rapidamente quanto o mundo do software. O software teve algumas décadas de vantagem. Hardware sempre pensou nos engenheiros de software como cidadãos de segunda classe. Nosso trabalho é fácil, o trabalho deles é difícil. (Observe que, na verdade, sou engenheiro de hardware e software). O que é interessante é que agora eles ainda estão lidando com o que consideraríamos problemas elementares ou infantis. Por que eu precisaria usar o controle de versão, sou o único trabalhando neste chip. Sua experiência com o gcc ou outros compiladores baratos ou IDEs gratuitos não pode se comparar com as ferramentas caras que eu uso, se a empresa pensasse que você era digno de usá-lo ou mesmo saberia como usá-lo, eles comprariam uma cópia para você. E uma longa lista de outras desculpas. Tive o prazer de aprender vhdl e verilog e me tornar produtivo em ambos em uma semana, o que foi quase um desafio de um engenheiro de hardware (apesar de meu diploma dizer engenheiro elétrico, meu cargo é engenheiro de software). Eu queria aprender essas línguas, quando as ferramentas estivessem disponíveis para mim, eu ficava no escritório durante a noite e aprendia sozinho. A partir desse ponto, aquele engenheiro em particular percebeu que o que eu estava dizendo era verdade, as linguagens são apenas sintaxe, os fundamentos da programação são os mesmos, todas as ferramentas fazem a mesma coisa. São maçãs e maçãs, não maçãs e laranjas.
No entanto, em geral, ainda é difícil enviar a mensagem de que uma dessas duas indústrias paralelas tem muito mais experiência em linguagens, hábitos de programação, controle de origem, testes, ferramentas, ambientes de programação etc. do que a outra. O problema que estou tentando resolver é pegar os designs de hardware à medida que estão sendo desenvolvidos, criar simuladores funcionais acessíveis que podemos vincular a uma simulação (máquina virtual) do processador para que possamos começar a testar o hardware e desenvolver o teste e software de entrega muito antes de irmos para o silício. Não, não há nada de "novo" nisso, mas não temos nenhum mecanismo para obter o código mais recente, controlar as alterações no código para ver onde precisamos concentrar nosso tempo. Nenhum mecanismo para rastrear a documentação que define a interface do usuário (programação) para o hardware. A única cópia dourada está na caixa de entrada de e-mail de alguém em forma binária e só muda quando, bem, não é necessário ler o verilog para descobrir o que está acontecendo. Espere, esse verilog tem quantos anos? Aquele bug que passei a semana toda com você, descobri três semanas atrás e consertou? Então, vamos apenas voar para algum local de férias e festejar por seis meses esperando que o pessoal do hardware termine sua tarefa e jogue-o por cima do muro para nós, ou aproveitamos esta oportunidade para tentar ser pacientes e otimistas e ensinar-lhes que eles existem métodos de senso comum que não são tão intrusivos que permitem que eles façam seu trabalho, façam backup de seu trabalho, bem como compartilhem seu material para revisão por pares ... esse verilog tem quantos anos? Aquele bug que passei a semana toda com você, descobri três semanas atrás e consertou? Então, vamos apenas voar para algum local de férias e festejar por seis meses esperando que o pessoal do hardware termine sua tarefa e jogue-o por cima do muro para nós, ou aproveitamos esta oportunidade para tentar ser pacientes e otimistas e ensinar-lhes que eles existem métodos de senso comum que não são tão intrusivos que permitem que eles façam seu trabalho, façam backup de seu trabalho, bem como compartilhem seu material para revisão por pares ... esse verilog tem quantos anos? Aquele bug que passei a semana toda com você, descobri três semanas atrás e consertou? Então, vamos apenas voar para algum local de férias e festejar por seis meses esperando que o pessoal do hardware termine sua tarefa e jogue-o por cima do muro para nós, ou aproveitamos esta oportunidade para tentar ser pacientes e otimistas e ensinar-lhes que eles existem métodos de senso comum que não são tão intrusivos que permitem que eles façam seu trabalho, façam backup de seu trabalho, bem como compartilhem seu material para revisão por pares ...
Lembre-se de que os engenheiros de hardware saíram da faculdade com uma caixa de ferramentas novas e brilhantes, assim como você. Você aprendeu 17 linguagens de programação diferentes, das quais você só pode usar uma, as demais linguagens em sua carreira serão inventadas depois que você sair da faculdade. Quando eles saíram da faculdade, podem dizer o que sabem sobre cálculo e teoria da relatividade quantos elétrons existem em cada um dos elementos e calcular a carga em torno de uma superfície gaussiana. Mas a maior parte de sua carreira é um, zero e, ou e não (ei, temos aqueles em comum, tudo o que você realmente precisa saber sobre computadores, um, zero e, ou e não engenheiro de hardware ou software). Concedidas as leis fundamentais da física, do cálculo, os elétrons não vão mudar tão rápido quanto as linguagens de programação. Mas os fundamentos da programação são os mesmos em todas as linguagens e continuarão a ser no futuro. Você saiu da faculdade sabendo disso ou saiu pensando que java é diferente e melhor que C ++ por causa disso e daquilo e do outro?
Como qualquer outro negócio, o trabalho da universidade é se manter lucrativo. Eles precisam contratar os acadêmicos certos para trazer os alunos certos, os dólares certos para pesquisa e os tipos certos de pesquisa para tornar a universidade lucrativa. Eles têm que oferecer as aulas certas para trazer os alunos certos e produzir os graduados certos para que, com o passar das décadas, os empregadores próximos e distantes da universidade reconheçam que esta universidade produz funcionários produtivos e lucrativos. (sim, e às vezes você precisa atrair os atletas certos no esporte certo para obter a quantidade certa de tempo de TV e a quantidade certa de reconhecimento de nome e receita esportiva). Algumas universidades ensinarão C ++ e Java, outras nunca. Alguns inventarão o CMM, outros ensinarão Agile, outros não. Se a universidade tiver algum valor, há algo lá para você aprender. Eles não vão te ensinar tudo o que há para aprender, mas terão algo útil. Aprenda isso enquanto estiver lá, reúna um número razoável de várias formas de ferramentas em sua caixa de ferramentas. Saia da universidade e arrume um emprego. Se sua caixa de ferramentas for uma merda, talvez encontre outra universidade e nunca mencione a primeira. Se for uma caixa de ferramentas ok, use essas ferramentas e construa algumas novas no seu próprio tempo. Se for uma caixa de ferramentas muito boa, diga coisas boas sobre aquela universidade e os bons acadêmicos com os quais você aprendeu isso e aquilo e pague a escola pelo que eles lhe deram. Mesmo que você não tenha obtido todas as ferramentas possíveis no catálogo universal de ferramentas da universidade, você sairá com um certo subconjunto. Mesmo se você não se formar ...