10 habilidades necessárias para codificação

10 habilidades necessárias para codificação


Na sua essência, a codificação é expressão e resolução de problemas. Você pode se concentrar em seus aplicativos, em linguagens de programação, mas não importa como você o pratique, você cultivará essas duas habilidades essenciais, que o ajudarão em todos os aspectos da vida. Além do valor existencial, aprender a codificar proficientemente oferecerá inúmeras oportunidades de trabalho, a capacidade de criar seu próprio horário / trabalho em qualquer lugar, altos salários por menos horas de trabalho, ansioso para agradar clientes que precisam / procurar por sua ajuda e muito mais . Os codificadores têm mais tempo para trabalhar em suas paixões, projetos paralelos e desfrutar de uma sensação de autoconfiança, a maioria dos trabalhadores não. Eles gastam seu tempo fazendo sites, aplicativos e sistemas trabalharem, enquanto constroem soluções reais e aprimoram experiências para usuários finais e empregadores. Codificadores têm foco aprimorado, porque os problemas que eles enfrentam exigem esforço concentrado e contínuo. Isso leva a uma maior produtividade em todos os setores da vida. Um dos maiores benefícios da codificação é entrar consistentemente em um estado de fluxo, no qual o tempo, a distração e a frustração desaparecem, permitindo ao codificador formar uma união com a tarefa em mãos. Por todas essas razões, codificar casualmente ou profissionalmente pode melhorar sua vida. Então, como começar? Aqui, examinaremos dez habilidades que todo codificador precisa.

1) Autossuficiência

Este é enorme. Quando você começa a codificação, pode se sentir completamente esmagadora. Você deve se concentrar no front end ou back end? Quais linguagens de programação você deve usar? Por onde começar? Tendo em mente que a única maneira de comer um elefante é uma mordida de cada vez, escolha algo e comece. Existem recursos infinitos onde você pode aprender a codificar, mas cabe a você procurá-los e interagir com eles. Haverá momentos em que você quer desistir, ou que alguém lhe mostre como fazer algo, mas quanto mais você resiste a esses impulsos e tenta e fracassa por conta própria, maior o seu sucesso a longo prazo. Para ter algum sucesso na codificação, você terá que dominar a impaciência, a frustração, a distração e a dependência de forças externas para resolver problemas técnicos (algo em que estamos cada vez mais dependentes). Para combater esses obstáculos, existem várias coisas que você pode fazer. O primeiro é aceitar a responsabilidade.

Você tem a maior influência sobre onde você está, o que você sabe, suas capacidades e como mudar todas elas. Nunca é tarde demais para reconhecer isso e mudar sua abordagem e seus esforços. Depois de assumir a responsabilidade, as informações que você consome e como você as aplica (seu interesse, estudo e esforço) ditarão sua capacidade de transcender suas limitações (nesse caso, não poder codificar versus aprender como). É importante ter um objetivo em mente. Por que você quer codificar? Que problema você quer resolver ou que projeto você espera manifestar? Conhecer as respostas a essas perguntas ajudará a diminuir onde concentrar seus esforços, que idiomas aprender etc. Por fim, a autoconfiança se resume às escolhas que você faz. Você não pode simplesmente trabalhar cegamente. Da mesma forma que você precisa ter metas para as quais o trabalho é direcionado, você precisa escolher um caminho que o traga para elas, independente do que outras pessoas fizeram, ou deixando-as ao acaso.

2) Idioma

Pode parecer óbvio, mas, para escrever código, você precisará aprender pelo menos uma linguagem de programação ou script. Alguns recursos para iniciantes incluem a CodeAcademy completamente gratuita, que ajudou 24 milhões de pessoas a iniciar sua experiência de codificação, edX, fundada por Harvard e MIT, que oferece 60 escolas e GitHub, que lhe dá acesso a 500 livros de programação gratuitos que cobrem 80 idiomas diferentes . Especialistas sugerem tentar se tornar proficientes em um idioma, em vez de tentar aprender muito pouco, da mesma forma que você tomaria francês, italiano ou espanhol em vez de todos os três ao mesmo tempo. Então, qual idioma para começar? Isso tem muito a ver com o que você está tentando realizar, mas há três que se destacam por seus aplicativos multifacetados, utilidade consistente e acessibilidade para iniciantes. Esses três são Python, Ruby e JavaScript.

O Python, desenvolvido nos anos 80, é considerado uma das linguagens de codificação mais fáceis de aprender. É gratuito, de código aberto e na maioria das vezes é classificado como uma linguagem de script (o que significa que não exige uma etapa de compilação explícita). É uma das linguagens de programação mais onipresentes de hoje e usada por empresas como Google, Yahoo! e NASA. Ruby é uma linguagem de script semelhante a iniciantes e extremamente prevalente. É uma linguagem de script dinâmica e orientada a objetos usada para desenvolver websites e aplicativos para dispositivos móveis. Ruby foi projetado por Yukihiro Matsumoto para ser fácil, lógico e não requer conhecimento avançado de comandos. O Ruby on Rails, ajudou a expandir sua utilidade para a web, e é usado para criar a estrutura do Twitter, Groupon e GitHub. Também é frequentemente usado para desenvolvimento de back-end. O JavaScript (não o Java) é mais frequentemente usado como linguagem de script do lado do cliente para o desenvolvimento de front-end. É a linguagem de programação mais usada para criar sites e jogos para uso na Internet. Grande parte de sua sintaxe vem da programação da linguagem C. JavaScript é universal, sendo executado em todas as plataformas e está no seu navegador (não requer instalação). Qualquer coisa que você queira construir na web exigirá algum conhecimento de JavaScript.

3) Lógica

Você era um mestre de geometria no ensino médio? Provas de amor? Viva para avaliar os fatos em mãos e chegar a conclusões úteis para a solução de problemas? Você pode ter um esqueleto em uma das habilidades mais importantes para codificadores. Há uma razão para muitas pessoas que estudam matemática e física acabarem como programadores. Descobrir qual erro / bug / má linha de código levou a um problema em um projeto é parcialmente intuitivo, mas muitas vezes um exercício de lógica. Então, como você constrói suas habilidades lógicas? Trate-os como músculos e exercite-os. Existem ferramentas como o Dcoder que lhe dá desafios / problemas que irão desenvolver o seu raciocínio. Outra maneira de construir habilidades lógicas é através do pensamento condicional, que essencialmente significa, se isso e aquilo. Por exemplo, digamos que, se você subir mais da metade da montanha, vai sangrar o nariz. Se você ficar abaixo do meio do caminho, você não vai. Na programação, esse estilo de pensamento é usado para testar variáveis ​​em relação a valores e ordenar ações com base em quais condições são atendidas. Pode ser entendido assim:

if (uma condição é avaliada como True):
então faça essas coisas apenas para "Verdadeiro"
outro:
caso contrário, faça essas coisas apenas para "Falso".

Mecanismos simples não podem fazer isso. São essas declarações condicionais que permitem que o programa assuma uma vida analítica própria e não apenas siga um conjunto de instruções até o fim. É importante usar o pensamento condicional ou declarações em seu benefício, mas não viva nem morra por eles. Eles são uma ferramenta para ajudar a expandir as habilidades do que você está criando, mas não devem incluir sua capacidade de solucionar problemas. Veja o exemplo anterior. É importante perceber só porque o nariz de alguém está sangrando, não significa que eles subiram a metade da montanha. Os sangramentos no nariz acontecem por todos os tipos de motivos. A remoção de si mesmo e suas experiências subjetivas da situação em questão serão úteis. O que você encontrou, ou acha que sabe, deve ser usado como uma sugestão, mas não como um fim. Esteja aberto para ser provado errado. Observe qualquer problema ou tarefa como ele é, e deixe que isso dite como você o aborda, fazendo-o de uma forma que, como e então por que a progressão.

4) Atenção ao detalhe

Muitos programadores e codificadores não vão à escola para aprender o seu ofício. Existem diferentes maneiras de medir a aptidão para codificação, mas nada pode substituir o esforço que uma pessoa faz sozinha. É uma das poucas áreas do mundo onde o trabalho autodidata pode levar a uma carreira lucrativa e altamente exigida. O que você NÃO PRECISA ter aprendido, ou tem habilidades pré-requisito, será mitigado pela proximidade com que você pode prestar atenção aos detalhes. A compreensão da interconexão em comandos, consciência geral e precisão lingual são todas partes extremamente importantes do kit de ferramentas de um codificador. Uma maneira de fazer isso é através da organização. Em vez de martelar a si mesmo cada vez que ignorar um detalhe importante, construa um plano de jogo a partir do qual você possa avaliar, revisar e melhorar seu trabalho. Talvez tomando voltas através do código que você escreve, ou prometendo reler informações pertinentes em diferentes momentos do dia, enquanto trabalhava de forma intermitente. O que quer que funcione para você, certifique-se de ter um sistema além, “prestarei atenção às pequenas coisas”. Agendar seu tempo leva a um trabalho mais produtivo e eficiente.

Melhorar sua atenção aos detalhes tem muito a ver com saber o que procurar. Para esse fim, faça listas. Quando você aprende algo que você sabe que será útil de novo e de novo, anote-o. Quando você tem trabalho, pesquisa, novas habilidades ou idiomas para fazer ou aprender, liste o que você espera realizar e como você faz isso. Quando você conseguir algo na lista, coloque uma marca de seleção ao lado dele (não a desmarque, talvez seja necessário voltar para ela). Outra maneira de melhorar sua presciência é manter um cronograma. Você pode não ser tão forte depois de grandes refeições, ou a primeira coisa de manhã. Você descobrirá melhor quando estiver no ponto certo, mas tome nota disso e faça sua programação ou codificação quando estiver no topo do jogo. Outra maneira honrada de melhorar o foco é a meditação. Mesmo concentrando-se em sua respiração por 10-20 minutos por dia vai pagar dividendos no resto de sua vida. Outra maneira surpreendente de melhorar a concentração? Exercício. Pelo menos 30 minutos por dia leva a uma melhora acentuada no foco. Mais importante ainda, seja gentil consigo mesmo. Desenvolva um senso de quando avançar, apesar de querer quebrar, mas também certifique-se de fazer pausas quando estiver desmotivado ou tiver problemas para prestar atenção nos detalhes. Então, quando você voltar, estará mais descansado e fará melhor uso de seu esforço.

5) Reconhecimento da Estupidez

Isso também poderia ser "entender como os computadores pensam". Todos nos disseram para não fazer suposições, mas assumir senso comum em nome de um computador enquanto programa ou codifica é uma receita para o desastre. Computadores são burros e implacáveis. Sua força é seu poder de processamento, não pensamento independente ou criativo. Eles farão exatamente o que lhes for solicitado, mesmo quando parecer óbvio alterar as instruções ou não seguir as mesmas repetidas vezes. Pessoas como Bill Gates e Stephen Hawking alertaram sobre a inteligência artificial que levou ao apocalipse. Nick Bostrom, um estudante de superinteligência e diretor do Instituto do Futuro da Humanidade da Universidade de Oxford, expôs como o mundo poderia ser destruído pela inteligência artificial sob instruções para maximizar o número de clipes no mundo. Se essa IA foi capaz de inventar tecnologia e construir fábricas… olhe para fora. "Como uma AI poderia ter certeza de que haveria tantos clipes quanto possível?", Perguntou Bostrom. "Uma coisa que isso faria é garantir que os humanos não o desligassem, porque haveria menos clipes de papel. Então, pode se livrar dos humanos imediatamente, porque eles podem representar uma ameaça. Além disso, você poderia querer tantos recursos quanto possível, porque eles poderiam ser usados ​​para fazer clipes de papel. Como, por exemplo, os átomos em corpos humanos. ”Então, quando você está codificando, verifique se o que você está inserindo é o que você espera que seja produzido, nem mais nem menos. O programa não pode fazer ajustes ou melhorias que não seja solicitado primeiro.

Algumas das maiores conquistas na programação foram criar algoritmos que fazem os computadores pensarem de maneiras mais independentes, brilhantes e produtivas. Procure algoritmos como Quicksort, Huffman Compression, Fast Fourier Transform e o método Monte Carlo para entender o que quero dizer. Todos eles ajudaram a desenvolver uma meta importante para os codificadores: fazer os computadores fazerem mais do trabalho pesado por meio da inteligência artificial, fazendo isso de uma forma que seja útil, focada e não leve à destruição da nossa espécie. Então, quando você está codificando, tente pensar da maneira que um computador faz e use sua atenção para as habilidades detalhadas para ter certeza de especificar exatamente o que deseja, sem deixar nada ao acaso ou à adaptação. Você não precisará especificar TUDO, alguns cálculos serão feitos automaticamente para liberar você para direcionar o programa. Mas manter uma estrutura mental em que você não confia no que está trabalhando para fazer qualquer coisa para a qual não foi explicitamente dito é extremamente importante.

6) Pensamento Abstrato

O pensamento abstrato é o pensamento feito sem o objeto do pensamento presente, ou mesmo físico. É uma fundação de codificação. Como o código escrito e o que ele produz nunca podem ser observados e medidos fisicamente, os codificadores bem-sucedidos precisam desenvolver uma capacidade de pensar abstratamente, de maneiras maiores e mais comparativas do que podem estar acostumadas. O pensamento abstrato é também a capacidade de pensar sobre um assunto, objeto ou projeto em vários níveis de uma só vez. Ser capaz de equilibrar diferentes símbolos, comandos e processos que estão em vigor, sendo executados automaticamente, versus aqueles que você precisa supervisionar / renovar mais diretamente, é uma parte importante e muitas vezes negligenciada da codificação. O pensamento abstrato é muitas vezes melhorado através de discussões com os outros. Envolve a disposição de ver as coisas de um ângulo diferente ou tirar conclusões analíticas do que pode parecer simples.

Digamos, por exemplo, que você tenha dito a alguém para comprar uma pizza. Isso funcionaria muito bem se a pessoa soubesse automaticamente como chegar à pizzaria, que dinheiro arrecadar, a pizza que você gostaria de pedir e até cálculos menores e mais pequenos, como dirigir, caminhar ou continuar respirando. Você pode até mesmo trazer de volta uma pizza que eu não acho que gostaria de ter. Mas talvez depois de comê-lo, aprendo a amá-lo. Um pensador abstrato poderia reconhecer algo em minha nova reação a uma pizza previamente indesejada que fala sobre a capacidade de mudar nossos sentimentos e desejos mesmo quando não achamos que desejaremos ou desejaremos. Ser capaz de separar, criar e visualizar o que um programa sabe, o que ele pode saber, o que já está compartimentalizado e como esses fatores interagem são essenciais para a codificação.

7) paciência

Em dias terrivelmente quentes, você tem a opção de se rebelar contra o calor, bufando e deixando a agitação superaquecer ainda mais. Ou você pode ceder a isso. Aceite que você está cozinhando ao sol, imagine-se derretendo na calçada, apagando a separação do calor em sua mente. A codificação é extremamente difícil. Nada do que você leu aqui ou leu em outro lugar deve ser interpretado de forma diferente. Em todos os estágios, mas especialmente no começo, você deve esperar sentir extrema frustração. No entanto, a sua capacidade de suportar essa frustração, e passar por ela, sem deixar que ela te desencoraje, servirá em tudo o que você faz. Veja sua frustração como uma ferramenta para desenvolver sua paciência. Quando você está codificando, provavelmente passará por essa experiência: você escreve algo. Você está extremamente confiante nisso. Você duplica e triplica, e ainda não funciona. Você não tem ideia de por que isso não funciona, o que você fez de errado, como corrigi-lo etc. Pode ser um peso esmagador. Você pode se sentir inútil ou como se nunca fosse bem-sucedido, não apenas neste projeto, mas na vida. Tome conforto no fato de que inúmeras pessoas se sentiram assim antes de você. Como você lida com esse sentimento é tudo o que importa. Se você acredita em sua capacidade de superar, encontre um novo caminho, ou mesmo comece do zero e melhore, você pode e vai (ou pelo menos você terá uma chance muito melhor do que aqueles que desistem completamente).

Prestar atenção aos detalhes anda de mãos dadas com o tempo para deixar seu significado se desenvolver. “Detalhes são importantes”, disse Steve Jobs. "Vale a pena esperar para acertar." Reconheça que, quando você está com dificuldades, o que você está enfrentando é desconfortável, mas não intolerável. Repetir isso para si mesmo até que se torne arraigado será muito útil. Deixe que a dor que você sente com a frustração o leve a encontrar soluções. As soluções raramente vêm do desespero ou da abordagem mais rápida e selvagem. Uma grande parte da paciência é falar consigo mesmo. Quando você ouve a voz de “você nunca fará isso, é impossível, simplesmente desista”, esteja pronto para contê-lo com uma voz mais determinada, mais suave e gentil que represente seu núcleo mais profundo e perseverante. Uma das melhores maneiras de construir paciência é através da leitura, ou realmente qualquer atividade sustentada que requer foco. Quanto mais tempo você puder fazer uma coisa, apesar da tentação de desistir ou de fazer outra, melhor será sua capacidade de superar a frustração da codificação.

8) Memória Forte

Inovação e improvisação são extremamente importantes para codificação. Em muitos casos, você fica completamente confuso ou enfrenta um problema, projeto ou situação sobre o qual não sabe nada. Às vezes você vai estar certo. Muitas vezes, se você pensar o suficiente em suas experiências, perceberá que algo que já encontrou pode ser útil novamente. Pode ser da experiência de codificação direta, ou pode ser uma memória abstrata, não relacionada, que de alguma forma parece pertinente, ou apenas através da recordação, faz pensar em algo útil para o momento em questão. Ao trabalhar com os mesmos idiomas, você internalizará a sintaxe e parecerá menos com o uso de memória e mais uma segunda natureza para lembrar de comandos importantes.

Quando se trata de memória de longo prazo, você será auxiliado por manuais, sites e ferramentas infinitos que o ajudarão a lembrar de informações importantes. À medida que você desenvolve suas habilidades (e deseja concluir projetos mais rapidamente), memorizar mais informações será útil, mas não é algo com que se preocupar imediatamente. No entanto, quando se trata de memória de curto prazo, você vai querer fazer o que puder para cultivar e melhorar suas faculdades naturais. Os codificadores precisam estar cientes de muitas informações diferentes de uma vez e saber como todos reagirão uns com os outros. Estar cientes e capazes de visualizar o design, o fluxo de dados, os algoritmos, as estruturas de dados e como eles afetam uns aos outros o separarão do codificador médio. No começo, pode parecer um malabarismo de arenque com golfinhos vorazes pulando ao seu redor, mas fica mais fácil. É aqui que a memória e o fluxo coincidem. Quanto mais você se perder no projeto, menos parecerá uma luta para lembrar os diferentes aspectos do trabalho. Técnicas de meditação e exercícios de memória podem ajudar com isso também.

9) Método Científico

Os problemas / desafios da codificação podem parecer infinitos, assustadores e impossíveis de começar. É aí que usar o método científico para derrubar obstáculos e projetos pode se tornar extremamente útil. Na maioria dos trabalhos, você desenvolve e aprende muitas maneiras de resolver problemas no primeiro ano, e então os aplica a partir daí, ocasionalmente desenvolvendo novas soluções também. Mas na programação, uma boa parte do seu tempo será gasta desenvolvendo soluções para problemas que nunca foram resolvidos (pelo menos não da maneira exata como você os encontra). Você não terá informações sobre como resolvê-los, terá que usar tentativa e erro. Ver codificação como pesquisa ou experimentação será extremamente útil. Isso também ajudará você em termos de prazos. Como você está fazendo algo novo, pode esperar sinceramente margem de manobra porque não está claro quanto tempo levará para resolver um problema de maneira adequada. Seguir estas etapas ajudará você em qualquer projeto em que esteja trabalhando.

Comece com uma hipótese. O que você acha que o programa que você está escrevendo irá realizar? Ou, o que você acha que um programa parece que poderia resolver um problema específico? Em seguida, você delineia como vai escrever o código, seja no papel ou na sua cabeça. Então você faz uma pausa e vê o que você inventou. Isso é seguido da comparação entre o que você criou, o controle ou o que o programa deveria fazer. Também é possível mostrar o programa a outras pessoas e obter informações sobre o que você fez. O programa que você criou corresponde ao que você esperava? Ela serve a função que deveria? Por fim, você começa a depurar ou aproxima o programa do ideal que você imaginou.

10) Comunicação e Empatia

Talvez o aspecto mais negligenciado da programação tenha pouco a ver com o trabalho manual e mental de escrever código. A codificação é um mundo insular que afeta nossas vidas a cada dia. Os codificadores precisam ser capazes de trabalhar e explicar o que fazem aos empregadores, clientes, consumidores e colegas de trabalho que não entendem o que eles fazem. Escrever código limpo e eficaz é ótimo, mas quando você o emparelha com fortes habilidades de empatia e comunicação para codificadores iniciantes, usuários finais, você se torna o creme ascendente. Qualquer um pode dizer: "é assim que estamos fazendo" ou "você simplesmente não entende". Os codificadores de elite ouvem o feedback e se ajustam, mesmo que aqueles que o fornecem não entendam as ramificações de suas palavras. Um codificador eficaz pode gerenciar expectativas, interpretar desejos vagos e avaliar e comunicar honestamente o que é e não é possível. Codificadores são conhecidos por seus egos, mas aqueles dispostos a dar e aceitar pacientemente conselhos e instruções são muito mais respeitados do que os programadores que só se relacionam com seus desktops.

A empatia é a arte da compreensão, consciência, sensibilidade e compartilhamento das emoções de outras pessoas. Quando combinada com a capacidade de expressar e priorizar as prioridades e sentimentos dos outros, ela é extremamente potente. A comunicação e a empatia geram uma responsabilização positiva e acionável e tornarão seu trabalho muito mais fácil a longo prazo. Você entenderá melhor as necessidades e sentimentos dos outros e como seu comportamento e trabalho são recebidos e interpretados. E, independentemente da codificação, ou da vida profissional, melhor comunicação e empatia farão você mais feliz, mais convincente e mais durável com a negatividade dos outros e com as dificuldades da vida. Essas são habilidades que exigem desenvolvimento proativo e consistente, com o mesmo nível de foco e comprometimento que você aplicaria para aprender um idioma ou trabalhar em um projeto importante.

O post 10 Skills Necessary for Coding apareceu primeiro na Computer Science Zone.