[Dúvida] Quanto de código um programador deve copiar?
Esses dias eu estava estudando por um curso na Udemy, tudo ia maravilhosamente bem, até que eu resolvi fazer o mesmo projeto por conta própria. Vixi, aí que deu ruim, precisei voltar diversas vezes no código do professor. Daí passa uma semana, parece que não sei naaaada. Eu não trabalho na área (mas gostaria) e também não tenho formação. Pra vocês que são profissionais fica a minha pergunta: o quanto de código copiado é normal um programador utilizar? Eu esqueço demaaaaais as coisas, vcs usam mais a memória pra programar, usam snippets, ou outra coisa? Vejo umas live coding e fico me perguntando: como esse miserável lembra de tudo isso???? Alguma ajuda/opinião de quem está no dia-a-dia da profissão ae pra me dar uma luz?? 😁
Quando for fera poderá copiar quanto código quiser. Enquanto isso o ideal é nada.
O que está acotecendo com você é o que está acontecendo com a maioria das pessoas que estão entrando na área. E que são as pessoas que pouco depois ficarão dizendo que foram enganados, que a área não é fácil, que não tem vaga, que paga mal, que tem muita pressão, que tem um monte de defeito.
Ao mesmo tempo o mercado está desesperado precisando de mão-de-obra e não consegure preencher porque só acham pessoas copiando código.
Você pode copiar quanto quiser de código, desde que entenda completamente o que está acontecendo ali. Tudo mesmo. Eu falo em uma palestra minha que esse "tudo" envolve até o espaço em branco que deve saber porque está ali ou não está.
É a estória da calculdora, pode usar quanto quiser se for uma ferramenta de produtividade apenas. O mesmo será com a IA. Mas se usar porque não consegue fazer por conta própria, então está muito errado.
A maioria dos cursos vendidos na internet são caça-níqueis. A pessoa que fez o curso está no negócio de agradar quem compra, não é função dela ensinar a pessoa, ela precisa vender, precisa tornar o comprador feliz, precisa que ele fale bem do curso para outras pesoas. Ele não precisa que o curso aperte a pessoa, que coloque ela no limite, que obrigue a pensar muito, a se desdobrar em raciocínio, fazer tantativa e erro, e muito trabalho até conseguir dominar aquilo como ela domina a respiração.
Os cursos que tem por aí não costumam servir para você conseguir fazer por conta própria, só querem que consiga copiar.
Em alguns lugares esses cursos são mais assim ainda. Então cursos de sucesso costumam ser sinônimo de cursos fáceis e fracos. E por isso eu falo que pedir indicação para as pessoas não costuma ir bem porque vão indicar os cursos fracos e fáceis, não os bons. Se ela fizer um bom ela não vai terminar e falará que é ruim.
Ainda tem outro problema nesses cursos que eu vou falar logo mais, veja:
Percebe o problema?
Em geral, a pessoa tem dificuldades porque ela está pulando etapas. Pode nem ser culpa dela, pode ser falha da escola, de casa e outros fatores que incentivaram ela estar com formação incompleta. Então quando foi tudo "nota 5 para passar" quando às vezes nem era para ter tanto, ela acha que está bem e não está, e como consequência quando começa ser mais cobrada, quando não tem como enganar, ela começa sofrer no mal sentido. E frequentemente entra em negação e culpa os outros pelo fracasso dela. Novamente, que pode nem ser o que ela queria, mas empurraram ela para isso.
Tem um detalhe, só a pessoa conseguirá sair disso e começar correr atrás de resolsver isso, talvez até precisando de ajuda profissional para isso. E se a pessoa não conseguir, só podemos lamentar. Eu realmente lamento muito, não falo só para parecer bonzinho, me chateia profundamente.
Algumas pessoas tiveram azar e podem precisar demais de ajuda, e altamemente especializada, e cara, porque envolve mais que só alguma dificuldade de organização de estudos. Pode ser só um problema da pessoa não querer sofrer, e aprendizado envolve sofrimento, no bom sentido, porque foi ensinada assim em casa, ao contrário do que acontecia no passado, ou pode ser um problema mais sério e sem cura, só minimização.
Também tem que considerar que algumas pessoas não tem vocação para certas tarefas. Tem malucos que acham que qualquer um pode programar, mas se for programação de verdade isso é absolutamente falso. Uma pena que muita gente tá vendendo a ideia que todos devem programar. Eu queria fazer um monte de coisa na vida, mas não consigo, eu queria ter outra profissão, mas foi essa que me escolheu e fez eu me dar bem e por isso a adoro. Não adianta eu ter pensamento positivo ou saber tudo o que é necessário para aprender, não serei qualquer coisa que eu desejo.
Repito, as pessoas têm dificuldades porque estão pulando etapas. E pode ser que o curso esteja incentivando isso.
O que vejo muito hoje é as pessoas quererem ver os projetos lindos e enormes funcionando e brilhando na tela. Assim não se aprende, se adestra. Nem que eu quisesse muito poderia fazer um código muito maior que 1KB de memória, assim aprendi direito. Outros fatores ajudaram também, e até mais, mas esse foi sem querer, por isso, sorte.
Tomara que te ajude repensar algumas coisas e tenha sucesso.
Observou? Faz sentido para você?
Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Copiar, eu diria que nenhum.
Usar como referência? Sempre que puder, desde que você entenda o que o código original faz e o que você quer fazer.
Eu sou muito exigente quanto a organização e performance do meu codigo, bem como gosto sempre de usar tudo de mais recente que a linguagem oferece.
Dito isso, se eu encontro um codigo que me serve total ou parcialmente, eu uso ele como referência e reescrevo dentro do meu padrão.
Isso me ajudou muito no início a compreender coisas mais complexas na programação.
Olá! Olha, tudo é prática. No começo é super normal você precisar voltar para entender ou implementar certa funcionalidade. Eu trabalho muito com front e no começo eu precisava copiar dos tutoriais para implementar certas regras css. Passou-se o tempo e já lembrava os atributos de cabeça, meio que de forma intuitiva eu já sacava qual atributo e valor eu precisava digitar para que a div ficasse centralizada, com sombra e com borda redonda; como fazer um gradiente e etc...
É como começar a andar de bicicleta quando criança, super normal usar rodinhas no começo e com o tempo você já entende como andar sem as rodinhas. Assim é para os diversos condeúdos que envolvem programação e desenvolvimento, toda linguagem ou framework novo a gente começo copiando (rodinhas) e depois vai ficando tudo gravado de forma intuitiva.
Edit: Cuidado com ChatGPT e Snippets! Eles são um grande quebra galho quando já se sabe o que se vai fazer e como fazer. Andar de rodinhas é válido desde que esteja empenhado em um dia deixar de usá-las.
Se for boilerplate, 100%. O programador deve ter ciência do que está sendo feito exatamente. Se estiver copiando/colando assim que aprendeu, deve ler a documentação, mesmo que sob demanda, imediatamente ou em algum momento próximo do momento que o código foi copiado/colado.
Se alguém deseja ser PROGRAMADOR, no sentido da palavra, precisa compreender as tecnologias com a qual trabalha a fundo, sem terceirizações. Não se terceiriza o core de uma profissão. E o código é o core da profissão de um programador.
Sobre memorização: você se lembra do que usa com frequência. É assim que o cérebro funciona. Esquecer é para o nosso bem: se lembrássemos de tudo, viveríamos delirando, sem distinção entre realidade, lembranças e imaginação. Mas você só se lembra do que é importante, batido e repetido. Não tem atalhos, meu amigo.
Eu diria que o ideal é copiar o máximo possível, mas pra você fazer isso de forma saudável vai ter que gastar bastante tempo aprendendo como as coisas funcionam.
Cara, vou te dar minha humilde opinião, no começo, copie tudo, cegamente mesmo, vou explicar o porque mas creio que levantarei controvérsias 😅😅😅.
Acho que tem até um video do Fabio Akita que fala algo desse sentido, tipo, seja como um bebê, não saia correndo antes de andar kkkkk...
Eu creio que vc passará por algumas fases...
Fase 1 - Cópia Cega
É o seguinte, eu acredito que quando vc vem do zero absoluto, vc deveria copiar tudo cegamente, eu fiz isso e me ajudou muito no começo. Repetir, repetir, repetir. Porque: Nesse ponto, vc não sabe nada, tipo, p%o$$a nenhuma 😅😅😅, te encher de conteúdo vai te deixar mais cofuso, e se vc quisesse saber de tooodas as bases e tivesse tempo pra isso, tu tinha ido pra uma faculdade. MAS, a parte de saber de todas as bases é muito importante, só não acho que para alguém que queira e precise "entrar no mercado" isso seja uma prioridade. E óbvio, tu vai precisar correr atrás disso depois. Nesse momento vc não estrá apto ainda nem a perguntar acertivamente, suas perguntas parecerão bem básicas, como por exemplo, em javascript, o que é um let e um var, e porque não usar let em tudo ao invés de var (cara use const hihih)... e por ai vai... Alguns seniores provavelmente ficarão irritados com suas perguntas, porque eles esquecem que já foram assim um dia rsrs, mas fica de boa que é assim mesmo... Com o tempo, as coisas começarão a fazer um pouco mais sentido e vc começará a tentar fazer suas próprias coisas. Daí vem uma a próxima fase que é a de replicação.
Fase 2 - Replicação
Aqui vc já entende mais ou menos o que faz o que na linguagem, mas não sabe ao certo a hora de usar o que. Tipo, um for, for of, foreach, map por exemplo (em javascritp), talvez pra vc todos façam a mesma coisa. Provavelmente vc vai levar um tempo para porduzir algo, quando fizer vai te dar uma sensação de super poder fantástica, vai ter dúvidas mas vai usar os guias anteriores, seus códigos anteriores, suas aulas anteriores, seus professores para tirar dúvidas pontuais e a partir de agora suas dúvidas começam a ser mais relevantes. Nesse momento, pouco do seu código ainda será "original" de fato, vc ainda vai estar meramente REPLICANDO, porém, agora, não mais para criar mais do mesmo, ou seja, exercícios que todo mundo faz, mas pra fazer novos exercícios e alcançar novos objetivos. Eu acredito que aqui vc já está Júnior, apenas fique calmo e continue e a próxima fase virá.
Fase 3 - Mar aberto, por onde eu vou??? 🤷🏽
Tu já sabe bastante coisa, já se vira sozinho, já consegue ler as documentações das libs, com aqueles exemplos mega idiotas que quase sempre não servem pra merda nenhuma a não ser te deixar mais confuso 😅😅 (brincadeira), mas pelo menos agora tem dúvidas que começam a ser mais complexas e abstratas, que säo mais do tipo, o que performa mais, Big O que raio é isso..., usar Clean Code ou não usar, testes ou não testes, tão me pedindo pra fazer mais rápido, faço como?? Enfim... Nesse ponto seus códigos começam a ter mais a sua cara, vc já tem julgamento das coisas, sabe o que quer e como usar e começa a pensar mais pra fazer.
Fase 4 - A vida!!!
Seja livre, explore, questione, pergunte, seja humilde e ajude! Aqui tu pode copiar ou não, tanto faz, o que for mais rápido e atenda as necessidades da tua entrega. Vá atrás das bases, se fortaleça no conhecimento, no emocional, é um bom mercado, mas extremamente duro para o emocional. Dividir o pessoal do trabalho fica mais complicado, mas cuide disso! Clientes serão sempre clientes e sempre vão querer tudo pra ontem, mas nesse momento, vc já vai estar apto a dizer o que é possível e o que eles querem kkkkkkkkkk! O mais importante, seja grato pelo que alcançou, seja feliz apesar dos pesares e divirta-se sempre com tudo o que fizer, por mais chato que seja, e vai por mim, vão ter coisas que são um porre kkkkkkkkkk!!!
Bem esses são meus 5 centavos... Lembrando que isso não é exatamente uma bala de prata, foi o qu eu vi comigo e com muitas outras pessoas próximas.
Espero que eu tenhoa conseguido te dar um norte básico e te deixar um pouco mais calmo e menos afoito. No meu início eu me sentia muito perdido e isso me deixava muito ansioso, errei muito tentando fazer tudo ao mesmo tempo, e deu certo quando foquei em uma coisa e só fui, entâo, meu texto é mais para tentar te ajudar nesse sentido!!!
Forte abraço, precisar de mim pra alguma coisa, cola no discord lá @renanlido
TMJ té mais!!!
De acordo com o site do mega curioso:
Entre as pessoas com até 8 anos, o número de palavras conhecidas era de 10 mil. As crianças com 4 anos conheciam 5 mil palavras.
Se com 8 anos você aprende 10 mil palavras, porquê você não decoraria as poucas centenas de termos da sua linguagem?
é só pratica amiguinho :)
Você sabe bem o inglês? se não, você só tá decorando os termos da linguagem, dai fica mais difícil aprender.
E lembre-se, programar não significa saber todos os comandinhos, é muito mais profundo que isso.