É difícil programar?
Esta é uma pergunta que muitos não programadores me fazem. Isto faz com que se coloque questões como, “os programadores trabalham em casa” e “que tipo de educação você precisa para ser um programador? Mentes curiosas querem saber.
Mas ao contrário de algumas dessas perguntas, esta é na verdade bastante dura. É uma pergunta simples, mas a resposta é muito matizada.
Então vamos mergulhar nela, em detalhes, e ajudá-lo a entender se a programação é difícil ou não.
A Programação é Difícil? A resposta curta
Então, em primeiro lugar, vamos abordar a questão com uma resposta curta e directa. Isto irá preparar o palco para o resto do post.
É difícil programar?
Bem, como os consultores gostam de dizer, “depende”. Se a programação é difícil ou não depende de muitos fatores, como o tipo específico de programação e como você, como indivíduo, pensa. Então a resposta curta é que a programação realmente corre a gama de surpreendentemente fácil a insanamente difícil.
Pense desta forma. Tente responder a algumas destas perguntas com base na sua experiência:
- É difícil jogar basquetebol?
- Fala português com dificuldade?
- E que tal conduzir um carro? É difícil?
Pode ver porque é que estou a fazer hedging e a dizer: “ehhh… depende”
Pessoas tendem a ser excessivamente intimidadas pela programação
Eu vou, no entanto, oferecer um pouco de opinião de qualificação. Especificamente, eu acho que não programadores tendem a superestimar dramaticamente o quão difícil é a programação.
Ouvir alguém dizer algo assim:
Oh, eu realmente não sou uma pessoa matemática!
Bem, eu ouço isso muitas vezes. Mas ouço mais a mesma coisa sobre programação. E eu considero isso irônico porque, enquanto algumas áreas de programação realmente exigem matemática, muitas não exigem. Programar, na minha opinião, é um conjunto muito mais diversificado de preocupações do que “matemática”.
Eu realmente acredito que muitas pessoas assumem que nunca chegariam como programadores, mas estão completamente erradas. É um assunto muito mais acessível do que o mundo parece acreditar.
Discuta alguns mitos de programação, além da matemática
Para realmente levar o ponto para casa, vamos olhar para alguns conceitos errados adicionais sobre programação, além do mito de que os programadores têm que ser realmente bons em matemática.
Misconcepção 1: Programadores são hackers de elite, como o cara do Sr. Robô
Independentemente da sua idade, há alguns filmes de seus programadores de casting como hackers tipo Bond-like (ou Bond-villain-like). Crescendo para mim, foi o filme Sneakers. Se cresceste um pouco mais tarde do que eu, talvez tivesses tido a infelicidade de encontrar Hackers ou Swordfish. Hoje em dia, o gênero melhorou, e você pode gostar do Sr. Robô.
Mas se o filme é incrível, como Sneakers, ou terrível, como Hackers, você ainda tem protagonistas e antagonistas de hackers que parecem ser ambos quasi-sociopatas e programadores incrivelmente brilhantes.
Esta não é a vida real. Não é nem mesmo hacking real, muito menos programação workaday. Então não assuma que a programação requer que você mova cubos em torno de uma tela, ou o que quer que Hugh Jackman esteja fazendo em Swordfish. Normalmente, só requer muito Googling.
Misconcepção 2: Você precisa de um diploma de Ciência da Computação
Cobrimos isso com muitos detalhes, então eu não vou desmentir o ponto aqui. Mas não, você não precisa de um diploma em Ciência da Computação para programar. Você não precisa de uma licenciatura em ciências da computação, e talvez nem precise de frequentar um bootcamp.
Essas coisas vão facilitar a obtenção desse primeiro emprego, mas não são necessárias. Então quando você está se perguntando, “é difícil programar”, você provavelmente está entrando em conflito com os arcos que você precisa para pular com a atividade. Não há pré-requisitos para programar além de um Notepad e baixar um único intérprete ou compilador.
Misconcepção 3: Programadores têm habilidades sociais terríveis
Esta pode fazer você coçar um pouco a cabeça. Você provavelmente está pensando: “O que a idéia de programadores tendo habilidades sociais terríveis tem a ver comigo, ou com o porquê de programar ser difícil?”
Bem, é sutil, mas real. O mundo vê programas de TV e filmes onde você pode identificar programadores habilidosos através da sua tendência para “geek out”.”
Então a lógica inversa entra e você pensa: “Se eu não sou insanamente estranho socialmente, eu poderia ser um programador ‘real’?”
Sim. Sim, você pode. Programadores participam de muitas conferências e encontros, dão palestras, formam comunidades e têm uma vida social ótima e normal.
Misconcepção 4: Programadores são imediatamente bons em todas as coisas computadores
Eu pessoalmente obtive um diploma de ciências da computação, e depois um emprego de programação. E, quando eu fiz isso, todos imediatamente assumiram que eu era um especialista em todas as coisas computadores.
- Erik, meu computador está fazendo este som estranho – o que você acha que está errado?
- Hey, eu estou recebendo o erro #90314 quando eu tento fechar o MS Word. O que isso significa?
- Qual dessas placas de vídeo é a melhor?
Todos esses foram os tipos de perguntas que eu ouviria. E basicamente, eu iria ao Google a resposta (se não dissesse: “uau, eu realmente não sei”). Ganhei a vida escrevendo software, mas isso não significava que eu sabia tudo e qualquer coisa sobre computadores.
Eu menciono isso porque você não deve pensar que você precisa saber tudo e qualquer coisa sobre computadores para ser um programador.
Existe muita variedade em programação
Excedendo alguns mitos, vamos olhar para a realidade da programação. E a realidade é que na realidade é bastante diversa. Aqui está apenas uma pequena amostra das coisas que as pessoas fazem sob o guarda-chuva geral da “programação”:
- Desenhar o layout e as propriedades visuais de uma página web.
- Criar algoritmos de inteligência artificial.
- Tarefas manuais de script para automatizá-los.
- Modelagem estatística complexa.
- Construir aplicações móveis simples e repetíveis.
E isso é apenas uma pequena amostra dos diferentes tipos de programação. Nem sequer aborda todos os diferentes papéis que você pode ocupar que contribuem para esses esforços.
Existe tanta variedade em “ser um programador” quanto em “ser uma pessoa de negócios”.”
Alguns papéis de programação são mais acessíveis
Dada essa variedade, gostaria de me debruçar um pouco sobre quais papéis podem parecer mais acessíveis.
Vou-me afastar um pouco do espectro do “fácil ao difícil”, só porque isso depende muito do que você, como indivíduo, acha difícil. Por exemplo, eu sempre me saí muito bem com matemática e algoritmos, mas sou francamente péssimo em design e layout. Você pode ter proclividades opostas e pensar que sou ridículo em dizer “programar um algoritmo de ordenação é fácil” e contrariar com algo que eu acharia igualmente ridículo: “colocar uma bela página web é fácil”
Então entenda que eu não estou categoricamente chamando as coisas de fáceis ou difíceis. Em vez disso, estou apontando coisas que você poderia não ter considerado, se você só tivesse pensado em programar como altamente matemático.
- Algumas pessoas em funções de programação focam em grande parte no layout e na experiência do usuário. Isto significa que se preocupam muito com a estética da aplicação, bem como como os usuários interagem com ela.
- Outros programadores focam principalmente em dados e bancos de dados. Em vez de construir grandes partes de software usando instruções complexas, eles focam muito mais nos dados reais e no raciocínio sobre esses dados.
- Já outra disciplina está mais próxima de operações e suporte. Algumas pessoas trabalham um pouco bem com computadores como “power users” e aprendem a programar, aprendendo aqui e ali como automatizar e tornar o que fazem manualmente mais eficiente.
E estes são apenas alguns exemplos. Então entenda que, mesmo que programar pareça difícil para você, pode haver papéis dentro dele que realmente parecem mais acessíveis.
Programar é, entretanto, alienígena, o que pode significar que programar é difícil
Neste ponto, eu gostaria de mudar um pouco de equipamento. Sinto como se tivesse gasto um bom tempo com o tema “Ei, programar não é tão difícil como você pensa”. E isso é verdade. Acho que muitas pessoas responderiam à pergunta, “é difícil programar” com um “sim” simplesmente porque não sabem o que programação envolve.
Mas eu vou temperar isso um pouco aqui. Programar é difícil no sentido em que lhe pede para pensar de uma forma a que não está habituado.
Para entender o que quero dizer, pense em lidar com Alexa.
Alexa pode responder a muitas perguntas tácticas, e por vezes ela vai encantar e surpreendê-lo. Mas ela também é realmente frustrante. A sua linguagem de computador às vezes se mostra como ela entende mal a interação humana básica.
Alexa, considere que, no que diz respeito a programas de computador, a Alexa está completamente otimizada para fazer o seu melhor para entender você. Você precisa ser extremamente preciso, literal e obtuso enquanto fala com ela, e ela está lá para entendê-lo.
O compilador (a coisa que traduz o seu código em ação) é como a Alexa, mas não é projetado para facilitar a sua vida. Ele foi projetado para maximizar a utilidade. Portanto, se você tem que ser preciso ao lidar com o Alexa, preciso nem sequer começa a descrever o que o compilador quer. Enganar um ponto e vírgula para dois pontos, e você pode travar um computador.
Então, é difícil programar? Sim, no sentido de que requer que você pense de uma forma que a maioria das pessoas normalmente não pensa.
Programar o Estado da Arte é Legítimamente Difícil
Para continuar com o tema “sim, programar é difícil”, vamos considerar que existem bolsões do mundo da programação que requerem muita habilidade e prática para entrar. Não pense demais. Às vezes programar é realmente difícil.
Fazer coisas avançadas com robótica, corrente de blocos, inteligência artificial, algoritmos de negociação, etc. requer muita habilidade, prática, talento e esforço competitivo. Algumas das grandes empresas do Vale do Silício pagam salários enormes aos desenvolvedores de software, e não vão fazer isso para qualquer um que por acaso vagueia por.
Existem especialidades no mundo da programação que requerem relâmpagos em uma garrafa, no sentido de que você precisa de prática, talento, inteligência e sorte. E além disso, há papéis, posições, desafios e situações que não há muita gente que possa cumprir adequadamente. A programação pode ser bastante difícil.
Como qualquer coisa mais, Funciona a Gama
Mas, no final, realmente varia. Pense no que eu disse no início.
O basquetebol é difícil? Não, se queres dizer “alguém pode pegar numa bola e atirá-la em direcção a um cesto?” Sim, se queres dizer, “quais são as probabilidades que o Golden State me assina para jogar ao lado do Steph Curry?”
É difícil falar português? Bem, provavelmente não, se você nasceu no Brasil ou em Portugal. Mas provavelmente sim, se você tem 70 anos e nunca falou nada além de japonês.
Então, é difícil programar? Sim e não. Sim, é difícil fazê-lo a um nível de elite ou em uma área altamente especializada e competitiva. Mas não, não é difícil de começar. E certamente não está além de você.
Este post foi escrito por Erik Dietrich. Erik é um veterano do mundo do software e já ocupou praticamente todas as posições nele: desenvolvedor, arquiteto, gerente, CIO e, eventualmente, consultor independente de gestão e estratégia. Esta amplitude de experiência permitiu-lhe falar com todas as personas da indústria e escrever vários livros e inúmeros posts em blogs em dezenas de sites.