It seems that most of my friends at Sysnative have all written an account of how they started debugging and why they find it so fascinating. I suppose that debugging is quite an obscure subject which often forms a small niche within online communities like forums and social media websites. The niche does create a stronger and tighter group of individuals, this is fine for small forums, although the problems associated with a niche become apparent when the user traffic for a forum becomes greater. A niche will always fail at meeting the needs of a mass market, and therefore threads are bound to become neglected or postponed.This is a very common problem within forums which have a dedicated BSOD Debugging section, and something which could be resolved if more people were taught how to solve BSOD problems more effectively without the generic troubleshooting spew I often read.
There is typically two types of debugging – BSOD Debugging (people who just solve BSOD problems) and debugging BSODs in relation to programming (driver development for instance). Debugging BSODs in relation to programming is far more common than say debugging for a user, and often this is performed under employment, unlike the its counterpart, BSOD Debugging which is often carried out by volunteers for users. There is people who do help other driver developers in debugging for free, like most of the threads on OSR Online.
Why even begin to learn debugging, or more importantly, how to begin? My first serious interest with computers began, when I was 16 and found a general (quick basics of several different languages) programming book for beginners in the school library. I knew very little about computers at the time, and it may seem that I was taking a huge leap without any consideration of how difficult (and irritating) programming can be. However, the cryptic code and strange technical descriptions were intriguing; functions, variables and stacks? What is C and BASIC?
After reading through the book, and writing several very basic programs, I wanted to learn one particular language – C/C++. It’s syntax was clean and simple, and I had often read that C/C++ was an industry standard for any programming position. I then purchased a few different books on C/C++ and read those.
Since none of my friends had no interest in Computer Science or Software Engineering, I wanted to talk to others about programming and how interesting it was; I joined Sevenforums in March 2012. From March 2012, I learned backwards, I went and learned all the basics about the registry, memory, hardware formats and file systems.
With this basic knowledge and after helping users with what would seem like trivial problems now, I became interested in the mysterious BSOD Debugging section. I used to think that the people helping within the BSOD Debugging were omnipotent, and the experts of the Windows operating system. In truth, I wanted to join this elite group of users which seemed to get considerable attention from other ‘high-ranking’ members to have a good image on the forum.
Thankfully, after I started to learn debugging properly and my knowledge began to build, the “I want to look really smart in front of people” thought had disappeared. I left behind the rep hunting – helping to boost your virtual ego – and saw debugging as an academic interest. I liked the cryptic nature and puzzle solving involved with finding a solution, in addition to the uplifting feeling of helping someone. I began to delve deeper into WinDbg’s commands and extensions, started to use custom WinDbg DLLs and read books/articles about the Windows kernel.
With my knowledge of the operating system and WinDbg growing. I felt confident enough to teach others, and started to write a small HTML-based website which taught debugging. The poor hosting and lack of support meant that my website would need to be transferred to a blogging platform. This lead to the creation of BSODTutorials.
I wanted to teach for two reasons: I enjoy teaching and believe all education should be free; the number of users who actually debugged a BSOD by going beyond some generic troubleshooting advice supplemented with a simple !analyze -v was decreasing. I hated the fact that many analysts or debuggers, were beginning to try and meet the requirements of quantity over quality. These people were becoming lazy and arrogant, adopting the elitist niche expert image and using that to intimidate those asking for help.
Fortunately, when I used Sysnative Forums, I meet a community of wonderful people who shared the same ideals as me – everyone is equal, share knowledge openly and help the user properly. Provide advice to prevent problems in the future, what steps you suggest and why, and look to the root of the problem by going beyond !analyze -v!
One of the nice things about Sysnative Forums, is the lack of reputation system, although there is user titles, these titles are only really used to identify a person’s expertise or interest in a particular area. Furthermore, the user titles can also be used to find “teachers”, the Experts are generally the people who teach, whereas, the Analysts are usually the ones who debug but could also teach beginners too depending upon their knowledge and experience. The no reputation system, most importantly, helps to promote equality within the community.