This week, I will be writing a reflection on the “Dig Deeper” pattern. This pattern addresses developers who feel that feel that they only possess a superficial knowledge of some of the technologies, tools, and techniques utilized at their workplace. The problem that arises, in this scenario, is that the developer begins having trouble with maintenance of his or her code because it was written with only superficial knowledge that is likely to be forgotten. I chose to reflect on this pattern because I really like the advise that Oshineye and Hoover provide about how to truly immerse yourself into the learning process and transform your superficial knowledge to deep knowledge. I also agree that having a deeper understanding of the everyday things in your life can be incredibly beneficial in a number of ways.
The primary importance of deep knowledge is that allows you to explain the inner workings of systems you work on, which will distinguish you from colleagues that are unable to do so and show others that you are more proficient in working with that system. I recently had an interview for an internship and many of the questions I was asked were related to my contribution to and understanding of past projects. The recruiter got back to me a short time after the interview and informed me that I ‘knocked the interview out of the park’ and I was offered the position – I accepted! Oshineye and Hoover explain that deep knowledge can also act as a safety net in that you can refer back to how you gained your deep understanding in that area to gain confidence about learning something new.
They recommend that developers ‘dig deep’ into the tools and technologies involved in the project they’re working on, until they have a deep understanding of how those tools and technologies work and why they are being used. One of the ways somebody can dig deep into something is by getting their information from primary sources. Primary sources understand the problems they were trying to solve. Another way somebody can dig deep is by looking at tutorials and guides regarding the thing(s) they want to learn, and asking themselves if there are underlying computer science concepts behind what you they are learning.
I think this pattern will prove to be a useful piece of knowledge in my repertoire. I will try to apply it regularly in my career and I strive to become a person who truly understands the tools and technology utilized in the software I am working on. I have used this pattern and seen it work, first hand, and I hope it will lead me to more success in the future.