1.1 简介
正如大多数的学习一样,学习程序设计就像母鸡和蛋的问题。我们希望开始学习一样东西,但是我们也希望了解为什么学习它。我们想学习一个实用技能,但是也希望确保它不只是一时的风潮。我们希望知道自己不是在浪费时间,也不想因夸大的宣传和道德说教而厌烦。现在,你可以只是将本章当作一些有意思的内容来阅读,当你觉得需要更新你大脑中关于“为什么这些技术细节在课堂外很重要”的认知时,再返回来重新阅读本章。
本章陈述了我们的个人见解,阐述了我们认为程序设计中有意思和重要的方面。它解释了激励我们数十年后在这个领域中不断前进的理由。通过阅读本章,你会得到关于“可能的最终目标是什么”以及“程序员可能是哪种人”的一些见解。针对初学者的技术书籍毫无疑问会包含很多基础的内容。在本章中,我们将着眼点从技术细节上移开,考虑一个更大的图景:为什么程序设计是一个有价值的活动?程序设计在人类文明中扮演怎样的角色?程序员在哪些方面所做的贡献值得骄傲?程序设计如何融入软件开发、应用和维护的更大世界中?当人们谈论关于“计算机科学”“软件工程”“信息技术”时,程序设计在其中扮演什么样的角色?程序员是做什么的?一个好的程序员需要具备哪些技能?
对于一个学生来说,理解一个思想、一项技术或一个章节的最紧迫的原因,可能是想以好的成绩通过考试,但是有更多比成绩更重要的东西需要学习!对于那些在软件公司工作的人来说,理解一个思想、一项技术或一个章节的最紧迫的原因,可能是找到一些对目前的项目有帮助的东西,并且不会使控制你的薪水和升职还能解雇你的老板感到恼怒,但同样地,这里有更多值得学习的内容!当我们感到自己的工作会在细微的方面改善人们所生活的世界,我们就会努力将工作做到最好。对于那些需要用几年时间完成的任务(在专业和职业发展中的“事情”),理想和更抽象的思想是决定性的。 ...