How to become a good developer?
I was asked through this blog how to become a good developers. I think this is the question that many beginners want to ask. For every question there are throusands of answers. Okay, there are many answers like these but these ones are mine. :)
- Attitude. Most important thing is attitude. To get strong you have to get used with an idea that for every damn day you should learn many new things. You have to understand that you are part of world that changes very fast and the only way to survive it is to study, study and study again.
- Read the books. There are many great books written guys who have long experience on the field. Also there are many great books written by industry leaders. And, of course, there are too many books to read them all. Select books carefully so you don't waste your money. Read the books you got and think hard about what you have read. Is it all like this or do you have another opinion? How can you use new knowledge in your current or future task? What you made wrong in past tasks?
For guys who find books to expensive for them - there are public libraries where you can find books. Also you can check out Google books system and search for free e-Books. There are many great e-books available in internet and they are free.
- Code! Code! Code! To get a good practice write as much code you need. Try to be each time more effective than before. Study from experiences you have. Analyze the mistakes you made last time and try to find better ways how to solve these problems. Try out different features of language and platform you are using. Using different features of language you should usually write code using different patterns. This way you are improving your coding skills and also study many new things you didn't knew before.
- Try out tools and utilities that make your work easier. One part of your work is knowledge about how to make things work. The other part of your work is your development environment. Find out what features your IDE provides and look for utilities that extend it by great fetures you don't get out-of-box with your IDE.
- Try out new technologies. To stay on the track you should know about things that happened today or that will happen tomorrow. Take a time to discover new technologies and study new theories. Think about how you can use these technologies and in what context. Also try out how new stuff works and try to create something using it.
- Look how other guys develop systems. Take a look at open-source project to see how other guys build their systems. Go through the code and try to understand why they decided to do things this way and not the other. Of course, you can always communicate with authors of system if you think you have good advice how they can make their systems better.
- Everything that shines is not gold. Although there are industry leaders and veterans and their opinions matter they are just human beings like you and me. And they make mistakes - just like you and me. Of course, they are genial source of information but always use your own brain to rate the information you got.
There are also online information sources like discussion groups, chat rooms, forums etc. Before you believe what is said there - try out. If somebody thinks that this or that thing goes this way then don't follow these opinions blind. Try out if it is this way or not. But always use your brain to analyze information.
- Participate in communities. There are many communities for Microsoft technologies. You can belong to any open community you like. Communicate with people, help them to solve their problems and ask help if you are in trouble. Also be a member of local technology communities.
- Visit technology events. If it is possible visit technical events. There are many regions where are local .Net groups (by example INETA etc) wo organize events. Also try to visit events like TechEd and MIX. These events are valuable sources of information about new and coming technologies.
Okay, these are my nine points that I would suggest if somebody asks me how to become a good developer. If somebody feels like this list needs corrections then please drop some lines to comments sections :)