[翻译]《Programming - Principles and Practice Using C++, Second Edition》- Preface

本文主要是介绍[翻译]《Programming - Principles and Practice Using C++, Second Edition》- Preface,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文导航(全文7500字左右,按正常阅读速度,大概需要15-25分钟)

  • Preface 序言正文
    • A note to students 写给学生
    • A note to teacher 写给教师
    • ISO standard C++ ISO的C++标准
    • Support 学习支持
    • Acknowledgments 致谢名单

书籍封面

Preface 序言正文

Damn the torpedoes! 1 去他妈的鱼雷!
Full speed ahead. 给我全速前进!
——Admiral Farragut 2 海军上将法拉格特

Programming is the art of expressing solutions to problems so that a computer can execute those solutions.
编程是一种艺术,它表达出问题的解法,从而让计算机可以执行那些解法(得到问题的答案)。

Much of the effort in programming is spent finding and refining solutions.
编程时,大部分精力都花在寻找和改进解法上。

Often, a problem is only fully understood through the process of programming a solution for it.
通常情况下,只有过一遍求解过程才能让你完全理解这个问题。


This book is for someone who has never programmed before but is willing to work hard to learn.
这本书是为了那些从未编过程,但下决心要努力学习编程的人而写的。

It helps you understand the principles and acquire the practical skills of programming using the C++ programming language.
它会帮助你使用C++编程语言来理解编程原理和掌握实用技巧。

My aim is for you to gain sufficient knowledge and experience to perform simple useful programming tasks using the best up-to-date techniques.
我的目标就是让你获取到充足的知识和经验,使用最好最新的技术来完成一些简单有用的编程任务。

How long will that take?
需要花费多长时间呢?

As part of a first-year university course, you can work through this book in a semester (assuming that you have a workload of four courses of average difficulty).
作为一门大一课程,你可以在一个学期内完成这本书的学习(假设你同时在上一般难度的四门课程)

If you work by yourself, don’t expect to spend less time than that (maybe 15 hours a week for 14 weeks).
如果你是自学,那么请不要妄想用少于14周,每周15小时 3 就把这本书学完。


Three months may seem a long time, but there’s a lot to learn and you’ll be writing your first simple programs after about an hour.
三个月看起来很长,但实际上你要学很多东西,(不要着急)因为学一个小时你就能写出第一个简单的程序了。

Also, all learning is gradual: each chapter introduces new useful concepts and illustrates them with examples inspired by real-world uses.
当然了,学习是一个循序渐进的过程:每一章都会介绍有用的新概念,并辅以实际生活中的运用示例。

Your ability to express ideas in code — getting a computer to do what you want it to do — gradually and steadily increases as you go along.
你通过代码表达思维的能力——也就是让计算机做你想做的事的能力——会随着学习的过程逐渐提升并巩固。

I never say, “Learn a month’s worth of theory and then see if you can use it.”
我从不会说(我从不相信),学一个月理论然后看看你会不会直接用。


Why would you want to program?
为什么要学编程?

Our civilization runs on software.
人类文明运行在软件上。

Without understanding software you are reduced to believing in “magic” and will be locked out of many of the most interesting, profitable, and socially useful technical fields of work.
如果不理解软件那就只能选择相信计算机中存在某种「魔法」并被一些最有趣,最高效,对社会最有用的一些工作领域拒之门外。

When I talk about programming, I think of the whole spectrum of computer programs from personal computer applications with GUIs (graphical user interfaces), through engineering calculations and embedded systems control applications (such as digital cameras, cars, and cell phones), to text manipulation applications as found in many humanities and business applications.
我说的编程是一个宽泛的概念,包括个人电脑上有图形用户界面的计算机程序、工程计算、嵌入式系统中的控制应用(比如数码相机,汽车和手机)、还有很多在人文社科、商业场景可见到的文本编辑程序。

Like mathematics, programming — when done well — is a valuable intellectual exercise that
sharpens our ability to think.
就像数学一样,编程——如果认真琢磨——是一个能锻炼思维的非常有价值的智力活动。

However, thanks to feedback from the computer, programming is more concrete than most forms of math, and therefore accessible to more people.
然而,多亏了计算机返回的反馈信息,让编程比数学更

这篇关于[翻译]《Programming - Principles and Practice Using C++, Second Edition》- Preface的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771981

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

C++归并排序代码实现示例代码

《C++归并排序代码实现示例代码》归并排序将待排序数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并,得到排序后的数组,:本文主要介绍C++归并排序代码实现的相关资料,需要的... 目录1 算法核心思想2 代码实现3 算法时间复杂度1 算法核心思想归并排序是一种高效的排序方式,需要用

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域