Decidi que ia colocar aqui tudo que eu aprendi no meu curso técnico em informática. Basicamente vai funcionar da seguinte maneira: Abaixo eu vou colocar diversos links que levam a conteúdos sobre o mundo de TI, desde o básico sobre como funciona um computador, até vulnerabilidades comuns em redes, leia-se: meios para hackear o wifi do vizinho.
- O que são computadores e sua história: https://pt.wikipedia.org/wiki/Computador [1*]
- O que é código binário, para que serve e como funciona: https://pt.wikipedia.org/wiki/Sistema_de_numera%C3%A7%C3%A3o_bin%C3%A1rio
- Introdução à linguagens de programação: https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o
- Introdução à Sistemas Operacionais: https://pt.wikipedia.org/wiki/Sistema_operativo
- Introdução ao Linux: https://pt.wikipedia.org/wiki/Linux [2*]
- Apresentação do mundo Open Source: https://pt.wikipedia.org/wiki/Software_de_c%C3%B3digo_aberto
Abaixo são apresentados diferentes línguagens de programação e quais os casos onde eu recoemndo cada uma. Pessoalmente eu aprendi a programar com Python, mas acabei me tornando um desenvolvedor web, por isso hoje uso principalmente javascript e typescript profissionalmente. Contudo, dada a minha vontade de entender programação em um nível mais fundamental, eu aprendi a programar em C++. Embora hoje não use, é um conhecimento que me acompanha e por si só considero extremamente útil. Uma observação válida é que como constantemente estou prototipando e escrevendo scripts de automatização, ainda hoje python é algo que uso constantemente. Minha línguagem favorita bem de longe.
Recomendo o aprendizado de programação com Python caso seus objetivos estejam atrelados à: Ciência de dados, Robotic Process Automation (construção de bots), Aprender a programação para botar a mão na massa rápido, no geral Python é uma línguagem excelente para construção de códigos rápidos para testar ideias. Também permite a flexibilidade de escalar projetos bem rápido. Mas a fim de não defender brutamente a línguagem, devo dizer que é considerada lenta em alguns casos e para projetos que exigem maior otimização (raríssimos casos fora da eletrônica) python pode não ser a melhor escolha.
- Tutoriais de Python na W3School: https://www.w3schools.com/python/
Recomendo o aprendizado de programação com C++ caso seus objetivos estejam atrelados à: Robótica, programação para eletrônica, aprender os fundamentos mais low level da programação (Manipulação de memória e estruturas de dados do zero), códigos extremamente eficientes e sofisticados.
- Tutoriais de C++ na W3School: https://www.w3schools.com/cpp/default.asp [3*]
- Argumentos de linha de comando c++: https://www.geeksforgeeks.org/command-line-arguments-in-c-cpp/
Recomendo JavaScript/TypeScript caso seu objetivo seja desenvolvimento web (Tanto backend quanto frontend). TypeScript é uma linguagem baseada em JavaScript, porém contendo tipagem. Poderá ver em detalhes o que isso significa no link para typescript. No geral ambos os caminhos são válidos, recomendo iniciar com JavaScript e depois transpor seu conhecimento para typescript caso siga por esse caminho.
- Apresentação de conceitos: https://www.w3schools.com/whatis/default.asp [4*]
- Tutoriais de HTML na W3School: https://www.w3schools.com/html/default.asp
- Tutoriais de CSS na W3School: https://www.w3schools.com/css/default.asp
- Tutoriais de JavaScript na W3School: https://www.w3schools.com/js/default.asp
- Tutoriais de Bootstrap 5 na W3School: https://www.w3schools.com/bootstrap5/index.php
- Tutoriais de React na W3School: https://www.w3schools.com/react/default.asp
- Tutoriais de linguagem SQL na W3School: https://www.w3schools.com/sql/default.asp
- Tutoriais de MySQL na W3School: https://www.w3schools.com/sql/default.asp
- Tutoriais de segurança da informação na W3School: https://www.w3schools.com/cybersecurity/index.php
- Tutoriais de Node.js na W3School: https://www.w3schools.com/nodejs/default.asp
- Roteamento com Express: https://expressjs.com/pt-br/guide/routing.html
- Middleware com Express pt.1: https://expressjs.com/pt-br/guide/writing-middleware.html
- Middleware com Express pt.2: https://expressjs.com/pt-br/guide/using-middleware.html
- Modelos com Express: https://expressjs.com/pt-br/guide/using-template-engines.html
- Manipulação de erros com Express: https://expressjs.com/pt-br/guide/error-handling.html
- Debugando código Express: https://expressjs.com/pt-br/guide/debugging.html
- Express com Proxies: https://expressjs.com/pt-br/guide/behind-proxies.html
- Express com Databases: https://expressjs.com/pt-br/guide/database-integration.html#mysql
Isso cobre as partes mais importantes de minha formação técnica, principalmente no que se refere à programação
- [1]: Por que referênciar a wikipédia mesmo sendo muito desvalorizada por acadêmicos?
- A wikipédia, por mais que permita que qualquer um altere suas informações, tem um sistema de fiscalização de conteúdos que atua extremamente rápido. Seja por meio de bots automatizados que desfazem modificações quando notam mudanças muito drásticas, ou pessoas que manualmente vão lá e recuperam a página. Surpreendentemente a wikipédia tem conteúdos com uma qualidade excepcional principalmente quando se tratando conteúdo técnico, ou seja, a não ser que alguém tenha propositalmente ido lá e modificado as informações verídicas minutos antes de você acessar, o conteúdo que estará lendo é de confiança, preciso e razoavelmente completo.
- Existe uma chance extremamente pequena de páginas já consolidadas da wikipédia serem derrubadas ou que o sistema como um todo vá abaixo, portanto é uma referência que poderá ser utilizada por um longo período de tempo.
- Além de estar disponível por um longo período de tempo, ela é constantemente atualizada, adicionando informações relevantes que podem ter ocorrido após a criação desse repositório
- Caso seja desejado maior aprofundamento e checagem das informações, a própria wikipédia apresenta um conjunto de referências acadêmicas que podem ser conferidas para esses objetivos.
- [2]: Recomenda-se a utilização de um sistema operacional baseado no kernel linux para os estudos voltados à programação e segurança da informação. Como recomendação mais específica ficam sistemas operacionais baseados no Debian ou o próprio Debian.
- [3]: W3School é uma plataforma para o ensino de programação, (principalmente voltada para web) onde é possível ver os conceitos do básico ao avançado. Como uma plataforma consolidada, conhecida e largamente utilizada, é razoavel utiliza-la como fonte de referência, assim como fiz em meus estudos pessoais.
- Os tutoriais apresentados pelo W3School apresentam um caminho bem estruturado, completo, prático, direto ao ponto e didático. Basta seguir os tutoriais apresentados na plataforma e deve ser possível obter um bom entendimento de como a linguagem e seus componentes relacionados funcionam.
- W3School é uma plataforma desenvolvida em inglês, porém os textos podem ser traduzidos para português.
- [4]: Do mesmo modo que no tópico anterior, basta que se siga os tutoriais da W3School.