Uma mensagem para iniciantes em programação


Introdução

Iniciantes em programação são as pessoas mais importantes que existem. São elas quem serão os próximos programadores depois dos mais experientes.

Eu não posso dizer que sou sênior. Mas tenho certeza que já não sou iniciante no mundo da programação.

Eu vejo que os iniciantes estão cada vez mais perdidos e desistindo compulsivamente. Eu me senti na obrigação de pelo menos avisar alguns iniciantes na área para que não entrem nesse ciclo de "derrotas" que acarretam na desistência de aprender mais.

As três primeiras barreiras

Eu identifiquei (na minha carreira e na de outros) que ao iniciar, existem três principais barreiras que servem como um filtro para selecionar aqueles que estão realmente empenhados em aprender e entrar na área.

1. O Hype

A primeira barreira principal que os iniciantes podem enfrentar é o fato de que TI não é tudo isso que o hype gerado nos dias de hoje diz. Essa barreira pode selecionar principalmente aquelas pessoas que não se atrairam para a área de TI por paixão, e sim por ganância.

2. Pressão no aprendizado

A área de tecnologia está avançando muito rápido. Por isso a pressão imposta nos iniciantes em "aprender tudo o mais rápido possível" pode causar problemas para tais. Essa parte do começo é bastante turbulenta. É nessa parte em que a maioria dos iniciantes desistem.

3. Estabilização

Ao passar desta barreira, o seu aprendizado sobre tecnologia já foi "estabilizado" e você já tem o conhecimento de como os computadores funcionam e do por quê as coisas são do jeito que são. Essa barreira é uma das mais difíceis de passar e leva bastante tempo para ser atingida com muita tentativa e erro e dedicação.

Na minha opinião, é a partir desta barreira que você passa a ser um Júnior.


Eu achei importante falar sobre essas barreiras para contextualizar algumas formas de "amenizar a turbulência" e problemas que elas podem causar.

Ao iniciar os aprendizados...

Muitas pessoas acham que entrar no mundo da programação não precisa de pré-requisitos. E, não. Eu não estou falando de Inglês ou Matemática como pré-requisitos. Quero dizer a preparação psicológica e organização ao iniciar os aprendizados em TI.

Nessa seção, eu vou tentar criar um "plano de aprendizado" para quem está iniciando com o objetivo de nortear aqueles que estão muito perdidos e não sabem por onde começar/continuar.

Plano de aprendizado

Vamos começar com a área que você quer começar. Existem várias áreas em programação, mas eu usarei programação Web como um exemplo para você (se estiver em outra área) adaptar esse plano.

Eu fiz um pequeno diagrama descrevendo um caminho de aprendizado para passar da terceira barreira (Estabilização) em desenvolvimento Web:

mindmap
      id(Desenvolvimento Web)
          História do desenvolvimento web
          Frontend
              História das tecnologias frontend
              Tecnologias frontend
                  HTML
                  CSS
                  JS
          Backend
              História das tecnologias backend
              Tecnologias backend
                  PHP
                  Node.js
                  Java
                  Ruby
    

Esse é somente um exemplo. Você pode começar com esse diagrama ou adaptando-o para as suas necessidades e a sua área. É você quem manda.

Considerações finais

Falando sobre as áreas da tecnologia. Eu vi várias pessoas que não querem fazer programação web nao encontrando saída para outra área. É importante considerar outras áreas como desenvolvimento Mobile, Robótica, Data science, sistemas embarcados, IA, etc. para não se distrair somente com a web por ser uma das mais na moda no momento.

Bom. espero que vocês compreendam o que eu quero dizer e apliquem. Caso tenham algo a dizer, os comentários são bem-vindos!

Muito legal, seu comentário para os iniciantes, mas tenho uma pergunta:

Eu começo pelo Backend ou Frontend?

Eu tenho uma visão sobre carreira que os iniciantes não se podem dar ao ***luxo de escolher entre backend ou frontend***. Acredito que todo iniciante deve ser minimamente capaz de criar um sistema web simples de ponta a ponta: requisitos, modelagem, backend, frontend, banco de dados e deploy. É claro que essa minha visão vem de quando comecei a aprender desenvolvimento de software uns 18 anos atrás, nessa época frontend era mais simples e os grandes seguimentos de carreira eram: **desenvolvimento desktop** e **desenvolvimento web**. Mas mesmo assim, pela quantidade de informação acessível gratuitamente que existe para nossa área eu ainda acredito que iniciantes não deveriam se colocar nessa dicotomia de frontend/backend, pois isso limita a visão de mundo e como o amigo do post disse no final, há uma infinidade de áreas que devs podem atuar como IA, robótica, e etc.
Então o ideal seria começar entre um meio termo entre ***Front e Backend***. Porém, como você mesmo diz, que hoje às coisas não são tão simples como antigamente e eu creio que talvez seja melhor um iniciante começar aquilo que lhe mais interessa, ou seja mais fácil, mas eu gostei da sua opinião e concordo, a certo ponto, sobre os iniciantes tentar começar com todos os pontos mínimos para criar um sistema **Web e Desktop.**
Até concordo com a parte da decisão. Mas eu não acho que deveria ser tão drástico assim. Eu, por exemplo, comecei no Back-end e nunca me dei mal de alguma forma. Depois de um tempo começei a aprender um pouco mais sobre front e hoje sou um "fullstack-backend" por assim dizer kkk...

Gostei bastante da postagem, acho que vai ajudar muita gente, só achei o plano de aprendizado um pouco simplificado. Ainda que eu não goste tanto quanto alguns, acho que dá uma ideia um pouco melhor o https://roadmap.sh/.

O que eu acho que não falou, é que os fundamentos da computação são essenciais, e é o que as pessoas estão pulando para chegar logo no que "interessa".

Essa pressa, essa dissociação do tempo da vida real com o tempo da vida virtual, que faz todo mundo querer as coisas para ontem, não está ajudando. As pessoas estão pressionadas, estão ficando depressivas porque elas estão cedendo ao que a web está forçando ela, especialmente cedendo ao hype. O tempo do ser humano não é esse, não é possível seguir esse, e precisamos fazer as coisas com mais calma e com mais dedicação ao que importa, não ao que fazem parecer que importa.


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).