<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: EmersonEhing</title>
    <description>The latest articles on DEV Community by EmersonEhing (@emersonehing).</description>
    <link>https://dev.to/emersonehing</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F341887%2F9b6a57e5-3618-4356-89d4-c416ee2814a2.jpeg</url>
      <title>DEV Community: EmersonEhing</title>
      <link>https://dev.to/emersonehing</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emersonehing"/>
    <language>en</language>
    <item>
      <title>What is the real way to become a good programmer?</title>
      <dc:creator>EmersonEhing</dc:creator>
      <pubDate>Fri, 25 Dec 2020 04:54:51 +0000</pubDate>
      <link>https://dev.to/emersonehing/what-is-the-real-way-to-become-a-good-programmer-anb</link>
      <guid>https://dev.to/emersonehing/what-is-the-real-way-to-become-a-good-programmer-anb</guid>
      <description>&lt;p&gt;I have been asking myself a lot since the beginning of my journey about what I should really learn. Besides the language with which I will encode ideas, structures and algorithms, what else should I learn? I know that the technical requirements are immense, I know that soft skills are of paramount importance. Working in teams, sprints, rites, discovering the details of a development that will (or not) go into production, applying the different levels of testability, what is the pattern design of best applicability for each situation, knowing when and what technology to use... taking knowledge of what the market needs, everything seems important and at the same time, not. Look to the side and see the subjects of the moment, cloud infrastructures, machine learning, artificial intelligence, quantum computing and so on and so on... they are not new subjects, but they have gained momentum due to other technologies that made possible a better development of them. Without the advent of big data, you wouldn't even be reading about machine learning and deep learning now. Without technologies like 4g, and now 5g, mobile development would have taken other directions, and so on. There is an invisible current that connects all things. One step leads to another and some steps lead to jumps. But what about me? With my scarce time, with my short life and my days of only 24 hours? What path should I follow, what technologies should I use, what areas should I explore? Knowledge has grown exponentially and I as well as my colleagues are only acquiring a superficial knowledge of things, we are small wikipedias, everything very shallow, we learn enough to put in practice only the small parts we need. It's quite obvious the result of this, isn't it? Jacks for all trades? Crippled professionals? Paid amateurs? There are ways of generalities and specialties: I can be a specialist in a certain area, but if I don't learn about the things which surround and connect, I will never see the forest, and worse, the day will come when I will become just a rotten trunk of a tree fallen a long time ago.&lt;/p&gt;

&lt;p&gt;Another question that erodes me, while restructuring my lines of thought, and usually this leads to a positive factor, is the dynamics of different technologies that often seem to contradict each other, I mean, can I create a technology for people without at the same time in some way exploiting them? Life is full of contrasts, and that's great. When things go too well for a long time, the world becomes stagnant. Overcoming challenges and always searching for new solutions is essential for the human being to evolve, and so is the world of the developer. Without problems there are no solutions to be found, therefore, there is no employment. Sometimes I look at the long lists of demands of some job vacancies and I think: "Wow, this is monstrous... how will someone know deeply all these topics, all these technologies, and still have the proper practice for a professional performance?", then I remember some truths: the boss doesn't want to know how you did, he wants to know if it's ready, if it's safe, if it's scalable and if it has quality. The rest is detail, it doesn't matter the fashion framework, if you used functional concepts, if everything is clean, if there is any technical debt left to be solved in the next months, time is now and every minute spent must have a counterpart: the result of the work and in this the generation of value. Moral and philosophical discussions can be cool, but only when it happens at coffee time. The agile team calls for agility, it is very self-explanatory. "Ah, but contributing to open source projects for free is communism...", nobody cares. "Vim is much better than other editors...", really? Nobody's worried about which crutch you walk with, as long as you arrive at your destination. People like to fill their own void with frivolities, both the void of soul and intellect, and this has made the world chaotic. I'm sorry if you look at your colleagues who are not vegan, we have been eating meat for over a hundred thousand years, respect your ancestors. I'm sorry if the competitor launched a product like yours a week before you, but what were you doing? Discussing politics and religion? Playing video games and ping-pong? Don't think you're going to change the world by developing a food delivery application, or one more  javascript framework. The real changes in the world happen first in the soul of man, when his spirit is touched by a revelation that makes him change his attitudes and his path.&lt;/p&gt;

&lt;p&gt;Speaking of changes, I have adopted a minimalist attitude in my work, I like the idea of clean code, reusability, I like to code intentionally, I like to code aiming at the generated value, I like to use only the necessary dependencies and I hate redundancies, I love the idea that a well written line of code generates less comments to be written. Archetypal dismantling of multivariances and multivalences, poetic clarity of tangible aesthetics. Obfuscation and demateriality. I am a man of contradictions and I love complexities. You also know this: simplicity is not being simplistic, and to know how to make something simple, we have to have a deep knowledge of what we are doing. I think part of my fascination with the world of technology is due to the fact that I like to be always learning, to be dazzled by what's new and to engineer new possibilities to create, to generate, to do something new. And so I surrender myself to my destiny: to learn, detached from everything that can leave me behind; light, ready to be taken by the most fluid path. Without fear, without prejudice, respecting those who know more and integrating myself to a team as if it were my family. Programming is more than writing codes in any language, programming is above all communicating with your fellow men to generate value to the company and customers. Programming is a science and an art that starts at the core. Becoming a programmer is a lifelong endeavor, which without love and passion, will not result in the fullness desired, there will be no grace achieved, but only one more stressed person. Don't forget, commit yourself with the best of yourself, whatever challenge is imposed, whatever task is given, do it with dedication, do it with wisdom and know that you can always count on other people to overcome the obstacles.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>codenewbie</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Qual o verdadeiro caminho para se tornar um bom programador?</title>
      <dc:creator>EmersonEhing</dc:creator>
      <pubDate>Fri, 25 Dec 2020 04:43:07 +0000</pubDate>
      <link>https://dev.to/emersonehing/qual-o-verdadeiro-caminho-para-se-tornar-um-bom-programador-16n</link>
      <guid>https://dev.to/emersonehing/qual-o-verdadeiro-caminho-para-se-tornar-um-bom-programador-16n</guid>
      <description>&lt;p&gt;Muito tenho me perguntado desde o início de minha jornada sobre o que realmente devo aprender. Além da linguagem com a qual codificarei ideias, estruturas e algoritmos, o que mais devo aprender? Sei que os requisitos técnicos são imensos, sei que soft skills são de suma importância. Trabalhar em equipe, sprints, ritos, descobrir os pormenores de um desenvolvimento que entrará (ou não) em produção, aplicar os diferentes níveis de testabilidade, qual o design pattern de melhor aplicabilidade para cada situação, saber quando e qual tecnologia usar... tomar conhecimento do que o mercado precisa, tudo parece importante e ao mesmo tempo, não. Olhe para o lado e veja os assuntos do momento, infraestruturas em nuvens, machine learning, inteligência artificial, quantum computing e etc, etc e etc... não são assuntos novos, mas galgaram momentum devido a outras tecnologias que tornaram possível um melhor desenvolvimento das mesmas. Sem o advento da big data, você nem estaria lendo sobre machine learning e deep learning agora. Sem tecnologias como o 4g, e agora o 5g, o desenvolvimento mobile teria tomado outros rumos, e assim por diante. Há uma corrente invisível que conecta todas as coisas. Um passo leva a outro e alguns passos levam a saltos. Mas e eu? Com meu tempo escasso, com minha vida curta e meus dias de apenas 24 horas? Que caminho devo prosseguir, que tecnologias utilizar, que áreas explorar? O conhecimento tem crescido exponencialmente e eu assim como meus colegas estamos apenas adquirindo um conhecimento superficial das coisas, somos pequenas wikipédias, tudo muito ralo, tudo muito raso, aprendemos o suficiente para pôr em práticas apenas os pequenos trechos que precisamos. Fica bem óbvio o resultado disso né? Jacks for all trades? Profissionais aleijados? Amadores remunerados? Há caminhos de generalidades e especialidades: posso ser especialista em determinada área, mas se eu não aprender sobre as coisas que a cercam e se conectam, eu nunca enxergarei a floresta, e pior, chegará o dia em que eu me tornarei apenas um tronco podre de uma árvore caída há muito tempo.&lt;/p&gt;

&lt;p&gt;Outra questão que me corrói, ao mesmo tempo que reestrutura minhas linhas de pensamento, e normalmente isto leva à um fator positivo, é a dinâmica de diferentes tecnologias que muitas vezes parecem se contradizer, digo, posso criar uma tecnologia para as pessoas sem ao mesmo tempo, de alguma forma, explorá-las? A vida é cheia de contrastes, e isso é ótimo. Quando as coisas vão bem demais por um tempo prolongado, o mundo fica estagnado. Superar os desafios e ir em busca, sempre, de novas soluções, é essencial para que o ser humano evolua, e assim também é o mundo do desenvolvedor. Sem problemas não há soluções a serem encontradas, logo, não há emprego. As vezes olho as longas listas de exigências de algumas vagas de emprego e penso: "Nossa, isso é descomunal... como alguém conhecerá profundamente todos estes tópicos, todas estas tecnologias, e ainda ter a prática adequada para um desempenho profissional?", então me lembro de algumas verdades: o patrão não quer saber como você fez, ele quer saber é se já está pronto, se é seguro, se é escalável e se tem qualidade. O resto é detalhe, não interessa o framework da moda, se você usou conceitos funcionais, se está tudo clean, se ficou algum débito técnico para ser resolvido nos próximos meses, o tempo é agora e cada minuto gasto deve ter uma contrapartida: o resultado do trabalho e neste a geração de valor. Discussões morais e filosóficas podem ser cool, mas só quando acontece na hora do cafezinho. O time ágil clama por agilidade, é bem autoexplicativo. "Ah, mas contribuir para projetos open source de graça é comunismo...", ninguém liga. "Vim é muito melhor outros editores...", sério? Ninguém está preocupado com qual muleta você anda, desde que chegue no destino. As pessoas gostam de encher o próprio vazio com frivolidades, tanto o vazio da alma quanto do intelecto, e isto tem tornado o mundo caótico. Lamento se você olha torto para seus colegas que não são veganos, estamos comendo carne a mais de cem mil anos, respeite seus ancestrais. Lamento se o concorrente lançou um produto igual ao seus uma semana antes de você, mas o que você estava fazendo? Discutindo política e religião? Jogando vídeo game e ping-pong? Não pense que você vai mudar o mundo desenvolvendo um aplicativo de entrega de comida, ou mais um framework para javascript. As verdadeiras mudanças no mundo acontecem primeiramente na alma do homem, quando seu espírito é tocado por uma revelação que faz com que ele mude suas atitudes e seu caminho.&lt;/p&gt;

&lt;p&gt;Falando em mudanças, tenho adotado uma atitude minimalista em meus trabalhos, gosto da ideia de clean code, reusabilidade, gosto de codar intencionalmente, gosto de codar objetivando o valor gerado, gosto de usar somente as dependências necessárias e odeio redundâncias, adoro a ideia de que uma linha bem escrita de código gera menos comentários a serem escritos. Desmantelamento arquétipo de multivariâncias e multivalências, clareza poética de estéticas tangíveis. Obfuscação e desmaterialidade. Eu sou um homem de contradições e adoro complexidades. Você também sabe disso: simplicidade não é ser simplista, e para saber como tornar algo simples, temos que ter um profundo conhecimento do que estamos fazendo. Creio que parte de minha fascinação pelo mundo da tecnologia se deve ao fato de eu gostar de estar sempre aprendendo, de estar me deslumbrando com as novidades e engendrando novas possibilidades de criar, de gerar, de fazer algo novo. E assim me entrego ao meu destino: aprender, desapegado de tudo que possa me deixar pra trás; leve, pronto para ser levado pelo caminho mais fluído. Sem medo, sem preconceitos, respeitando aqueles que sabem mais e me integrando à um time como se fosse minha família. Programar é mais do que escrever códigos em seja qual for a linguagem, programar é acima de tudo se comunicar com seus semelhantes para gerar valor à empresa e aos clientes. Programar é uma ciência e uma arte que parte do âmago. Tornar-se programador é uma empreitada vitalícia, que sem amor e paixão, não resultará na plenitude almejada, não haverá graça alcançada, e sim apenas mais uma pessoa estressada. Não se esqueça, empenhe-se com o melhor de si, seja qual for o desafio imposto, seja lá qual for a tarefa dada, faça com dedicação, faça com sabedoria e saiba que sempre pode contar com outras pessoas para superar os obstáculos.&lt;/p&gt;

&lt;p&gt;Este artigo foi publicado originalmente na Digital Innovation One.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>codenewbie</category>
      <category>career</category>
      <category>codequality</category>
    </item>
  </channel>
</rss>
