Chad Fowler's book is sort of 'Eleven effective habits of great programmers'. Although, many ideas in the book apply to any profession as well.
Main ideas from the book:
1. Have a mentor
A mentor is someone you can trust enough to ask, “What should be different about me as a professional?”
Not only do you create a personal attachment and responsibility to your mentor, but the reverse happens as well.
If my role in a relationship is to help someone, I become invested in that person’s success.
Nobody has to explicitly ask someone to be their mentor.
Your mentor may not even know they are serving that role for you.
2. Find a role model
Think of the person in your field whom you admire most.
List the ten most important attributes of this role model.
Choose the attributes that are the reason why you have chosen this person to be your role model.
Rank those qualities in order of importance.
You have now created and distilled a list of attributes that you find admirable and important.
These are the ways in which you should strive to emulate your chosen role model.
3. Compare yourself with your role model
For each item on the list, imagine how your role model would rate you on a scale of 1 to 10.
Subtract your rating in each row from the importance level you gave it.
That gives you a final priority score.
4. Practice at your limits
Are there dusty corners of your primary programming language that you rarely visit?
- Regular expressions are extremely powerful and tragically underutilized.
- Multithreaded programming
- stream libraries
- network programming APIs
- utilities available for dealing with collections or lists?
5. Got any favorite pieces of open source software? How about trying to add a feature?
Go look at the to-do list for a piece of software you’d like to practice with, and give yourself a constrained amount of time to implement the new feature.
6. A great way to sharpen the mind and improve your improvisational coding skills is to practice with self-imposed constraints
Pick a simple program, and try to write it with these constraints.
You will learn more about what already exists.
7. Pick a project, and read it like a book
Make notes. Outline the good and the bad.
Write a critique, and publish it.
Find at least one trick or pattern that you can use from it.
Find at least one bad thing that you observed that you will add to your “What not to do” checklist.
8. You should read good code
You have to actively copy, widely and unashamedly. This applies to a lot of things, of course. Hunter S. Thompson didn’t just read good books; he typed out Hemingway and Fitzgerald.
Copying builds muscle memory. You get a feel for the nuance and form of the original - the kind of detail that’s lost in a quick scan.
9. Carve out weekly time to investigate the bleeding edge
Research new technologies and to start to develop skills in them. Do hands-on work with these new technologies.
10. Watch the alpha geeks
11. Don't have fixed ideas about things
Rigid values make you fragile.
Please Check Out These Great Collections of Useful Advice:
1. The Gist: 1000+ Big Ideas From 200+ Greatest Business & Self-Improvement Books of all time.
2. Rules for Startups: A Never-Before Compilation of Big Ideas About Startups from 50+ Best Books on Entrepreneurship.
3. Rules for Writers: 200+ Big Ideas About All Aspects of Writing from Great Writers.
4. The Success Manual - 600+ pages of compiled wisdom on 125 important traits, skills and activities.