Searching is a speed
All information about a programming language or a project can’t be stored in one’s head.
By searching, a developer can expand his virtual memory onto anything he can search well.
Quick finding is helpful when developing, and priceless when debugging a critical error from production.
Let’s get started to practices around searching.
Some unknown client reported a mysterious bug, and after a short debate, your company figured out that they are indeed supporting that project. You are given access to the code repository and a short bug description. As you think, the only and original developer is long gone.
My trick to avoid going back and forth in a search for an entry point, or long step-by-step debugging, is to search for an unique phrase related to the event.
If the error message sounds as custom one, search it. If some phrases of the UI look original to this only part of the software, search for them. Pick long strings to be searched to narrow down results.
For web applications it can be easier, as the URL is a starting point, and Inspect element is useful as always.
You may find the place you want in a matter of seconds. At worst, you will get familiar with any possible references with the place where the bug occurred.
Then just follow routine debugging – set breakpoints, throw suspicious data on output etc.
If your custom error message happens to reside in the database, just search the database. Instead of figuring out which table, or maybe in the stored procedure, simpler would be just search database objects first, and the data second.
To be able to do that, the developer should be aware of a search database tools. Or have some scripts prepared.
If there are no tools or scripts, the solution is to script the database objects and data into text. In SQL Server Management Studio this can be done via “Generate scripts” feature. Right click on the database, Tasks -> Generate Scripts, and in Advanced options choose schema, data or schema and data.
If there is searching, Google (search engines) must be mentioned. Using it effectively is a key. Have a look at these tips by Google.
Remember, that most results around programming probably will be in the English language. When having an error in a foreign language, sites like unlocalize.com or finderr.net may help.
If possible, using an IDE in the English language will be simpler.
Useful tip doing research (e.g. about specific WCF security configuration) is saving all related links/summary into a text file, grouping links by categories. It will be a time saver when the issue eventually come back.
Also, clearing browsing history may backfire. The best option would be using one browser for the development searches and another for other stuff.
To have better productivity and be prepared for searching, practice must be applied.
Searching and filtering can take place in the IDE for code and database elements, in the source control repository, in operating systems (grep / findstr), in text editors.
Regex will be helpful as well. Having mastered searching in those applications, you will be prepared for many scenarios in a software development on a day-to-day basis.
Again, searching itself is a broad topic, and this post is just to indicate proper importance.
Searching combined with keyboard shortcuts is a powerful weapon in the arsenal of productivity.