Are you really a developer?
Now this completely depends on what you define a developer as?
Any person who writes code? And I presume most of you would agree with that.
One of my closest observations is that today's coders are more efficient and less competent. Now these are
two contradicting aspects that are put together. But that is true, its an appalling situation,
most of the coders have less or no knowledge of anything in detail, apart from the syntaxes and
few very commonly faced problems.
I don't say that the normal coder is not knowledgeable, but the knowledge is confined to a tunnel - just the one way in. Learning is limited.
Now, Are you a developer?
In my opinion the normal coder is not a developer, now the definitive reason for that would be lack of design skills etc.
Now, My views, Every coder doesn't necessarily get to work on the cutting edge, future trend setting projects, but yes there is a level of competence that has to be achieved.
Primarily, If a coder is given a requirement 'to implement X on Y' and if the coder searches the internet for 'what is X' or 'What is Y' followed by 'how to implement X on Y' then the coder is perhaps not even proficient enough to be called a coder. Though as I said, since there is an perpetual and quality source of information available on demand, and precise search results of relevance, the coder might just complete the task right on schedule.
The excessive dependence on the internet is a cause of concern, its similar to calculator, for instance, simple addition manually to avoid the over dependence on a calculator. I mean, we know the calculators will not go anywhere, so we can be liberal enough to rely on them, completely.
So we know the internet will not go away but is it good to depend, rather over depend on it. Fine, even if we accept the fact that no coder can know everything and so no matter how knowledgeable a coder is? there are twice as many things that he will still have to ask himself 'What is X?', but there are the learning curves of the coders that are receding rapidly. For instance if there is an error that a coder encounters, which has nothing to do with the syntax or code but is an error in the interoperability of the code with another compatible software, then the coder searches the internet repositories for the restoration of the error.
In that case the coder will have to face every possible error to look for the fix and become proficient enough to be internet independent.
The easy alternative would be to understand the basics of the interoperability of the compatible software, so the coder has at least a faint understanding of the problem and more importantly a logical understanding of the solution when he finds it, instead of a thumb rule approach (Something like the concept of gravity, we all know its occurs but we have know idea why?)
Now again, I wouldn't say that the coder can be expected to know all supporting and compatible soft wares but sure can about some inevitable ones like the Operating system etc. The OS, now this is a software that I think every coder should have some basic understanding at least, only because any piece of code that the coder writes has to invariably interact with the OS.
It is of profound importance to understand the basic and inner workings such as memory, process, storage management, security, file systems etc. And sadly, I don't see many who know much about it. Basically, at least the Kernel, shell etc should mean more than a couple of concentric circles or blocks as they were depicted and taught in the books.
So that is my view on what a developer has to be, its obviously up to personal discretion whether a person thinks of himself as a ordinary coder or a good developer. Learn, learn more, learn the basics perfectly and update yourself consistently. Most importantly, I think the developer has to like what he does, and it would be great if that's what he does best.

Champagne Supernova by Oasis