Last week on Wednesday, I had the opportunity to sit down and have a conversation with Kent Beck for over an hour. Kent Beck is an American software developer, the creator of extreme programming, the author of books like Test Driven Development By Example, and is currently a Technical Coach at Facebook.Our conversation started with a question I like to ask every foreigner I get to interact with: “How are you finding Kenya?” He said he liked it and that he was particularly fascinated with the buildings, something I hear often. As he spoke it hit me that I was in the same room with a man who is a well of knowledge and could influence my career. A man full of passion. A trailblazer filled with the desire to share his knowledge to those coming after him. Here I was, a young female software developer in Africa with just a year of formal programming experience, and there he was, a man with over 20 years of programming, author of different books and creator of software development methodologies and processes that I use in my day to day work.He could be elsewhere, giving a talk at an event, leading a session at Facebook, writing a new book. But he was here, sitting with me talking about his first impression of Kenya.I was curious about him. How he started. What drives him. What working at Facebook is like. What he thinks about the tech and developer scene here, etc., and these are all questions I asked him. But a question I tend to consider quite important at my stage currently is, as a developer, how do you get from one level to another? I like to ask this to anyone ahead of the game in a path I am taking so as to get insights on what not to waste my time on. He looked at me intently and said there are no right or wrong ways of doing things. People learn and advance differently. But he still shared what he found worked for him:
Mentorship is invaluable. I must admit I have never actively sought mentorship until this year. When I had my first mentor a couple of months ago, a developer in Greece with over four years of experience, there was so much knowledge transfer in under 30 minutes in our first session, I immediately became a believer.:)Sitting down/working with a mentor who is of a senior level and solving problems with them will soon have you notice patterns and identify solutions quickly.
As you learn a language/framework to solve problems or implement in your project, experiment with it during your free time outside of work hours. Try to build something different with it. Write an algorithm. Refactor a method. Do something extra and you will find that there is always something to learn.
There are people you will meet online or offline that will impact your journey. Any chance you get, be bold and start a conversation, ask them what they do or answer questions they ask you. Join in on conversations even when you have little to contribute. You never know what will grow from there.
4. Deep reflections.
Go beyond the mainstream when learning something new. Give talks about it. Blog about it. Hold sessions to teach. This challenges you to think extensively and gain a deeper understanding of the subject.
When working on a project that involves immense learning, you can always try to implement it all over again from scratch. Sounds painful and a waste of time but there is value in it. Rebuilding/relearning helps you identify areas you overlooked or simply did not understand the implementation. Gives you a chance to research and deepen your knowledge.
6. Slow down to speed up.
Sometimes, you have to get something done and get it done fast. So you reach out quickly to get solutions and accomplish the task. Other times, you can slow down and research the problem you are having. Why are you suddenly getting an error on server start after installing a new package? Take time to read on the problem and the solutions available. This will make you slower but the next time you encounter the problem you will understand what exactly is happening and you will fix it faster.Having a conversation with Kent was, to say the least, very insightful and thought-provoking. I was particularly curious to know why he remained a programmer for so long and his answer was short and sweet. He said, “I love that aha! moment.” True to that, here is an answer he gave in May this year on the same question: What kept you motivated as a programmer for so many years?I borrowed his notebook and pen to list down the points and when I was done, he signed it:)
Serving as a bridge between the engineering and business sides of an organization, application engineers are highly sought after - and by upskilling in this field, you can set yourself up for an incredibly impactful and lucrative career.