大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的认可,而是因为他们觉得编程有趣。——林纳斯·托瓦兹(Linus Torvalds)
在美国亚马逊网站上,有一本Python入门书特别受欢迎,其Kindle版本在计算机软件和软件开发分类中均排名首位,超越了许多其他知名Python书籍,获得了大量五星评价。这本书便是《Python编程无师自通——专业程序员的养成》。
这本书的作者是一位自学成才的程序员,他原本是一名文科生,在自学编程后掌握了编程技能,并在eBay找到了一份软件工程师的工作。本书结合了作者的个人经历,旨在帮助读者成长为专业的Python程序员。
这本书适合所有想学习编程的初学者,无论是高中生、大学生,还是其他行业的从业者,都可以从中获益。此外,这本书也可作为编程入门的培训教材。
我毕业于克莱门森大学的政治学专业,曾考虑过是否应该选择计算机科学专业。尽管我在大一的时候参加了一次编程入门课程,但很快便放弃了,因为实在太难了。毕业后,我搬到了硅谷,并发现自己需要学习编程。一年后,我成为eBay的一名中级软件工程师。这并不是一件轻松的事,实际上,这是一个充满挑战的过程。然而,在这一年的努力中,我收获了很多乐趣。
刚开始时,很多人学习的是如何用流行的编程语言Python进行编程。但这本书不仅仅是教你如何使用某种特定的编程语言,还会介绍许多在标准教材中没有涵盖的知识点。这本书分享了我在成为软件工程师的过程中不得不自学的内容。无论你的目标是成为一名软件工程师、企业家,还是在其他领域应用编程技能,你都是本书的目标读者。
仅仅学会一种编程语言是不够的,你还需要掌握其他技能,才能像计算机科学家一样工作。我会教授大家从编程新手成长为专业软件工程师所需的所有知识。我写这本书是为了向有志于编程岗位的人分享他们需要掌握的知识框架。市面上的编程入门书籍大多相似——用Python或Ruby介绍基础知识,然后就让你自己探索。我经常从读完这类书籍的朋友那里听到这样的反馈:“我现在该怎么办?我还不是程序员,也不知道下一步该学什么。”
本书涵盖了多个主题,作者的目的不是详尽地介绍每个主题的所有细节,而是提供一个指南——一个编程职业发展所需的技能导览。
让你尽快写出第一个程序,最好是在今天。
这部分将介绍不同的编程范式,重点讲解面向对象编程。你会开发一个游戏,感受编程的强大能力。读完这部分后,你会沉浸在编程的世界中。
将介绍提高编程生产力的不同工具。此时,你已经沉浸于编程,并希望变得更优秀。你将学习相关操作系统、运用正则表达式提高效率、安装并管理别人的程序,以及使用版本控制与其他工程师协作的知识。
将简要介绍计算机科学知识,主要涵盖两个主题——算法和数据结构。
最后一部分讨论最佳编程实践,如何找到软件工程师的工作,团队协作以及程序员的自我提升。本文将分享如何通过技术面试与团队协作的建议,以及如何进一步提升自己的技能。
通常情况下,人们会花费大量时间学习理论知识,以至于许多计算机科学专业的毕业生都不知道如何动手编程。杰夫·阿特伍德在他的博客《为什么程序员不会编程》中写道:“像我一样,许多人遇到了这样的情况,编程岗位的200位申请者中,有199个根本不会写代码。”这种现象直接促使阿特伍德发明了FizzBuzz代码挑战,一种用于面试的编程测试。大部分人都无法通过测试,这也是为什么你需要学习本书并掌握实际中需要用到的技能。
电影《王者之旅》中的主角乔什在《学习的艺术》一书中回忆了他是如何反向学习国际象棋的。他没有像其他人那样研究开局,而是从学习残局开始。这样使他对国际象棋有了更深的理解,并赢得了多次大赛冠军。同样,先学习编程再学习理论的方法更为高效,因为你将拥有了解背后原理的强烈动机。虽然理论知识很重要,但在你有了编程经验之后,理论的价值才会更大。
毕业后自学编程已经成为越来越普遍的现象。Stack Overflow在2015年的一项调查显示,48%的受访者并非计算机专业出身却从事编程职业。
在我在eBay工作期间,我的团队中有从斯坦福大学、加州大学和杜克大学计算机科学专业毕业的程序员,还有两名物理学博士。当时我25岁,而21岁的同事对编程和计算机科学知识的掌握比我强10倍,这让我感到非常不安。
尽管与拥有计算机科学学位的同事一起工作压力很大,但别忘了你还有“自学的优势”。你选择阅读本书,不是出于老师布置的任务,而是因为你内心渴望学习,这正是你最大的优势。苹果公司的创始人史蒂夫·沃兹尼亚克(Steve Wozniak)就是一位自学成才的程序员;还有因在美国宇航局的阿波罗登月计划中做出杰出贡献而获得总统自由勋章的玛格丽特·汉密尔顿(Margaret Hamilton);还有Tumblr的创始人大卫·卡普(David Karp)、Twitter的创始人杰克·多西(Jack Dorsey)和Instagram的创始人凯文·斯特罗姆(Kevin Systrom),他们都自学成才。
无论你从事何种工作,编程都能促进你的职业发展。学习编程能赋予你实现新想法的能力,时刻准备启动新项目。学会编程后,你可以独立完成任务,而不必依赖他人。
编程还能提升你在其他方面的技能。因为你熟练掌握了问题解决能力,几乎所有工作都会因此受益。例如,我最近在网上租房时,搜索和筛选房源是一项繁琐的工作。但我编写了一个程序来代替我搜索,最终将结果以电子邮件形式发送给我。学会编程,将让你从重复性工作中解脱出来。
如果你的目标是成为软件工程师,市场对这类岗位的需求正在增加,但合格的候选人却供不应求。预计到2020年,将有100万个编程岗位空缺。即使你的目标不是成为软件工程师,科学和金融等领域也开始倾向于招聘拥有编程背景的求职者。
如果你之前没有任何编程经验,担心自己无法胜任编程工作,但请相信自己:你完全有能力做到。人们对程序员存在一些误解,比如认为程序员都擅长数学。这是一种错误的看法,但编程确实是一项具有挑战性的任务。幸运的是,本书涵盖的内容将让这一切变得比你想象的更容易。
为了提高编程技能,你应该每天练习编程。唯一阻碍你的障碍是无法坚持,因此我们需要采取一些措施确保自己能够持续下去。准备一份检查清单,确保每天都有练习,同时也能帮助你保持专注。
如果你还需要其他帮助,效率专家蒂姆·费里斯(Tim Ferris)建议采用以下技巧来保持动力。提前给家人或朋友一笔钱,如果你在规定的时间内完成了目标,就让他们把钱还给你,否则就将钱捐赠给你讨厌的机构。
为了让读者尽可能多地积累编程经验,书中会介绍多种技术和工具。在某些情况下,需要在许多不同的工具和技术中做出选择。我们将学习Git的基础知识。Git是一个流行的版本控制系统,选择介绍Git是因为我认为它已经成为版本控制的行业标准。书中大部分编程示例都使用Python编写,因为它是一种流行的初学者语言,即使是从未使用过Python的人也觉得学习起来比较容易。此外,目前几乎所有领域对Python开发者的需求都非常大。然而,我们会尽量做到内容与技术无关,注重概念而非技术本身。
每章结尾处都有术语表和挑战练习,帮助你更好地学习Python 3。
书籍终究只是辅助,想要真正深入学习,还需要系统的学习方法和教程。为此,我们为你准备了一些Python自学教程材料和PDF电子书籍,希望能对你有所帮助。
如果你想学习Python,市面上的教程可能不少,但最新的呢?或许你学的是两年前甚至更早的内容。在这里,我们为你分享2019年最新的Python全套教程。
我们还为你准备了6月份新出的Python自学视频教程,共计约200G,免费分享给大家!
分享此文章并关注私信我们“888”,即可免费获取以上资料。
希望以上内容能对你有所帮助!