查看原文
其他

Python这么简单还用学吗?

2017-11-01 老刘 码农翻身

有位C++的大神在讲课时提到了Python,  听课的同学问道: 我是不是需要学习一下Python?


大神说:“Python 这么简单还用学吗? ”  


在大神的眼中, 像Python这样简单的语言, 看半天就应该能上手编程了, 根本不用战战兢兢地抱着一本大厚书去啃。 


大神是有资格这么说,毕竟C++是一门非常复杂的语言, 这么复杂的都能搞定, 其他的自然不在话下。


从纯语言的角度来看,这么说完全是没有问题的,我相信很多人,如果你学会了一门编程语言,开始学第二门的时候,都会有类似的感觉。


比如你学会了Java, 然后开始看Python, 会发现有很多相似之处。


例如: 编程中最常用的一些数据结构非常相像:


PythonJava
String
String
List

List

ArrayList, LinkedList 等

Dictionary

Map

HashMap, TreeMap,LinkedHashMap等

Set

Set

HashSet, TreeSet, LinkedHashSet 等


流程控制语句也很像,无非都是if...else , for , while 等等。


面向对象的编程都要有类和对象,成员变量,成员方法,都要有封装、继承、多态。


文件IO也是如此,无非就是打开一个文件,定位到某个地方进行读写操作,关闭文件。


每个高级语言都支持多线程编程, Python也不例外,可以轻松地创建线程,线程之间也有同步和互斥, 也使用ThreadLocal来保存每个线程独有的数据, 名称都和Java一样。


网络编程无非就是Socket,  XML解析就是DOM和SAX, 邮件发送使用SMTP, POP3......


所以有了一门语言相对复杂的语言做基础(如Java), 再去学习Python, 确实非常容易。 半天时间就能把Python看个差不多,然后直接就可以写程序了, 在写的过程中如果哪个地方不清楚了, API接口名称忘记了(尤其是那些细微差别的地方),去翻参考书、去网上搜,很快搞定。


刚开始编程的时候比较慢, 等你熟练了以后,会越来越快。 


一门高级语言的基础概念其实就那么多:数据类型、集合、流程控制、面向对象、文件、Socket、XML、JSON  等, 你从某一门语言中学会了,切换到另外一门,所要变换的无非就是基本的语法、API接口、惯用法和最佳实践。


可能有人要说了,这些都是基础的东西,只能让我写点小程序,做不了什么大事啊。


没错,这些东西都是基础,想做出有用的程序,还必须得学会使用类库和框架。但是不同类库和框架所依赖的基础知识和概念也是相通的。 


就拿Web编程来说,必须要掌握几个基础知识是一样的:HTTP协议,HTML, Javascript, CSS,SQL。 然后不同语言,不同框架要解决的问题也是一样的:

URL 和 代码的映射

数据的验证、转换和绑定

Web安全

数据库的访问, O/R Mapping

用什么技术来生成Web页面?

如何把对象变成XML或者JSON字符串?


(详情请移步《搞懂了这几点,你就学会了Web编程》)


通过一门语言,把这些基本原理掌握了,换到另外一个语言和框架,真的不难 。 


如果再向上走,进入设计层面,把业务需求抽象成各种概念,设计高内聚、低耦合的模块,那和具体的语言关联度就更小了。 


回到文章最初的话题,我其实想表达的是:不用着急去追逐那些热门的编程语言,只要把一门语言学精了,把一些基础概念和基础知识掌握了,再去学别的,真的不难, 就是一个知不知道,熟不熟练的问题。


特别要注意一些无良的机构,挂羊头卖狗肉,什么火热就培训什么,人工智能, VR,  物联网,云计算, 吸引人交钱入坑,真的开始学了发现只是学习一下Python而已。 


(完)


你看到的只是冰山一角, 更多精彩文章,请移步《2016文章精华》或者《2017上半年文章精华


有心得想和大家分享? 欢迎投稿 ! 我的联系方式:微信:liuxinlehan  QQ: 3340792577




优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。


100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。


扫描下方二维码,注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存