Respostas:
A auto-educação não é apenas boa , mas essencial, se você deseja ser um desenvolvedor acima da média.
A única pessoa responsável pelo seu progresso profissional é você . Certamente, educação formal, cursos de treinamento etc. podem ajudar, mas no final do dia, é sua carreira.
Tenho a sorte de ter me beneficiado de uma educação muito boa e tive bons empregadores que apoiaram meu aprendizado de várias maneiras diferentes. No entanto, a grande maioria do que aprendi sobre programação aprendi - lendo muito e praticando mais.
Geralmente, quanto mais você sabe, mais a auto-aprendizagem se torna a única maneira eficiente de ensinar as coisas a si mesmo.
Os cursos são ótimos quando você está começando, mas depois disso você obtém um retorno decrescente por dias sentados na sala de aula, à medida que o curso se move no ritmo do participante mais lento. Uma vez que você tem um nível razoável de experiência, quase nunca é você, então você sempre estará perdendo tempo.
O auto-estudo, por outro lado, permite que você ande com calma. Se você obtém algo rapidamente, pode deslizar, se não o entender, volte e repita o processo. Se você acha que um tópico é irrelevante, pode ignorá-lo.
O que eu ensinei a mim mesmo? Em termos das coisas que aprendi do zero: HTML, ASP, VB.NET, JavaScript, LotusScript, um pouco de Python, um pouco de Java.
Mas, na realidade, quase tudo o que é útil é autodidata no trabalho. Você pode aprender o básico de um curso, mas onde realmente o aprende a usá-lo, diria que 95% do que sei (se não mais) é autodidata.
Aprendi .NET, C #, ASP.NET e ASP.NET MVC por conta própria.
Não é como se alguém fosse ensiná-los para mim.
A auto-educação é o núcleo do aprendizado do programador. Universidade, colegas, todos eles dão dicas e sugestões quando você precisar deles, mas você ainda precisa aprender a parte maior sozinho. Livros, blogs, artigos, documentação, experimentação no seu tempo pessoal, é assim que você aprende.
Existem vários aspectos do autoaprendizado, o primeiro é o estudo independente, onde você busca conhecimento e começa a usá-lo na prática. Isso pode significar comprar alguns livros, estudar o código-fonte aberto, experimentar até altas horas da manhã ou (geralmente) todos os itens acima.
Em algum momento, no entanto, você precisará de um ou vários mentores para guiá-lo através de advertências, tópicos difíceis, melhores práticas e princípios sólidos de engenharia. Um auto-aprendiz eficiente buscará esses mentores muito mais cedo ou mais tarde e colocará seu código na frente de tantas pessoas altamente experientes quanto possível.
Aprendi assembléia x86 básica, Pascal, C, PHP, rudimentar, sem ter aulas, mas isso não significa que eu não tinha um professor para chamar quando precisava. Portanto, considerando o fato de ter aprendido uma quantidade considerável de mentores que encontrei na comunidade de código aberto / livre. Seria difícil dizer que aprendi alguma coisa sozinho ou sozinho .
Esse método de aprendizado é o único método que funciona para mim, indo muito além do estudo da programação.
Acho que aprendemos junto com o trabalho o tempo todo.
Eu aprendi Struts, Spring e uma série de outras estruturas java de código aberto e até mesmo usando o Tomcat sozinho quando estava trabalhando em projetos Java / JSP. A empresa não pagaria por isso;)
E agora essas são as tecnologias que uso diariamente no meu trabalho.
Algumas divagações aleatórias sobre o assunto ...
Como todos os outros disseram, você terá que fazer muito auto-estudo à medida que sua carreira avança. Uma coisa que eu realmente não vi aqui, porém, é que a realidade é que você achará muito difícil encontrar o primeiro emprego sem alguma educação formal em um campo relacionado, especialmente em uma recessão. Muitos currículos passam por cima da "mesa de filtragem" e, se não houver nada lá com educação relacionada, é provável que seja ignorado. Você pode se esquivar se tiver muita experiência relacionada, mas isso depende de quão alguém lê seu currículo (o que, infelizmente, no primeiro turno, infelizmente não é muito provável). Não está claro se isso se aplica a você, mas se aplica a alguém, tenho certeza.
Em uma nota (um pouco) não relacionada, o auto-estudo é ótimo, mas ter tempo para fazê-lo é ainda maior (e mais raro, eu diria). Todos nos encaixamos de alguma forma, mas se você tiver a oportunidade de dedicar algum tempo todos os dias para aprender algo, pegue-o e segure-o com todas as suas forças.
Delphi. Eu aprendi Pascal no ensino médio e vi uma vez que o IDE, como ele, baixou alguns tutoriais e começou a aprender. E hoje, continuando o processo de aprendizado. Quando você aprende sozinho, há partes boas e ruins: 1) a auto-aprendizagem é o melhor método para aprender, porque você realmente entende o que está acontecendo lá (parte boa) 2) você pode cometer grandes erros interpretando mal alguma coisa / se machucando hábito e, se você continuar dessa maneira, é muito difícil corrigir isso. (parte ruim)
Atenciosamente,
Radu
Você precisa entender que não precisa de mãos dadas. Você deve estar no ponto em que pode pegar um livro, procurar um arquivo de ajuda, encontrar um tutorial etc. e aprender os princípios necessários para o seu trabalho.
BTW, você precisa disso para todo e qualquer trabalho, não apenas para programação. O meio de como você aprende sozinho pode ser diferente, mas você deve fazê-lo.
Aprendi a maior parte do meu conhecimento em C / C ++ em sala de aula, mas todas as minhas outras linguagens de programação, toda a minha teoria, todo o meu gerenciamento de projetos e muitos outros conhecimentos que me tornam o hacker que eu sou foram autodidatas.
Como já foi dito, a auto-educação em nossa indústria não é apenas boa, é necessária . Não é como ser um encanador ou assar pão: a tecnologia está sempre evoluindo, e temos que seguir em frente ou ficar irrelevantes.
Vale a pena perguntar: quais são as implicações disso? Os melhores hackers não são apenas macacos de código cuspindo código - dedicamos um tempo para aprender as coisas mais importantes. Algoritmos, complexidade, design de linguagem etc. permanecerão conosco e nos servirão bem, independentemente do idioma em que nos encontramos usando ou para o que nos encontramos usando. Eu já vi esse tipo de hacker passar de uma parte da indústria de tecnologia para outra completamente diferente, sem esforço.
Muitas pessoas pensam que os conceitos do "quadro geral" estão acima da cabeça de todos, exceto acadêmicos, e eu discordo totalmente. Quando você dedica um tempo para aprendê-los, verá que alguns já são praticados intuitivamente por bons codificadores, e o restante faz sentido quando você se familiarizar com eles.
A autoeducação é necessária, a menos que você tenha um benfeitor generoso disposto a apoiar repetidamente o treinamento formal. Eu tive que aprender muitas coisas sozinho fora de uma sala de aula, para citar algumas das maiores:
ASP e ASP.Net seriam coisas que eu tinha que aprender no trabalho, pois onde trabalhava queria que o novo site fosse reescrito, usei isso e, portanto, tive que aprender isso sozinho e não na sala de aula.
O IIS e o MS-SQL Server seriam outras coisas que eu aprendi sobre a necessidade e, portanto, diria que fui autodidata aqui. Embora eu tivesse colegas de trabalho que pudessem ajudar com perguntas, se eu realmente ficasse presa, apenas pensar nisso era outra coisa nos primeiros dias da minha carreira.
O AJAX seria algo que há alguns anos eu aprendi no trabalho de pesquisa de estruturas e tentando trazê-lo para o local em que trabalhei pouco antes do lançamento do Microsoft ASP.Net AJAX.
Ao mesmo tempo, apenas fazer a auto-educação pode ser perigoso, pois nem todo mundo quer fazer tudo dessa maneira. Para algumas pessoas, elas podem querer mais estrutura e não serem tão independentes para aprender algo.
@Kramii está correto; programadores terão que se auto-educar ao longo de sua carreira
P: O que aprendi com sucesso sozinho?
Ensinar é um mito; o professor só pode disponibilizar as informações, o aluno deve ouvir e decidir aprender ou não e o que aprender. O professor pode apenas mostrar o caminho. Em outras palavras, toda educação é fundamentalmente auto-educação
Agora, se você quer dizer "o que você aprendeu fora de uma sala de aula que foi útil", minha resposta seria
porque quando eu estava na escola, as universidades geralmente ficavam 12 a 15 anos atrás do mercado no que ensinavam. Por exemplo, durante o dia a universidade estava "me ensinando" programação procedural usando PL / 1, e à noite eu escrevia uma linguagem de programação orientada a objetos no Assembly.
Desde então, livros e google são meus professores.
Aparentemente, todas as respostas concordam que a auto-educação é tudo. Eu não acho isso completamente certo. Um bom professor pode ensinar muito e especialmente pode ensinar rápido. Obviamente, em algum momento você deve tomar o assunto por conta própria e começar a pesquisar, ler, tentar. Até um livro é escrito por alguém (professor) e tenta ensinar alguma coisa. Essa mesma pessoa pode estar de pé na sala e responder a todas as suas perguntas, em vez de fazer você perder tempo pesquisando. Procurar e bater a cabeça contra a parede, por outro lado, tornará as lições aprendidas muito valiosas e improváveis de serem esquecidas.
Especialmente para começar uma nova matéria, acho que um bom professor é muito, muito, muito útil. E aqueles que gostam tanto de auto-educação devem se auto-educar sem a Wikipedia, sem o stackoverflow, sem livros e sem blogs ;-)