Executando verificação de segurança...
2

Métodos pessoais de aprendizados de programação, como é a sua?

Antes de fazer a pergunta quero apresentar o meu background pessoal. Eu sou formado em programação de computadores, trabalhei durante um ano em uma empresa como desenvolvedor Delphi. Eu sempre passei por várias linguagens ( c, c++, Java, C#, Php, Vb, Delphi, Python ), porém, nunca fui especialista em nenhuma ( Delphi eu trabalhei profissionalmente mas foi um ano somente ) Em 2018 aprendi Inglês sozinho com a idéia do Mario Vergara de aprendizado ( ouvir e ler antes de falar ). E recentemente ouvi um vídeo do Fábio Akita que dizendo que aprende linguagens codificando códigos de outros até que seu cérebro reconheça os padrões.
Ouvindo esse relato do Fábio e vendo como eu aprendi Inglês, meu cérebro funciona dessa forma, eu nunca me dediquei a aprender Inglês antes por que era massante para minha mente os métodos convencionais. Mesma coisa na programação, nunca me aprofundei por aprender com tutoriais, o que torna a minha mente muito pesada de informações desnecessária. O que funciona para você, como você aprende linguagem de programação?

Carregando publicação patrocinada...
1

Ultimamente (mais ou menos um ano), venho aprendendo pelo método de Aprendizagem Baseada em Projetos (PBL):
É uma metodologia de aprendizado em que você desenvolve habilidades práticas e conhecimentos teóricos resolvendo problemas do mundo real. Eu pego uma base primeiro de tudo que eu preciso, vejo tutoriais, documentação, etc., e depois vou para algum projeto. Então, basicamente, é aprender novas linguagens de programação enquanto resolve desafios que vão incrementar no portfólio!

1
1

Eu também gosto de usar a metogoligia de aprender baseado em projetos (aprender fazend).
Eu gosto de planejar os projetos dessa forma:

Quais os projetos vou implementar

Podemos dizer que isso seria um portifolio de estudos hehe.
Eu gosto de elencar 3 ou 4 mini projetos para desenvolver e ficar confortável com a linguagem. Nesses projetos eu vou praticar a linguagem em diferentes cenários.
ex. Estou aprendendo rust, então decidi que vou desenvolver esses 4:

  1. cli app para buscar um texto em arquivos (uma mini versão do grep). Que depois descobri que é um exemplo do livro de rust :P (vou aprender a manipular arquivos e strings)
  2. uma lib de data e hora (só pra sofrer mesmo, vão ter muitos cálculos).
  3. habilitar o cli da primeiro exemplo para acesso remoto. (vou aprender a usar sockets)
  4. um minificador de url. (aprender a fazer um backend rest api com acesso a um banco de dados ou cache system).

Fontes de estudo

Gosto de usar livros (sou old school), mas acho muito válido assistir vídeos no youtube sobre a linguagem e ver pessoas discutindo comparações da linguagem X vs Y.
O livro só leio o necessário para conseguir iniciar os projetos e vou consultando o livro novamente quando precisar.

1

Acredito que seja parecido a forma, eu já tentei fazer dessa forma também ( esqueci de mencionar ) e não fui muito feliz. Programação infelizmente ( ou felizmente dependendo da forma que se vê ) é prática, acredito que seu método e o método de reconhecimento de padrões sejam os mais efetivos quando se trata de programação.

1
1
1

Depende muito da natureza do tópico. Normalmente divido meus estudos entre conteúdos teóricos e práticos. Os práticos (alguma feature de alguma linguagem de programação), eu simplesmente saio escrevendo código pra tudo quanto é lado mesmo, abro um Code Sandbox, abro o console do navegador, abro o Node no terminal, e vou ser feliz, testando várias coisas diferentes e brincando com os resultados.

Quando se trata de conteúdos teóricos, o que eu gosto de fazer é escrever meu próprio texto a respeito do assunto, pois isso me permite mensurar meu nível de conhecimento e identificar possíveis lacunas, as quais ainda preciso estudar melhor pra preencher. É como se fosse aquele princípio de tentar ensinar pra outra pessoa o que você tá tentando aprender. Eu faço isso escrevendo textos.

Eu também gosto de livros, como vi algumas pessoas comentando aqui, mas acredito que os livros servem para tópicos mais genéricos e fundamentais, como algoritmos e estruturas de dados, boas práticas, filosofias, códigos de conduta (Clean Code, The Pragmatic Programmer, Clean Architecture), e por aí vai.

Quando quero aprender algo específico de uma linguagem, recorro primeiro a documentações oficiais. ChatGPT também serve como um bom guia de estudos. Normalmente interajo com ele assim: "Liste as principais perguntas que um especialista em JS deve saber responder" e tomo isso como base pra guiar os estudos.

1
1

Atualmente o que eu estou fazendo e estou tendo uma ótima evolução é estudar a teoria (seja ela em documentação, video aula, livros, etc) pensando em perguntas chaves que posso fazer sobre o assunto, essa perguntas ja vão diretamente para o meu Anki, dessa forma o Anki se tornou o meu mecânismo de anotação. Algumas vezes faço a pergunta e respondo, outras vezes eu faço apenas a pergunta, dessa forma quando for revisar o conteudo tento responder ela de cabeça (se possível).

Claro que estamos falando da parte teórica, mas isso esta me ajudando a ter um embasamento mais forte, pois depois de fazer esse estudo inicial eu sigo para aplicar tudo em um projeto. No momento estou fazendo um curso que esta sendo mais fácil aplicar, pois ele mesmo ja da um projeto a partir dos conteudos teórico estudado.

Fazer essas perguntas esta me ajudando a refletir um pouco sobre o que realmente é importante, colocar elas no Anki esta me ajudando a relembrar e fixar o conteudo (muitas vezes vou sempre reajustando o card para a pergunta ou resposta ficar melhor) e a prática fazer acontecer toda aquela teoria (muitas vezes gerando mais dúvidas, logo mais perguntas pro meu anki).

Considero que estou tendo evoluções que antes não tinha e apesar de parecer dar mais trabalho, entendo que nem tanto pois não preciso ficar revendo o mesmo conteudo pois tudo fica mais fixado na minha cabeça e meu ponto único de "anotação" é o próprio Anki. Quando tenho dúvidas pela caixa de pesquisa nos cards consigo achar uma pergunta que possa responder minhas dúvidas.

Abraços,
RafaMedeiros0

1

Você falando sobre o Anki, eu relembrei que quando estava aprendendo Inglês me ajudou muito. Muito obrigado por me relembrar, mais uma excelente dica de aprendizado.

1

Eu trabalho em tempo integral como backend developer, então não sobra muito tempo e energia para eu estudar, mesmo assim consigo estudar umas 8 horas por semana. Como tenho pouco tempo, minha estratégia e pegar desafios de programação, ou pedir para alguma IA gerar um desafio para mim (chatgpt é ótimo par aisso), com algum tócipo que eu pretendo estudar. E tento completar o desafio, desde a codificação até o deploy e documentação. Assim eu consigo praticar com projetos 'pequenos' porem com uma ou duas funcionalidades mais complexas que pretendo aprender. Exemplo: vamos supor que eu queria aprender sobre microseviços, ai busco algum desafio que eu precise desenvolver uma funcionalidade que utilize microserviços. Esta foi a melhor forma que encontrei para estudar e me manter motivado.

1

Esse post está sendo um brainstorm. Vou anotar essa excelente idéia também, por que acredito que o método convencional atualmente é somente para tirar certificados.

1

Cara, provavelmente o que eu falar já citaram, é bem legal pegar esses conteúdos dps outros, eu tô iniciando na programação então eu sei apenas o básico de CSS e HTML, mas eu gosto do método Feyman (posso ter escrito errado; releve) eu vejo vídeos, pois passei a preferir para entender, depois escrevo e anoto tudo, e faço um projeto de um site básico com o que aprendo (as vezes, mini sites só com aquilo, as vezes um site com mais elementos), e por fim, eu literalmente tento explicar com as minhas palavras o que cada coisa faz, e para o que cada serve. Literalmente assim, se imaginar como um professor sobre o tema, na minha opinião é tranquilamente uma das melhores maneiras

1

Escrever também é uma ótima maneira de fixar o conteudo também. Em algumas situações onde estou tendo extrema dificuldade, escrever ajuda fixar ou compreender melhor o que estoy estudando. Muito bom ver esse método também.

1

Entrei recentemente no mundo da programação e não posso afirmar com certeza que o método que uso é eficaz, mas é o método que sempre usei para estudos e aprendizado. Não sou muito fã de mergulhar na teoria e absorvo as coisas mais no ato prático, então uso um "método de exposição" que basicamente é me colocar em situações práticas onde devo aplicar a teoria. Durante o período de estudos para o Enem usei essa lógica de estudo fazendo bastaaante exercícios de diferentes áreas e, quando percebia dificuldades ou gaps em conceitos, voltava brevemente na teoria para "concretizar" o conhecimento na minha cabeça. Nessa mesma perspectiva, quando comecei a estudar programação buscava desafios de programação ligados a tecnologias específicas e entrava de cabeça na prática para entender os limites do que realmente sabia e "tapar os buracos" da teoria que faltava. Assim, com o tempo, passava a entender realmente para o que tal coisa servia, como aplicá-la de forma efetiva, onde aplicá-la e porquê o fazia.
Demanda bastante tempo já que é uma atividade prática e é bastante frustante, pois se encontra problemas constantemente nesse método de exposição. Como você mencionou sobre o excelente vídeo do Fabio Akita, realmente dói o processo de aprendizagem, perceber o quão pouco você sabe comparado ao mar de informação existente, mas é algo necessário. Basicamente é isso minha maneira de aprender (notei nos comentários que muitas pessoas fazem algo parecido, senão praticamente igual, mas quis compartilhar de toda maneira) e espero ter contribuído de alguma forma na discussão.

1

Eu sigo algo parecido com o que o Akita faz, porém, sigo uma logica antes de copiar codigo aleio.

Primeiro pesquiso os usos da linguagem para fins tantos de curiosidade, quanto para já se ter uma base de onde a linguagem melhor se encaixa.

Depois parto para logica basica na linguagem (variaveis, condicionais, arrays, objetos e etc) claro que isso depende da linguagem ter ou não esses recursos que eu falei.

Com o básico em mãos tento aplicar o um mini projeto que encaixe com a linguagem (jogo, site, API e etc) e ai entra o "copia e cola" que o Akita citou, pois ao longo desse mini projeto vc vai poder tanto aplicar conceitos que vc já conhece de outras linguagens / ferramentas quanto ver o que a própia comunidade tem como solução.

Com esses passos acredito que já tera uma otima base de aprendizado, podendo se aprofudar no que estudou ou pelo menos ter uma boa opinião formada sobre o assunto.

1
1

Eu costumo seguir o tutorial que a propria ferramenta ou linguagem fornece, por exemplo vamos supor que eu quero aprender a framework express.js, eu entro no site deles e sigo o Getting Started ou algum tutorial que tenha lá, parece meio obvio e é. Ai os conceitos que eu vou aprendendo eu vou aplicando enquanto aprendo.

1

Normalmente esse é o flow que eu sigo:

Identificar uma tecnologia "legal"

E por "legal", eu quero dizer uma tecnologia que eu perceba relevante no mercado de tabalho. Apesar de muitas dessas tecnologias eu não usar num primeiro momento, eu gosto aprender só o básico de várias tecnologias pra aumentar meu conhecimento.

Acontece as vezes do principal motivador é o fato de eu achar a tecnologia em si muito interessante, e acabo estudando mais pela diversão 😁

Primeiro projeto de teste

A primeira coisa que eu faço é literalmente criar uma pasta de teste e começar a fazer todo tipo de teste com essa tecnologia. Geralmente eu faço isso acompanhando algum material, como documentação, tutorial em texto, ou até algum vídeo. É nessa etapa que eu entendo como funciona a tecnologia e aprendo o básico do básico.

Um lugar muito bom para esse tipo de coisa é o w3schools

Primeiro "projetinho real"

A idéia de "projetinho real" é um projeto com algum propósito, não necessáriamente "útil", mas que sirva para por em prática oque eu aprendi até então, tocando um projeto por conta própria. O mais legal é que eu sempre preciso buscar na internet mais sobre a tecnologia em questão para implementar as features desse projetinho, assim eu aprendo ainda mais sobre a tecnologia e ajuda a concretizar os conhecimentos adiquiridos na fase anterior.

Quando eu gosto bastante do resultado final desse projetinho eu costumo disponibilizar no meu github, como esse aqui eu fiz para treinar Angular e até um pouquinho de SCSS: cifra-de-vigenere
Não é necessariamente a aplicação mais útil do mundo mas com certeza me ajudou bastante no aprendizado


E assim finaliza mais um estudo, algumas vezes eu até posso acabar fazendo mais de um projetinho, mas normalmente quando eu estudo apenas para aumentar meu "campo de visão" referenete a tecnologias eu paro por aí. Quando é algo que eu REALMETNE vá usar, aí sim eu faço mais projetos práticos, além de ver mais conteúdo sobre em outras mídias, como artigos, livros, vídeos, etc.

0

eu aprendo na prática, pego uns projetos aleatórios que vem na minha mente, independente de complexidade e lanço a braba, aprendi tudo que sei hoje dessa forma, teoria comigo não rola, pode ensinar até de uma forma que um bebê entenda, mas só teoria comigo não prende na cabeça, eu tenho que botar em prática pra fixar

1

Esse método "hardcore". Eu sinceramente gosto dessa forma, pena que eu tenho que voltar para teoria, nem tudo é 100% prática pra mim.