“大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿。”                                                                                                                                                                   ——林纳斯·托瓦兹(Linus Torvalds)

在美国亚马逊,有一本书的影响力超高的Python入门书,Kindle版本在美国亚马逊网站的计算机软件、软件开发分类中排行均为第一,超越了众多实力派Python书,众多五星好评。也许你有所耳闻,这本书就是《Python编程无师自通——专业程序员的养成》

fb1d63d8b9d1a54b027c08798db5a5e9

08ae6bd5f178601e4cc5fe8fa98c7257

《Python编程无师自通——专业程序员的养成》作者是一名自学成才的程序员,作为一名文科生他通过自学编程,掌握了编程技能并在eBay找到了一份软件工程师的工作。这本书是作者结合个人经验写作而成,旨在帮助读者从外行成长为一名专业的Python程序员。

这本书可以满足几乎所有想要学习编程的初学者。本书适合高中、大学阶段想要自学编程的学生,以及其他行业想入门编程的人,同时也适合作为编程入门的培训教材。

9ccc0ca9gy1fyhr9sgzfwj208j0a10vy.jpg

《Python编程无师自通——专业程序员的养成》

作者:[美] 科里•奥尔索夫(Cory Althoff)

作者自述

我毕业于克莱门森大学政治学专业,曾考虑过是否选择学习计算机科学专业,还在大一那年报名参加了“编程概论”课程,不过很快就退出了。实在是太难了。毕业后我一直住在硅谷,我发现我需要学习编程。一年后,我成为了eBay公司的一名中级软件工程师。我不想让大家觉得这是很轻松就能做到的。实际上,这是极具挑战的一件事。在这一年的不断尝试努力过程中,我得到了很多乐趣。

刚开始,很多人学习的是如何用流行的编程语言Python来进行编程。但是本书不仅是教你如何使用某种特定的语言编程,还会介绍标准教材中所不包括的其他所有知识点。本书分享的是我在成为软件工程师过程中不得不自学的内容。不管你的目标是成为一名软件工程师、企业家,还是在其他的岗位上使用编程技能,你都是本书的目标读者。

学会一门编程语言还不够,你还需要学会其他技能,才能像计算机科学家一样地工作。我会教授大家我从编程新手到专业软件工程师过程中学到的一切。我写是为了向有志于编程岗位的人分享他们需要掌握的知识框架。编程概论的书籍都大同小异——用Python或Ruby介绍编程的基础知识,然后就让你自己摸索。我经常从读完类似书籍的朋友那听到这样的反馈:我现在该做什么?我还不是一名程序员,也不知道下一步该学什么。

本书,就是我给出的答案。

本书结构

本书中涵盖很多主题,作者的目标不是包罗你需要了解的每个主题的所有细节,而是提供一份指引——一个编程职业发展所需要的所有技能的导览。

第一部分:编程简介。让你尽快写出自己的第一个程序,最好在今天。

第二部分:面向对象编程简介。这部分将介绍不同的编程范式,着重阐述面向对象编程。你会开发一个游戏,体会编程的强大能力。读完这部分后你会沉迷于编程。

第三部分:编程工具简介。将介绍提升编程生产力的不同工具。这时,你已经沉迷于编程,并希望变得更好。你将会学习相关的操作系统、使用正则表达式提升效率、安装并管理他人的程序,以及使用版本控制与其他工程师协作的知识。

第四部分:计算机科学简介。将简要介绍计算机科学知识,主要涵盖两个主题——算法和数据结构。

第五部分:找到工作。最后一部分是关于最佳编程实践,如何找到软件工程师的工作,团队协作以及程序员的自我提升。本文会分享如何通过技术面试与团队协作的建议,以及如何进一步提升自己的技能。

从终点出发

一般来说,你会先花很多时间学习理论,理论知识学的太多以至于许多计算机科学的毕业生甚至不知道如何动手编程。杰夫·阿特伍德(Jeff Atwood),在其博客“为什么程序员不会编程”中写道:“和我一样,许多人都碰到了这样的情况,编程岗位的200位申请者中,有199个根本不会写代码。重申一遍:他们一点代码都不会写。”这种现象直接促使Atwood发明了FizzBuzz代码挑战,一种用来在面试中筛选申请者的编程测试。大部分人都通不过测试,这也是为什么你要学习本书并掌握实践中要使用到技能。

《王者之旅》电影中的主角乔什(Josh Waitzkin),在《学习的艺术》一书中回忆了他如何反向学习国际象棋。他没有和其他人一样研究开局,而是从学习象棋残局。这样做让他对国际象棋有了更深的理解,并赢得了多次大赛冠军。与此类似,先学习如何编程再学习理论的方法更高效,因为你会拥有了解背后原理的强烈驱动。虽然理论很重要,但是在你拥有了编程经验之后,理论的价值才更大。

《王者之旅》电影截图《王者之旅》电影截图

你不是一个人在战斗

毕业后再学习编程,已经越来越常见。Stack Overflow(一个程序员在线社区)在2015年的一份调查中显示,48%的受访者不是计算机专业却从事编程职业。

自学的优势

在eBay工作期间,作者的团队中有从斯坦福大学、加州大学和杜克大学计算机科学专业毕业的程序员,还有两名物理学博士。当时他25岁,而年仅21岁的同事对编程和计算机科学的知识比其强10倍这个事实,让作者尤其惶恐。

虽然与拥有计算机科学学士、硕士甚至是博士学位的同事一起工作的压力很大,但别忘记了你还有“自学的优势”。你选择读本文,不是出于老师布置的任务,而是因为你内心学习的渴望,这一点是你所拥有的最大优势。苹果公司的创始人斯蒂夫·沃兹尼亚克(Steve Wozniak)就是一位自学成才的程序员;还有因在美国宇航局的阿波罗登月计划中做出卓越贡献而获得总统自由勋章的玛格丽特·汉密尔顿(Margaret Hamilton);还有Tumblr 的创始人大卫·卡普(David Karp),Twitter的创始人杰克·多西(Jack Dorsey),Instagram 的创始人凯文·斯特罗姆(Kevin Systrom),他们都是自学成才的程序员。

为什么应该编程

不管你从事什么工作,编程都有助于你的职业发展。学习编程将给你自己赋能。你喜欢尝试新想法,时刻都有希望启动的新项目。学会编程后,你就可以坐下来自己实现,而不需要依赖他人。

编程也会提升你在其他方面的技能。因为你熟练掌握了问题解决能力,鲜有其他工作不会因此而受益。如我最近要在网上租房,搜索并筛选房子是个非常费力的活儿。但是我写了一个程序来代替我搜索,最后将结果以邮件形式发送给我。学会编程,将把你从重复性工作中解放出来。

如果你想成为软件工程师,市场上对这类岗位的需求也日益增长,但是符合要求的候选者却总是供不应求。到2020年,预计将有一百万个编程岗位空缺。即使你的目标不是成为软件工程师,科学和金融等领域的岗位也开始倾向那些拥有编程经验的申请者。

坚持不懈

如果你之前没有任何编程经验,担心自己无法胜任编程工作,但是你要相信自己:你完全有能力做到。人们对程序员有一些常见的误解,比如程序员都得擅长数学。这是错误的印象,不过编程确实是一件困难的工作。幸运的是,本书涵盖的内容将让这一切变得比你想象得更加容易。

为了提高编程技巧,你应该每天练习编程。挡在你面前的唯一障碍就是无法坚持,所以我们要采取一些措施确保自己能够坚持不懈。准备一张检查清单,来确保每天都有做练习,而且也能够帮助你保持专注。

如果你还需要其他帮助,效率专家Tim Ferris建议采用如下技巧来保持驱动力。事先给家人或朋友一笔钱,如果你在规定的时间内完成了目标,就让他们把钱还给你,否则就将钱捐献给你讨厌的机构。

58a5b80231198e976f8208e0922128c8

本书使用的技术

为了让读者尽可能的积累编程经验,书中会介绍多种技术。在某些情况下,必须在许多不同的技术中做出选择。我们将会学习Git的基础知识。Git是一个流行的版本控制系统,选择介绍Git是因为笔者认为它已经成为版本控制的业界标准。书中用Python来编写大部分的编程示例,因为它是一门很流行的初学者语言,而且即使从来没有使用过Python的人学习起来也比较简单。此外,目前几乎每个领域对Python开发者的需求都非常大。不过,会尽量做到内容与技术无关——注重概念,而非技术本身。​

《Python编程无师自通——专业程序员的养成》 每章结尾处都有术语表和挑战练习,让你更好地学习Python 3。

目录一览

第1章 概述

第2章 起步

第3章 编程概论

第4章 函数

第5章 容器

第6章 字符串操作

第7章 循环

第8章 模块

第9章 文件

第10章 综合练习

第11章 练习

第二部分 面对对象编程简介

第12章 编程范式

第13章 面向对象编程的四大支柱

第14章 深入面向对象编程

第15章 综合练习

第三部分 编程工具简介

第16章 Bash

第17章 正则表达式

第18章 包管理器

第19章 版本控制

第20章 融会贯通

第四部分 计算机科学简介

第21章 数据结构

第22章 算法

第五部分 找到工作

第23章 最佳编程实践

第24章 第一份编程工作

第25章 团队协作

第26章 更多学习资料

第27章 下一步

书单推荐

推荐1​

2c29ac3709b143d5ace4d103f6977690

Python编程快速上手——让繁琐工作自动化

作者:【美】Al Sweigart(斯维加特)

推荐2​

4d36fdce5b4437c9a735ff7a3aea4900

“笨办法”学Python 3

作者:[美] 泽德 A. 肖(Zed A. Shaw)

推荐3

08c273820821626921744a9d781a8c2c

数据结构(Python语言描述)

作者:【美】Kenneth A. Lambert(兰伯特)

推荐4

0e62444c80ea83a47757004748a26da9

Python核心编程(第3版)

作者:【美】Wesley Chun(卫斯理 春)

推荐5

3c027368bd7c33609d3ada8730f95582

Python编程从入门到精通

作者:叶维忠

美亚kindle排名第一的Python 3入门书,火遍了整个编程圈...相关推荐

  1. 美亚Kindle排名第一的Python 3入门书,火遍了整个编程圈

    "大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿." --林纳斯·托瓦兹(Linus Torvalds) 在美国亚马逊,有一本书的 ...

  2. 这本 Kindle 排名第一的 Python 3 入门书,火遍了整个编程圈!| 码书

    "大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿." --林纳斯·托瓦兹(Linus Torvalds) 在美国亚马逊,有一本书的 ...

  3. 这本Python 3入门书,火遍了整个编程圈

    "大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿." --林纳斯·托瓦兹(Linus Torvalds) 在美国亚马逊,有一本书的 ...

  4. python儿童入门书_一款儿童编程入门的理想工具——PythonTurtle

    今天偶然发现了一款Python入门的理想工具PythonTurtle.非常容易上手,强烈推荐一下.PythonTurtle的灵感来源于早期编程语言Logo,也是通过控制小海龟来完成Python语言的入 ...

  5. python人工智能入门书籍推荐-小编就给大家推荐几本python机器学习入门书!

    很多人对于机器学习很感兴趣,所以想要通过一些书籍来学习研究,那么有哪些机器学习入门书籍推荐呢?本文小编就给大家推荐几本python机器学习入门书,大家可以去书店具体购买. 有哪些机器学习入门书籍推荐呢 ...

  6. 豆瓣评分8.9,这本Python经典入门书重磅升级

    好消息,时隔5年,这本美亚排名前三.中文版畅销超20万册,豆瓣评分8.9的入门书<Python编程快速上手--让繁琐工作自动化>第二版的中文版终于上市了.接下来的很长时间你将被这本书第2版 ...

  7. 建议收藏!最有效率的python数据分析入门书单

    又到了周末,是时候跟新一波了!常有人问起来,我是怎么转行到数据分析行业的,又是怎么从零编程入坑python的,面对市面上那么多<xx天入门>的书籍,该如何挑选?今天小文将捋一捋我的学(ru ...

  8. 美亚畅销的百页机器学习入门书,不止简单易懂

    我与"机器学习"的初次邂逅是在5年前,那时我刚刚决定于新加坡南洋理工大学攻读计算机博士学位.比起计算机学院的主流课程,如数据库.软件开发.嵌入式系统等,"机器学习&quo ...

  9. python编程入门书-读书笔记之《编程小白的第1本Python入门书》

    本书电子版下载地址:百度网盘 写在前面:你需要这本书的原因 有没有那一个瞬间,让你想要放弃学习编程? 在我决心开始学编程的时候,我为自己制定了一个每天编程1小时的计划,那时候工作很忙,我只能等到晚上9 ...

最新文章

  1. 阿里程序员跳槽到小外企,再无996!业余时间开发APP,每月广告收入8万多!堪比阿里P8!...
  2. 10kv电压互感器型号_10kv电流互感器的一次电流选择应遵循的基本原则
  3. jQuery easyUI--layout布局页面
  4. ionic2 mac android,Ionic制作Hybrid App系列二:Mac环境下Ionic release版本APK的签名与发布...
  5. java教程菜鸟教程组合模式,组合实体模式
  6. 【C++深度剖析教程34】C++中的强制类型转换dynamic_cast
  7. leetcode 刷题指南
  8. java编写图案1357,洛谷 P1357 花园 解题报告
  9. 怎样把xp计算机语言改为英文,ghost xp如何将语言设置为英文
  10. 【拆解】便携示波器怎么选?
  11. thinkphp 下实现繁简体汉字转换
  12. 松下TDA-200开启呼叫转移功能
  13. 《马克思主义基本原理概论》复习笔记
  14. 评卷系统-答题卡制作参考网站
  15. java 排列组合算法_关于各种排列组合java算法
  16. day21_Lambda表达式、函数式接口
  17. 工作问题:SQL求解用户复购率
  18. 数学分析笔记-有限覆盖定理
  19. 你应该会喜欢的5个自定义 Hook
  20. PTA - 数据库合集22

热门文章

  1. 高工拆解|小鹏汽车三代座舱主机平台,从TI到高通
  2. elementUI中loading组件的完美使用
  3. 【开源项目】mysql大表数据迁移
  4. collection.stream用法
  5. Async/Await语法糖
  6. 解决Silverlight F5刷新问题
  7. VUE 图片放大特效
  8. SQL高级查询——50句查询(含答案)
  9. 大一学的计算机应用,计算机应用技术专业学生大一学年自我鉴定.doc
  10. 阴影映射(Shadow Map)的研究(三)