如果打算从零开始学编程,建议你学 Python
如果你是一个编程的门外汉,想要通过学习一门编程语言了解工程师的世界,或者想学点实用的编程手艺提高自己的工作效率,我会首推 Python。
从初学编程到现在,我用过不少编程语言,大部分是浅尝辄止,基本上算是一个编程领域半途而废的专家,积累了大量初学者经验(伤感)。在我看来,一门适合零基础入门的语言,应该具备以下特性:
要立竿见影
每一门编程语言都有自己的学习曲线,作为入门,建议选一门初期学习曲线不那么陡峭的,也就是说投入的时间尽可能有显著的产出,每学一个知识点就可以立刻见到效果。
我记得我刚接触 Java 的时候,光是把一个工程跑起来就花费了好多时间,各种配置,各种报错,特别绝望,后来我找一个工程师帮忙,他在我电脑上捣鼓半天,还嘀咕「咦?我那里不是这样啊」,吓得我不敢吱声。
而 Python 就好很多,在一些标准库的加持下,几行代码就可以写出有价值的程序,我自己的第一个 Python 程序是帮姑娘处理她日常工作数据,找了一个示例程序边学边改,没多久就写好了。以往她每天需要操作个把小时的报表,用程序跑几分钟就完成了,还不会出错,她十分感动,被我迷住了。如果换成别的语言,这点儿时间恐怕还在配置运行环境……
丰富易用的库
库是巨人的肩膀,战士的行囊。一个有生命力的编程语言,应该有大量稳定而容易调用的库或者包,把一些底层的东西封装起来。
Python 有许多恰如其分的第三方库,而且都很独立,不会出现像 C 语言里那种包含头文件顺序出错都要跪的场面。对于我们这些非专业程序员,只需要根据自己的要求把它们串起来,就能写出短小精悍的程序。
尤其是到了人工智能和数据的时代,Python 越加流行起来,不论是机器学习算法本身,还是语料和数据的预处理,都有丰富的库可以直接调用。
你要一个排序,咔,它给排好了,你要一个神经网络,咔,它给你支起来了。这让我们能够集中精力在问题本身,不需要重复造轮子,古语有云,「君子生非异也,善假于库也」,就是这个意思。
要实用
即便用一万种语言在屏幕上打出「Hello World」也没有任何意义,能够让我们沉浸到程序世界的最重要一点,就是要让这个程序可以解决日常工作或者生活中的具体问题。
我上一份工作同时负责很多产品线,每天都要看大量的数据,那时我们的数据统计工具主要是 GA(Google Analytics,谷歌分析),如果直接使用 GA 的 Web 工具,每天要花许多时间在机械操作上,而且一旦涉及到跨域,就很难做交叉对比。
后来我写了一小段 Python 程序,利用 GA 提供的数据接口,配合 Python Excel 的库,直接把相关数据拉回到本地,生成自己想看的报表和图例(听起来很高级,其实人家都提供完整的示例代码,只需要把自己的账号填进去就能把程序跑起来)。在不断的修剪程序的过程里需要解决很多问题,这样基于实际问题出发的学习是最有效的,并且你做出来的不是一个花瓶项目,而是实用的工具,一举两得。
要有丰富的群众基础和资料
一个程序员最冰冷的时刻就是把报错信息贴到搜索引擎里,却一条结果都没搜出来。所以对于一个初学者来说,一定要尽可能选择那些已经比较成熟,资料丰富,群众基础扎实的编程语言。你能遇到的各种问题早就有人解决好并且写在网上了,能节省很多时间。
另一方面,成熟编程语言通常有成熟的学习路径,不太需要自己摸着石头过河。对于非科班的人来说,有一个温暖的初学环境太重要了,事关效率和心情。
— 广告时间 —
今天向大家推荐的是网易云课堂的 Python Web 微专业(免费体验课),课程内容是从零开始搭一个 Web 站点。Web 是互联网最广阔、最开放也是最公平的土壤,从这里入门挺好的。我看了一下课程设置,从前到后都有涉及,不仅是 Python,也包含了前端和数据库的部分。而且课程内容非常生动,比如用易拉罐来解释 Web 页面容器属性,很有意思。
现在,网易云课堂推出了限时的免费体验课(只在九月),除了大约 60 分钟的视频课程,还有两个实战项目,配有助教可以响应答疑,如果你感兴趣的话可以试试。
如果你想要加入这次的Python Web限时免费体验课,可以扫描下方的二维码,进入Python Web 体验课学习 QQ 群(群号:641916334),群里有助教老师协助大家更高效更扎实地学习 Python技能。
也点击 [阅读原文],可以直接 5 折购买 Python Web 开发工程师微专业