Essa pergunta me fez pensar que havia uma pergunta melhor a ser feita.
O que você aprendeu na escola com o qual não se importava na época, mas acabou sendo útil ou teve que reaprender no local de trabalho porque o tinha na escola, mas não retinha as informações e precisava? (Quero dizer para trabalhos relacionados a software.)
Acho que isso pode ajudar os estudantes universitários a identificar parte do que realmente deveriam prestar atenção enquanto estão na escola.
programming-practices
HLGEM
fonte
fonte
Respostas:
A maioria dos desenvolvedores que eu vi fora da escola não tinha muita experiência com o desenvolvimento de OO . Eles já ouviram falar, mas a maioria é apenas 'colocar coisas nas aulas'.
Na escola, você recebe muitos exemplos de carros e pessoas que podem ser colocados na estrutura OO. Isso ensina polimorfismo, sobrecarga e coisas assim. Coisas bastante "básicas". É bom saber essas coisas e como elas funcionam, mas nunca tive um exemplo de uso no mundo real para isso. Eu acho importante mostrar aos alunos alguns cenários do mundo real, nos quais algum design é usado.
Outra coisa que perdi na faculdade é o uso (ou uso indevido) de padrões de design utilizáveis . Penso que hoje em dia os padrões mais importantes devem ser introduzidos em algum lugar no final do primeiro ano ou no início do segundo ano. Os alunos devem se familiarizar com eles.
Escrever código limpo é algo que não é ensinado (o suficiente) na escola. Poderíamos fazer uma verdadeira bagunça no código e ainda obter um A +. 'Se o aplicativo funcionar, é bom.' foi o lema. Os alunos devem aprender a escrever códigos limpos e de alta qualidade e serem recompensados por isso, isso também significa refatorar e usar os padrões ou as melhores práticas que aprenderam.
É claro que os estudantes ansiosos aprenderam tudo isso sozinhos, mas outros que não estavam tão ansiosos não. Isso pode ser causado por falta de motivação ou eles simplesmente não sabem onde ou como procurar. Ao pagar muito dinheiro por uma escola, acho que eles realmente deveriam ensinar essas coisas semi-avançadas.
Além disso, algumas redações decentes (profissionais) são uma habilidade que falta para a maioria das pessoas. Pena que é muito importante no mundo real. O mais importante é ser capaz de deixar claro seu idioma nativo. Se você não consegue escrever claramente no seu idioma principal, é difícil se comunicar em uma empresa.
Não sei se você pode ensinar alguém a escrever nessa idade, eles já devem estar familiarizados com essa habilidade. Pode-se repetir as coisas ensinadas no ensino médio. Talvez ensine os alunos a escrever comentários e documentação técnica. Ainda acho difícil escrever documentos técnicos, pois ninguém parece saber como fazê-lo ou qual é o formato padrão.
fonte
Meninas. Você pode pensar que estou brincando, mas não estou.
Não enlouqueça nem nada, você ainda precisa aprender o material acadêmico. Mas você também precisa gastar algum tempo aprendendo sobre as pessoas, das pessoas ao seu redor.
Isso inclui a metade da humanidade que tem interesses e atitudes completamente diferentes de você e de seus amigos, mas com quem você ainda vai querer se dar bem.
fonte
Eu acho que deveria ter colocado cerca de 42% mais energia nas estatísticas.
fonte
Escrever seria um dos maiores para mim. Eu não acho que isso seja limitado apenas aos desenvolvedores.
fonte
Programação funcional. Na época, parecia um enxame de parênteses que não podia fazer nada de útil. Agora que as expressões lambda estão sendo amplamente disseminadas, tive que treinar meu cérebro para pensar dessa maneira. Na faculdade, eu só queria colocar o LISP e o Scheme o mais longe possível no espelho retrovisor e nunca olhar para trás. Se eu tivesse alguma idéia de como alguns aspectos da programação funcional poderiam ser úteis, eu teria prestado mais atenção.
fonte
Expressões regulares. Lembro-me claramente de tê-los explodido na faculdade. Eles foram indispensáveis para o trabalho.
fonte
Minha resposta favorita (estatística) foi aceita, então darei minha segunda resposta favorita. Notação Big-O e conhecimento da eficiência de vários algoritmos-chave. É menos uma "arma secreta" para mim do que estatísticas, mas ainda é muito valiosa.
fonte
Eu gostaria de ouvir o que meu professor me disse quando eu tinha 14 anos. Infelizmente, não posso te dizer o que foi, porque não ouvi.
fonte
Tem que ser o curso de Linguagem Finita e Teoria de Autômatos.
Pensei que era muito teórico, até que meu trabalho exigisse que eu fizesse um compilador de idioma específico do domínio do zero.
fonte
Eu diria C, assim como o UNIX. Embora eu tenha aprendido o UNIX logo após a faculdade, sinto que teria me beneficiado de me aprofundar mais no UNIX e no C.
fonte
fonte
Escrita técnica. Passo muito tempo escrevendo requisitos, me comunicando com clientes e colegas de trabalho. Esta é uma área em que eu tive uma aula de 1 hora de crédito na faculdade. A única outra turma que realmente ajudou na minha carreira foi outra aula de 1 hora de crédito. Isso foi na programação C. O resto, embora interessante e provavelmente tenha ajudado minhas habilidades analíticas gerais, não foi realmente um benefício direto para minha carreira.
Concedido, eu fui para a escola há 20 anos e C era considerado de ponta no departamento de Engenharia Elétrica. O pessoal do CS estava fazendo algumas coisas com Lisp e C ++, mas ainda assim provavelmente não teve tanto OO quanto eu esperava que estivesse acontecendo com os graduados de hoje.
fonte
Documentos de Design
Sempre presumi que alguém mais criaria essas coisas ou que elas eram apenas documentos simples. Eles não são nada simples e minha equipe é pequena o suficiente para fazer meus próprios documentos de design.
fonte
Segunda língua estrangeira. Russo no meu caso. Muitos livros, recursos e muito mais nesse idioma em particular no meu espaço circundante.
fonte
Do lado CS das coisas:
Na categoria tudo:
fonte
Vector matemática e cálculo. Eu os tinha, mas meus professores eram péssimos e na verdade não ensinavam as matérias. Mas, como alguém que gosta muito de programação gráfica ... uma base matemática vetorial melhor teria ajudado.
fonte
Obviamente, História e Literatura. O problema geralmente é que a escola não as torna interessantes.
fonte
Eletrônicos
Eu não tinha muita coisa relacionada a software na escola . Ah - informática, mas eu cancelei. :) Mas foi fácil aprender mais tarde. Enquanto eletrônica, muitas vezes não entendo. Microcontroladores, PWM, GPIO - wtf? Eu gostaria de entender as coisas.
fonte
Rede / computação distribuída . A programação não é um desafio, mas os pré-requisitos na arquitetura atual são um conhecimento profundo dos conceitos distribuídos.
Um curso detalhado foi oferecido como eletivo, mas teve que escolher entre isso e IA: portanto, não é realmente um arrependimento.
fonte
Padrões de design: a maneira como eles foram apresentados não lhe mostrou como eles são úteis, desde então, li alguns livros sobre eles e os acho incrivelmente úteis.
fonte
Unix, Shellscripting, C. Teve a chance de aprender bem na escola, mas teve que fazer isso mais tarde no trabalho.
fonte
Coisas que não são de informática:
Pessoalmente, eu gostaria de ter uma língua nativa como a maioria das pessoas normais por aqui. Com isso, quero dizer que a maioria das pessoas nasceu falando um idioma principal e talvez escolhendo outro ou dois depois. Nessa situação, os idiomas adicionais geralmente não afetam o idioma nativo porque você já possui uma base sólida que abrange fala, escrita e audição. Cresci falando, escrevendo e ouvindo três idiomas distintos simultaneamente. Embora eu sempre tenha me saído bem nas aulas de idiomas, tanto na escola quanto na faculdade, gostaria de ter fluência completa em UM idioma. Isso resulta em eu ter que pensar um pouco por uma fração de segundo antes de formular uma resposta. Algumas pessoas percebem isso e concluem que sou muito tímido (o que não é errado até certo ponto).
fonte
Economia. Pode ser chato (e um pouco cruel), mas de qualquer maneira é o único que é verdadeiramente essencial nesta sociedade. Depois disso, estatísticas.
fonte
Eu acho que as três classes que me deram mais informações sobre como os computadores operam na execução de software (que esse entendimento permite uma programação mais otimizada) foram:
Compiladores de sistemas operacionais em linguagem assembly
Talvez seja muito fácil pensar que essas classes não são tão úteis, a menos que você ingresse em uma carreira focada especificamente em qualquer uma dessas coisas, mas mesmo se você for um desenvolvedor da Web e não utilizar nenhuma dessas diretamente, o entendimento subjacente ainda seria extremamente útil codificar efetivamente.
fonte
Há cerca de uma dúzia de aulas que eu gostaria de ter feito na faculdade, mas não o fiz. Principalmente não CS. Fotografia, General Chem, mais redação!
fonte
É engraçado o número de pessoas que estão dizendo artes liberais: eu era formado em ciências cognitivas (Filosofia / CompSci / Anatomia) ... Acabei mudando para Filosofia / CompSci com especialização em inglês (eu poderia ter conseguido um bacharelado, mas não se incomodou em tirar as 101 que eu pulei).
Levaria uma semana de histórias para contar sobre toda a porcaria que recebi dos meus colegas de CS por fazer aquelas aulas de artes liberais. Não importa que meia dúzia de aulas de lógica fiz mais pela minha programação do que qualquer quantidade de cálculo. Não importa que todos os meus melhores cursos de IA tenham sido cursos de filosofia. Não importava que houvesse RAPARIGAS nas minhas aulas de inglês. Não, não, eu era algum tipo de poser não sério para fazer esses cursos.
Tenha coragem embora. Pelo menos você não precisa explicar sua educação toda vez que alguém olha para o seu currículo.
fonte
Equações quadráticas e trigonometria.
Muito importante na escrita de software nas disciplinas tradicionais de engenharia.
fonte
Sim, não prestei muita atenção aos compiladores como deveria.
fonte
CS / Matemática: mais lógica, álgebra, teoria de categorias. Coisas mais fundamentais e menos aplicadas: entender as coisas aplicadas quando você conhece bem os fundamentos é muito mais fácil do que o contrário e mais proveitoso.
(Eu tinha A em estatística, mas demorou muito tempo para vinculá-lo a necessidades reais de programação, esqueci muito.)
'Humanidades': linguagem natural, escrita, formulação, compreensão e compreensão. Não parece importante até você ingressar em uma equipe de mais de 2 ou 3 colegas hackers, isto é, na chamada "vida real".
fonte
Computação Gráfica (renderização em 3d em opengl / directx)
Sinceramente, eu estava muito interessado nisso, mas tão ocupado que não consegui dedicar o tempo que gostaria. Tornou-se uma tarefa em vez de um hobby. Acho que preciso pegar um livro para me interessar novamente.
fonte