当前位置:网站首页>What books can greatly improve programming ideas and abilities?
What books can greatly improve programming ideas and abilities?
2022-07-07 06:34:00 【Python cat】
1 Preface
For students majoring in Computer Science , Schools teach us programming languages , Learn things like Java,Python or C ++ Such programming languages are easy , But learning to write good code is not .
Programming is not equal to writing code , Programming is a broader process , It also involves putting forward the idea of developing a program, testing it, and so on , Therefore, improving the programming thought and ability is also an indispensable ability for a qualified programmer .
For us who are engaged in technical jobs , You have to teach yourself how to program , Improve the ability of programming . Writing good code is more important than simply repeating requirements , This is also an important difference between ordinary programmers and good programmers . In addition to the practical experience in work , It is also indispensable to pay attention to the thoughts of our predecessors and read relevant books .
Although the technology is updating day by day , There are also many technical websites and personal blogs , But the classic books and ideas about technology can be handed down repeatedly . Because books are not only authors and editors' more comprehensive and systematic combing of a certain field , And reading books can bring you many different experiences .
This article gives you a few high-value books , Not necessarily comprehensive , Readers are welcome to add , I hope it can help you .
2 About coding and refactoring
2.1 Clean code
English name 《Clean code》, The book is from Robert C Martin In the hands of , Also known as Bob uncle , Is a famous American software engineer and writer , He has written books on agile software development . The book mentions many well-known programming principles : such as SOLID principle 、 Law of Demeter(LoD, Also known as the least knowledge principle ).
Recommended reasons :
Every programmer must have a book and read it . This is a very famous book , It will completely change your programming style , The rules introduced in the book are all from the author's many years of practical experience , Cover from naming 、, data structure 、 Object oriented design principles to multiple programming aspects of refactoring , Although one “ home ” Words , However, sincerity has value for reference . Maybe , Really neat code can make peers read like poetry .
“Any fool can write code that a computer can understand . Good programmers write code that humans can understand .— Martin · Fowler
If you can only read one book , I recommend this one . Last , Based on this book , Many developers have also come up with ways to clean up languages :
Javascript The way of neatness
PHP The way of neatness
ABAP The way of neatness
Java The way of neatness
.NET The way of neatness
And the code style guidelines of major technology companies :
Google Style guide
Uber Go Language style guide
“Bob The uncle 《 The way to structure cleanly 》 It's also worth recommending , This book is the culmination in the field of architecture , around “ The structure is neat ” This important orientation , Systematically analyze its origin 、 Connotation and application scenarios , It covers the whole process of software development and all the core architecture patterns .
also 《 The professionalism of programmers 》, The author uses the detours he and his colleagues have taken 、 For example, mistakes made , Intended to lead the way for later generations , Help his career to a higher level .
2.2 restructure ( The first 2 edition )
English name : 《Refactoring: Improving the Design of Existing Code,2nd Edition》, author Joshua Kerievsky. This book is one of the rare books with the best combination of theory and practice . Refactoring is a process that makes your working code more beautiful , This book can help you with the patterns of the software development world that have been tried and tested .
Recommended reasons :
The term refactoring is often mentioned at conferences , That is the impact of this book . Refactoring is the process of rewriting software , Without changing its function , To improve its readability , Testability or maintainability . Refactoring is the process of making working code beautiful , Refactoring helps improve the design of working code . This is also one of the essential skills for good programmers , Usually good programmers are also good at refactoring .
This book will teach you the art and science of refactoring code . Whether you are Java The programmer 、C++ Developers are still Python Developer , Every programmer can benefit from this book .
“And 《 restructure 》 The books that are often mentioned are famous 《 The code of 》, The book also explains proven techniques and strategies , It can effectively help programmers and software developers . I also borrowed this book from the library when I was in college , Found the book too thick , be unchewable , It will be returned as soon as it is due .
2.3 The beauty of code
English name :《Beautiful Code: Leading Programmers Explain How They Think》, author :Grey Wilson.
Recommended reasons :
Master Daniel's blog collection , It is also one of the best books to improve coding skills , Because it gives you an opportunity , Let you know how professional programmers deal with problems 、 The code they write and how they solve the problem , And still keep their code beautiful .
This book is a collection of case studies , Reveals Emacs To Facebook And other large websites , About those expert programmers , Including Brian · Kenny , Jon · Bentley (Jon Bentley)( Author of programming Abas ), Tim · Bure (Tim Bray), Carl · Vogel (Karl Fogel), Michael · Faith (Michael Feathers)( Authors who use legacy code effectively ), And many more great authors and programmers . About binary search , It has been mentioned several times by different authors in the book , Understand the views of different authors . No matter which coding language you use , for example Java,C#,Python or Ruby, Will find interesting things in this book .
“The beauty of code surveys the scope of human invention and creativity : The development of computer systems . The beauty in each chapter comes from discovering unique solutions , This is the author's power to transcend boundaries , Identify needs that others have overlooked , And find amazing solutions , To solve the troublesome problem .
3 About career growth
3.1 The way of programmer training ( The first 2 edition )
English name 《Pragmatic programmer》, The author is Andrew Hunt & David Thomas. The translator of the Chinese version is the famous Yunfeng , The subtitle is : To the highest level of pragmatism .
Recommended reasons :
This book is about time 20 The new edition of , Covering Philosophy 、 Method 、 Tools 、 Design 、 decoupling 、 Concurrent 、 restructure 、 demand 、 Best practices and major traps on pragmatic topics such as teams , And easy to transform 、 Reusable architecture technology .
When I first came out, Bowen Publishing House held a promotion activity , With the joint recommendation of Yunfeng and uncle Haozi , I started this book without hesitation . The most difficult thing for programmers is pragmatism , Always want to pursue new technology , Stir fry new concepts . After work, I gradually understand , The nature of programming , Are language independent 、 Framework and methodology , Technology changes the world because it can effectively solve the real needs of users .
This book is essentially a self-help guide for programmers . It explores good software development practices , And provide you with excellent suggestions 、 Tips and tricks , To program more effectively . It is the classical and modern anecdotes 、 The creative use of fascinating analogies and thought-provoking examples , Make the learning of each part interesting and interesting . If you read something similar to C Language Bible and Head First System books , After work, people will really understand why this book is not thick , Read it and applaud it , This is probably The greatest truths are the simplest .
“Author of another book :《 The way of programmer training : The Pragmatic Programmer 》 It's also worth recommending
3.2 The Productive Programmer
English name :《The Productive Programmer》, author :Neal Ford.
Recommended reasons :
This book is about how to become more efficient in the process of developing software . meanwhile ,《 The Productive Programmer 》 Will be presented across languages and operating systems : Many techniques are described with examples of multiple programming languages , And will span three major operating systems ,Windows( Multiple versions ),Mac OS X as well as *-nix (Unix perhaps Linux).
The idea that runs through the full text is to try to make the machine do what the machine should do , Let the program deal with the program , Give full play to the inherent advantages of programmers in this regard . Learn to make good use of tools , Command line 、 Learn to write scripts , Learn macro . Increase of efficiency , Don't do repetitive and monotonous work .
Ultimate purpose : Become a “ Lazy ” The programmer .
3.3 Soft skills : A survival guide beyond the code
English name :《Soft Skills: The software developer's life manual》, author :John Z. Sonmez
Recommended reasons :
One of the most beneficial non-technical books I read during my graduate study . Programmers know that coding is important , This is our hard skill to eat .
But in actual work, I found that more than writing code , In addition to soft code, it's also important : For example, facing communication with customers 、 Communication problems in dealing with products ; For example, we should pay attention to our own development , The book also introduces how to make a professional breakthrough ; There are more chapters on how the author learns 、 How to manage money 、 Bodybuilding 、 Self marketing and so on .
The interesting thing about sharing the book that impressed me was that the author went to the interview , The interviewer browsed his blog post , So the two talked happily . Finally, I also want to make a statement to my reading friends : This book covers many aspects , But not every point is a set of perfect answers that can be copied , After all, the author also introduces these contents from the environment and his own experience at that time , Every reader should have his own choice ,
In general , This book is quite suitable for people at all stages , Especially college students and new career friends .
“The author also made 《 Soft skills 2: Career Guide for software developers 》, If soft skills focus on life , That soft skill 2 Is more concerned about the software development profession .
4 About hackers and open source
4.1 Unix Programming art
English title of the book :《The Art of UNIX Programming》, author :《Eric S. Raymond》 from 1982 The year begins UNIX developer .
Recommended reasons :
This book deals with Unix Design and development philosophy in the field of systems 、 Ideological and cultural system 、 Principles and experience , By recognized Unix Master programmer 、 One of the leaders of the open source movement Eric S.Raymond It's been written for years .
The program will be out of date , The programming language will be updated , The code changes with the business , But the vitality of programming ideas will never fade , Good programming art is also penetrating , Although the cases in the book are old , But throughout KISS principle 、 Ideological and cultural system 、 The philosophy of design and development will certainly bring you a sense of enlightenment .
“Keep it simple stupid, abbreviation KISS principle . In the work of software design , Most of the time, don't think too complicated , Don't over design and optimize too early , By using the simplest and effective scheme, we can avoid all kinds of additional costs caused by complex schemes . This is conducive to subsequent maintenance , It is also conducive to further expansion .
in addition , This book can also be related to “ Mouse with left ear ” Uncle Haozi recommended 《UNIX legend : History and memories 》 See together , understand UNIX The birth and development of , Behind the scenes story of Bell Labs ! This book not only writes Unix The history of , And record the author's memories , A look Unix The origin of , Trying to explain what Unix,Unix How did it come about , as well as Unix Why is it so important .
4.2 Cathedral and market
English name :《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix Programming art 》 author Eric S. Raymond Another divine work of , The subtitle is 《 Yes Linux And open source revolution 》.
Recommended reasons :
We all know that programmers are passionate about open source culture , They're saying don't make wheels again . Software development in the open source era may only need three keyboard buttons :CTRL + C + V, To make fun of .
Speaking of open source culture , So this book 《 Cathedral and market 》 It's the open source movement 《 Bible 》, Subvert the traditional software development ideas , It affects the whole field of software development . The author compares the idea of software development to the ancient cathedral culture and market culture , How the bazaar became a cathedral , The book systematically explains how open source software is produced , What are the advantages of open source development , How is the inheritance of open source software done .
But recently, a series of news about the confrontation of major open source software against Russia , Have to trigger a new round of reflection : Open source projects really “ Open source ” Do you ?
4.3 Hackers and painters
English name :《Hackers and Painters: Big Ideas from the Computer Age》, author :Paul Graham, The translator of this book is the famous Ruan Yifeng .
Recommended reasons :
Speaking of hacker culture , We have to mention the father of Silicon Valley entrepreneurship Paul Graham This book , This book mainly introduces hackers Hacker, That is, the hobbies and motivations of good programmers , Discuss the growth of hackers 、 The contribution of hackers to the world, programming languages and hacker working methods, and other topics of all people interested in the computer age .
This book is a collection of technical essays for hackers , After reading the book, I was subverted from the hacker image in the film for the first time , I realized that it was not an intrusion system 、 Make a virus 、 All kinds of decryptors are hackers ,Hacker Is an expert programmer , It is a group of painters with great similarities , They are all creating , Instead of accomplishing a task ,“ hackers ” It symbolizes first-class ability , And the spiritual pleasure or enjoyment produced in the process of solving problems . They advocate sharing 、 to open up 、 democracy 、 The free use and progress of computers . And those who maliciously invade the computer system should be called cracker( Hacker ).
5 About algorithms and design patterns
5.1 Algorithm design manual
English name :The Algorithm Design Manual (2nd Ed.), author :Steven S Skiena
Recommended reasons :
We all know the importance of algorithms , You must know two other famous books 《 Introduction to algorithms 》 and 《 Algorithm 4》:《 Introduction to algorithms 》 Focus on the mathematical derivation of the algorithm , Suitable for studying , and 《 Algorithm 4》 Focus on the code implementation of the algorithm , Suitable for entry .
And this time I recommend 《 Algorithm design manual ( The first 2 edition )》 But not so famous , But it is also the most comprehensive guide for designing practical and efficient algorithms . The book reveals the design and analysis of algorithms , In a simple and understandable writing style , Various algorithms are introduced , The emphasis is on algorithm analysis .
At present, algorithm books are emerging one after another in the market , But the classical algorithm is always there , Never go far .
5.2 Head First Design patterns
English name :《Head first design patterns》, author :Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson
Recommended reasons :
This book completely covers GoF All versions 23 Design patterns , Effortlessly explains the elegance that skilled software developers and programmers around the world use to build 、 The function is all ready 、 Several software design patterns for flexible and reusable software .. illustrated , With a large number of illustrative and enlightening examples , They will make learning both efficient and interesting . Different from other programming books with heavy text , This book is thought-provoking 、 Visually rich formats .
Head First System books are full of humor , Both the topic selection and the editing are very attentive , Worth reading . It is believed that the readers who have finished reading will gradually move towards an in-depth understanding of software design patterns . Read again GoF It's a good choice .
5.3 Design patterns : The foundation of reusable object-oriented software
English name :《 Design Patterns: Elements of Reusable Object-Oriented Software》, Also referred to as GoF , Because the author of this book is four people :Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides.
Recommended reasons :
This book is an essential primer for any developer who uses object-oriented code . And the author Erich Gamma yes jUnit、Eclipse、IBM Jazz project 、Visual Studio、Azure and Office 365 Behind the scenes .
If you don't have a good grasp of UML, You may find it difficult to absorb some of the information and examples compiled in your programming book . However , This does not prevent you from appreciating the beauty of the design pattern book , It is both simple and rich in content .
《 Design patterns 》 A book explains in detail 23 Software design patterns , It can help software developers and designers make better 、 More elegant 、 More flexible software . This book discusses a large number of concise solutions to common software design problems .
“if GoF Too difficult to read , Then recommend Cheng Jie's 《 Big talk design patterns 》, This book introduces you to design patterns through dialogue , Everyone can be a studious dish and an experienced bird .
5.4 《 Programming pearls 》( The first 2 edition • Revised edition )
English name :《More Programming Pearls,Second Edition》, author :John Bentley
Recommended reasons :
This is a book that takes you to really appreciate the beauty of computer science , With deep thoughts 、 It's a wonderful book with practical skills and interesting anecdotes . Unlike most other programming books , This book focuses on basic and general problems . It discusses various algorithms and techniques that can improve performance or reduce memory requirements .
The author selects many typical complex programming and algorithm problems , It vividly depicts the anecdotes of the great masters in the history of exploring solutions 、 Through the detour and the process of continuous improvement .
Just like the title of the book , sweep , The wisdom in computer science is just like the Pearl from the fine sand to the oyster in nature , Leave one by one “ Bulbar muscle ”.
6 summary
Although books are one of the best ways to learn programming , But there are other ways to enhance learning , For example, online tutorials 、 Technology Conference 、 Weblog 、 Video courses, etc .
Coding is an art , Like many arts , Being a good coder requires a lot of practice , Learning and self-discipline . What we need to do , Is to constantly improve their skills , And pay attention to finding and learning new and better ways to improve your ability .
Programming is a challenging field , New developments are taking place every day , And knowledge will soon become obsolete , But good coding skills and self-discipline are something , This will never be out of date , And help us in a certain process throughout our career .
It's never too late to start reading , Programming ideas and classic works have been handed down forever , Thank you for your wisdom .
“Postscript : The above books are all the ones I have read , Or there are borrowed books in the library . Also, the score in the computer field is very high 、 A well-known book . But there are too many classic books in the computer industry , What I can recommend is only part of it , The content you want to recommend is not specific to a specific programming language or domain , So it's like 《C++ Programming idea 》 and 《On Java8》 Such books are not recommended , The reason for recommendation is not necessarily correct , Welcome criticism . in addition , After reading the above books, I can't say that I can apply them to my work , After reading it, you can become a top programmer . Besides, reading books can't fully understand the great wisdom of our predecessors , But if in a moment ( Reading or practicing ) I have a feeling of being enlightened about myself , It's enough .
Reference link :
UNIX legend ( Part 1 )
Good holiday reading
Top 5 Books to Improve Coding and Programming Skills
http://www.osnews.com/images/comics/wtfm.jpg
Python The cat technology exchange group is open ! In the group, there are in-service employees of the first and second tier large factories in China , There are also students at home and abroad , There are more than ten years old programming birds , There are also new people who have just entered primary and secondary schools , The learning atmosphere is good ! Students who want to join the group , Please reply in the public number 『 Communication group 』, Get brother cat's wechat ( No advertising party , If you are the one !)~
Not yet ? Try them
▲ Why can't our country do JetBrains Products like that ?
▲Python Powerful signal library blinker Introductory tutorial
▲Python Official Seminar : Completely remove GIL Is it really possible ?
▲IPython 8.0 Big version update , Support code auto completion
▲ How to use Python Realize computer automation ?
▲Python What's the matter with underscores in numbers ?
If you find this article helpful
Please share generously and give the thumbs-up , Thank you !
边栏推荐
- [SOC FPGA] peripheral PIO button lights up
- 地质学类比较有名的外文期刊有哪些?
- Niuke Xiaobai monthly race 52 E. sum logarithms in groups (two points & inclusion and exclusion)
- 力扣62 不同路径(从矩阵左上到右下的所有路径数量) (动态规划)
- Can't you really do it when you are 35 years old?
- HKUST & MsrA new research: on image to image conversion, fine tuning is all you need
- Apache ab 压力测试
- 对称的二叉树【树的遍历】
- 怎样查找某个外文期刊的文献?
- Ha Qu projection dark horse posture, only half a year to break through the 1000 yuan projector market!
猜你喜欢
随机推荐
3428. Put apples
安装mongodb数据库
[opencv] morphological filtering (2): open operation, morphological gradient, top hat, black hat
请问如何查一篇外文文献的DOI号?
FPGA课程:JESD204B的应用场景(干货分享)
Abnova 体外转录 mRNA工作流程和加帽方法介绍
Experience sharing of contribution of "management world"
Cloudcompare point pair selection
FlexRay通信协议概述
A program lets you understand what static inner classes, local inner classes, and anonymous inner classes are
博士申请 | 上海交通大学自然科学研究院洪亮教授招收深度学习方向博士生
JVM 全面深入
Which foreign language periodicals are famous in geology?
LM small programmable controller software (based on CoDeSys) Note 23: conversion of relative coordinates of servo motor operation (stepping motor) to absolute coordinates
ST表预处理时的数组证明
UIC (configuration UI Engineering) public file library adds 7 industry materials
直击2022ECDC萤石云开发者大会:携手千百行业加速智能升级
Software testing knowledge reserve: how much do you know about the basic knowledge of "login security"?
Doctoral application | Professor Hong Liang, Academy of natural sciences, Shanghai Jiaotong University, enrolls doctoral students in deep learning
rt-thread 中对 hardfault 的处理