Qual é uma boa maneira de começar a programar? Eu sempre me pego começando uma aula on-line, mas ficando entediado com o material introdutório rapidamente.

Trabalho na Escola de Engenharia de Software Holberton, em São Francisco, onde vi um ambiente em que os alunos interagem regularmente com engenheiros de software da vida real e líderes do setor. Os mentores ajudam os alunos de muitas maneiras diferentes e garantem que o currículo fique atualizado. Alguns exercícios e projetos são criados por mentores para manter os níveis de habilidade atualizados.

Acredito que a educação progressiva é a melhor maneira de se tornar um engenheiro de software, mas na verdade não há resposta certa.

Depende de muitos fatores:

· Há quanto tempo você está disposto a investir em sua educação?

· Qual é o teu objetivo?

Qual é a sua situação financeira?

Universidade

As universidades são ótimas se você deseja obter um doutorado. e entre no mundo da pesquisa. Essas instituições têm entre os melhores laboratórios e muitas inovações estão surgindo.

A desvantagem é que são apenas algumas universidades que valem a pena, são todas muito caras e bastante longas. Mas se você quiser se tornar um pesquisador, precisará amar o mundo acadêmico de qualquer maneira. Se você está procurando um emprego na indústria, eu não recomendaria universidades, elas se concentram demais na teoria com quase nenhuma prática, o que é absolutamente inadequado para o que a indústria de tecnologia precisa.

Bootcamp de codificação

Eles podem ser uma opção se você tiver experiência em programação e quiser ir para o próximo nível, os melhores campos de inicialização de codificação, como o Hack Reactor, foram projetados para esse fim.

Eles também podem ser uma opção se você não tiver muito tempo sem emprego e quiser dar uma chance rápida de entrar no setor de tecnologia com um treinamento de três meses.

A desvantagem é que em apenas 3 meses (quando geralmente há 1 mês dedicado à preparação para a entrevista), você verá apenas uma pequena quantidade do que é software. Você sairá do programa como um desenvolvedor web muito jovem e fará parte dessa nova geração de colarinho azul que não é nada ruim, tudo depende da sua ambição profissional.

Educação Progressiva

A maior parte do trabalho técnico nos EUA pode ser boa para os graduados em bootcamps, mas se você deseja trabalhar para as melhores empresas de tecnologia, precisará de muito mais do que esse tipo de treinamento.

Na Europa, muitos engenheiros de software são treinados com base na educação progressiva e, principalmente, no conceito de metodologias baseadas em projetos e de aprendizagem por pares. Muitos graduados estão trabalhando em empresas como Google, Facebook, LinkedIn, Uber … No Vale do Silício. O fundador da Docker, Solomon Hykes, é um deles.

Estamos muito felizes com os resultados do primeiro lote: os alunos que passaram os primeiros 9 meses iniciais encontraram estágios e empregos, alguns em empresas de ponta como Docker, Dropbox, NASA e Apple. Cereja no bolo, depois de quatro meses, começamos a discutir com os gerentes dos alunos e eles querem contratar mais alunos da Holberton.

A Holberton School treinará três coisas que tornarão nossos alunos ótimos engenheiros de software:

· Ter conhecimento da pilha completa

· Ser capaz de aprender sozinho

· Habilidades interpessoais

Bootcamps não vai te ensinar isso. Além disso, se você estiver curioso para saber por que esses 3 pontos são importantes, consulte minha explicação aqui.

Conclusão

Por fim, não existe um tipo ideal de educação que atenda a todos nós, mas o Software é como um ofício, é praticando que você o dominará. É por isso que acredito que as escolas de educação progressiva são as mais adequadas para treinar engenheiros de software de que a indústria precisa.

Mas se você estiver com pressa, vá para um campo de treinamento, se quiser entrar em pesquisa, vá para uma boa universidade.

Boa sorte! 🙂

Tendo passado uma parte considerável da minha vida programando em várias línguas, sugiro que você comece aqui. Eu achei este site realmente interessante e interessante para os iniciantes. Isso guiará você pelo básico de como pensar ao programar computadores.

  • Depois de obter o básico, comece a criar algoritmos para problemas simples, como classificação, localização min / max. Nesse nível, você começará a desenvolver sua mentalidade para uma maneira processual de lidar com problemas.
  • Depois disso, tente criar alguns dos jogos simples, como Tic-Tac-Toe, Minesweeper etc. Isso permitirá traduzir problemas personalizados em código de idioma.
  • Agora que você está equipado com o conhecimento das batalhas básicas, é hora de se apresentar a armas mais sofisticadas. Você perceberá que a maioria dos problemas simples já foi resolvida e essas soluções já foram fornecidas a você, juntamente com o idioma na forma de bibliotecas de funções / classes . Idiomas como C ++, Java e C # fornecem enormes bibliotecas de tais funções. O conhecimento que você adquiriu nos níveis anteriores, no entanto, permanecerá relevante, porque essas bibliotecas apenas fornecem os tijolos; planejar como usá-los para construir paredes, cômodos e toda a casa é novamente de sua responsabilidade.
  • Mestre OOP . Período.
  • Tente aprender sobre as estruturas modernas no próximo nível. Por exemplo, você verá que a programação do banco de dados é facilitada pelo uso de ORMs; O design da interface do usuário é tratado por bibliotecas como WinForms e WPF; e a comunicação em rede é mais fácil com o pacote de rede do Java e o WCF do .NET. Você aprenderá que a programação hoje em dia é mais focada nos recursos no nível do aplicativo, em vez do material de baixo nível que você aprendeu nas etapas anteriores.

Se você seguir o curso que eu defino, de um lado, dê um toque de matemática binária e álgebra booleana , juntamente com algumas introduções sobre como os componentes de hardware funcionam e como o trabalho deles está relacionado à matemática binária. Isso, na minha opinião, ajudará bastante a entender por que o código de computador adota uma abordagem processual rigorosa e por que você precisa traduzir sua lógica que aprendeu no nível 2 acima.

Isenção de responsabilidade: eu não sou funcionário nem associado ao site vinculado acima. Achei que era útil.

Então, você está procurando uma boa maneira de aprender programação que não o incomoda com o básico? Sinto muito, mas isso é ridículo. Você precisa aprender a andar antes de poder correr. O básico de QUALQUER COISA pode ser chato, se estamos falando de programação, tocando um instrumento musical ou falando uma língua estrangeira. Você só precisa passar por isso antes de começar as coisas interessantes. Você precisa aprender o básico, e será monótono. Você precisa ser paciente e determinado. Não procure atalhos porque não existem.

Admito que os materiais introdutórios podem ser chatos, mas em qualquer programação é o básico que você deve dominar primeiro. Mas se você já conhece, pode sempre pular a parte de introdução.

Uma boa maneira de aprender qualquer coisa (acho que a maioria das coisas …) é fazendo. O mesmo é para programação. Você pode se juntar a desafios de codificação on-line, resolver alguns problemas realmente interessantes e aprender enquanto faz.

Para dar uma iniciação aqui, é um site muito bom, que o ajudará a dominar conceitos básicos de programação em conceitos mais profundos.

Sobre – Project Euler

Espero que isto ajude.

Escreva um programa útil para resolver um problema que você tem. Por exemplo, eu uso muito o Twitter. Eu queria ter uma maneira de ter minha conta automaticamente enviando tweets regularmente a partir de uma grande lista de tópicos e links que eu gerenciava. Olhei em volta e havia algumas ferramentas que fizeram isso, mas:

  • todos eles custam dinheiro (cerca de US $ 10 a US $ 20 por mês, pouco, mas não tenho vontade de pagar por isso, principalmente à luz do ponto 2)
  • eles não eram muito bons! Eles precisavam de muita manobra manual, não repetiam com facilidade, não era possível salvar uma grande lista de tweets e assim por diante. Eles não atendiam aos meus requisitos.

Então, eu escrevi um programa Python que fez isso! Existem algumas bibliotecas Python para interagir com a API do Twitter. Eu descobri como autenticar e depois como enviar um tweet. Depois, criei uma grande lista de tweets e programei meu script para ser executado a cada hora, selecione o próximo tweet da lista e envie-o. Agora, ele roda apenas no piloto automático; de vez em quando eu adiciono um tweet à lista, e é tudo o que tenho que fazer. Eu tenho uma solução que funciona melhor para mim do que as comerciais por aí, e não me custa dinheiro!

Portanto, encontre um problema, idealmente algo chato e irritante que envolva repetição manual. E escreva um programa para automatizá-lo.

Algumas coisas que você pode tentar.

  1. Tente escrever um pequeno script que possa ajudá-lo. Procure aqui por inspiração Automatize as coisas chatas com Python
  2. Tente criar uma pequena página para a sua e hospede-a em algum lugar.
  3. Encontre um amigo que também esteja interessado e tente a programação em pares.

Crie para você um objetivo de algum programa que você realmente deseja usar. Então você será motivado a escrever!