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

(Não) comece pelo Framework

Há algum tempo, enfrentei um problema com relação ao foco dos meus estudos. No início, acreditava que deveria me concentrar em dominar um framework do momento. Embora isso seja importante, negligenciei o fato de que, acima de tudo, um programador soluciona problemas, independentemente da ferramenta que utiliza. E que meu foco deveria estar na base.

Essa base é frequentemente negligenciada, especialmente nos dias atuais, quando muitos iniciantes tentam atalhar o processo, ignorando as etapas básicas. E acho que isso é natural. Nos sentimos inseguros, principalmente ao perceber a quantidade de conhecimento que precisaremos adquirir. Com tantas ferramentas e termos, a ansiedade surge, assim como a sensação de atraso e o pensamento de que precisamos igualar nosso conhecimento ao de alguém que já está mais avançado. Por muito tempo, esse foi o meu pensamento, ao ponto de eu pensar coisas do tipo "Por que perder tempo com HTML, CSS puro se todo mundo usa React?" ou "Por que vou aprender esse tal de SQL se existem ORMs?". O que eu não havia considerado é que tais ferramentas podem estar em uso agora e já podem ter uma longa trajetória, estando consolidadas no mercado. No entanto, uma coisa é certa: nesta área, as coisas sempre mudam. Pode levar algum tempo, mas vai mudar, e o mercado tomará um rumo completamente diferente. Por exemplo, atualmente, o React é utilizado na maioria das aplicações web, mas isso pode mudar. Uma ferramenta melhor pode surgir e substituí-lo. No entanto, sabe o que não será substituído? A boa e velha base de sempre: HTML e CSS. Devemos estar preparados para tais mudanças. Você pode aprender um framework em uma semana, mas a base é para o resto da sua carreira.

Não estou dizendo que não se deve especializar em um framework ou biblioteca, isso é extremamente necessário, pois o mercado exige. No entanto, se você é um iniciante, este não é o momento. Agora, deve-se focar em coisas como: Desenvolver sua lógica, aprender sobre boas práticas de programação, padrões de projeto, estrutura de dados e algoritmos, dentre outras coisas. Esse conhecimento formará a base para resolver problemas. Foque nisso. O framework é um facilitador, mas se você não entende o que ele facilita, está no caminho errado.

Quis relatar um pouco da minha experiência aqui, tive a sorte de ter uma boa orientação com relação a isso, um choque de realidade que me fez perceber que eu estava no caminho errado. Assim, espero que este post também possa ajudar alguém.

Carregando publicação patrocinada...
3

O aprendizado esta muito abstrato, hoje em dia pouco se preocupam com performance somente quando a coisa não funciona e engasga e dai passam a bola pro devOPs escalar.
Sendo que poderia simplesmente ter melhorado o código com técnincas de batch, ou usando variaveis que ocupam menos memória etc, coisas que o poder de processamento de hoje acaba abstraindo principalmente se a o dev começa com helloword até chegar na vida real, o dev não vai pensar em fazer um for usando um I do tipo byte ou char pois o tamanho do buffer é menor de 255, ele vai por um INT que ocupa 4 bytes é pouco mais vai somando isso ao longo do tempo. Por isso eu defendo aprender uma linguagem base e fortemente TIPADA para nego ter noção do que esta fazendo.

1

Usar uma linguagem fortemente tipada para começar os estudos é uma boa opção pois a própria linguagem limita a utilização incorreta dos conceitos!
Começar com uma linguagem de tipagem fraca como javascript puro, python ou php seria somente se a pessoa pretende aplicar essa linguagem para alguma vaga.
Caso contrário, opte por Java ou C#, pode parecer besteira mas a tipagem ajuda muito para entender os principais conceitos das variáveis.

1

Sou iniciante tmb, Não sabia que usavam váriaveis bytes e char em um for para ocupar menos espaço, sempre ouvi falar que esses tipos não eram mais ultilizados hoje em dia pela quantidade de memória que temos hoje, tem alguma coisa sobre isso?
De como fazer isso dá melhor forma?

4

Vc esta certo, não se utliza e não é ai que vai ganhar, mas pra quem mexe mais low level isso conta sim, a nivel de firmwares, ou até mesmo arduino a memória "acaba", só que vc pensa pq se eu tenho essa boa prática la embaixo, pq não ter no high level tbm vai economizar memória.
enfim é uma discussão, há quem diga que trabalhar com byte, char, short numa arch 64 bits é mais lenta do que usar um int double de 8 bytes, pq o processador é otimizado pra isso. A questão que eu levantei é que os iniciantes nem sabe o que é um int qtos bytes tem etc.

3

Eu já pensei dessa forma, de que o primeiro contato com uma linguagem não poderia ser através de um framework, e que a pessoa teria que dominar a linguagem base primeiro.

Porém, eu percebi algumas coisas no decorrer dos anos.

É muito frustrante começar a estudar programação e demorar para ver algum resultado interessante, frameworks permitem colocar algo minimamente decente em um tempo relativamente pequeno e a sensação de ver algo funcionando é uma injeção de ânimo bem legal.

No entanto, vejo que depois desse primeiro momento, alguns jovens programadores começam a se apaixonar pelo framework e se afastam cada vez mais da linguagem base.

Minha sugestão com base apenas na minha observação e experiência, se optar começar pelo framework não se pode demorar muito para fazer um exercício:

Tá, já entendi como fazer isso no (Laravel|Django|Rails|Spring|...), como eu faço a mesma coisa sem nenhum framework e com a menor quantidade de libs possível?

A maior parte dos programadores Ruby que eu conheço começaram pelo Rails, alguns deles ainda estão presos no Rails para criar algo que seja "utilizável".

O mesmo está acontecendo com jovens programadores JS, alguns se intitulam "Dev FrontEnd", mas a única coisa que sabem de verdade é React, Angular ou Vue e alguns torcem o nariz quando alguém fala para estudar os fundamentos.


Uma coisa que certamente é polêmica, mas é uma percepção que eu tenho e portanto só tem o viés da minha experiência, é que pessoas com formação superior tendem a valorizar mais o estudo das bases de um framework e ter maior facilidade ao migrar de uma tecnologia para outra.


Resumindo, acredito que não há problemas em começar com um framework mas desde que tenha ciência que vai ter que investir tempo estudando o que está por baixo dos panos.

1

Análise perfeita, realmente o foco crucial não está apenas no ponto de partida com o framework de fato, mas sim no comprometimento subsequente com o aprofundamento dos fundamentos.

2

concordo plenamente contigo.

Eu tenho experiência em criar micro serviços de API em códigos básicos. Faço sistemas com front end também.

Estou tendo que aprender a programar em Laravel.

Quando você já conhece todos os caminhos do desenvolvimento que acontece por de baixo dos panos, boa parte das coisas ali presente se torna meio maçante.

Sim, é como um cara que trabalha com uma enxada subisse em um trator. Certamente é isso.

Mas com a enxada tu vai em pontos específicos. O trator passa até por onde não deve.

E ligando ao que voce disse, concordando contigo, o cara que nunca pegou na enxada, não vai ter a mesma ideia e consenso de cada ponto alí presente naquele terra. E quando for subir no trator, não ver o chão com a mesma alma e interpretação poética que um cara que tem calo na mão pq fazia as coisas a mão, possui.

2

Discordo um pouco, especialmente falando sobre iniciantes.

No entanto, se você é um iniciante, este não é o momento. Agora, deve-se focar em coisas como: Desenvolver sua lógica, aprender sobre boas práticas de programação, padrões de projeto, estrutura de dados e algoritmos, dentre outras coisas.

Começar pelo framework, em nenhum momento, negligencia esse aprendizado. Inclusive, ter um framework, coloca esses aprendizados em perspectiva: é aqui que devo usar estruturas de dados, nesse outro lugar faz sentido usar padroes de projeto...

Entender como um carro funciona, com certeza, te torna um melhor motorista - agora não acho que se deve só mostrar um carro depois que a pessoa entende de motor. Muito pelo contrario, primeiro se dirige, pega o amor pela coisa. Ensina o framework, mostra pro iniciante que ele consegue fazer algo sozinho - depois disso, naturalmente, ele vai querer melhorar...

Realmente acho que fazer um aprendizado bottom up é muito menos recompensador. Me parece que pra quem começa, as pequenas conquistas valem muito - por isso sempre sugiro começar com um framework, e usar essas conquistas como motivaçao pra se aprofundar nos estudos :)

2

É o que venho a dizer a todos os meus pupilos.

Não comeces a construir uma casa pelo telhado.. 😂

Aprender a linguagem, depois as frameworks.
De outra forma sabes trabalhar com a framework e não com a linguagem.
E se a framework não se comporta como esperado? Nem percebem
E se é preciso extender a framework? Se ninguém fez e não existe um package para instalar? Chuxa no dedo?!

Programadores com menos de 5 anos que não sabem o ciclo de vida de um pedido HTTP e auto intulam de "full stack developer"

A minha noção de full stack é um pouco diferente da de hoje em dia.

Programo há mais de 25 anos, não havia frameworks na altura.
Ou aprendias a língua ou ias fazer tricot.

Only my 50 cent.
Cheers

2

Na empresa onde estou trabalhando como Júnior/Estagiário, estamos focando bastante em consolidar os fundamentos e o aprendizado com base na linguagem (JS). Estou há 1 mês na empresa, e tudo o que entreguei até agora foram coisas fundamentais que todo "programador" precisa saber ou ter conhecimento. Exemplos disso incluem o uso de map(), reduce(), LocalStorage, função recursiva, e assim por diante.

Recebemos a terceira atividade para entregar, que consiste em desenvolver uma página que consuma uma API pública. Confesso que ainda não havia chegado a essa parte em meus estudos (estava estudando por aproximadamente 9 meses até conseguir a vaga), e estou muito feliz por estar em uma empresa onde os demais desenvolvedores acreditam que um bom profissional é aquele que domina bem a linguagem antes de se aprofundar em um Framework.

Enfim, no meu caso, tem sido maravilhoso aproveitar esse tempo para fazer valer a pena os estudos. Tem sido incrivelmente produtivo.

2