🇧🇷 🇵🇹 Os 4 Ps da Engenharia de Software: Um Framework para crescer na Carreira em TI
Demorou 1 ano e meio, mas estou muito feliz de disponibilizar hoje a tradução em Português do meu artigo com os meus maiores aprendizados dos últimos 15 anos trabalhando no Brasil e EUA.
🧵🧵🧵
Foram muitas horas, e muitos finais de semana nos últimos 3 anos trabalhando nisso.
Compartilho aqui algumas das minhas melhores ideias sobre como pensar de forma ampla e profunda sobre crescimento de carreira como Pessoa Desenvolvedora, Tester, TechLead ou na Trilha de Gestão.
Esta é uma versão expandida da apresentação que dei no The Conf em 2019 com um novo título: Os 4 Ps da Engenharia de Software: Um Framework para crescer na Carreira em TI.
Feedback crítico é muito bem-vindo.
AGRADECIMENTOS:
Na tradução desse artigo gostaria de agradecer ao @fpsaraiva por todo o esforço de revisão e adaptação do texto em inglês. Trabalho sensacional!
Aproveitando, gostaria de agradecer ao @hkakutalua pelos questionamentos e por tentar me ajudar a remover um pouco do meu 'Bias de Brasileiro' e lembrar que Português é maior do que o Brasil e América do Sul e também pelos esforços de revisão da tradução.
Finalmente, também gostaria de agradecer ao @lucasestevaods e ao @davidsonfellipe pelos esforços de tradução inicial ano passado - na nossa época de glória do Clubhouse.
E não poderia deixar de mencionar o meu conterrâneo de Tubarão, SC @guediz por me lembrar da importância da tradução e de como a publicação da versão em Português poderia ajudar muita mais gente no Brasil.
Muito obrigado @guediz pelo comentário inspirador lá em 2020 quando publiquei a versão em Inglês e por me lembrar que a lingua inglesa ainda é um grande problema para a grande maioria da comunidade de TI no Brasil consumir conteúdo.
Genuinamente espero que esse artigo ajude muitas pessoas a crescer em suas carreiras em TI, não só em Desenvolvimento, mas também em Produto, Design, Vendas e várias outras áreas relacionadas a Tecnologia.
The Counter-Intuitive Nature of Software Engineering & Product Development, A Thread:
I had a 1:1 meeting with @jgehtland a couple of weeks back, and I'm not sure exactly how we landed on a weird topic and a message behind a famous "Programming T-Shirt."
🧵 🧵🧵
Funny enough, when Justin was trying to remember the exact T-Shirt's quote during our call, he said the following:
--> "Hours of Typing can save you Minutes of Thinking." instead of "Weeks of Programming can save you Hours of Planning."
Close enough!
He also mentioned a great quote he learned since he started to work with Brazilians at Nubank:
The number one thing is to define what a Staff+ Engineer is:
• 1- I believe this person knows how to help, motivate/encourage/empower/and lift other people. It’s a positive influence in the organization.
• 2- This is a person who knows how to make an impact beyond their own individual contributions. It is someone that build Bridges & Paving Paths to Enable Effective Collaboration & Execution.
Enough about Behavioral interviews, let's talk about some practical tips to help you on Coding Interviews:
Solving Algorithm & Data Structure Problems
The best ideas from an old & almost forgotten book: Programming Interviews Exposed.
(from some old notes of mine from 2015)
Solving Coding Problems:
When you begin solving a coding problem, don't start writing code immediately.
First, make sure you completely understand the problem. It may help to work through a simple, concrete example and then try to generalize the process to an algorithm.
When you're convinced you have the right algorithm, explain it clearly. Writing the code should be one of your final steps.
The Basic Steps:
The best way to solve an interview problem is to approach it methodically.
I talked about this multiple times, the bad answers come in all kinds of structure, shapes and size, but the good and great answers all have many things in common: a clear and logical structure & framework is the number one.
I wrote about this on my very first article on Behavioural Interviews and I still see folks completely messing the super predictable questions answers.
Yet another great interview passage, this time from @Lethain on:
The Core Challenge of Engineering Leadership Roles & The Three Most Common Leadership Pitfalls of Staff+ and Director+ People.
<Link at the end>
🧵🧵🧵
Brian: People should be playing to their own strengths and what is really important to the organization at the time. But some common pitfalls you identified in the book might blow people off course, maybe make them less effective in the role. Could you go through those for us?
Will: I think one of the core challenges of leadership roles is that, early in a career, you know the most important thing is getting this migration done or launching this product feature. Someone will tell you that.
Tech Lead Journal Podcast interview with @laffra & Google's Project Tempo.
My Three Favorite Passages:
1️⃣ The Importance of Communication
2️⃣ The Controversial Rule about becoming a Senior Engineer:
3️⃣ What Do the Most Impactful Engineers do?
🧵 🧵🧵
1️⃣ The Importance of Communication for Engineers [00:13:18]
Henry Suryawirawan: [00:13:18] I like the way that you said that we should probably think about reversing the hard and the soft. I kind of resonate (with) that as well. Having been an engineer all my life, as well, sometimes yes, communicating is hard.