This series is an excerpt from the book soft Skills. The book has a reputation, but after reading it, it’s not that good. One is the content of water, too much nonsense; Mixed in with a lot of cliched motivational paragraphs and some flaky advice (financial management).

Still, after refinement, the book contains some valuable information that can be considered common sense for programmers. It’s helpful for people who are just starting out, or who are planning to be programmers.

There will be four articles in this series, each on the themes of career, self-marketing, learning, and productivity. I will extract valuable parts of the book, rewrite and expand as appropriate. Feel free to comment to add information or to correct misconceptions.

1. Never do what everyone else is doing

  • Rule no. 1 in career management: Programmers should actively manage their career. “The company owns the job, but the career belongs to you.”
  • When you dive into writing code for a living, you’re no different than a blacksmith running a blacksmith’s shop in a medieval town.
  • Think of yourself as a company, not a worker. Think of your employer as a client of your software development business. Your job is to sell the services you provide.
  • Focus on becoming a specialist who specializes in providing holistic services to a specific type of client. You can only get really good work if you really focus on one type of client.

2. You must set your own goals in life

  • For the sake of comfort, we tend to follow a well-laid path. Lack of a specific understanding of life goals. “I fear not death, but discomfort.”
  • Big goals need to be clear, like where you want to be in 5 or 10 years and where you want to be. It’s best to write big goals down on paper and keep them somewhere you can see them every day.
  • Work backwards to break your big goals down into smaller yearly, monthly, weekly, and daily goals.
  • Review and adjust goals regularly.

3. Choose a career category

There are usually three options:


Typically, you’ll want to work full-time to build strength and resources before you try freelancing or starting your own business. Make sure you’re prepared, such as building up a nest egg that will last you years, in case you don’t have a steady income.

You can start the business you want in your spare time and wait until you can generate a steady, livable income from that business before you consider quitting. When using this approach, make sure your employment contract doesn’t stipulate that all of your work (including your free time or use of company resources) belongs to the company, and consider consulting an attorney if there is one.

4. Choose a technical direction

  • For freelancers/entrepreneurs, there is often a niche market with potential. This is also true for choosing a technology stack, trying to have expertise (specialization) in a particular direction, such as Python development, Python Web development, and Python-specific Web framework development with increasing degrees of specialization.
  • The rule of specialization is that the deeper you specialize, the fewer potential opportunities you have, but the more likely you are to get those opportunities and the fewer competitors you have.
  • Try going in both directions and choose the intersection of the two as your career direction. For example, teachers who can Excel, guides who can speak English, and lawyers who can program are more competitive than ordinary teachers, guides and lawyers.
  • But at the same time pay attention to not only a certain language and professional direction, otherwise it will be eliminated because of industry changes. Start with specialization and branch out.
  • Avoid getting caught up in a technology craze that will take you further in your career. Don’t try to find the best language, framework, operating system, and text editor, and don’t waste a lot of time arguing about it.
  • Keep an open mind about technology, rather than sticking to what you already know and claiming it’s the best, and you’ll find more opportunities open up for you.

5. Choose a company


To figure out what kind of company you’d be a good fit for, talk to employees at the target company before you start work.

Crack the interview code

  • Making the interviewer feel good about you will help you pass the interview. There are many ways, including:
    • Build your personal brand in advance
    • Get to know the target company’s employees in advance
  • You’ll be more likely to get an interview if you include a reputation endorsement from a reference.
  • Find ways to network with people within the company, such as attending local development groups and industry conferences, networking on forums, IM group chats, social networking sites, and GitHub.
  • During the interview, focus on proving that you are an employee who can do things on his own without supervision. You must also prove that you are technically competent for the job; It’s also best to convince the interviewer that you’re capable and won’t be stopped by obstacles.

7. Get a promotion

  • The most important thing you can do to stand out in any company is to take on more responsibility.
    • The best search for opportunity is where no one wants to go.
    • Become a mentor to others on your team and build a reputation.
    • Increase your exposure: do internal sharing, voice opinions, solve technical problems.
  • On office politics: While you can’t avoid it completely, you should at least know what to expect, which people to avoid, and which ones to never cross paths with.
  • If down-to-earth efforts still don’t get you promoted, consider changing jobs.

8. Become a professional

Becoming a professional can help you get a better job and more clients:

  • Abide by your principles.
  • Focus on getting the job done right.
  • You’re not afraid to admit you’re wrong.
  • Continuous and stable.
  • Accept responsibility.
  • Improve yourself and rise to the challenge, not lower your standards. Once you cross the line and compromise, it’s hard to go back.

9. Go freelance

You usually work harder for yourself than you do for someone else, but enthusiasm usually doesn’t last long and you don’t actually work as many hours a day as you think. A lack of supervision can lead to prolonged procrastination and laziness, for which you need to:

  • Learn time management and establish a set of daily principles.
  • Motivate yourself and develop self-control. Try to eliminate distractions and temptations and keep them out of your work environment.
  • Get used to feeling lonely and get out there. Go to developer gatherings or industry conferences and talk to other people.

The best way to get customers: Inbound marketing. Simply put, it means giving something of value for free. Provide valuable content (mostly free) related to your services through blogging, video and podcasting, and speaking engagements.

You should be charged twice the hourly rate for a full-time job, since you usually have to pay your own taxes and buy commercial software. If your work adds more value to the client (enhancing their business or saving a lot of money), you can price it based on the value you bring. Be sure to explain why your service is worth the price.

How to create your first product:

  • Don’t build the product without first finding the customer.
  • What kind of problem a product is trying to solve, and who the target audience is, must be understood before the product is created. Talk to your target customers and test your ideas.
  • The easiest way to do this is to build your presence in your niche ahead of time by creating blogs, speaking engagements, etc.
  • Verify your product by testing the market to see if your potential customers are really willing to pay for it. Such as holding a presale, offering discounts to customers who pay in advance and seeing how many people are willing to pay.
  • If it’s a startup product, start small, focus on core functionality, prototype and launch quickly, get feedback and keep improving, and get out if the idea doesn’t work. You may need to repeat this process several times to create a successful product.

10. Become an entrepreneur

  • Entrepreneurship has huge potential rewards, but it is also extremely dangerous.
  • Most startup founders have what they call an exit strategy, like:
    • Companies are acquired when they grow to a certain size
    • listed
  • When you have a great idea, technology or technical partner, you should also have unique intellectual property or industry resources to ensure that your product can’t be quickly copied by big companies. And your project should have the potential to scale up.
  • With the exception of bootstrapped startups with cautious strategies, most startups want outside funding to grow quickly. Try applying to the incubator program at the beginning.
  • The first major milestone for a startup is getting its first round of funding (seed funding), which angel investors typically give to early-stage entrepreneurs, known as seed/angel rounds. With angel funding you can hire people and start expanding.
  • After the seed funding runs out, if your idea is still viable, you get A first round (Series A), which is where venture capital usually steps in (VC/VC). After that, most startups go through several rounds of funding before becoming profitable or being acquired.

This article was first published on the public account “Li Hui’s Code Kitchen”.