The Passionate Programmer - Soup up your career
I just finished reading a great book called The Passionate Programmer: Creating a Remarkable Career in Software Development written by Chad Fowler. It's primarily a collection of tips, ideas, and life philosophies about how to improve your career as a programmer by knowing what you really want, increasing your skills, and being passionate about what you do.
I highly recommend reading the whole thing, but these are the points that I deemed to be most applicable relevant:
Choosing Your Market
Just like choosing the key features of an application, you need to choose the key skills that you will possess as a passionate programmer. Consider developing your programming skills in an area that is less popular (Clojure instead of Java). This entails some risk because you don't know if your skills will become obsolete but it can mean that you get paid a lot more because there are fewer people who can do the work. Completely master a particular topic, but also understand the big picture.
- Be the worst - Surround yourself with people who are better than you so you have the opportunity to learn and improve instead of stagnate
- Invest in your intelligence - Spend your time learning about programming. A lot.
Investing in Your Product
Master the industry (real estate, health care, etc.) that you are working in. Understand all the ins and outs and practice your butt off. Program something that's not useful just to get better at doing it (if you're always doing something useful, you are usually are willing to take shortcuts to reach the goal). Study outstanding open source projects to see how things are done.
- Find a Mentor - The benefits of having a mentor to help you learn the ropes far outweighs any cost needed to do so. Get out of your comfort zone if you have to.
- Be a Mentor - It's just how our minds work. You learn it best when you teach it to someone else.
Executing
Live in the moment. Surprise the people around you by knowing what they are going to ask you to do. Learn to prioritize and learn from your mistakes.
- Daily Hit - Make sure to accomplish one cool things everyday and recognize it.
- Remember Who You Work For - Businesses need to make money to survive. Make sure you are clearly helping to do that.
Marketing... Not Just For Suits
You career is dependent on the perceptions of others. Start building a brand that people will recognize and trust. Improve your communication in writing and speech.
- Suit Speak - Make sure what you do has a specific purpose for your company.
- Let Your Voice Be Heard - Become an expert in your field and then write articles or books about it. Getting a job as a Python programmer is easy when you show the interviewer that you have written a book about it.
Maintaining Your Edge
Plan for constant learning. That's what the programming field is all about. A Passionate Programmer is constantly keeping his skills up to par and learning new technologies. Learn what you can from working at a large company, but test your limits as an independent contractor.
- Make Yourself a Map - Plan out how you are going to develop your skills to accomplish a specific goal
- Avoid Waterfall Career Planning - Goals are essential but your career needs an agile development method.
Overall, the book is a great "kick in the pants" if you want to improve your career and become a passionate programmer instead of a platonic typist.
