Executando verificação de segurança...
-8

Filosofia Grega para Devs! 🦊

🦊 Visualize esse post completo @rapfire.io

O estoicismo é uma antiga filosofia grega que valoriza a aceitação do que não pode ser mudado, a busca pela virtude no meio termo, a força na perseverança e a tranquilidade interior.

No mundo da programação, esses princípios são essenciais para lidar com os imprevistos, enfrentar bugs complexos, cumprir prazos apertados e manter a calma sob pressão.

1. Aceite o que não pode ser mudado
Um dos pilares estoicos é a aceitação do que não está sob nosso controle. Na programação, nem tudo sairá como planejado. Aprenda a lidar com imprevistos e adapte-se com agilidade, concentrando sua energia na solução em vez de se deter nos problemas.

2. A virtude está no meio termo
Encontre o equilíbrio entre perfeccionismo e praticidade. Busque a excelência em seu código, mas saiba quando é hora de finalizar e seguir em frente para alcançar resultados eficientes.

3. Aprenda com os erros e fracassos
A resiliência vem da capacidade de aprender com as falhas. Encare os bugs e os desafios como oportunidades de crescimento e aprimoramento constante.

4. Cultive a força interior
Fortaleça sua mente e sua determinação. Mantenha-se focado(a) em seus objetivos, mantenha a calma sob pressão e desenvolva a capacidade de superar obstáculos com tranquilidade.

A Filosofia Estoica oferece valiosos ensinamentos para programadores, ajudando-os a desenvolver uma mentalidade resiliente, equilibrada e focada em soluções.

[Ensinamentos Estoicos - Resumidos]
🛠️ Aceite o que não pode ser mudado.
🔥 Encontre equilíbrio na virtude.
💪 Persevere com determinação.
🧘‍♂️ Cultive a tranquilidade interior.

Espero que este post possa te ajudar a aprimorar sua eficiência e qualidade como desenvolvedor!

Visualize esse post no perfil @rapfire.io
by @demirsillva

Carregando publicação patrocinada...
5

Conseguiria dar algum exemplo um pouco mais concreto de cada um desses pontos e que esteja mais alinhado com os processos dos devs no dia-a-dia?

Pergunto isso, pois me parece que você é o autor do texto, e lendo ele tive a mesma sensação que sinto em textos similares que encontro pela internet.

Busque a excelência em seu código, mas saiba quando é hora de finalizar e seguir em frente para alcançar resultados eficientes.

  • O que é excelência? Quem define esses critérios?
  • O que é finalizar? Normalmente, quem define o projeto como finalizado não é o dev, do que você se refere?
  • O que é um resultado eficiente? Pq eficiente e não eficaz?

Me desculpe por isso, mas esses tipos de textos me fazem ter a sensação: "palavras bonitas, bem colocadas nas frases, mas sem aplicação prática pois o texto no fim das contas não tem conteúdo, não apresenta um problema e tão pouco conclusão"

1

Olá @user1, espero que esteja bem contigo. Então vamos lá:

Eu quis passar o conteúdo bem mais enxuto e resumido para não ficar algo extenso e cansativo. Ao mesmo tempo não deixar muito vago. E pode aparentar ser mais útil para iniciante ou pessoas com pouco tempo na área. Ainda estou tentando acertar a dinâmica no TabNews (inclusive é meu segundo post esse).

Mas voltando aos questionamentos levantados:

Conseguiria dar algum exemplo um pouco mais concreto de cada um desses pontos e que esteja mais alinhado com os processos dos devs no dia-a-dia?

Aceite o que não pode ser mudado
Creio que isso acontece com a maioria dos devs, principalmente com quem é mais iniciante. Vez ou outra aparece imprevistos e outras coisas para nos atrapalhar, e muitos acabam ficando presos no problema ao invés de focar em uma solução, e aí pode vir o famoso medo/síndrome do impostor e a pessoa não consegue sair do lugar. É ai que entra a parte de aceitar o que aconteceu, e buscar sair disso com soluções.

Encontre equilíbrio na virtude.

Busque a excelência em seu código, mas saiba quando é hora de finalizar e seguir em frente para alcançar resultados eficientes.

@user1:

O que é excelência? Quem define esses critérios?

Se você for do tipo de pessoa perfeccionista, você entendeu muito bem o que eu quis dizer com excelência no código. Veja a frase anterior:

Encontre o equilíbrio entre perfeccionismo e praticidade.

É você saber por exemplo, até aonde vai uma refatoração. Quando você é muito perfeccionista em deixar um código "bonitinho", você acaba perdendo muito tempo até chegar em um resultado satisfatório para você (isso demora muito mesmo). Por isso menciono em ter um equilibrio entre perfeccionismo e praticidade.

Se você é perfeccionista e está estudando e práticando clean code, agile, e todas essas coisas, tem que saber quando o código já está bom, eficaz e cumpre com o que foi específicado para fazer. Ou seja, faça seu código excelente/robusto/confiável/escalável ao ponto de não tirar sua praticidade. E quem define isso pode ser você também, "Será que meu código está bom?", "será que ele está escalável?"...

Portanto, encontrar o equilíbrio entre perfeccionismo e praticidade significa buscar a excelência e a qualidade em seu trabalho sem se deixar paralisar pelo perfeccionismo excessivo. É saber quando é hora de finalizar uma tarefa, aceitando que ela está boa o suficiente para cumprir seu propósito, em vez de buscar a perfeição absoluta que pode ser inatingível e prejudicial ao progresso.

@user1:

O que é finalizar? Normalmente, quem define o projeto como finalizado não é o dev, do que você se refere?

As vezes ficamos presos alguma task que é tão simples de resolver que nem conseguimos terminar por conta do perfeccionismo (já que é o ponto mencionado no post), o que acaba gerando estresse e um possível atraso na entrega.

@user1:

O que é um resultado eficiente? Pq eficiente e não eficaz?

Eficiente: Ser eficiente significa realizar uma tarefa ou alcançar um objetivo de forma rápida, precisa e sem desperdício de recursos. É sobre fazer as coisas da maneira certa, utilizando os recursos disponíveis de forma otimizada para maximizar resultados e minimizar o tempo e os esforços.

Eficaz: Ser eficaz, por outro lado, significa alcançar o objetivo desejado com sucesso, independentemente de quanto tempo, esforço ou recursos foram utilizados. É sobre fazer as coisas certas, ou seja, atingir o resultado esperado de forma satisfatória e conforme o planejado, independentemente da eficiência no processo.

Dependendo do ambiente de trabalho em que você esteja, você pode ser cobrado para terminar tal tarefa com eficiencia. De contraponto, tem o que faz a junção de ser eficiente e eficaz.

@user1:

Pq eficiente e não eficaz?

No post eu poderia ter utilizado qualquer um dois dois para chegar a mesma conclusão, que é ajudar a desenvolver uma mentalidade resiliente, equilibrada e focada em soluções.

Enfim, não sei se sanou 100% de suas dúvidas e questionamentos. Espero que tenha compreendido o post, se possível até reeler depois desse comentário. Estamos aqui para aprendermos juntos como uma comunidade, desejo o melhor a todos. Vlw!

3

Sugestão de postagem unindo filosofia e programação:

  • Teoria das formas (Platão) e Categorias (Aristóteles) como analogias para classes e instancias (Programação OO)
  • Os debates entre Alan Turing e Ludwig Wittgenstein
  • Monads (Programação Funcional) e Monadas (Leibniz)
  • Formal Language e Literalmente qualquer coisa relacionada a lógica e filosofia da linguagem do final do Séc XIX até hoje (Gottlob Frege, Bertrand Russel, Ludwig Wittgenstein etc... esses caras escrevem textos que são quase compilaveis)
  • Existe um artigo, "The Early History of Smalltalk", que chega a citar muito brevemente Platão e Leibniz.

Dito isso, me incomoda muito ver a forma rebaixada como o estoicismo tem sido utilizado.

O estoicismo é essencialmente uma filosofia na qual a consciência descobre sua própria liberdade e se volta para dentro de si mesma, chegando ao ponto de quase ignorar o mundo externo - ou, como dizem, "Aceite o que não pode ser mudado". Afinal, se tudo o que nós temos é a experiência de nossa consciência individual, o que podemos fazer é lidar com essa consciência e/ou tentar descobrir do que ela é capaz. *

O estoicismo é riquíssimo em várias áreas, INCLUSIVE NA LÓGICA. Sim, aquele "If", "And", "Or", "se p então q", a lógica de predicados com a qual os programadores lidam todos os dias. Tudo isso passa pelo desenvolvimento do pensamento estoico, que tem uma influência pesada da lógica aristotélica.

e complementando comentário do @user1

Conseguiria dar algum exemplo um pouco mais concreto de cada um desses pontos e que esteja mais alinhado com os processos dos devs no dia-a-dia?

Dado que o "estoicismo de internet" muitas vezes só se resume a "foque em fazer o seu e não reclame", a resposta é NÃO, pois isso é tão útil (e vazio) quanto postar "o sol brilha, a chuva molha e o vento venta".

image

* isso é o que eu me lembro dos comentários do Hegel sobre estoicismo, para mais informações: link

1