Thinking in abstractions is considered to be one of the key
traits in modern human behavior. Abstraction uses a strategy of simplification,
wherein formerly concrete details are left ambiguous and vague.
In computer science, abstraction is the process by which
data and programs are defined with a representation similar in form to its
meaning (semantics), while hiding away the implementation details.
An abstraction can thus encapsulate each of the levels of
detail with no loss of generality. But perhaps a detective or
philosopher/scientist/engineer might seek to learn about something, at
progressively deeper levels of detail, to solve a crime or a puzzle.
But we often miss out digging on progressively deeper levels
of details at times of need.
We should cultivate a habit of trying to dig at least a
level deeper whenever faced with a puzzle.
We should not hesitate to press the F12 on any screen be it
your favorite browser or visual studio. Look into the call stack and if none
helps enable
source stepping and check what from .net framework is not agreeing to your
code. A feature,
which allows you to step into .net source code has existed for visual studio
for quite some time now.
When working on a web application don’t stop just at looking
at your code in visual studio, study your requests and responses in fiddler to get a clear picture of
what is causing the problem from webserver to your browser.
To relate an incident where digging deeper helped. Judge
Alsup in the Oracle vs. Google case learnt java programming to be knowledgeably rule on the subject.
Judge: We heard the testimony of Mr. Bloch. I
couldn't have told you the first thing about Java before this problem. I have
done, and still do, a significant amount of programming in other languages.
I've written blocks of code like RangeCheck a hundred times before. I could do
it, you could do it. The idea that someone would copy that when they could do
it themselves just as fast, it was an accident. There's no way you could say
that was speeding them along to the marketplace. You're one of the best lawyers
in America, how could you even make that kind of argument?
Oracle: I want
to come back to RangeCheck.
Judge: RangeCheck! All it does is make sure the
numbers you're inputting are within a range, and gives them some sort of
exceptional treatment.
If the judge had decided to stay ignorant, he would have
given a judgment similar to the Apple
Samsung judgment.
Before we conclude I am not saying we should all be
repairing our computers and bikes ourselves. But we should never hesitate in
checking our carburetor; tracking your power supply and software glitches
before calling the expert.
No comments:
Post a Comment
Add a comment