"Programmer's Self-cultivation" (Chen Yihe) reading notes

Chapter 1 on career

A few inspirations for young programmers:

  1. know yourself correctly

  2. Work harder than the average person (will be your biggest competitive advantage)

  3. Building personal authority at the right time

  4. follow best practices

  5. Be curious and open to exploring new things

  6. Communicate with people without code

  7. To work for good people

  8. Living (having a disciplined and regular life), Sleeping (getting enough sleep), Traveling (discovering and feeling new)

  9. Believe in your own talent and creativity

The career experience of those programmers with hindsight:

  1. Your salary has nothing to do with workload

  2. do one thing consistently

  3. The only constant is the change itself (improving the ability to learn fast, the 10,000 hour rule)

  4. Your Reputation Matters (Develop Rigorous Habits)

  5. Understand the meaning of communication (communication with users)

  6. Your right brain will be the key to your success (non-technical abilities)

  7. Don't say easy or impossible

  8. You shouldn't always go it alone (teamwork)

  9. Your ability is obvious (the ability of a programmer comes from a lot of programming practice, as well as the ability to continuously learn and think hard)

How companies can recruit a reliable programmer:

  1. Resume to see people (concise, clear, project experience)

  2. Give the interviewee 10 minutes to describe what you do best

  3. Are the foundations solid?

  4. Is the technical depth enough?

  5. Choose people who fit your company culture (the best fit is more important than the best)

  6. behavioral interview

  7. give them a virtual task

One thing every programmer should know:

  1. Read non-technical books

  2. will write documentation

  3. learn to pack

  4. Try to speak more

  5. Build social connections (communication with people, self-marketing)

Programmer's troubles:

  1. Whether you should still stay in the first-tier cities (meaning of life)

  2. Small companies do too many things (viewing everything correctly may improve your communication skills and management skills)

  3. The sense of crisis in a startup company (the most important thing in the entrepreneurial process)

  4. Single technology, want to learn more (technology is the same, you should be proficient in one technology first)

  5. Which language should I learn if I want to learn programming by myself?

  6. With a college degree, can I enter a big company (is there anything that stands out)

  7. Non-computer major, want to engage in software development in the future (interest is the most important)

  8. Always staying up late and not getting enough sleep (getting enough sleep)

Career advice for young programmers:

  1. Determine what you want to do early

  2. 10 000 hour rule

  3. Increase productivity (speed up work, use tools)

  4. Concise communication (conclusion at the beginning of the email)

  5. PKSS (Saturday and Sunday competition) and continuous learning

  6. learn to control emotions

  7. Surround yourself with the best people

  8. Good at summarizing and expressing

  9. Master English (broaden your horizons)

  10. sleep makes you stronger

Chapter 2 on Practice and Cognition

Break through the programmer's thinking (ordinary people's thinking + programming thinking):

  1. Why (Technology and Development)

  2. How to do it (discover the nature of the problem through technology, give advice like an expert, learn and get different perspectives from it, get back creativity)

How a full stack engineer can quickly build a web application:

  1. Website positioning and function settings (resources, users)

  2. Information Architecture (Business Domains, Entity Models)

  3. UI design

  4. Application Architecture (Frontend: AngularJS, Backend Spring Boot)

  5. develop

  6. Deployment (select cloud server, application deployment, security)

  7. Performance tuning (merge compressed static files, use front-end image libraries, use cloud storage and CDN for acceleration)

  8. Website statistics (user personalized statistics)

  9. Select development and design tools

How to be a good full stack engineer:

  1. What is a full stack engineer (also a senior developer, architect, and programmer with agile development skills)

  2. The value of full-stack engineers (great improvement of personal value and freedom, global thinking and technology foresight, and reduction of communication costs)

  3. Full stack engineer skill stack (key development skills (hard power), additional skills (soft power))

Why every programmer should learn the command line:

  1. Effective control of your operating system

  2. Version control with Git

  3. Front-end development relies on command line tools

Refactoring - the way to improve the system:

  1. Start with build tools (introduce build tools, third-party package dependencies and version management, automate)

  2. Make automated testing a guarantee for refactoring

  3. Continuous refactoring at the code level (removing bad smells from the code (duplicate, complex, wrong, etc.))

  4. Refactoring based on microservices (service identification, UI and service separation, building services)

Programmers should also understand "this is fine":

  1. Do not blindly use new technology

  2. Avoid overdesigning

  3. Not technically gilded in the project

Unable to write readable code:

  1. The code itself is hard to read

  2. How to make code easier to read (enforce patterns rather than specifications, understand and respect the application framework you use, don't use too many so-called tricks, small is better than big)

The meaning of programming:

  1. programming is a skill

  2. programming is to solve problems

  3. Programming is expressing and creating

  4. Programming is to leave a trace

Chapter 3 on Personal Development

Great programmers share the following characteristics:

  1. Deep understanding of at least one programming language (features, limitations, bugs, future)

  2. Seems a little "silly" (promotes continuous learning, rigorous work)

  3. Both are realists (understand the balance, respect the process)

  4. Lazy but efficient (good at using or inventing tools)

  5. Work in parallel for efficient use of time

  6. Possess good soft skills (language, listening, responsibility, respect, humility)

  7. There are some great partners around

  8. Passionate about life

Become a freelance programmer:

  1. Types of freelance programmers (independent contractors, part-time programmers, mixed outsourcing, temporary workers, team contractors)

  2. Benefits of being a freelance programmer (be your own boss, work flexibility)

  3. Becoming a freelance programmer challenge (unstable workload, easy distractions, no company benefits, clients, project management, legal and financial knowledge)

  4. How to be a successful freelance programmer (operating like a business, building your own brand, communication, quality, team)

  5. How to get started (Coding, Zhubajie, Freelancer, Ape Group)

The pits that programmers should avoid when starting a business:

  1. Do what you are not good at

  2. non-operational business plan

  3. Too few or too many participants

  4. The R&D cycle is too long, and the product lacks focus or features

  5. Too much focus on product development and neglect of the market

  6. Does not maintain a relationship with users and is reluctant to ask people for help

  7. Too much trust in experts, or obedience to users

Chapter 4 on Teaching and Learning in Programming

Writing and writing code:

  1. Writing is a lot like writing code
    Follow certain logical rules (grammar, logic, decoration)
    to combine details into something more beautiful
    You need to be able to see the big picture
    Self-expression is critical
    Consider your readers or users

  2. Writing is not the same as writing code. The
    purpose is different.
    Writing can express emotions, but writing code cannot.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325576487&siteId=291194637
Recommended