Chaves para acelerar suas habilidades de codificação
A chave para acelerar suas habilidades de codificação
Chaves para acelerar suas habilidades de codificação
Artigo de: http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/
A chave para acelerar suas habilidades de codificação A chave para acelerar suas habilidades de codificação
Quando você aprende a programar, chega um momento em que tudo começa a mudar. Na Firehose, gostamos de chamar isso de ponto de inflexão da codificação. Após esta fase, a forma como você opera como desenvolvedor será dramaticamente diferente. Chegar ao ponto de inflexão é o processo de se tornar autossuficiente em programação, a ponto de não precisar mais de ajuda. Pode ser uma experiência frustrante, mas uma vez superada, é incrivelmente fortalecedora.
Quando você aprende a programar, chega um ponto em que tudo começa a mudar. No Firehose gostamos de chamar isso de ponto de inflexão da codificação. Após essa etapa, a forma como você atua como desenvolvedor será bem diferente. Chegar a um ponto de inflexão é o processo de alcançar a autossuficiência na programação até que não seja necessário mais trabalho manual. Esta pode ser uma experiência frustrante, mas uma vez superada, é incrivelmente fortalecedora.

Na Firehose, nosso objetivo não é apenas ensinar Ruby, como construir aplicações web ou como escrever testes. Embora ensinemos essas habilidades e muito mais, nosso objetivo principal é acelerar os alunos além do ponto de inflexão para que ganhem a capacidade de resolver qualquer problema que encontrarem. Acreditamos que ser capaz de resolver problemas sozinho é uma habilidade inestimável, e esse método de ensino o levará muito além do que simplesmente aprender como construir um conjunto de aplicativos. No Firehose, nosso objetivo não é apenas ensinar Ruby, como construir aplicações web ou como escrever testes. Embora ensinemos essas habilidades e muito mais, nosso objetivo principal é acelerar os alunos através do ponto de inflexão para que possam resolver qualquer problema que surgir. Acreditamos que ser capaz de resolver problemas sozinho é uma habilidade extremamente valiosa, e esta abordagem de ensino irá levá-lo muito além do que simplesmente aprender como construir um conjunto de aplicações.
A Fase Tutorial (3-8 semanas de codificação séria) Fase Tutorial (3-8 semanas de codificação séria)
Quando você começa a aprender a programar, há muitas informações que você ainda não conhece. Essas informações são chamadas de conhecimento específico do domínio. Os exemplos incluem: saber como escrever um loop em Ruby ou como extrair algo de um banco de dados usando Ruby on Rails. O conhecimento específico do domínio abrange os protocolos exclusivos de um determinado ambiente de programação. Quando você começa a aprender a programar, há muitas informações que você ainda não conhece. Essas informações são chamadas de conhecimento específico do domínio. Os exemplos incluem: Aprenda como escrever loops em Ruby ou como extrair conteúdo de um banco de dados usando Ruby on Rails. O conhecimento específico de domínio consiste em protocolos exclusivos para um ambiente de programação específico.
O primeiro passo para se tornar um desenvolvedor autossuficiente é aprender como realizar tarefas específicas. Depois de dominar certas tarefas, os traços gerais de como as peças se encaixam começarão a se tornar aparentes. Com o tempo, você começará a reconhecer padrões e, eventualmente, as coisas que inicialmente pareciam confusas e estranhas se tornarão uma segunda natureza. O primeiro passo para se tornar um desenvolvedor autossuficiente é aprender como realizar uma tarefa específica. Depois de dominar uma tarefa, você descobrirá como as peças se encaixam. Com o tempo, você começará a reconhecer padrões e, eventualmente, o que inicialmente parecia confuso e desconhecido se tornará uma segunda natureza.
Para estudantes iniciantes, a habilidade mais importante a adquirir é a atenção aos detalhes.
Prestar muita atenção aos detalhes é importante ao examinar materiais como documentação ou tutoriais. Mesmo os menores erros de digitação e ortografia resultarão em mensagens de erro ou bugs. Ver mensagens de erro é uma experiência frustrante no início, mas é uma etapa crucial no processo de aprendizagem. Lidar com mensagens de erro e problemas nesta fase ensina uma das habilidades mais importantes da programação em um ambiente seguro: ser orientado para os detalhes. Ao navegar em materiais como documentação ou tutoriais, é importante prestar muita atenção aos detalhes. Mesmo os menores erros de digitação e ortografia podem levar a mensagens de erro ou erros. Ver mensagens de erro é inicialmente uma experiência frustrante, mas é uma etapa crítica no processo de aprendizagem. Lidar com mensagens de erro e problemas durante esta fase lhe ensinará uma das habilidades mais importantes para programar em um ambiente seguro: ser orientado para os detalhes.
Depurar mensagens de erro é extremamente importante. O fato é que as mensagens de erro são apenas uma parte da programação: elas são vistas tanto por desenvolvedores inexperientes quanto por desenvolvedores muito experientes. A única diferença é que quanto mais experiência você tiver em lidar com mensagens de erro, menos tempo precisará gastar tentando corrigi-las. Aqui está o porquê: A depuração de mensagens de erro é muito importante. Na verdade, as mensagens de erro são apenas parte da programação: tanto desenvolvedores inexperientes quanto desenvolvedores muito experientes veem mensagens de erro. A única diferença é que quanto mais experiência você tiver em lidar com mensagens de erro, menos tempo gastará corrigindo-as. As razões são as seguintes:
-
Com o tempo, você aprenderá como ler mensagens de erro e extrair rapidamente os detalhes relevantes do problema. Na primeira vez que você vir uma mensagem de erro, demorará um pouco para decodificar o que ela realmente significa. Mas depois de ver centenas de mensagens de erro (e você verá centenas!), você será capaz de identificar a localização do problema e os detalhes relevantes necessários para corrigi-lo. Com o tempo, você aprenderá como ler rapidamente mensagens de erro e extrair detalhes relevantes sobre o problema. Ao ver uma mensagem de erro pela primeira vez, você precisa de algum tempo para entender o que ela realmente significa. No entanto, depois de ver centenas de mensagens de erro (e você verá centenas!), você será capaz de identificar a localização do problema e os detalhes relevantes necessários para corrigi-lo.* Você deve aprender com cada mensagem de erro que resolver. Não apenas corrija o erro e acabe com ele; entenda o que há de errado com o código que você está corrigindo. Ao aprender com cada um dos seus erros, da próxima vez que cometer o mesmo erro, você poderá corrigi-lo com muito mais rapidez. Você deve aprender com cada mensagem de erro que resolver. Não apenas conserte o bug e lide com ele; entenda o que há de errado com o código que você está corrigindo. Ao aprender com seus erros, você poderá corrigi-los mais rapidamente na próxima vez que cometer o mesmo erro.
-
Inicialmente, você provavelmente pedirá ajuda em cada mensagem de erro que vir. Com o tempo, você aprenderá a pedir ajuda com menos frequência, verificando seu código e conduzindo pesquisas inteligentes no Google. Inicialmente, você pode pedir ajuda com cada mensagem de erro exibida. Com o tempo, você aprenderá a pedir ajuda com menos frequência, verificando seu código e fazendo pesquisas inteligentes no Google.
Na fase tutorial, você seguirá as instruções. No início, você achará difícil seguir as instruções e mensagens de erro aparecerão com frequência. Com o tempo, você desenvolverá a habilidade de depurar erros e prestar mais atenção aos pequenos detalhes, e poderá progredir muito mais rapidamente. Ao encerrar a fase do tutorial, você notará que é capaz de escrever código em um ritmo muito mais rápido. Durante a fase do tutorial, você seguirá as instruções. No início, você achará difícil seguir as instruções e mensagens de erro ocorrerão com frequência. Com o tempo, você desenvolverá habilidades para depurar erros e melhorará a atenção aos pequenos detalhes, além de poder progredir mais rapidamente. Ao final da fase do tutorial, você notará que é capaz de escrever código com muito mais rapidez.
Neste ponto, algumas pessoas se sentem confiantes – como se estivessem prontas para abandonar as rodinhas de apoio e começar a construir coisas sem orientação estruturada – e ficarão felizes em mergulhar no fundo do poço. Outros alunos buscarão mais tutoriais, tentando obter mais conhecimento específico do domínio em busca de uma “compreensão completa”. Infelizmente, os tutoriais só levarão você até certo ponto, e a verdadeira confiança não é encontrada em tutoriais ou guias. A verdadeira confiança vem de lutar contra um problema que você não tem ideia de como resolver e de descobrir uma solução por conta própria. Neste ponto, algumas pessoas se sentirão confiantes - como se estivessem prontas para abandonar as rodinhas de apoio e começar a construir algo sem orientação estruturada - e ficarão felizes em mergulhar no fundo do poço. Outros alunos procurarão mais tutoriais na tentativa de obter mais conhecimento específico do domínio em busca de “compreensão completa”. Infelizmente, os tutoriais só levarão você até certo ponto, e a verdadeira confiança não é encontrada em um tutorial ou guia. A verdadeira confiança vem de lutar com um problema que você não sabe como resolver e de descobrir sua própria solução.
**O segredinho sujo da programação é…**O segredinho sujo da programação é…
Você nunca saberá tudo o que precisa saber para resolver todos os seus problemas. Indo para a jornada, você provavelmente se imaginou aprendendo tudo o que precisa aprender e, então, sendo resolvido. Este momento nunca acontecerá. Você nunca poderá saber tudo o que precisa saber para resolver todos os seus problemas. No processo, você pode se imaginar finalmente aprendendo tudo o que precisa aprender e então sendo libertado. Este momento nunca acontecerá.
A programação é uma experiência de aprendizagem ao longo da vida. Engenheiros de software experientes procuram encontrar soluções para problemas que ainda não resolveram porque isso lhes dá a oportunidade de aprender mais. Se você estiver esperando o momento em que finalmente sentirá que sabe tudo o que há para saber sobre codificação, saiba disso: o dia que você está esperando nunca chegará. E isso é uma coisa maravilhosa. A programação é uma experiência de aprendizagem ao longo da vida. Engenheiros de software experientes buscam soluções para problemas que ainda não resolveram porque isso lhes dá a oportunidade de aprender mais. Se você estiver esperando pelo momento em que finalmente sentirá que sabe tudo o que há para saber sobre codificação, saiba disso: o dia que você está esperando nunca chega. Isso é ótimo.

**Você estará pronto para pular para a próxima fase de sua jornada quando:**Você estará pronto para pular para a próxima fase de sua jornada quando:
-
Você já viu mensagens de erro suficientes para que elas não o assustem mais. Em vez disso, você sabe como decifrar o que eles significam e onde procurar os problemas no seu código. Você já viu mensagens de erro suficientes para que elas não o assustem mais. Em vez disso, você sabe como decifrar seu significado e onde procurar problemas em seu código.
-
Você é um profissional em busca de soluções no Google. Ao trabalhar para adicionar um recurso ou ver uma mensagem de erro confusa, você sabe o que procurar para encontrar as informações necessárias. Você é um especialista em busca de soluções. Ao adicionar um recurso ou ver uma mensagem de erro confusa, você sabe o que procurar para encontrar as informações necessárias.
-
Você pode fazer referência ao código que escreveu em outras partes do seu aplicativo e seguir padrões dentro deles, em vez de sempre procurar instruções passo a passo. Em vez de sempre procurar instruções passo a passo, você pode consultar o código que escreveu em outras partes do seu aplicativo e seguir os padrões.
O Ponto de Inflexão (2-4 semanas com a mentalidade certa)O Ponto de Inflexão (2-4 semanas com a mentalidade certa)
O estágio do ponto de inflexão é um dos estágios mais frustrantes do aprendizado de codificação, mas, em muitos aspectos, é o único estágio que importa. É o ponto em que você deixa de usar tutoriais e começa a resolver problemas para os quais ninguém encontrou uma solução para você. O estágio do ponto de inflexão é um dos estágios mais frustrantes do aprendizado de codificação, mas, em muitos aspectos, é o único estágio que importa. É nesse ponto que você gradualmente abandona o uso de tutoriais e começa a resolver problemas para os quais ninguém tem solução para você.Em alguns momentos, você sentirá que não está pronto para enfrentar essa fase e deseja voltar a construir algo com um esboço do que fazer exatamente. Não seja vítima dessa mentalidade. A razão pela qual você se sentirá frustrado é: Em algum momento, você sentirá que não está pronto para lidar com essa fase e desejará reformulá-la de forma clara. Não seja vítima dessa mentalidade. Os motivos pelos quais você pode se sentir frustrado são:
Durante a fase de inflexão, você codificará de 10 a 20 vezes MAIS LENTO do que na fase anterior.
Durante o estágio do ponto de inflexão, sua codificação será 10 a 20 vezes mais lenta que o estágio anterior.
Você pode começar a se questionar e se perguntar se é realmente capaz de se tornar um programador. Sentimentos de insegurança e dúvida são comuns nesta fase. Você pode começar a se questionar se é realmente capaz de ser um programador. Sentimentos de insegurança e dúvida são comuns nesta fase.
Apesar de você sentir que está aprendendo e realizando coisas em um ritmo muito mais lento, na realidade, você está alcançando as coisas que mais importam. Embora seu conhecimento específico de domínio seja gritante, tudo o que você está aprendendo será sobre conhecimento processual. Mesmo que pareça que você está aprendendo e concluindo as coisas muito mais lentamente, na realidade, você está realizando as coisas mais importantes. Embora seja difícil colocar seu conhecimento específico do domínio, tudo o que você aprender estará relacionado ao conhecimento processual.
Conhecimento processual é a capacidade de aprender a si mesmo o que você não sabe ao longo do caminho. Quando você precisa implementar um novo recurso, que tipo de pesquisa no Google você deve fazer? Neste momento, você se sentirá “no escuro” no que diz respeito a muitas das coisas que deseja realizar. Aprender como encontrar a luz sozinho é fundamental porque você nunca saberá tudo o que há para saber, então você precisa ser capaz de aprender sozinho como resolver o problema em questão. Conhecimento processual é a capacidade de ensinar a si mesmo algo que você não sabe. Que tipo de pesquisa no Google você deve realizar quando precisar implementar um novo recurso? Neste momento, quando você quer realizar muita coisa, você pode se sentir “no escuro”. Aprender como encontrar a luz sozinho é crucial porque você nunca pode saber tudo, então você precisa ser capaz de aprender sozinho como resolver o problema em questão.
A maioria das pessoas não percebe que, para aprender a codificar, você precisa aprender conhecimentos específicos de domínio e de procedimentos. A maioria das pessoas não percebe que, para aprender a codificar, você precisa aprender conhecimentos específicos de domínio e de procedimentos.**
Pelo resto da sua vida, ultrapasse seus limites todos os dias Pelo resto da sua vida, ultrapasse seus limites todos os dias
Alguns engenheiros de software permanecem dentro de sua zona de conforto quando encontram o equilíbrio. Esses tipos de programadores são conhecidos como programadores de manutenção – algo que você não deveria se esforçar para ser. Em vez disso, você deve se esforçar para ultrapassar seus limites todos os dias. A razão mais comum pela qual os programadores pedem demissão é porque “não é mais um desafio, já que resolvi todos os problemas interessantes”. Alguns engenheiros de software permanecem em sua zona de conforto quando encontram o equilíbrio. Esses tipos de programadores são chamados de programadores de manutenção – não é algo que você deva se esforçar para ser. Em vez disso, você deve se esforçar para ultrapassar seus limites todos os dias. A razão mais comum pela qual os programadores pedem demissão é: “Agora que resolvi todos os problemas interessantes, não é mais um desafio”.
Em vez de tentar colocar os projetos de codificação em sua zona de conforto, você deve procurar problemas que estão fora de seu conjunto atual de habilidades. Esta é a única maneira de desenvolver e expandir suas habilidades. Em vez de tentar empurrar os projetos de codificação para sua zona de conforto, você deve identificar problemas fora de suas habilidades existentes.
Nas palavras de um aluno da Firehose ao passar pelo seu ponto de inflexão:
Ainda sinto que estou no fundo do poço! Estou ficando mais confortável sabendo que é onde devo estar! Ainda sinto que estou no abismo! Me sinto muito mais confortável sabendo para onde estou indo!
No desenvolvimento web, na verdade existem dois pontos de inflexão que se juntarão. No desenvolvimento web, existem na verdade dois pontos de inflexão.
O ponto de inflexão do desenvolvimento web é o ponto em que você se torna capaz de criar qualquer aplicativo baseado em banco de dados que desejar. Isso significa ser capaz de construir uma aplicação web com muitas páginas que armazena e recupera informações de um banco de dados simples. Os desenvolvedores da Web chamam isso de “dominar o CRUD”. Nesta fase, você também deverá ser capaz de integrar-se a qualquer biblioteca de terceiros (uma jóia Ruby, por exemplo) simplesmente seguindo a documentação fornecida no GitHub ou uma postagem no blog. O ponto de inflexão do desenvolvimento web é o ponto de inflexão onde você pode construir qualquer aplicativo orientado a banco de dados que desejar. Isso significa ser capaz de construir uma aplicação web com muitas páginas que possam armazenar e recuperar informações de um banco de dados simples. Os desenvolvedores da Web chamam isso de: “Mastering CRUD”. Neste estágio, você também deve ser capaz de integrar-se a quaisquer bibliotecas de terceiros, como ruby gems, seguindo a documentação ou postagens de blog disponíveis no GitHub.
O ponto de inflexão do algoritmo e das estruturas de dados é um ponto de inflexão menos superficial, mas na verdade é mais importante. Quem conquistou esse ponto terá dominado a linguagem de programação em que trabalha, além de dominar os fundamentos da programação e ter profundo conhecimento para solucionar desafios complexos de codificação. Inflexão de algoritmos e estruturas de dados é um ponto de inflexão menos superficial, mas na verdade é mais importante. As pessoas que superarem isso terão domínio da linguagem de programação que utilizam, além de dominar os fundamentos da programação e conhecimento profundo para resolver desafios complexos de codificação.As pessoas que conquistaram o ponto de inflexão do algoritmo e das estruturas de dados serão capazes de: As pessoas que superam o ponto de inflexão em algoritmos e estruturas de dados podem:
- Escreva algoritmos de classificação Escreva algoritmos de classificação
- Implementar e listas vinculadas reversamente Implementação e listas vinculadas reversamente
- Compreender e escrever programas aproveitando pilhas, filas e árvores Compreender e escrever programas aproveitando pilhas, filas e árvores
- Escreva programas de computador usando soluções recursivas ou iterativas Escreva programas de computador usando soluções recursivas ou iterativas
Resumindo, depois de passar por esse ponto de inflexão, você terá dominado a manipulação de dados e compreenderá as implicações de desempenho de suas decisões de código. Os cursos tradicionais de ciência da computação concentram-se exclusivamente em fazer com que os alunos ultrapassem o ponto de inflexão dos algoritmos e das estruturas de dados. Muitas universidades ensinam isso com linguagens de programação que geralmente não são usadas na indústria, como Scheme, Racket ou LISP. Resumindo, depois de passar por esse ponto de inflexão, você dominará a manipulação de dados e compreenderá o impacto de suas decisões de codificação no desempenho. Os cursos tradicionais de ciência da computação concentram-se em fazer com que os alunos ultrapassem o ponto de inflexão dos algoritmos e estruturas de dados. Muitas universidades ministram este curso em linguagens de programação que normalmente não são usadas na indústria, como Scheme, Racket ou LISP.
Na maioria das entrevistas técnicas, o entrevistador presumirá que você passou no ponto de inflexão de desenvolvimento web, visto que é mais fácil de fazer, e focará suas perguntas na avaliação de sua habilidade em algoritmos e estruturas de dados. Essas perguntas geralmente se concentrarão nos tópicos que mencionamos acima: classificação de algoritmos, reversão de listas vinculadas e uso de pilhas, filas e árvores. *Na maioria das entrevistas técnicas, o entrevistador presumirá que você passou do limite no desenvolvimento web porque isso é mais fácil de fazer, e focará as perguntas na avaliação de suas habilidades em algoritmos e estruturas de dados. Essas questões geralmente se concentram nos tópicos mencionados acima: algoritmos de classificação, listas vinculadas reversamente e uso de pilhas, filas e árvores.
Depois que um desenvolvedor passa pelo ponto de inflexão do desenvolvimento web e pelo ponto de inflexão do algoritmo e das estruturas de dados, ele detém as chaves do reino.
Esses desenvolvedores serão capazes de resolver desafios que cruzam os dois: algoritmos complexos que precisam ser construídos no contexto de aplicações web avançadas. Isso está no cerne do que os desenvolvedores web profissionais fazem todos os dias. Esses desenvolvedores serão capazes de resolver desafios em ambas as áreas: algoritmos complexos que precisam ser construídos no contexto de aplicações web avançadas. Este é o cerne do que os desenvolvedores web profissionais fazem todos os dias.
Consequências do Ponto de Inflexão Consequências do Ponto de Inflexão
A maior consequência do ponto de inflexão parecerá um pouco contra-intuitiva quando você a ouvir pela primeira vez. Respire fundo: Quando você ouve falar pela primeira vez sobre ponto de inflexão, sua maior consequência pode parecer um pouco contra-intuitiva. Respire fundo:
Ao aprender a codificar, o conhecimento específico do domínio não importa no grande esquema das coisas. Ao aprender a codificar, o conhecimento específico do domínio não importa no grande esquema das coisas.**
Sim. Não estou brincando – realmente não importa muito. Depois de passar do ponto de inflexão, esses conceitos serão traduzidos com fluidez em apenas uma ou duas semanas de tutoriais, talvez até dias! Sim. Não estou brincando - realmente não é grande coisa. Depois de passar do ponto de inflexão, os conceitos serão traduzidos suavemente em uma ou duas semanas de tutoriais, talvez até alguns dias!
O que realmente importa é: O que realmente importa é:
- Você tem um conhecimento sólido de uma estrutura de desenvolvimento web Você tem um conhecimento sólido de uma estrutura de desenvolvimento web
- Você tem um sólido conhecimento sobre como escrever código algoritmicamente complexo em qualquer linguagem de programação
Os gerentes de contratação desejam desenvolvedores com sólidas habilidades em desenvolvimento web e algoritmos. Os gerentes de contratação desejam desenvolvedores com sólidas habilidades em desenvolvimento web e algoritmos.
Enquanto eu trabalhava no PayPal, minha equipe contratou um desenvolvedor Rails sênior que não tinha experiência em Rails – ele codificava muito em Python, LISP e Perl. Em poucos dias, ele já estava causando um grande impacto. E dentro de semanas: um enorme impacto. Ele rapidamente se tornou o líder da equipe técnica e foi uma das melhores decisões de contratação em que já estive envolvido. Quando trabalhei no PayPal, minha equipe contratou um desenvolvedor Rails sênior sem nenhuma experiência em Rails - ele escreveu muitos códigos em Python, LISP e Perl. Em poucos dias, ele já estava causando um grande impacto. Dentro de algumas semanas: um enorme impacto. Sua rápida promoção a líder de equipe técnica foi uma das melhores decisões de contratação das quais já participei.
Não se preocupe. Muitas pessoas dirão coisas como “AngularJS está na moda hoje em dia”, “JavaScript está em alta” ou “a última moda é…” Minha resposta a isso é: “então?” Quando você está aprendendo a programar, seu objetivo singular deve ser encontrar o ponto de inflexão e aniquilá-lo. Depois de fazer isso, aprender essa nova moda sexy não será uma tarefa difícil. Não se preocupe com a pilha. Muitas pessoas dirão: “AngularJS está na moda recentemente”, “JavaScript está em ascensão” ou “a última moda é…” Quando você aprende a programar, seu único objetivo deve ser encontrar o ponto de inflexão e eliminá-lo. Depois de fazer isso, aprender moda nova e sexy não será uma tarefa difícil.Torne-se autossuficiente. Ter a capacidade de aprender novas habilidades de codificação sem orientação estruturada significa que você não precisa mais esperar que alguém o ajude. Isso significa que para a maior parte do que você precisa aprender, você pode simplesmente pesquisar na internet e ler os diversos materiais sobre o que você precisa saber.
- Torne-se autossuficiente. *A capacidade de aprender novas habilidades de codificação sem orientação estruturada significa que você não precisa mais esperar pela ajuda de ninguém. Isso significa que, para a maior parte do que você precisa aprender, basta pesquisar na Internet e ler vários materiais sobre o que você precisa saber.
Isso não significa que você “sabe” tudo imediatamente, mas apenas que agora tudo é “compreensível”, então, em essência, você é imparável. Isso não significa que você “sabe” tudo imediatamente, mas que tudo é “solucionável” agora, então, em essência, você é imparável.
As habilidades que você desenvolverá durante o ponto de inflexão
Como desenvolvedor de software, o melhor material de referência é um código semelhante que você já escreveu. Quando você entende completamente o código que escreveu, não precisa guardar todos os detalhes na memória. Isso significa que *a primeira pergunta que você deve se fazer ao construir um novo recurso é: “Já construí algo semelhante antes?” agora?" Como desenvolvedor de software, o melhor material de referência é um código semelhante que você já escreveu. Quando você entende completamente o código que está escrevendo, não precisa guardar todos os detalhes na memória. Isso significa que ao construir um novo recurso, a primeira pergunta que você deve se fazer é: “Já construí algo semelhante antes?” Se a resposta for sim, dê uma nova olhada no código e percorra-o mentalmente, linha por linha. Explique novamente para si mesmo o que ele está fazendo e pergunte-se: “Posso usar o mesmo método agora?”
Os vídeos são péssimos para explicar detalhes específicos do domínio porque demoram muito para serem assistidos. Digamos que você queira integrar com a API do Google Maps. Depois de fazer isso uma vez, pode levar menos de um minuto para abrir o código no GitHub, copiar o código e colá-lo em um novo projeto. Os vídeos, por outro lado, muitas vezes podem levar de 10 a 30 minutos para serem assistidos novamente. Os vídeos são péssimos para explicar áreas específicas de detalhes porque demoram muito para serem assistidos. Digamos que você queira integrar com a API do Google Maps. Depois de ter essa experiência, leva menos de um minuto para abrir o código no GitHub, copiá-lo e colá-lo em um novo projeto. A reprodução do vídeo, por outro lado, geralmente leva de 10 a 30 minutos.
Estratégias para passar o ponto de inflexão com a maior eficiência possível Estratégias para passar o ponto de inflexão com a maior eficiência possível
Como passar do ponto de inflexão é a parte mais importante do aprendizado de codificação, você deve se preparar para tornar o processo o mais tranquilo possível. Isso significa que você deve começar a se preparar enquanto estiver na fase do tutorial e manter a mentalidade certa durante esse período. Como passar do ponto de inflexão é a parte mais importante do processo de aprendizagem de código, você deve tornar seu processo o mais tranquilo possível. Isso significa que você deve começar a se preparar durante a fase do tutorial e manter a mentalidade certa durante esse período.
*Durante a fase do tutorial, faça pausas na revisão do material estruturado e desafie-se com problemas ao longo do caminho.
-
Para cada poucas lições, tente fazer algo que esteja fora do escopo do tutorial que você está seguindo. Se os tutoriais que você está seguindo oferecem “desafios” ou peças “autodirigidas”, faça todos eles. Resolver desafios não guiados lhe dará a importante experiência de fazer coisas sem orientação estruturada. Se o tutorial que você está seguindo oferece uma seção de “desafio” ou “autoguiado”, faça tudo. Resolver desafios não diretivos proporcionará a você uma experiência importante em fazer coisas sem orientação estruturada.
-
Tente usar tutoriais o menos possível. Na Firehose, frequentemente orientamos os alunos sobre como integrar certas joias ou fazer coisas usando a documentação fornecida. Em vez de simplesmente seguir as instruções explicadas em tutoriais voltados para pessoas que estão apenas começando, muitos alunos seguirão a documentação e usarão os tutoriais como backup. Observe que a documentação irá tratá-lo como um desenvolvedor que passou do ponto de inflexão. Ficar confortável ao ler e seguir a documentação no GitHub lhe dará uma vantagem quando estiver sozinho. Use tutoriais o mínimo possível. No Firehose, frequentemente instruímos os alunos sobre como integrar certas joias ou fazer algo usando a documentação fornecida. Em vez de simplesmente seguir as instruções de um tutorial para quem está começando, muitos alunos seguirão a documentação e usarão o tutorial como backup. *Observe que a documentação tratará você como um desenvolvedor que passou do ponto de inflexão. * Ler e seguir facilmente a documentação relevante no GitHub lhe dará uma vantagem ao trabalhar sozinho.
-
Concentre-se no essencial e use a repetição. Aprenda como fazer coisas comuns, como criar um aplicativo do zero, enviar um novo aplicativo para GitHub e Heroku e criar uma migração de banco de dados desde o início. Aprenda como fazer coisas comuns, como criar um aplicativo do zero, enviar novos aplicativos para GitHub e Heroku e criar migrações de banco de dados antecipadamente.
Ultrapassar o ponto de inflexão pode ser um desafio. Aqui estão algumas dicas para você superar isso: Ultrapassar o ponto de inflexão pode ser um desafio. Aqui estão algumas dicas para ajudá-lo a superar isso:* Entenda que este é um processo difícil e vá com calma. Além disso, estabeleça expectativas realistas. Você não pode comparar sua velocidade de “super-homem” de passar por tutoriais com sua velocidade de “caracol” de aprender coisas por conta própria. Tenha em mente que você está aprendendo muito, mas nesta fase você está aprendendo uma nova habilidade de descobrir coisas novas por conta própria. Além disso, estabeleça expectativas realistas. Você não pode comparar a velocidade de aprendizado do nível “sobre-humano” com a velocidade de autoaprendizagem do nível “caracol”. Lembre-se, você aprendeu muito, mas neste estágio você está aprendendo um novo conjunto de habilidades e descobrindo coisas novas por conta própria.
- Se você está lutando contra a autoconfiança, saiba que o que você está sentindo é completamente normal. Continue trabalhando. Se você continuar tendo dificuldades, tente conversar com alguém que recentemente passou do ponto de inflexão. Eles serão capazes de se identificar com a posição em que você se encontra e garantirão que o que você está vivenciando é apenas temporário. apenas prolongará o tempo que você gasta construindo até o ponto de inflexão. Se você está lutando contra sua autoconfiança, saiba que o que você está sentindo é completamente normal. Continue trabalhando. Se você ainda estiver com dificuldades, tente conversar com alguém que acabou de passar do ponto de virada. Eles serão capazes de se identificar com a posição em que você se encontra e garantir que o que você está vivenciando é apenas temporário. Continue trabalhando, mas não trabalhe demais. Nesta fase do jogo, você precisa saber que só pode trabalhar no máximo 6 horas por dia. Trabalhar a partir de um estado de exaustão apenas prolongará o tempo que leva para você chegar ao ponto de ruptura.
A melhor maneira de ganhar confiança nesta fase é superar quaisquer dúvidas que você tenha. Suas emoções podem começar a parecer uma montanha-russa. Às vezes, você se sentirá pegando fogo, mas depois de 15 horas lutando contra o mesmo problema, é muito comum sentir o oposto. A melhor forma de ganhar confiança nesta fase é superar as dúvidas. Você pode estar em uma montanha-russa emocional. Às vezes você sente que está pegando fogo, mas depois de lutar com o mesmo problema por 15 horas, geralmente sente o contrário.
Pode ser frustrante não ter ideia se algo levará 5 minutos ou 5 horas, mas cada vez que você implementar e implementar com sucesso um novo recurso, a onda de confiança será tudo que você precisa. Depois de resolver alguns problemas difíceis sem qualquer ajuda, você ficará viciado na sensação de construir coisas fora da sua zona de conforto. Pode ser frustrante se você não sabe se algo vai levar 5 minutos ou 5 horas, mas toda vez que você trabalhar duro e implementar um novo recurso com sucesso, essa onda de confiança será tudo que você precisa. Depois de resolver alguns problemas difíceis sem qualquer ajuda, você ficará viciado na sensação de construir algo fora da sua zona de conforto.
Como saber quando você passou do ponto de inflexão
A etapa final do processo do ponto de inflexão é a aceitação. Aceitação de que o desenvolvimento de software é um processo de aprendizagem contínua. Aceitação de que a sensação de que você aprendeu tudo com sucesso significa apenas que você deve começar a pensar em resolver problemas mais complicados. A fase final do processo do ponto de inflexão é a fase de aceitação. Aceite que o desenvolvimento de software é um processo de aprendizagem contínuo. Aceitar a sensação de que aprendeu tudo com sucesso significa que você deve começar a pensar em resolver problemas mais complexos.
Você já experimentou o ponto de inflexão? Compartilhe esta postagem e inicie uma conversa com seus amigos – você ficaria surpreso com quantas pessoas alcançaram e superaram esse momento. Você já experimentou um ponto de inflexão? Compartilhe esta postagem com seus amigos para iniciar uma conversa – você ficará surpreso com quantas pessoas alcançaram e superaram este momento
O que você quer dizer com DOIS pontos de inflexão? Não é um ponto de inflexão onde tudo começa a fazer sentido? Se uma parte do desenvolvimento começa a fazer sentido, por que então você chama isso de ponto de inflexão? Não há como unificar estes “pontos de inflexão” em algo mais concreto? O que você quer dizer com dois pontos de inflexão? Não existe um ponto de viragem onde tudo começa a fazer sentido? Se uma determinada parte do desenvolvimento começa a fazer sentido, então por que chamá-la de ponto de inflexão? Não existe uma maneira de unificar esses “pontos de inflexão” em algo mais concreto?
Ótima pergunta! Basicamente, existem dois segredos para ser um desenvolvedor web sólido: Ótima pergunta! Existem basicamente dois segredos para se tornar um desenvolvedor web confiável:
- Construindo um aplicativo baseado em banco de dados. Os desenvolvedores chamam isso de “construção de aplicativos ruins”. Isso enviará dados para um banco de dados, talvez os integrará com algumas joias, etc. Depois de codificar aplicativos da web suficientes, você notará que há um padrão/fórmula que o ajudará a passar por 90% das coisas que você constrói. *Construa um aplicativo baseado em banco de dados. Os desenvolvedores chamam isso de “construção de aplicativos brutos”. Depois de escrever aplicativos da web suficientes, você notará que há um padrão/fórmula que ajuda você a realizar 90% do trabalho de construção.
- Resolver algoritmos é um pouco diferente. Basicamente, em vez de seguir um padrão, geralmente envolve muitas tentativas e erros antes que as coisas funcionem como esperado.
- *O algoritmo de resolução é um pouco diferente. Basicamente, ao contrário de seguir um padrão, geralmente requer muitas tentativas e erros antes que as coisas funcionem como esperado.
Os dois eventualmente se cruzam ao criar aplicativos complexos no mundo real. Os dois eventualmente se cruzam na construção de aplicativos complexos no mundo real.Por exemplo, se você estiver construindo um jogo de xadrez, armazenando informações do jogo, login do usuário, todas as coisas padrão envolvidas na construção de um aplicativo CRUD. Porém, existem algoritmos mais complicados que você também precisará oferecer suporte. Pense: determinar se um usuário está em xeque ou xeque-mate. Ou se um movimento é válido. Por exemplo, se você estiver construindo um jogo de xadrez, armazene informações do jogo, logins de usuários e todos os itens padrão envolvidos na construção de um aplicativo CRUD. No entanto, você também precisa oferecer suporte a algoritmos mais complexos. Considere: Determinar se o usuário está marcado ou não. Ou se uma ação é válida.
A solução de algoritmos não ajuda você a construir um formulário e solicitar informações ao usuário. Avisar ao usuário e armazenar coisas em um banco de dados não ajuda você com coisas desafiadoras em termos de algoritmos. Quando você é sólido nos padrões que usará para fazer 90% do tempo, e nos algoritmos de que precisa em 10%, você pode resolver a maioria dos desafios que enfrenta. Resolver algoritmos não ajuda a criar formulários e solicitar informações dos usuários. Avisar o usuário e armazenar os dados em um banco de dados não ajuda a resolver desafios algorítmicos. Depois de dominar os padrões que usará 90% do tempo, você precisará dos algoritmos necessários para resolver a maioria dos desafios que enfrenta.
Parece que nunca consigo passar do estágio de conhecimento processual e específico do domínio. Por que? Parece que nunca consigo passar dos estágios de Conhecimento Específico do Domínio e Conhecimento Processual. Por que?
Passar do estágio processual e específico do domínio é um pouco difícil. Primeiro você precisa se sentir confortável lendo e entendendo coisas como documentação e coisas destinadas a programadores “intermediários” em vez de “iniciantes”. Depois de ler e usar a documentação, você terá uma boa maneira de aprender novos tópicos. Passar por áreas específicas e estágios de processo é um pouco difícil. Primeiro, você precisa ser capaz de ler e compreender facilmente o conteúdo, como documentação, voltado para programadores “intermediários” e não para “iniciantes”. Depois de ler e usar esses documentos, você terá uma ótima maneira de aprender um novo tópico.
Então você precisa estar disposto a sair de sua zona de conforto e passar o tempo resolvendo as coisas por conta própria. Encontre um problema que o entusiasme e vá em frente! Então você precisa estar disposto a sair da sua zona de conforto e dedicar um tempo para resolver o problema sozinho. Encontre um problema que o entusiasme e resolva-o!
Continue codificando, Chris! 🙂
Eu realmente não sei o que dizer sobre este artigo ou este “Como você saberá que está pronto para começar a trabalhar como desenvolvedor web” Eu realmente não sei o que dizer sobre este artigo ou sobre “Como você sabe que está pronto para começar a trabalhar como desenvolvedor web” Foi direto para o meu cérebro como se, enquanto lia, eu estivesse me observando no espelho. Foi direto para o meu cérebro e foi como se eu estivesse me olhando no espelho enquanto lia. Que artigo excelente e brilhante. Você provavelmente pode chamar isso de Psicologia para desenvolvedores. Que artigo maravilhoso. Você poderia chamar essa mentalidade de desenvolvedor. Ainda me sinto estranho depois de ler isso (no bom sentido). por que? Depois de ler isso ainda me sinto estranho. Por que? Atualmente sou bioquímico com alguns anos na área. Sim, eu faço biologia molecular de DNA, RNA, é divertido e tudo mais, mas … não paga bem. (atualmente abaixo e perto de 40.000) Atualmente sou bioquímico e trabalho na área há vários anos. Sim, faço biologia molecular de DNA e RNA, o que é muito interessante, mas… o salário não é alto. (atualmente cerca de 40.000 pessoas) Este ano decidi mudar completamente minha operadora para uma desenvolvedora que eu realmente amo. Em 11-12 meses (na verdade comecei seriamente em janeiro-fevereiro de 2015), comecei do 0, (zero, nada) e aprendi HTML, css, JS, um pouco de jQuery, um pouco de C #, um pouco de Android. Agora sei como fazer um site (responsivo, é claro) e estou desenvolvendo meu próprio aplicativo web ASP.Net MVC. Este ano decidi mudar completamente meu vetor e me tornar um desenvolvedor que realmente gosto. Em 11 a 12 meses (na verdade comecei seriamente em janeiro-fevereiro de 2015), aprendi HTML, CSS, JS, jQuery, c#, Android do zero. Agora que sei fazer um site (responsivo claro), estou desenvolvendo meu próprio ASP. Aplicativo web MVC líquido.
Alguns de vocês dirão um ano e ainda não estão na área? bem, eu tenho 3 filhos e …40 anos. Alguns me disseram que estou atrasado para isso. mas ainda acho que consigo, mas é difícil (mas ainda assim não preencho o seguro e, na verdade, se me candidatar a um emprego, me sentirei como um impostor) Alguns de vocês diriam um ano e ainda não começaram a trabalhar? Tenho três filhos…40 anos. Algumas pessoas me disseram que eu estava atrasado. Mas ainda acho que consigo, mas é difícil (mas ainda não estou qualificado, na verdade me sentiria uma fraude se me candidatasse a um emprego)
Este artigo realmente descreve alguns dos pontos onde sinto agora ou a sensação de que não estou pronto quando provavelmente já estou Obrigado por isso
Este artigo realmente descreve alguns dos sentimentos que estou sentindo agora, ou talvez esteja pronto, mas ainda não estou pronto obrigado
Você provavelmente está mais pronto do que pensa, Ernest! Continue com o trabalho incrível em sua jornada de codificação! Saia da sua zona de conforto! Você pode estar mais preparado do que pensa, Ernest! Continue com o bom trabalho em sua jornada de codificação! Saia da sua zona de conforto!
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home