From the time I had to help other developers, had interns, lead development team, became the subject matter experts, did proctoring in workshops… I have always been that kind of guy: the kind of guy who don’t give the answer. If you have a little quick question, and I know you did your homeworks, I’ll do. If not, or if it’s a bit more complex, don’t count on me to give you the full answer: you’ll get some guidances on how to achieve your goal. Hate me, and hate me with passion, as it’s how I rule!
Why I’m doing this? Because I want you to do more than to be successful in your project. I want you to be successful, and to learn at the same time! I don’t think you can learn if I give you every answer, but I’m a big believer in helping people to help them to find the answer. If it’s something simple, I’ll give you the right thing to do. If it’s a bit more complex, I’ll point you to the right resources, the right project sample, the right video to watch, and I’ll also let you know about the road you have to take to get the result you want. If you search a bit, hit some wall, try, and fail, you’ll remember the solution you found. It’s my style of doing thing, but I learn like this, and from my experience, it’s the way to go.
When I started as a developer, I was fortunate enough to be part of the team of more senior people: they didn’t have much more experience than me, but they knew the tools we were using, the projects we were working on, and the programming languages that were used to build the softwares. At the beginning when I was asking questions, they were giving me the right answer, and sometimes, they even did it in my place. The result? More than often, I was asking for the same question. At some point they started to point me in the right direction without telling me the exact solution. It’s how I learned how to fix those issues…
Just this weekend, I have been in a students hackathons with some students from SUPINFO, Université de Montréal, and Concordia. I remember two specific questions: how can I implement an efficient navigation system in Windows 8 using WinJS, and how can I manage to play with pixels from images in my projects using HTML5. For the first one, I gave him some insight about the implementation of navigation inside of Windows 8, and point him to some sample applications he can check to understand how it’s done. He came back to me, told me that it was not an easy task, but was clearly satisfied about what he did. My guess is that he’ll be able to do it again next time, without any help! For the second example, I propose him to check the canvas element. He came back to his place, read some documentation, implement the solution, created an amazing application, and won one of the hackathon prizes! It may have taken a lot less time if I was writing the code for him, but the satisfaction, and the learning process wouldn’t be the same. I strongly believe that these two students learn a lot more by finding themselves the right solution.
How about you? Are you the kind of person who believe we learn by doing mistake, and doing things by ourselves? Of course there are moments where I just don’t want to learn something (as an example, how to fix a plumbing problem), or I need things to get done as soon as possible, but when I’m trying to learn something, I feel this is the right approach! Share your thoughts!