The Passionate Programmer by Chad Fowler
- Choosing your market
- Lead or bleed - makes the argument to find the next technology going out of style and be the person who gets the new technology to talk to the old technology
- Supply and demand - exploit market imbalances or find the places where you can compete at the high end of the market
- Coding don't cut it anymore - you need to understand your business
- Be the worst - be the worst guy on the team (and therefore learning from everyone else who is better than you)
- Invest in your intelligence - be curious
- Don't listen to your parents - take risks and experience new things
- Be a generalist - software development doesn't follow a nice manufacturing process; there is real value in people who can see across the different dimensions of an organization
- Be a specialist - this doesn't mean just not knowing about other things
- Don't put all your eggs in someone else's basket - don't build your career around a single technology that someone else controls; makes the point that if you must focus on a technology, focus on an open source technology
- Love it or leave it - find the thing you want to learn about just for fun
- Investing in your product
- Learn to fish - take the time to learn to be self-sufficient
- Learn how businesses really work - learn basic business finance and how you contribute to P&L
- Find a mentor - particularly helpful for guiding what you should invest your learning time in
- Be a mentor - you learn best by teaching (and writing)
- Practice - be fluent with the tools of your language, practice with additional fake constraints to stretch yourself
- The way that you do it - improve your software writing process
- On the shoulders of giants - take the opportunity to learn from open source projects
- Automate yourself into a job - be solution-centric instead of technology-centric
- Executing
- Right now - treat your project like a race to get it done with speed
- Mind reader - work on the things that the organization (or your boss) needs but doesn't quite know they need yet
- Daily hit - aim for a noticeable accomplishment every day (or week)
- Remember who you work for - align your work with your managers needs
- Be where you're at - focus on the present and do that well
- How good a job can I do today? - work is boring if we can't be creative and aren't challenged: find ways to add these to your boring tasks
- How much are you worth? - think in terms of how much value you create for your employer
- A pebble in a bucket of water - remember that you are replaceable
- Learn to love maintenance - maintenance is important, undervalued, and an opportunity to really learn the business logic of the organization
- Eight-hour burn - work relentlessly for 8 hours; we are more efficient with scarce resources
- Learn now to fail - raise issues early, take the blame, offer solutions, and ask for help
- Say no - say no instead of not delivering
- Don't panic - take a step back to gain perspective to keep from panic if
- Say it, do it, show it - publish plans and deliver
- Marketing
- Perceptions - perceptions matter, so learn how to manage them for the various relationships at work
- Adventure tour guide - remember that people who don't know how to program are on average just as smart, so learn to communicate in a way that makes them comfortable and not feel dumb
- Meet rite reel nice - writing skill is important: you are what you can explain
- Be present - people are comfortable with personal interaction, so make an effort to walk over and talk to them or pick up the phone
- Suit speak - be able to explain the business purpose for what it is you are working on
- Change the world - have a mission
- Let your voice be heard - publish and speak to get your name out, and start sooner than you think you're ready
- Build your brand - build awareness and positive association
- Release your code - contributing to open source software builds your name and demonstrates your passion for software development
- Remarkability - make remarkable things
- Making the hang - reach out to the people you admire in your field, hang out with them, and learn from them
- Maintaining your edge
- Already obsolete - think of time learning a technology as an investment that depreciates quickly; think ahead to the next technologies
- You’ve already lost your job - the job you were hired for no longer exists
- Path with no destination - development (the path) is the end, not just the deliverable
- Make yourself a map - you need a personal career map to know where you are heading; think about the story your set of skills tells
- Watch the market - similar to the stock market, keep an eye on the market to know what personal development investments you should make
- That fat man in the mirror - it’s hard to notice change when you see it every day; take the input of others to understand where you are in your career and uncover your blind spots
- The south Indian monkey trap - value rigidity from Zen and Motorcycle maintenance: try to avoid value rigidity when it comes to which technology to use for a particular task
- Avoid waterfall career planning - be agile and think in terms of constant change
- Better than yourself - make today better than yesterday
- Go independent