当前位置:网站首页>How to write a good program when a big book speaks every day?
How to write a good program when a big book speaks every day?
2022-07-02 21:47:00 【Editorial Department of new programmer】
Reading guide : Learning programming is not just about learning the details of programming language : To be a good programmer , It must be debugging code 、 Test code 、 An expert in writing clear code , And can solve any difficult problems encountered .
How can programmers avoid detours in the digital world 、 One “ code ” In the first place ? Known as the “ Treasure level programming instructions ” Of 《 How to write a good program (How to Write Good Programs)》 Or it can become a career treasure for programmers .

Today I recommend a new book 《 How to write a good program 》, This book is written by Professor of Edinburgh University Petita · Stevens (Perdita Stevens) writing , Wang lei 、 Zhou Xunjie 、 Wan xuefan translated , Get Shen Gang 、 Zhang Kaifeng 、 Song Junyi 、 Zhang Yu and many others KOL I highly recommend !
So what is the magic of this book , It has been jointly recommended by many industry experts ? Let's see what they say first :
Recommendation 1
Shen Gang Professor, School of software, Huazhong University of science and Technology

stay 1972 In the Turing Prize Speech in , Computer scientists 、 Software engineer Edsger Dijkstra I reviewed my experience and insights as the first programmer in the Netherlands . Although in the title 《 Humble programmer 》 In this speech ,Dijkstra Tell the story of my early years from theoretical physics to computer science research and practice , But some of his findings are really frustrating : Society is not satisfied with the performance of programmers and their products . In the real world with the rapid development of computer technology , The performance of hardware products is improving day by day, but the price is declining ; meanwhile , People do not hesitate to describe AI in various media 、 Big data technology 、 The broad prospects of emerging fields such as quantum computing are full of longing . All these make today's programmers bear the inevitable pressure . How to write a good program is what every programmer is thinking and trying .
Although many people discuss programming skills , But individual experiences and conclusions may vary greatly . Take myself for example , When I first learned programming more than 30 years ago , I have no idea about the profession of programmer . At that time , Everyone writes programs for their unique tasks , Programming is just a marginal work that serves the main goal . In the 21st century , As a discipline, software engineering has yielded fruitful results , Software engineering has also taken root in many colleges and universities . Open the mainstream recruitment website and you will find , The recognition of programmers in the society has also reached a considerable height . Software has become people's life 、 Work 、 Study 、 travel 、 Entertainment indispensable products and services , Software development is also recognized as a complex production activity . But objectively speaking , The research on programming itself does not seem to have aroused much waves . For beginners who are eager for guidance , Finding the answer to how to write a good program is far from an easy task .
This book is a real study guide . Whether it's a beginner , Or a working programmer who has accumulated a lot of development experience in front of the keyboard and screen , Developing good programming habits is the key to getting twice the result with half the effort . We know , The daily training of professional athletes includes a lot of physical training , As well as the essential movement normative practice . Although these training seems not directly related to the game , But no one can deny that good grades come from strict and standardized training . There is a great demand for programmers in today's society , There is a huge gap in the supply of excellent programmers , This leads many programmers to directly participate in the game without sufficient and reasonable training . We cannot deny the role of actual combat in the growth of programmers , Just as there is no denying the decisive role of foundation for skyscrapers . test 、 debugging 、 Optimize , Make the program clear and concise , The cultivation of these basic skills is just the paving stone for a programmer to succeed in his career . Once you can start writing a good program , Enjoy programming , Get a sense of professional achievement , Get your own satisfaction , This virtuous circle is full of positive feedback .
As a professor and software engineering researcher at the University of Edinburgh , author Perdita Stevens There is no face to write a serious textbook . In this book, readers can realize that the author is like a guide , Introduced a journey that was not boring . The author starts the journey of programming step by step : On the journey , Not only use some examples to reveal the truth of the hope statement , We also constantly use interesting knowledge points and concise tips to guide readers' attention . More interesting , Experience gained through years of teaching ,Stevens The professor knows where readers will encounter difficulties , Therefore, valuable targeted suggestions are put forward to readers in these places .
The translator of this book has rich development and management experience in the software industry , For programming languages 、 The excellent understanding of development tools and software engineering practice undoubtedly provides a solid foundation for the translation of this book . The whole book is not only very smooth to read , We can also find , Far from deviating from the expressive characteristics of the author of the original book , And in some subtle places, it carefully takes care of the reading habits of Chinese readers .
so to speak , This is a good book worth reading by students who have just started programming . Besides , For experienced programmers , This book also opens a window to examine the art of programming from different perspectives .
Recommendation 2
InfoQ Community editor Zhang Kaifeng

If this is the age of machines , Or the era of procedure , I'm afraid no one will object . in fact , There are so many programs that we will basically ignore their existence . game 、 mobile phone 、 Distance learning software , Or colorful billboards on the roadside , There are programs running behind it .
Accompany the program every day , It urges us to learn how to write programs .
Programs can help us solve complex problems , Or solve simple but cumbersome problems . More Than This , Learning to write a program can also help us understand it , Understand the machine , And then understand the rules of the world . Now let's look at , If there are two worlds , One is the physical world we live in , One is digital or virtual world , Then the program is what connects the two worlds . We borrow the procedure , You can travel freely between these two worlds .
Programmers may have different ideas . In their training , Writing programs is a solemn and everyday thing . There was once a famous book 《 Seven weeks and seven languages 》, It's about how programmers can master as many programming languages as possible in a short time . Yes , This has great attraction for them . and , Once you enter the world of programs , You will find it as colorful as the colorful billboards .
Programmers should not only learn to write programs , Also be able to test and debug programs . To write large programs , Work with more programmers , They have to learn to write neat code , Learn to refactor , Make the code self explanatory and maintainable . This makes the programmer more like a craftsman .
But that doesn't mean you have to be a programmer .
Besides understanding the machine and the world , Writing programs can actually be a fun thing . Especially when you see the computer will listen to you , Follow your procedure , When you get the result you want . Slowly, , You find that you are using programs to express your ideas , And computers can understand them , That is to understand you .
Maybe you will think more , In addition to convenience , How can your program help more people ? Especially those vulnerable groups , How to make their life better ? How to make your program ethical , Refuse to invade privacy , Finally, it will benefit the whole society ?
I think this is a good program .
Recommendation 3
Song Junyi Co founder of Niulu College

Two years ago. , I ended my first-line job of just ten years and became a programmer trainer . In the last two years , I have been thinking and exploring how to cultivate an excellent programmer after teaching , And has been constantly summarizing and recording teaching experience and understanding of personnel training . How to cultivate a person who meets the requirements of the enterprise 、 Programmers with engineering skills , There are only two main aspects : Teach students a programming language ; Help students build programming thinking and problem-solving skills .
Teach students a programming language , It is a very simple thing in the whole process of teaching activities . Usually in teaching practice, we will start from the first Hello World Start , Help students understand the essence of the program , At the same time, verify the availability of the development environment and development tools installed by the students . Then you can teach it step by step from variables to data types , Help students understand the meaning of each grammar and function , Through the use of a large number of exercises in the teaching process to help them consolidate their skills , Finally, through a comprehensive project, the skills learned can be comprehensively applied . The above is the way to learn a programming language , Also many programmers ( Including myself ) The process of learning a programming language .
Help students develop good programming thinking and problem-solving ability in teaching practice , Is a difficult and complex thing , It is also an important indicator to determine the level of teaching . If the student never knows how to program to learn how to program, it is described as from 0 To 1 The process of , From learning to program to writing better programs 1 To 100 The process of , And this process also determines that the student belongs to 60 The score is qualified 、80 Excellent or 100 The key to excellence . In the process , Students' progress cannot be achieved by mastering the accumulation of grammar and class library , But must be in the original 、 Based on the basic ability to complete code stacking by imitating and applying existing cases , Increase the ability of code structure design 、 Engineering code management ability and code problem analysis 、 location 、 Debugging and solving ability can be achieved . Overall speaking , It is the process from mastering a language to being able to undertake an engineering research and development task independently . One of the core tasks is to help students cultivate good programming thinking and problem-solving ability .
The above two aspects are very important in the training and growth of programmers , Be short of one cannot . at present , Courses on the market for the former 、 Books and materials have been abundant , But there are few learning materials for the latter , Even if you find a few books , Or the content is too abstruse and complex , The thickness of books alone makes people “ be terrified by the sight of sb . or sth ”, Or it's too scattered and concise , It's like the internal mind skill secretly handed down by Wulin Masters , New people have no way to start . The appearance of this book just fills this gap , It tells readers the thinking and methods of writing good programs from simple to deep , And recorded the author's rich programming thinking and experience .
The translator of this book is an excellent promoter of engineering practice with rich domestic experience , In his past work, he led and cultivated a research and development team with excellent programming practice in the industry , Have deep systematic thinking and Practice on the training of R & D personnel .
I Believe , Whether you are just beginning to learn programming “ student ”, It's programming for the first time in the workplace “ New people ”, Or someone with some programming experience “ veteran ”, Can draw nutrients from this book , A lot to gain . meanwhile , The ideas in this book are for lecturers and course designers engaged in the teaching and training industry , Also have very high learning 、 Reference and reference value .
Recommendation 4
Zhang Yu Tencent technology R & D Engineer

In the world of programming , I am a dreamer 、 Is a dreamer 、 He is also a dream seller .
unsuspectingly 、 To stumble 、 In a daze , Into the field of procedure , It's panic , It's joy , Is difficult , It's also the harvest . Maybe similar to most people , When I first came into contact with programming , It didn't inspire my enthusiasm for programming , Just deal with it by reciting the code ” The test “. Until I found out , Helped me get my first job successfully , It's not the poor grammar I recited , But I don't know when it was carved into my bones clean code、 Thinking mode and programming habits . And with it comes a virtuous circle , Since then, I have become a dream chaser .
Programming is a way , Let the computer do what you want it to do , Let the program solve real problems . At the same time, programming is also a skill , Writing beautiful programs requires superb skills and considerable aesthetics , It's like composing a piece of music , The tone should be consistent . In the programming world , The dreamer is listening , Giving advice again , It's rush , Good again , You need to capture elusive requirements , And find a way to express them , So that the machine can easily understand . In the ticking of the Project Clock , While finishing one work after another , You work miracles little by little every day .
Structured thinking guides us to a certain extent , First form a skeleton , Then fill in the details , To enrich the content , Thinking will have traces to follow , The layout will be quite methodical , Solving problems will be more efficient . that , At the beginning of learning programming , Or when I look back after having a lot of programming experience , The development of programming habits , Extraction of abstract concepts , For programming , It's like increasing the forward acceleration . This book is clear and fluent 、 Freely flowing style of writing , There is no language without elaborating those general programming skills . Read this book , You will learn about the editor 、IDE、 version control 、 unit testing 、 The test program 、 debugging 、 restructure 、 Defensive programming 、 Start with optimization , Practice basic skills , And then cultivate good programming habits , Form a professional style and the ultimate academic attitude , And accumulate habits in the process of pursuing excellence , Turn it into a kind of accomplishment on the road of programming and even life , This may be the author 、 translator 、 And my ordinary “ Luca brasi program ” The way of selling dreams .
you , I , We are all on the road of programming , With the belief of practitioners , Driving firmly . I Believe , If it's the way home , Read together in the sea of stars .
Translator's Preface
Program , In the age when computers are not yet popular , It is a mysterious and profound concept for us . However , In today's information society , We deal with all kinds of programs every day , Our lives , Can't leave the program , Programs have become part of the digital age .
That's why , More and more students are like us , Chose the profession of programmer . Whether it's a beginner of programming , Or a programmer with some experience , Or technical experts who have worked for many years , Write clearer 、 More right 、 More robust programs , Are our goals .
Now? , We can easily find programming books on the market , They may be professional books and periodicals for a certain language , Or the sharing of industry experience in some technical subdivisions . But there is seldom such a book : It passes through specific cases , Clear 、 Systematically expound programming skills , It is not limited to one language , Instead, it focuses on teaching portable programming skills . So that readers can master programming skills at the same time , Can also understand the idea behind it . These ideas , It is the essence of designing elegant programs .
This is a classic book to share experience and guide us to avoid detours , In view of how to design excellent program, this paper puts forward practical 、 Authoritative guidance . For beginners , It is an indispensable introductory guide ; For developers and technical experts who have worked for many years , It also has quite high reference value .
We translators have been colleagues and friends for many years , Also in the software industry for many years . Recall when I first came into contact with programming , Cautious from the beginning Hello World start , Then slowly start writing programs that work , Up to now, design complex system architecture . We all inevitably encounter various problems . such as : The code lacks good readability , Resulting in low maintenance efficiency ; Lack of good backup habits at work , The cost of rework is too high . Fortunately, through various explorations and summaries , Finally overcome these problems . In the process of translation , We sighed many times : It would be great if I could contact this book at the beginning of my career .
The author of the book Perdita Stevens He is a professor at the University of Edinburgh , He has many years of teaching experience in programming and software engineering , She abstracted the experience in the teaching process 、 Summarize and share , We are in the process of translating this book , It's like talking to a master programmer . In this book ,Perdita Stevens What the professor talked about , It is also a valuable asset for us who are also readers .
Thank our family , The translation of this book takes up a lot of our spare time , They have given great understanding and support to this . Even more valuable , During the translation of this book, they provided many professional opinions and suggestions . Without their support , It is difficult for us to successfully complete the translation of this book .
In the process of translating and publishing this book , The editors of Huazhang company of China Machine Press checked word for word 、 Proofread and revise , Thus, the quality of the translation is improved . Thank them !
Wang lei 、 Zhou Xunjie 、 Wanxuefan 2021 In Wuhan
《 How to write a good program 》 Through rich tips 、 Explanation of the story and key terms , Clearly teach various programming skills . The book contains Python、Java and Haskell An example of , No matter which programming language you are learning , Can help you acquire portable programming skills .


The first 1~3 Chapter , Let's start the journey of programming learning .
The first 4 This chapter will help you put the language you are learning into the perspective of all programming languages .
The first 5~11 Chapter is the core of this book , You are likely to read these chapters frequently .
The first 12 Zhang He 13 This chapter is devoted to how to get good grades in programming courses , If you're learning programming on your own , You can skip these contents .
The first 14 Zhang He 15 Chapter is an extension of this book , I hope it can be helpful to your future programming career .

For whom
If you're learning to program , Then this book is perfect .
If you are helping others learn programming , This book is also suitable for you .
If you are a professional programmer , This book is not for you — But anyway , Welcome to read it . Maybe you are willing to recommend it to others . I eagerly look forward to your comments and suggestions .
Statement :“ This article is transferred from Huazhang computer official account ”
边栏推荐
- [shutter] shutter layout component (wrap component | expanded component)
- Error in PIP installation WHL file: error: is not a supported wheel on this platform
- Research Report on market supply and demand and strategy of China's plastic pump industry
- Blue Bridge Cup Eliminate last one (bit operation, code completion)
- China plastic bottle market trend report, technological innovation and market forecast
- Research Report on market supply and demand and strategy of China's plastic trunking industry
- Get weekday / day of week for datetime column of dataframe - get weekday / day of week for datetime column of dataframe
- Analysis of enterprise financial statements [4]
- It is said that this year gold three silver four has become gold one silver two..
- Gbase8s database type
猜你喜欢

MySQL learning record (3)

Today, I met a Alipay and took out 35K. It's really sandpaper to wipe my ass. it's a show for me
![[shutter] statefulwidget component (bottom navigation bar component | bottomnavigationbar component | bottomnavigationbaritem component | tab switching)](/img/a7/0b87fa45ef2edd6fac519b40adbeae.gif)
[shutter] statefulwidget component (bottom navigation bar component | bottomnavigationbar component | bottomnavigationbaritem component | tab switching)

D4:非成对图像去雾,基于密度与深度分解的自增强方法(CVPR 2022)

MySQL learning record (2)

Cardinality sorting (detailed illustration)
![[shutter] shutter gesture interaction (click event handling | click OnTap | double click | long press | click Cancel | press ontapdown | lift ontapup)](/img/fa/5c1b6c16d9aabd13e9a4f7c7b9c7da.jpg)
[shutter] shutter gesture interaction (click event handling | click OnTap | double click | long press | click Cancel | press ontapdown | lift ontapup)

读博士吧,研究奶牛的那种!鲁汶大学 Livestock Technology 组博士招生,牛奶质量监测...
![The web version of xshell supports FTP connection and SFTP connection [detailed tutorial] continued from the previous article](/img/8f/6759b4685a129f9d10d6ea1dc8e61e.jpg)
The web version of xshell supports FTP connection and SFTP connection [detailed tutorial] continued from the previous article

How do I access the kubernetes API?
随机推荐
Construction and maintenance of business websites [9]
Basic IO interface technology - microcomputer Chapter 7 Notes
About test cases
Construction and maintenance of business websites [8]
[Jianzhi offer] 57 And are two numbers of S
Accounting regulations and professional ethics [19]
It is said that this year gold three silver four has become gold one silver two..
[C language] [sword finger offer article] - replace spaces
Accounting regulations and professional ethics [17]
Spend more time with your computer on this special holiday, HHH
Research Report on right-hand front door industry - market status analysis and development prospect forecast
Today, I met a Alipay and took out 35K. It's really sandpaper to wipe my ass. it's a show for me
In depth research and investment feasibility report of global and Chinese isolator industry, 2022-2028
Research Report on market supply and demand and strategy of China's atomic spectrometer industry
Get weekday / day of week for datetime column of dataframe - get weekday / day of week for datetime column of dataframe
【剑指 Offer】57. 和为s的两个数字
B.Odd Swap Sort(Codeforces Round #771 (Div. 2))
Plastic granule Industry Research Report - market status analysis and development prospect forecast
Huawei Hongmeng watch achieves fireworks display effect on New Year's Eve
Analysis of enterprise financial statements [4]