当前位置:网站首页>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 .

be9ee7d891bb8f09004b7b383c28e910.png

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 ).

9c0f2310f6d3f100dbdeda0fcb582769.jpeg

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 .

82791b74109871ee5a531d899c694e1a.jpeg

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 .

ac27dedb5aa7ad469487f3081bb1b9f9.jpeg

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.

abd8b4e9f20727b37a404a7651c7cc50.jpeg

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 .

9a065397387ee79c99f494c4bfcd8a96.jpeg

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.

4614bf0b6cdadc1696da37f6a09bf989.jpeg

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

da018b9d4e5f24fd8ff940c7a5f81c61.jpeg

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 .

b9af979cad8e87e69dcefe635b1ce441.jpeg

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 》.

ccfe8cb0b806f01ac673ea4250745b3c.jpeg

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 .

c61b4079cdbfe9d799eccddafb9efbac.jpeg

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

15dec9686b6c716db8beda07e85ad837.jpeg

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

93a99c8d7452a3e04f4879f303a2ea15.jpeg

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.

0a77ab79265e88868ef7eae5f6b5a45e.jpeg

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

75abcea4886dac1b9ed0f5f67c1ecd8b.jpeg

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

41fd4a08efb6a4f93fe15196ef3f60ef.gif

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

原网站

版权声明
本文为[Python cat]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207070111546447.html