É o ato, ciência e arte de escrever programas de computador, envolve a criação de algoritmos e estruturas de dados e sua implementação em linguagens de programação. Pode envolver atividades relacionadas, como testes, depuração e hacking. Você também pode encontrar o termo codificação, que é usado por programadores novatos, os chamados codificadores ou macacos de código. Codificação não atinge a qualidade da programação, é feita em linguagens de bebê como Python, JS ou Rust por pessoas com conhecimento superficial de tecnologia e seu contexto, mal qualificadas para ligar um computador que inundaram a indústria de computadores desde que se tornou lucrativa. É feito principalmente por dinheiro ou criando uma imagem para si mesmo. O que eles fazem não é programação real. Não tente imitá-los. Em alto nível, a programação se torna espiritual. Confira zen e o famoso Tao da Programação, a programação pode realmente ser meio que uma meditação e busca pela iluminação, muitas vezes levando alguém a fazer perguntas mais profundas sobre o mundo. Alguns dizem que muita programação prejudica você mentalmente e lhe dá autismo. De qualquer forma, é divertido e muda você de alguma forma. A programação requer um bom conhecimento de matemática avançada. Também provavelmente pelo menos um QI acima da média, bem como inteligência social abaixo da média. Você pode programar sem matemática? Resposta curta: não. Resposta longa: não, não pode.
Qualquer um pode, e deve, aprender ao menos o básico da programação, mesmo que você apenas queira manter um pequeno servidor ou fazer um site, você provavelmente terá que aprender a escrever um script simples, e não será muito difícil, você pode aprender isso em um livro de receitas de programação, assim como você pode aprender a preparar uma refeição simples sem ter que se tornar um chef mestre. Vamos assumir que você aspira se tornar um bom programador, que você sente que a programação é algo a que você quer dedicar parte da sua vida e que é algo que você sente alegria por si só. Como saber se você foi feito para isso? Você deve apenas sentir.Todo verdadeiro programador será capaz de lhe contar a história de quando ele ficou encantado, quando viu um computador pela primeira vez e percebeu seu potencial, quando alguém lhe mostrou uma linguagem de programação e naquele momento a revelação o atingiu quando ele viu: "meu Deus, esta máquina faz exatamente o que eu digo a ela." Pessoas normais são como "oh, isso é legal", mas os escolhidos simplesmente ficam sobrecarregados de excitação, o pensamento de tantas possibilidades imediatamente inunda a mente. Um homem normal talvez pense que isso simplificará seus impostos, um verdadeiro programador, em vez disso, não consegue parar de pensar em como abusar, ou mais corretamente hackear, a máquina para fazer algo que ninguém pensou antes, não importa a utilidade prática, apreciando apenas o valor intelectual. Se este é você, continue lendo. Primeiro, você tem que aprender duas regras básicas que precisam estar constantemente em sua mente:
Agora o ponto-chave para se tornar um programador é aprender uma linguagem de programação muito bem, e aprender muitas delas, no entanto, isso não é suficiente, é suficiente apenas para se tornar um macaco de codificação, você também precisa ter um conhecimento amplo, como conhecimento geral de computadores, eletrônica, hardware, teoria ou computação, redes, história e cultura da tecnologia, software livre, cultura hacker, cultura livre, matemática e ciência em geral, possivelmente até mesmo sociedad e filosofia. Programação não é um tópico isolado, apenas a codificação é, um programador precisa ver o quadro geral e ter uma série de outros grandes interesses cerebrais, como xadrez, sistemas de votação, linguística, físicane música. Lembre-se, tornar-se um bom programador leva uma vida inteira, às vezes até mais. Você pode se tornar um bom programador quando estiver velho? Bem, como com tudo para se tornar um programador sério bom, você provavelmente deve ter começado antes dos 20 anos, a maioria dos programadores lendários começou antes dos 10, é como com esportes ou se tornar um excelente músico. Mas com entusiasmo e resistência suficientes, você pode se tornar um bom programador em qualquer idade, assim como você pode aprender a tocar um instrumento ou correr uma maratona basicamente em qualquer idade, só vai levar mais tempo e muita energia. Você nem precisa ter como objetivo se tornar muito bom, se tornar apenas mediano é o suficiente para escrever gaymes simples e se divertir um pouco na vida. Só não tente aprender a programar porque parece legal, porque você quer parecer um haxor, ganhar seguidores no youtube ou porque precisa de um emprego, se você não está se divertindo de verdade só pensando antes de dormir sobre como trocar duas variáveis sem usar uma variável temporária, programação provavelmente não é para você.
Você pode se tornar uma boa programadora se for mulher? Talvez, mas tudo o que foi dito acima se aplica, não faça isso por política, dinheiro ou seguidores, se você se tornar um programador sério de uma minoria improvável, ficaremos mais do que felizes em colocar um pedido de desculpas aqui, em letras maiúsculas e em negrito. Espero que isso inspire alguém. Com qual linguagem começar? Depende de quão talentoso e hardcore você é. Embora linguagens como Python ou JavaScript sejam objetivamente muito ruins, elas são hoje em dia possivelmente a maneira mais fácil de entrar na programação, ao menos o tipo mainstream, então você pode querer escolher uma dessas duas se você só quer começar mais devagar e casualmente, sabendo que você abandonará a linguagem mais tarde para aprender algo de verdade como C ou Forth, e sabendo que a linguagem ruim ainda servirá para você no futuro de alguma forma, não é um tempo perdido. Você pode começar com C imediatamente? Não é impossível para um cara inteligente, mas será difícil e há chance de você acabar falhando, sobrecarregado, frustrado e talvez até mesmo nunca mais voltar a programar, então tome cuidado. Em How To Become A Hacker, ESR realmente recomenda aprender C, Lisp ou Go como a primeira linguagem, mas essa recomendação realmente se aplica a hackers aspirantes, os programadores mais talentosos e ambiciosos, então pense se você se encaixa nessa categoria. Absolutamente não considere C#, Java, C++, C mais complicado, Haskell, Rust , Prolog e linguagens semelhantes, você pode explorar algumas delas mais tarde, as estranhas, não as ruins.
Qualquer linguagem que você escolher, pelo amor de Deus, evite POO, não importa o que alguém diga, quando você ver um tutorial que usa "classes" e "objetos", siga em frente, aprenda programação imperativa normal. POO é um monte de meme de merda que você aprenderá de qualquer maneira mais tarde, porque todo mundo escreve isso hoje em dia, para que você veja por que é uma merda e por que você não deve usá-lo. Também não deixe que eles lhe vendam nenhum tipo de novo paradigma brilhante que esteja em alta no TikTok, aprenda programação imperativa e tampe os ouvidos quando alguém falar sobre qualquer outra coisa. Para resumir, aqui estão alguns comentários sobre linguagens individuais que você pode considerar:
Jogos são um projeto inicial ideal porque são divertidos, e torna o aprendizado mais rápido e agradável, há muitos tutoriais para novatos por toda a Internet, etc. Lembre-se de começar extremamente simples. isso não pode ser enfatizado o suficiente, a maioria das pessoas é muito impaciente e ansiosa e começa a fazer um jogo de RPG ou biblioteca de rede sem realmente conhecer uma linguagem de programação, isso é um fracasso espetacular garantido. No começo, pense em termos de "cobra" e "campo minado". Seu primeiro projeto nem deve usar nenhuma GUI, deve ser um programa de texto puramente de linha de comando, então uma pequena história interativa somente de texto em Python é possivelmente a escolha mais segura como um primeiro projeto, se estiver se sentindo mais ambicioso, tente escrever a mesma coisa, mas em C. Quando estiver mais confortável, você pode considerar começar a usar gráficos, como, Pygame, ou SAF e SDL se quiser uma linguagem melhor, mas ainda mantenha simples, faça um clone de flappy bird ou algo assim.
Conforme progride, considere comprar um computador de brinquedo simples, como um console aberto, esses brinquedos são próximos de computadores antigos bare metal, eles permitem que você interaja diretamente com o hardware e lhe ensinam muito sobre boa programação, ensinando como os computadores realmente funcionam por baixo do capô e, por ter um hardware fraco, não permitindo que você escreva códigos ruins. Seja qual for a linguagem com a qual você comece, é inevitável que um dia você tenha que dar o grande passo e aprender C, a linguagem mais importante até agora, mas se você perceber que está tendo dificuldades com uma linguagem mais simples, certifique-se de começar a aprender C apenas quando estiver al menos intermediário em sua linguagem inicial. Para C, recomendamos a biblioteca SAF, que lhe poupará todas as dores de cabeça de APIs complexas e seus jogos serão bons e compatíveis com seus pequenos computadores de brinquedo. Como em tudo, você aprende fazendo, ler é importante e necessário, mas para realmente aprender qualquer coisa, você tem que passar milhares de horas praticando a arte sozinho. Então programe e viva programando, procure maneiras de usar programação no que você já está fazendo, tente automatizar tudo o que você faz, pense sobre programação antes de dormir. Contribua para algum projeto, melhor se puder ajudar seu programa FOSS favorito, tente isso pelo menos uma vez, pois estar na companhia de pessoas experientes ensina como nada mais, um mês gasto contribuindo para um projeto pode valer dois ou três anos apenas lendo livros. Se você for extremamente antissocial, a alternativa é apenas bifurcar o programa de outra pessoa e tentar modificá-lo, dessa forma, você pelo menos aprenderá a entender o código de outra pessoa e verá como alguém experiente escreve o código.
TODO