/soft-skills

Summary of the book Soft Skills: The software developer's life manual by John Sonmez

Soft Skills: The software developer's life manual

This is my summary of the book Soft Skills: The software developer's life manual by John Sonmez

This is not intended to be an standalone substitution of the book. If you enjoy these notes, please buy the book and use this repository as a reference.

If you are the publisher and think this repository should not be public, please write me an email to doruk [dot] korkmaz[at] gmail [dot] com and I will make it private.

Contributions, issues, comments and pull requests are welcome :)

Section 1. Career

  • Treat your software development career as a business. Have a business mindset

    • Focus on what service you’re providing and how to market that service
    • Think about ways you can improve your offering.
    • Think about how you can specialize the service you’re providing to serve the needs of a particular type of client or industry.
    • Focus on being a specialist who provides a very specialized set of services to a very particular type of client.
  • Define goals for your career

    • First, have a big goal such as being manager or entreprenuer
    • Then, set smaller goals to reach your big goal
  • Improve your communication skills

    • Read How to Win Friends and Influence People
  • Meet people at the companies you want to get hired

  • Choose your employment option

    1. Employee
    2. Independent consultant
    3. Entrepreneur
  • Specialize in one area of software engineering

  • If you want to get promoted:

    1. Take responsibility
    2. Become visible
    3. Educate yourself
  • Biggest problems of working remotely:

    1. Time management
      • Set a schedule. Regular 9-5 is the best.
    2. Self-motivation
      • Remove distractions
      • Push yourself to start
    3. Loneliness
      • Go out after work
      • Join local software developer group
      • Video call with your coworkers
  • Have self-confidence

    • If you believe in yourself, others will believe in you
  • Hire a professional to write your resume

    • Ask feedback for your resume

Section 2. Marketing yourself

  • Follow Pat Flynn's Be everywhere strategy

  • Channels for marketing yourself

    • Write blog posts
    • Create podcasts
    • Create videos on sites like Youtube
    • Write articles
    • Write books
    • Speak at code camps
    • Speak at conferences
  • Create your own brand

  • Your main goal should be to add value to others

  • Use social media effectively

Section 3. Learning

  • 10-step process

    1. Get the big picture
      • Do basic research on the topic
    2. Determine scope
      • Determine what exactly you want to learn
    3. Define success
      • Come up with a clear and concise success criteria
    4. Find resources
      • Find as many resources as possible for learning
    5. Create a learning plan
      • Find the correct path for learning
    6. Filter resources
      • Figure out which resources are better for learning
    7. Learn enough to get started
      • Get just enough information such as "Hello World" program
    8. Play around
      • Play and experiment on your own
    9. Learn enough to do something useful
      • Learn about your module in depth
    10. Teach
    • Teach what you learned
  • Look for mentors

  • Become a mentor

  • Teaching is the best way to learn

  • Find gaps in your knowledge and fill them

Section 4. Productivity

  • Focusing is very important for productivity

    • Eliminate any possible distraction before starting
  • Plan out entire week in small tasks that take no more than two hours

  • Pick your tasks from this list at the beginning of every day

  • Use kanban board which consists of states like “Not started,” “In progress,” and “Done.”

  • Ignore emails during the day

  • Don't use chat programs during the day

  • Use pomodoro technique

    • Set a goal for number of pomodoris you can do each day
      • First benefit: You should prioritize your tasks since you have limited number of pomodoris
      • Second benefit: You can relax when you hit your target. You don't need to feel guilty anymore
      • Author's goal is 10 pomodori per day
  • Use quota system

    • List all your recurring tasks
    • Set quotas for how many times the task should be done during an interval.
    • Examples quotas:
      • run three times each week
      • get 50 pomodori done each week
  • Don't multitask

    • Batch tasks such as writing emails, making phone calls, fixing bugs, meetings
  • Biggest time wasters

    • Watching TV
    • Social media
    • News sites
    • Unnecessary meetings
    • Cooking
    • Playing videogames (especially online games)
    • Coffee breaks
  • Have a routine

    • Sample routine
    Time Task
    7:00 AM Workout (run or lift weights)
    8:00 AM Eat breakfast (M, W, F: breakfast A; T, Th: breakfast B)
    9:00 AM Get to work and pick most important task to work on
    11:00 AM Check and respond to email
    12:00 PM Eat lunch (M, T, W, Th: bring lunch; F: eat out)
    1:00 PM Professional development time (research, improve skills)
    1:30 PM Work on secondary work, meetings, and so on
    5:30 PM Plan tasks for the next day; record work done from today
    6:30 PM Eat dinner
    7:00 PM Play with kids
    9:00 PM Read
    11:00 PM Bedtime
  • Use the power of habit

  • Decompose large problems into smaller tasks

  • Don't procrastinate. Get in the habit of not delaying, but immediately executing on work that needs to be done.

  • Take action

    • Don't fear of being wrong.
    • Ask always: “What is the worst that could happen?”

Section 5. Financial

  • Learn how to invest in assets instead of spending money on liabilities

  • First person to name a number loses in salary negotiation

Section 6. Fitness

  • Identify your fitness goal

    • Lose weight (fat)
    • Gain muscle
    • Increase strength (not necessarily the same as gaining muscle)
    • Increase muscular endurance (for sports performance)
    • Improve cardiovascular health
    • Become better at some sport
  • Set an achievable milestone such as losing 5 pounds a week

Section 7. Spirit

  • Book recommendations:
    • Self-help and inspirational books
      • The War of Art by Steven Pressfield
      • How to Win Friends and Influence People by Dale Carnegie
      • Think and Grow Rich by Napoleon Hill
      • Psycho-Cybernetics by Maxwell Maltz
      • The Power of Positive Thinking by Norman Vincent Peale
      • Atlas Shrugged by Ayn Rand
    • Software development books:
      • Code Complete by Steve McConnell
      • Clean Code: A Handbook of Agile Software Craftmanship by Robert Martin
      • Head First Design Patterns by Eric Freeman, Elisabeth Robson, Bert Bates, and Kathy Sierra
    • Investing books:
      • The Millionaire Real Estate Investor by Gary Keller
      • Rich Dad, Poor Dad by Robert Kiyosaki
      • No-Hype Options Trading: Myths, Realities, and Strategies That Really Work by Kerry Given