Mentoring Arun : Volume 2

I had my second mentoring session with Arun yesterday.

We first talked about People Management and how to have potentially awkward conversations with co-workers on topics ranging from company culture to internal mentoring and work expectations. I pointed Arun to No Rules Rules, especially the parts of the book that talk about company culture and how it is important for everyone to feel like they are working with the best people. I feel incredibly lucky working at Enthought because I'm surrounded by people smarter than me every single day and I learn a ton from them. I discussed this book with my co-workers at our internal reading group and found it to be very stimulating. This felt especially important given that Arun is working at a very small startup and it isn't inconceivable that he will see the company grow 10x.

When it comes to awkward conversations around internal mentoring, I pointed him to Radical Candor, another book that I had discussed with my co-workers at our internal reading group. I like the central thesis that the book/author conveys. It isn't easy to have radical candor but it is extremely important if you want your co-workers and your company to succeed. I mentioned that this isn't easy and that it requires a lot of courage and practice. I asked him to pick small awkward conversations on a regular (weekly) basis to get himself used to having such conversations. If you don't have time to read the entire book, watch the O'Reilly talk that preceeds the book instead.

Arun then asked me about testing and why it is important. This time, I threw Test-Driven Development: By Example by Kent Beck at him, a classic text for software testing. Given his scientific background, I mentioned how we (at Enthought) can think of testing as writing a short scientific paper. We establish what the experimental setup is, perform the experiment, record the results and verify that the results match what we expect from our theoretical models. This maps nicely to the Given/When/Then way of writing tests i.e. Given a set of conditions/When the software is used/Then verify that the expected results appear. We talked about regression-testing being a part of testing overall. Tests, like most useful things in life, take months to deliver their value so there is a certain blind trust that he needs to have in this concept and just continue writing tests and hope that the results will appear in time.

Given Aruns interest in understanding CPython internals, I pointed the recent book on CPython Internals by Real Python. I haven't read this book myself but I've heard good things about it so this might be a good place to start if he wants a structured/guided learning path to CPython internals. If you have read this book and don't like it or if you know of a better resource, please tell me about it. I pointed him to the list of Python-specific resources that I have collected on my website, which he might find useful to understand parts of CPython. I strongly recommended that he read Fluent Python because an engineer is only as good as the tools he uses and his understanding of the tools and Fluent Python is an excellent resource to understand Python better.

Finally, we talked about career progression and built up career capital. The Rethinking the Developer Career Path talk by Randall Koutnik heavily shaped my thinking on the topic of career progression. I love his breakup/ladder of Solution Implementer to Problem Solver to Problem Finder.

Taking a step back, I was surprised at how many relevant resources I was able to recollect and point him towards. It validated the time I have spent over the last few years reading further on these diverse topics.

Popular posts from this blog

Farewell to Enthought

Arxiv author affiliations using Python

Elementary (particle physics), my dear Watson