As a follow up for the post before, I would like to make you think of the following:
Are you a Good or a Great developer?
If you do not know what is the difference between the two above, just make some time and watch the presentation bellow:
http://www.infoq.com/presentations/Good-to-Great-Developer-Chris-Hedgate
These things you hear in the presentation are not news, or at least they should not be, but maybe they will make you think a bit on the way you work…
I have to say that most of the time is really (I mean extremely) hard to convince somebody to “please, at least try to” leave a clean code after you. And by clean code I mean not nicely indented code, but nicely structured (architectured ) code. I have seen nicely indented code which was totally unreadable…
I still cannot believe how come people with ~10+ years of java development experience have no idea what MVC means, or what a good frameworks should look like. I would not like to speak about Dependency Injection or OSGi bundles… I have talked to developers who have completed a huge Eclispe RCP project and still have no idea what OSGi is… Ad you know what? I would bet that most of them would answer the above question with: I am a Great developer.
Well guys, I have news for you:
YOU ARE NOT and if you do not change the way you think, you will NEVER BECOME.
You should start by identifying in which stage of competence are you:
-
- Unconscious incompetence
- The individual neither understands nor knows how to do something, nor recognizes the deficit, nor has a desire to address it.
-
- Conscious incompetence
- Though the individual does not understand or know how to do something, he or she does recognize the deficit, without yet addressing it.
-
- Conscious competence
- The individual understands or knows how to do something. However, demonstrating the skill or knowledge requires a great deal of consciousness or concentration.
-
- Unconscious competence
- The individual has had so much practice with a skill that it becomes “second nature” and can be performed easily (often without concentrating too deeply). He or she may or may not be able teach it to others, depending upon how and when it was learned.
(snippet from http://en.wikipedia.org/wiki/Four_stages_of_competence)
And for each stage there is something I would recommend:
- Unconscious incompetence: Find some people who can inspire you to learn
- Conscious incompetence: Attend to Trainings to learn the skills you need
- Conscious competence: Practice to become even better
- Unconscious competence: Teach others, inspire others, reflect the knowledge
Until next time
Happy coding
N