Como ser pai faz de mim um desenvolvedor melhor (e vice-versa)

O que meus filhos me acharam sobre a criação de software e o contrário!

Gilad Shoham Blocked Desbloquear Seguir Seguindo 31 de dezembro Eu e minha família

Oi eu sou o Gilad Eu lidero a equipe de código aberto da Bit , eu sou um marido para Sivan e pai de dois meninos incríveis: Arad (3 anos de idade) e Tavor (1 ano de idade).

Neste post, estarei compartilhando da minha experiência de vida pessoal como pai, marido e desenvolvedor de software.

Embora nem sempre seja simples, essas diferentes partes da minha vida impactam umas as outras todos os dias quando eu escrevo código e quando estou com minha família.

Está é minha experiência pessoal. Espero que você ache interessante e talvez até útil. Sinta-se à vontade para comentar, compartilhar seus insights e talvez até compartilhar como isso se sente da perspectiva de uma mãe! Apreciar.

Um pouco da minha vida

Eu e minha família

Eu sou um pai de 2 meninos maravilhosos: Arad tem 3 anos e Tavor tem apenas um ano de idade. Ambas as pequenas bombas de energia, cheias de curiosidade e alegria. Embora eu não me lembre de dormir por anos, eles são a melhor coisa que aconteceu comigo.

Eu trabalho na Bit . Eu não apenas trabalho lá, eu construo algo em que acredito. Estou trabalhando em uma tecnologia de código aberto que pode mudar a forma como construímos software usando componentes menores. Estou muito animado com esse futuro.

Minha vida é uma composição da família, trabalho, amigos e todos os meus passatempos, como o clube de debates da universidade, código aberto, corrida e assim por diante.

Durante os últimos 3 anos, tenho notado cada vez mais que certos aspectos da minha vida compartilham as mesmas experiências e exigem as mesmas habilidades para serem bem-sucedidos.

Escrever código e criar filhos

Habilidades e características que desenvolvi como pai realmente me tornam melhor no meu trabalho e melhorando e o trabalho faz – para minha grande surpresa – me tornar um pai e um marido melhores. Essas habilidades variam de criatividade e persistência a trabalho em equipe e até mesmo padrões de pensamento e design algorítmico:

  • Criatividade
  • Persistência
  • Responsabilidade
  • Trabalho em equipe
  • Pensamento lógico
  • Aprendendo novas habilidades

Vamos mergulhar!

Criatividade vs. o impossível

Dormir nunca é impossível – quando você está cansado, seja criativo

Na minha opinião, esta é uma das habilidades mais importantes para qualquer desenvolvedor.

Como desenvolvedor de software, você sempre enfrenta novos problemas que exigem soluções criativas. O que parece ser impossível pode ser alcançado se você for criativo o suficiente. Essa é a chave para a inovação.

Como desenvolvedor, você constantemente aumenta e prepara sua criatividade. Isso também faz de você um pai melhor.

Criatividade afeta todos os aspectos de como você cria seus filhos. Por exemplo, ajuda a acalmar seu filho quando ele está chorando, triste ou com raiva.

Todos os pais estão muito familiarizados com a situação impossível quando seu filho está chorando sem motivo aparente, ou quando eles decidem que querem algo que não podem ter agora. Os gritos podem perfurar a alma de qualquer um que esteja ao alcance.

Como pai, esta situação é muito frustrante. Em público, também é embaraçoso.

Então, como você “resolve” o caso de uma criança que quer doce às 4 da manhã? Você é criativo!

Pessoalmente, descobri que quando ofereço um substituto semelhante ao que ele quer, só o deixo mais irritado. A solução criativa, no entanto, é geralmente inventar algo completamente novo que você pode dar a ele agora mesmo.

Algo que eles não esperavam significa que eles foram pegos de surpresa. Então, eles começam a pensar e avaliar a situação. Quando você pensa, você não grita tanto quanto antes. Eles também rapidamente esquecem o que eles queriam.

Isso, é claro, exige muita criatividade (e mais com o passar do tempo, à medida que você usa esse método várias vezes; quantas coisas você consegue fazer?).

Passe esta criatividade para o seu filho

As crianças são criativas por natureza. Infelizmente, à medida que começam a crescer, tornam-se menos criativos e mais convencionais.

Por ser criativo e gratificante pensamento criativo, você irá:

  1. Mantenha seu filho criativo por mais tempo. Você o defende das pessoas lá fora que tentam calar sua mente para torná-lo mais previsível para que possam lidar melhor com ele. Isso é uma coisa enorme.
  2. Capacite sua criatividade por sua própria criatividade. Combine algumas mentes criativas para criar uma sinergia que resulte em resultados surpreendentes.

Responsabilidade mesmo quando é difícil

Ser responsável é difícil!

Um grande desenvolvedor não é apenas criativo, ele também é responsável. Um desenvolvedor trabalhando em uma parte essencial do produto tem uma responsabilidade para com os membros de sua equipe, sua organização, seus usuários de produtos e assim por diante.

Desenvolvedores que “pensam pequeno” e não percebem que com grande poder vem uma grande responsabilidade, vão acabar prejudicando a si mesmos e a outras pessoas.

Eu acredito que a responsabilidade é melhor aprendida pelo exemplo.

É algo que você aprende, pratica e aplica a todos os aspectos da sua vida. Se você é responsável enquanto codifica, é mais provável que você seja responsável – e responsável – em outros aspectos de sua vida.

A responsabilidade adquirida com a criação de software é muito útil para minha vida como pai. Quando seus filhos aprendem que você toma posse de suas palavras e as respalda com ações, elas podem crescer e seguir seu exemplo.

Não faça curvas no trabalho e não faça isso em casa.

As crianças exigem muita atenção e trabalho duro. Eles também vêm com um monte de coisas menores para lidar. Por exemplo:

  • Não se esqueça de trazer roupas extras para o caso de se molharem!
  • não esqueça de trazer um brinquedo para o bebê!

Assim como eu não iria bater “implantar” e chegar em casa à noite, eu não vou levar meus filhos em algum lugar sem estar preparado para o que pode vir em nossa direção. Esteja preparado, seja responsável, veja as coisas.

Persistência que enfrenta falha

Deve haver um caminho até

Persistência é sobre não desistir e continuar indo para frente sem um intervalo, mesmo se houver obstáculos, falhas ou apenas alguns momentos chatos.

Desenvolver software é tentar criar algo. Isso geralmente significa tentar de novo e de novo até que funcione.

Quase todos os dias um desenvolvedor tem que tentar coisas diferentes, soluções e abordagens diferentes (sugeridas pelo melhor amigo de um desenvolvedor: Google) para um problema que deve funcionar em teoria, falha vez após vez.

Você precisa ser capaz de crescer a partir do fracasso, o que é mais fácil dizer do que fazer.

As crianças são criaturas sensíveis que tendem a fracassar emocionalmente. Se algo não está dando certo, muitas vezes é o fim do mundo como o conhecemos.

Por outro lado, eles também estão cheios de energia, motivação e imaginação.

Uma criança muitas vezes assume um esforço sem perceber que é mais difícil do que parece. Então, eles começam a perceber que é difícil e eles experimentam o fracasso. Isso pode fazer com que eles quebrem e parem de perseguir seu objetivo, não importa o quanto trabalhem ou quão longe eles cheguem.

Assim como na resolução de problemas de software, você deve direcioná-los para um caminho melhor. Mostre a eles que você também falhou e como você o superou para ter sucesso. Inspire-os e ensine-os a sentir um fracasso como um passo legítimo no caminho para o sucesso. Afinal, todo mundo falha.

Algumas dicas:

  • Às vezes, eles não veem a imagem completa das coisas. Ajude-os a ver isso.
  • O ambiente e as condições podem não estar definidos para o sucesso. Ensine-os a mudar isso.
  • Ensine-os a sentirem a frustração como motivação para o sentimento recompensador de sucesso.

A chave não é ensiná-los que eles devem ter sucesso o tempo todo, mas sim construir sua confiança interior de que eles podem ter sucesso.

O trabalho em equipe é fundamental

O trabalho em equipe é fundamental

O trabalho do desenvolvedor é frequentemente percebido como uma coisa individual, que envolve principalmente você e seu computador.

Isso está longe de ser verdade. É tudo sobre pessoas.

O desenvolvimento de software geralmente é feito em equipes nas quais pessoas diferentes desempenham papéis diferentes e todas elas atuam juntas. Em Bit , muitas vezes sinto que faço parte de um grande time de basquete: eu passo as coisas para o outro, bloqueio para elas, e corremos treinos juntos para que um de nós consiga pontuar, e todos ganham.

Reuniões de arquitetura, revisões de código, pedindo conselhos, integrando coisas, ensinando aos outros e aprendendo, fazem parte do trabalho de todos os dias.

Bons desenvolvedores precisam traduzir conceitos e estruturas complexas em uma linguagem simples que os membros de sua equipe possam entender e comunicar.

Eles precisam aprender a dar e receber críticas com um sorriso. Eles precisam fazer com que os outros compartilhem e compreendam seus desafios e necessidades, mesmo quando não conhecem seu contexto completo.

Há muita coisa em comum entre a comunicação entre desenvolvedores e a comunicação entre um pai e seus filhos.

A maioria das crianças não tem a maior parte do contexto necessário para entender o que você está falando, durante grande parte do tempo. Isso significa que muito da sua conversa é sobre você tentando explicar uma coisa complexa para uma criança.

Praticar essa habilidade faz com que você se comunique melhor com adultos. Você aprende como você faz seus filhos entenderem as coisas e usá-lo no trabalho. Você aprende como você ajuda os membros de sua equipe a entender você e aplica-o a seus filhos. Funciona.

Outro aspecto é a capacidade de dar ou receber críticas de construção.

Como pai ou mãe, você tem que ensinar seu filho a partir do errado e estabelecer limites claros. Crianças sendo crianças, eles vão cometer muitos erros. Isso está ok.

Quando eles cometem um erro, você lhes dará feedback para ajudá-los a aprender e melhorar. Você não quer esmagar sua confiança ou impedi-los de tentar, mas sim ensiná-los a melhorar.

Ser capaz de fazer isso de uma maneira construtiva, em vez de destrutiva, tornará as coisas mais fáceis para ambos os lados e também muito mais produtivas. É como fazer uma revisão de código para outro desenvolvedor da equipe.

Se pudermos tomar o caminho para ensinar nossos filhos e aplicar alguns deles ao nosso trabalho, melhoraremos muito o trabalho em equipe e faremos com que todos trabalhem melhor. A melhor revisão de código do mundo não vale nada se a pessoa que a recebeu não pudesse ouvir o que estava sendo dito, por causa de como foi dito.

Isso funciona nos dois sentidos – aprenda a ouvir como uma criança e não se ofenda ao ouvir alguém falando sobre seu trabalho. Sei que é difícil. Aprenda como dar e receber o raciocínio principal do feedback, refinar os pontos que você precisa para melhorar e processar as informações com uma mente aberta.

Isso também irá ajudá-lo com seus filhos quando suas emoções estão ficando altas (é difícil quando seu filho está gritando com você, confie em mim) e você precisa entender qual é o problema real.

Outra habilidade útil que aprendi é como se explicar usando adereços. Lego peças, desenhos, equipamentos de cozinha, tudo vai. Um visual é melhor do que mil palavras depois de tudo. Trabalha com crianças e com a minha equipe.

Pensamento algorítmico e reconhecimento de padrões

Esta parte não requer muita explicação do lado do desenvolvedor.

Todos escrevemos algoritmos todos os dias e encontramos padrões em cada parte do código que examinamos e em todas as estruturas que aprendemos.

A maneira como as crianças pensam, se geralmente mais associativas.

Há muitas vantagens nesse tipo de pensamento, mas muitas vezes falta uma estrutura lógica clara. A maioria das crianças só desenvolve esse tipo de pensamento mais tarde.

Como desenvolvedor, você costuma dividir coisas complexas em etapas lógicas e árvores de decisão menores. O desafio é comunicar esse tipo de pensamento aos seus filhos e ajudá-los a aprender com isso.

O que funciona melhor para mim é mostrar aos meus filhos como abordar um problema, dividi-lo e chegar a uma solução. Não apenas distribua a resposta; ensine-lhes o mesmo raciocínio lógico que faz de você um bom desenvolvedor.

Você também pode usar alguns desenhos que mostram as diferentes partes e como elas funcionam juntas. Isso irá melhorar a capacidade do seu filho de fazer o mesmo por conta própria, e adiciona uma habilidade importante ao seu conjunto de ferramentas.

Um passo de cada vez, eles terão a experiência de usar os dois tipos de pensamento e decidir qual é melhor para uma situação específica.

Por outro lado, às vezes você está pensando muito logicamente sobre um problema. aprenda com seus filhos! Às vezes, a intuição e o pensamento livre de preocupações podem ser seu melhor caminho para o sucesso, mesmo quando as coisas parecem muito complexas.

A maneira como seus filhos pensam pode trazer uma nova perspectiva e conectá-lo a etapas importantes que você pode ter perdido.

Aprendendo habilidades

Dirigindo pela primeira vez

O desenvolvimento de software é um dos campos mais dinâmicos do mundo de hoje (especialmente o da web). O não-aprendizado vai tornar você obsoleto rapidamente.

Eu estimo que a maioria dos desenvolvedores passa algumas horas por dia aprendendo coisas novas. Esta é uma das melhores coisas sobre ser um desenvolvedor. É também uma habilidade que você pode praticar, melhorar e alavancar em quase todos os aspectos da sua vida.

Aprender significa ser capaz de entender o que você está procurando, encontrá-lo (hoje, com alguns cliques), compreendê-lo, dizer o que é importante e o que não é e, em seguida, aplicar esse conhecimento junto com coisas que você já conhece.

Todos nós enfrentamos muitas situações quando precisamos fazer coisas que realmente não sabemos como fazer. Naturalmente, as crianças estão ainda mais expostas a esse tipo de situação. Isso torna as crianças incríveis alunos naturais.

Ter você orientá-los no processo de aprendizagem é um grande trunfo para eles. Você pode indicá-los para outra coisa que eles já aprenderam antes. Você pode ajudá-los no processo de integração de algum conhecimento. Você pode ajudá-los fazendo perguntas-chave (e fornecer respostas somente quando necessário).

As crianças têm uma curiosidade natural ilimitada e desejam aprender coisas novas. É fundamental não suprimir essa natureza nascida, mas sim estimulá-la. Melhorar suas habilidades de aprendizado resultará em crianças mais felizes com um futuro melhor.

Conclusão

Criar filhos é uma das tarefas mais complicadas do mundo. Então, está construindo software. Todos nós queremos nos tornar pais melhores e melhores desenvolvedores.

Não há regras de ouro. Há apenas o processo contínuo de melhorar, aprender e melhorar, transmitindo essas habilidades essenciais para nossos filhos.

Estas são minhas opiniões. Outros podem ter crenças diferentes. Pessoalmente, tentei pensar quais são as melhores ferramentas que posso dar aos meus filhos para entender melhor o mundo e decidir o que é melhor para eles.

Estou tentando equipá-los com as ferramentas que acredito darem a eles o melhor ponto de partida deste mundo, o que os tornará mais felizes.

Acho que aprender com a forma como construo software com minha equipe se aplica a muitos aspectos de ser pai e que essas duas partes da minha vida podem aprender muito umas com as outras. Dar uma olhada real em si mesmo e as habilidades que você possui para passá-las para seus filhos é um processo muito importante.

Se você é um desenvolvedor, incentivo você a considerar suas próprias habilidades como desenvolvedor e pense em como aplicá-las para criar seus filhos.

Obrigado pela leitura. Se você gostou deste artigo, sinta-se à vontade para apertar esse botão de aplauso ? para ajudar outras pessoas a encontrá-lo. Por favor, sinta-se livre para compartilhar seu pensamento abaixo!

Diga oi no Twitter ou confira o que estamos criando no Bit.

Bit – Compartilhe e construa com componentes de código
Bit ajuda você a compartilhar, descobrir e usar componentes de código entre projetos e aplicativos para construir novos recursos e… bitsrc.io