Chapter 1 on career
A few inspirations for young programmers:
know yourself correctly
Work harder than the average person (will be your biggest competitive advantage)
Building personal authority at the right time
follow best practices
Be curious and open to exploring new things
Communicate with people without code
To work for good people
Living (having a disciplined and regular life), Sleeping (getting enough sleep), Traveling (discovering and feeling new)
Believe in your own talent and creativity
The career experience of those programmers with hindsight:
Your salary has nothing to do with workload
do one thing consistently
The only constant is the change itself (improving the ability to learn fast, the 10,000 hour rule)
Your Reputation Matters (Develop Rigorous Habits)
Understand the meaning of communication (communication with users)
Your right brain will be the key to your success (non-technical abilities)
Don't say easy or impossible
You shouldn't always go it alone (teamwork)
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:
Resume to see people (concise, clear, project experience)
Give the interviewee 10 minutes to describe what you do best
Are the foundations solid?
Is the technical depth enough?
Choose people who fit your company culture (the best fit is more important than the best)
behavioral interview
give them a virtual task
One thing every programmer should know:
Read non-technical books
will write documentation
learn to pack
Try to speak more
Build social connections (communication with people, self-marketing)
Programmer's troubles:
Whether you should still stay in the first-tier cities (meaning of life)
Small companies do too many things (viewing everything correctly may improve your communication skills and management skills)
The sense of crisis in a startup company (the most important thing in the entrepreneurial process)
Single technology, want to learn more (technology is the same, you should be proficient in one technology first)
Which language should I learn if I want to learn programming by myself?
With a college degree, can I enter a big company (is there anything that stands out)
Non-computer major, want to engage in software development in the future (interest is the most important)
Always staying up late and not getting enough sleep (getting enough sleep)
Career advice for young programmers:
Determine what you want to do early
10 000 hour rule
Increase productivity (speed up work, use tools)
Concise communication (conclusion at the beginning of the email)
PKSS (Saturday and Sunday competition) and continuous learning
learn to control emotions
Surround yourself with the best people
Good at summarizing and expressing
Master English (broaden your horizons)
sleep makes you stronger
Chapter 2 on Practice and Cognition
Break through the programmer's thinking (ordinary people's thinking + programming thinking):
Why (Technology and Development)
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:
Website positioning and function settings (resources, users)
Information Architecture (Business Domains, Entity Models)
UI design
Application Architecture (Frontend: AngularJS, Backend Spring Boot)
develop
Deployment (select cloud server, application deployment, security)
Performance tuning (merge compressed static files, use front-end image libraries, use cloud storage and CDN for acceleration)
Website statistics (user personalized statistics)
Select development and design tools
How to be a good full stack engineer:
What is a full stack engineer (also a senior developer, architect, and programmer with agile development skills)
The value of full-stack engineers (great improvement of personal value and freedom, global thinking and technology foresight, and reduction of communication costs)
Full stack engineer skill stack (key development skills (hard power), additional skills (soft power))
Why every programmer should learn the command line:
Effective control of your operating system
Version control with Git
Front-end development relies on command line tools
Refactoring - the way to improve the system:
Start with build tools (introduce build tools, third-party package dependencies and version management, automate)
Make automated testing a guarantee for refactoring
Continuous refactoring at the code level (removing bad smells from the code (duplicate, complex, wrong, etc.))
Refactoring based on microservices (service identification, UI and service separation, building services)
Programmers should also understand "this is fine":
Do not blindly use new technology
Avoid overdesigning
Not technically gilded in the project
Unable to write readable code:
The code itself is hard to read
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:
programming is a skill
programming is to solve problems
Programming is expressing and creating
Programming is to leave a trace
Chapter 3 on Personal Development
Great programmers share the following characteristics:
Deep understanding of at least one programming language (features, limitations, bugs, future)
Seems a little "silly" (promotes continuous learning, rigorous work)
Both are realists (understand the balance, respect the process)
Lazy but efficient (good at using or inventing tools)
Work in parallel for efficient use of time
Possess good soft skills (language, listening, responsibility, respect, humility)
There are some great partners around
Passionate about life
Become a freelance programmer:
Types of freelance programmers (independent contractors, part-time programmers, mixed outsourcing, temporary workers, team contractors)
Benefits of being a freelance programmer (be your own boss, work flexibility)
Becoming a freelance programmer challenge (unstable workload, easy distractions, no company benefits, clients, project management, legal and financial knowledge)
How to be a successful freelance programmer (operating like a business, building your own brand, communication, quality, team)
How to get started (Coding, Zhubajie, Freelancer, Ape Group)
The pits that programmers should avoid when starting a business:
Do what you are not good at
non-operational business plan
Too few or too many participants
The R&D cycle is too long, and the product lacks focus or features
Too much focus on product development and neglect of the market
Does not maintain a relationship with users and is reluctant to ask people for help
Too much trust in experts, or obedience to users
Chapter 4 on Teaching and Learning in Programming
Writing and writing code:
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 usersWriting is not the same as writing code. The
purpose is different.
Writing can express emotions, but writing code cannot.