首页 > > > 选Python还是Java?
抱歉啦,整个9月都在充电和赶进度。好久不冒泡了,今天还有公众号读者给我发了句淡淡的「好久没更新了」来催更,今天先「水」一篇非技术的吧。
知乎上有很多关于语言选择的问题,这已经是月经贴了。其中关于Python和Java的问题大抵如下:
这类问题过一段时间就得来一波,今天我就以这个为切入点和大家唠唠。
相信你们最近又看到一波「夸」Python的文章,引用了一些国外的数据,无非说Python现在很火,薪资很高,是未来的趋势balabala...
不过我们要关注下带节奏的是谁:
A: 培训机构营销号
他们说的话可以信?
注:此文发布时间为 2017-09-28
我最近4-5年是一个靠Python吃饭的一线开发者。在我认知里面,Python既是一个大众化的语言,也是一小搓儿开发者喜欢的语言。怎么说呢?
每个开发者都应该学学Python这个胶水语言,后端开发者不会Python都不好意思出门和别人打招呼。事实上基本在每个公司都有Python的身影,只不过公司的核心业务、用户产品很少用Python来做。
国内大一点的、使用Python做基础设施的公司1只手就可以数出来:豆瓣、知乎、美团、饿了么、搜狐(漏掉的欢迎补充)。 公司级别把Python作为核心的公司屈指可数,它更像是一波有「特殊」感情开发者的选择,这波人品味很挑剔,这个有点难描述,参照Pythonic这个词希望你成为的开发者吧。
Python在国外环境要好得多,但是在国内一直在缓慢的赢得更多人的心,在我的感觉里还有点「病态」发展(这个就不展开了),增速是可预期的,不会出现井喷式的增长。
职位就是那么多,但是由于那些无良培训机构和不明真相的吃瓜群众的引导和欺骗,再加上浮躁的社会的风气,进来了一大帮水货,企业相应的也就提高的招聘要求,让offer拿的更难了。和前端市场一样,很多人抱怨找不到工作,究其原因,无非是市场冷静客观下来优胜劣汰,能力不达标罢了。据我所知,只要你的能力匹配,Python高级工程师是非常受市场青睐的。
终于到了正题了。我确实不用Java,不过工作和个人项目中我会用到Python,Golang,Lua,Javascript、CSS,以前做运维的时候还用过Perl和Ruby。很多年前看《程序员修炼之道》,作者建议每年至少学习一门新语言,每季度阅读一本技术书籍。非常有道理,我今年学的是Rust,明年准备学Swift。其实学习语言无非是语法、库和框架这三者,如果掌握正确的方法一个月就能开始用它写点东西了,没什么必要纠结学那个的问题,开发者的基本素养之一就是整个职业生涯里面都得不断学习,除非我不认同某个语言的设计哲学和语法,比如我个人是不喜欢Java的。学的时候可以带着问题来学,比如A语言和B语言相比有什么优劣,设计上为什么不同、它们只能有很么互相借鉴的地方,为什么?等等.. 以后在工作中可以针对不同的项目特点选择合适的语言。我爱Python,但是只在正确的时候用它,而不是一棒子打死无论什么场景都用某语言,要记住,用语言或 者框架来划分技术其实很幼稚。
插个题外话,可能有的读者会问「那怎么不见你写/回答Golang、Rust等方面的文章/问题呀」?因为不自信,不想误人子弟,也不想强答。「自信」是什么呢?就是使用它的时候不担心有什么解决不了的问题,「天下我有」的感觉,大不了看源码,我C学的不好,但是不影响我带着问题读CPython的源码,不过离贡献C代码就差的很远了,我现在也没想着走这一步,所以对C语言的掌握程度就这样了,精力和天赋有限,就要正确规划,10个浅尝辄止不如1个融会贯通。如果没有经过4-5年的深入和实践,我真的不觉得能在某个领域指手画脚。
说到选择。如果你没有强烈的对语言的认可或者不认可,单纯为了尽快养家糊口,选Java,因为市场需求量大,应用广泛,成熟案例多。如果你很理解「人生苦短我用Python」这句话,答案就不言而喻了,不过无论是否选择Python吃饭,甚至你不是一个职业的开发者(比如产品经理),我还是再建议你应该也要学学Python。
之前在知乎看到过大概这样一句话「只会Python找工作很难」,我是认可的。通过观察和了解,我身边的大部分除了Python都能使用其他技术完成工作,比如前端、IOS、安卓等。无论Python还是Java都只是编程语言,工作中还需要具备很多其他的能力,拿Web开发来说(这里不考虑软技能和需求分析、沟通协作等方面的事情),HTTP/TCP、Linux、数据库、Web服务器、第三方库和框架、Web基础(HTML/CSS/JS/ES6) 、消息队列、分布式、虚拟化、RPC、缓存、搜索引擎、微服务、上线流程、趁手的开发工具、调试流程、分布式文件系统、安全等等,随便一想就这么多内容。当然最难的和最有价值的是工作经验。只会编程语言算什么?你有什么竞争力,你给个有点悟性的本科生2个月时间工作起来不会差很多。一定不要放大编程语言对于找工作的重要性。
另外插个话题。应届生找工作对语言的要求并没有那么重要,反而数据结构、算法、计算机系统、Linux、计算机网络甚至英语这些基础更重要。希望还没有毕业的同学能够抓紧时间多多充电。多看书多时实践多刷题,少上知乎。
欢迎大家关注我的 微信公众号「Python之美」 http://open.weixin.qq.com/qr/code/?username=python_cn
- by 知乎同步小助手
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/756/viewspace-3166084/ ,如需转载,请注明出处,否则将追究法律责任。