Competências de um programador moderno de um ângulo diferente

Olá, meu nome é Pasha! Eu trabalho na Mad Devs e acho que apenas a programação não é suficiente para ser um bom especialista.


Espero que esse material não machuque os sentimentos de alguém. Este material é uma tentativa de revelar o sistema de habilidades do programador moderno de um ângulo diferente. Não mais.


Um programador é um elo essencial na cadeia de software. Sem ele, o novo software não pode ser criado. O que é tão importante que um programador faz? Que responsabilidade está com ele, já que ele é tão insubstituível.


Quero chamar imediatamente sua atenção para o fato de que a responsabilidade de um programador depende da linha do tempo histórica. Voltaremos cerca de 20 anos atrás.


imagem


Esse meme tem pouco a ver com a imagem de um desenvolvedor moderno. No entanto, vamos discutir pelo que esse especialista fantástico é responsável. Provavelmente, ele está desenvolvendo um sistema instável em operação. Os usuários deste software são os chamados usuários avançados de computadores pessoais da época. Naquele momento, apenas usuários avançados podiam usar o software além de um editor de texto.


Qual é a responsabilidade de um especialista assim? Ele deve apenas escrever código em uma linguagem de programação. Esse especialista se orgulha de se chamar C ++ - um programador (substitua outra linguagem de programação, popular na época). Sua liderança, por via de regra, não entende completamente o que está fazendo. Nesse sentido, ele tem a oportunidade de criar a imagem de sua atividade, que ele próprio desejará. Essa imagem pode ser negativa, os programadores não receberam muito dinheiro na época, por isso ficaram com raiva. Pode ser positivo, ele pode resolver problemas de sua liderança e criar magia útil. Alguns de meus colegas ainda acreditam que manter a imagem de um especialista negativo é a norma. Nas empresas, os gerentes ainda não entendem o que estão fazendo e esses especialistas são absolutamente negativos sobre o mundo inteiro ao seu redor. Mas não há muitos deles - isso agrada. De qualquer forma, parece-me que as empresas de TI são aquelas onde os gerentes entendem o que está acontecendo no setor moderno. Este é um critério suficiente para ser uma empresa de TI, quanto a mim.


A esse respeito, a pergunta: qual é a responsabilidade de um programador moderno? Essa pergunta pode ser respondida por um período muito longo, mas tentarei revelá-la mais rapidamente e imediatamente descartarei as coisas importantes, mas que podem levar esse material ao infinito. E começaremos a revelá-lo com as competências que um programador moderno pode possuir.


As competências de especialistas modernos em qualquer setor são divididas em três grandes categorias:


  • Habilidades difíceis;
  • Habilidades pessoais;
  • Habilidades digitais.

A lógica sugere que em todo especialista todos os tipos de habilidades devem ser igualmente desenvolvidos. Eles se complementam mutuamente.


Não divulgarei esses termos, porque em russo eles nem têm um nome permanente. Muitos profissionais da educação se referem a essas habilidades de maneira diferente, confundindo o público às vezes. Trarei a sua atenção uma tabela de correspondência desses nomes.


Chave primáriaO nome que eu vou usarOutros sinônimosNos rublosMatar por isso
Habilidades difíceisCompetências profissionaisHabilidades profundas, habilidades durasHabilidades duras, Habilidades durasHabilidades difíceis
Soft skillsCompetências profissionaisSoft skills, habilidades geraisSoft Skills, Soft SkillsSoft Skills
Habilidades digitaisHabilidades digitaisHabilidades Digitais, Habilidades DigitaisHabilidades digitais

Se os nomes do problema, com a definição e ainda mais. Darei apenas os conceitos necessários para a discussão de hoje.


Para ser breve. Cada especialista precisa de exatamente uma habilidade profissional : um programador - para programar, um construtor - para construir, um cirurgião - para uma cirurgia (piada inapropriada) e assim por diante. Essa habilidade inclui a quantidade infinita de conhecimentos que um especialista possui. No caso de um programador, isso inclui entender a excelente base que todos devem conhecer, entender os princípios de sua linguagem de programação e assim por diante.


As habilidades digitais são uma história diferente para a maioria das profissões. Porque a TI penetra em todos os setores hoje. É difícil encontrar um setor que não seja digitalizado hoje: em outro momento, eu diria que isso é uma religião, mas não! Portanto, para especialistas na maioria das profissões, as habilidades digitais são um artigo separado com o qual trabalhar. Para programadores, as habilidades digitais e profissionais, por razões óbvias, se sobrepõem. Embora eu seja todo programador, acho que devo ser um usuário avançado de software. Quero dizer, use serviços diferentes para organizar sua vida, tente fazer uma casa inteligente, use aplicativos modernos para a vida e assim por diante. Ele desenvolve mais as habilidades digitais. Afinal, para ser um bom fornecedor, é bom ser um bom consumidor.


Habilidades excessivamente profissionais - é sobre isso que iremos nos aprofundar mais detalhadamente. Comparado com as habilidades profissionais, cada especialista precisa de várias, e de preferência muito, habilidades supraprofissionais. Exemplos de habilidades profissionais: gerenciamento de tempo, encontrar recursos, usar recursos, habilidades de negociação, habilidades de comunicação, gerenciar pessoas, falar em público, etc.


Por que preciso dessas habilidades? Eu escrevo em React! - soará da platéia.


É aqui que a grande diferença de responsabilidade entre programadores há 20 anos e hoje começa. Hoje somos fornecedores do futuro; sem nós, o desenvolvimento de software é impossível. Nossos colegas de empresas (gerentes, proprietários de produtos, vendas, partes interessadas, profissionais de marketing e outros) precisam de nossa ajuda. Nossas competências (ou seja, habilidades profissionais) e como podemos aplicá-las às vezes desempenham um papel decisivo no desenvolvimento de um produto. Porque assim? Eu descrevi em um artigo sobre pilhas reais reais em Habré. Ele descreve onde você precisa aplicar suas habilidades profissionais mais do que a maioria de nós está acostumada. De fato, as habilidades sobre as quais estou escrevendo agora somam uma qualidade muito interessante que desenvolvemos em Mad Devs - afinidade do cliente (proximidade com o cliente).


Como escrevi acima, todos os tipos de habilidades devem ser igualmente desenvolvidos em cada especialista. E para aplicar qualitativamente suas habilidades profissionais em situações que descrevi no artigo no link acima, você também deve ter habilidades superprofissionais bem desenvolvidas.
Qual especificamente? Vou listar as 6 principais habilidades profissionais importantes que, a meu ver, qualquer especialista moderno deve ter:


  • Gerenciamento de tempo . Aqui eu acho, obviamente. A habilidade de gerenciamento de tempo relaciona-se indiretamente apenas à avaliação de tarefas. A avaliação de tarefas é uma habilidade profissional. O gerenciamento de tempo para um programador é uma distribuição lógica de tempo para codificação, leitura de artigos, autoeducação e comícios.
  • Capacidade de trabalhar em equipe . Quase ninguém faz projetos sozinhos. A capacidade de trabalhar em equipe é uma habilidade absolutamente indispensável.
  • A capacidade de ensinar . E, para ser preciso, a capacidade de introduzir no contexto uma habilidade comparável à capacidade de ensinar. A tarefa da pessoa que ensina é essencialmente uma introdução ao contexto. Somente o conjunto de conhecimentos é mais extenso. Os programadores frequentemente mudam de contexto devido à mudança de projetos e equipes. E a capacidade de introduzir um colega no contexto, apontando os detalhes mais importantes e omitindo desnecessários, é uma habilidade muito importante, considerando o quão cara é hoje a operação de entrada no contexto. A propósito, essa habilidade também é usada na orientação.
  • Etiqueta de negócios . A partir da observância das regras da língua russa e terminando com as regras elementares de comunicação com os clientes. Algumas pessoas de negócios esquecem que não estão no bate-papo frouxo dos esquilos ou na estrutura do Yii (substitua sua tecnologia). Em algumas empresas, a etiqueta comercial é importante na correspondência por correio dentro da empresa. Para nós, na Mad Devs, a etiqueta comercial é importante apenas no contexto quando é importante para o produto que estamos fabricando. Se for mais fácil para os membros da equipe perceberem exatamente esse tipo de comunicação, essa etiqueta de comunicação será adotada. Mas pelo menos todos os clientes com quem trabalhei são pessoas que se concentram principalmente no resultado e preferem se comunicar sem uma sopa séria. Aqui cada um na sua. Mas! A capacidade de incluir etiqueta comercial quando a situação exige é importante!
  • Estabelecimento de metas . Dois tipos. Pessoal e design. Diga-me, programador, quem você será daqui a 5 anos? Uma pergunta típica na entrevista, mas a resposta a ela ajuda a entender como uma pessoa se relaciona com o planejamento a longo prazo. Minha opinião pessoal (isso significa que não imponho a ninguém, o que significa que não há sentido em argumentar): apesar da entropia do mundo moderno, o planejamento a longo prazo é NECESSÁRIO, NECESSÁRIO, NECESSÁRIO! Ninguém pede para você seguir um plano, não importa o que aconteça. Os planos precisam ser alterados, e esta é uma maneira adulta. Mas ter em mente a meta e o conjunto de tarefas para os próximos anos (de preferência em torno de 10 anos) é uma diretriz de acordo com a qual as decisões são tomadas. Especificamente, acho mais fácil trabalhar com pessoas com planejamento a longo prazo. Você pode investir e se desenvolver com eles, sem medo de que chovam amanhã. A definição de metas no projeto também é um ponto importante. Como programador, mesmo se você descartar todo esse tipo de bobagem sobre habilidades profissionais e outras coisas, você é responsável por uma das partes do projeto. E você precisa planejar o desenvolvimento dessa parte do projeto a longo prazo. Quais abstrações aparecerão, quais módulos serão separados para viver suas próprias vidas e assim por diante.
  • Sociabilidade . É sobre a capacidade de se comunicar com colegas de outras profissões. Seja ágil, ajude os colegas a entender seus problemas relacionados às nossas habilidades profissionais. Seja um salva-vidas para eles quando estiverem parados e assim por diante. A sociabilidade também ajuda a estabelecer contato com o cliente, e isso sempre é útil para qualquer projeto.

Essas habilidades supraprofissionais, na minha opinião, ajudarão a revelar completamente suas habilidades profissionais.


A principal mensagem de que um programador hoje não é um tipógrafo. Esta é uma unidade de combate importante: uma unidade que pode decidir o resultado de uma batalha se usar corretamente todos os seus feitiços.
E para isso, você precisa não apenas ser um bom desenvolvedor e capaz de codificar, mas também ter um conjunto de habilidades que, à primeira vista, ajudam remotamente no desempenho de suas tarefas, mas não é assim.


Respondemos à pergunta: qual é a responsabilidade do programador moderno. Em uma primeira aproximação, este é um código para escrever. Mas, na verdade, um bom programador moderno na maioria dos casos tem um conjunto tão vago de responsabilidades, tanto quanto os conceitos de habilidades profissionais hoje são vagos. Isso, além de tudo, depende da empresa, equipe, projeto e líder da equipe.


Obviamente, cada desenvolvedor decide quem ele deveria ser. E quais habilidades desenvolver, o que é importante e assim por diante. Você pode continuar sendo um discador de código e, nos próximos anos, se sentirá super bem.


É verdade que existem especialistas que dirão que especialistas restritos em TI logo começarão a desaparecer. A extinção completa não os ameaça, mas na forma em que estão agora, as profissões não permanecerão com certeza.


Existe um projeto tão interessante: Atlas de novas profissões . Confira e veja que novas profissões são, em regra, profissões do tipo TI + outro setor.


Falta algo na profissão de um JS- .


Espero que este material não tenha ferido os sentimentos de ninguém. Este material é uma tentativa de revelar o sistema de habilidades do programador moderno de um ângulo diferente. Não mais.

Source: https://habr.com/ru/post/pt451482/


All Articles