原标题:选Python还是Java ?

抱歉啦,整个9月都在充电和赶进度。好久不冒泡了,今天还有订阅的同学给我发了句淡淡的「好久没更新了」来催更,所以今天先「水」一篇非技术的吧。

知乎上有很多关于语言选择的问题,这已经是月经贴了。其中关于Python和Java的问题大抵如下:

Python和Java该如何选择 ?

将来Python(Java)会不会替代Java(Python) ?

零基础应该选择学习Python还是Java ?

做web开发,用Python好还是Java好呢?

这类问题过一段时间就得来一波,今天我就以这个为切入点和大家唠唠。

我为啥要说这个话题?

相信你们最近又看到一波「夸」Python的文章,引用了一些国外的数据,无非说Python现在很火,薪资很高,是未来的趋势balabala…

不过我们要关注下带节奏的是谁:

A: 培训机构营销号

他们说的话可以信?

那么Python在国内的发展情况如何?

注:此文发布时间为 2017-09-28

我最近4-5年是一个靠Python吃饭的一线开发者。在我认知里面,Python既是一个大众化的语言,也是一小搓儿开发者喜欢的语言。怎么说呢?

每个开发者都应该学学Python这个胶水语言,后端开发者不会Python都不好意思出门和别人打招呼。事实上基本在每个公司都有Python的身影,只不过公司的核心业务、用户产品很少用Python来做。

国内大一点的、使用Python做基础设施的公司1只手就可以数出来:豆瓣、知乎、美团、饿了么、搜狐(漏掉的欢迎补充)。 公司级别把Python作为核心的公司屈指可数,它更像是一波有「特殊」感情开发者的选择,这波人品味很挑剔,这个有点难描述,参照Pythonic这个词希望你成为的开发者吧。

Python在国外环境要好得多,但是在国内一直在缓慢的赢得更多人的心,在我的感觉里还有点「病态」发展(这个就不展开了),增速是可预期的,不会出现井喷式的增长。

职位就是那么多,但是由于那些无良培训机构和不明真相的吃瓜群众的引导和欺骗,再加上浮躁的社会的风气,进来了一大帮水货,企业相应的也就提高的招聘要求,让offer拿的更难了。和前端市场一样,很多人抱怨找不到工作,究其原因,无非是市场冷静客观下来优胜劣汰,能力不达标罢了。据我所知,只要你的能力匹配,Python高级工程师是非常受市场青睐的。

造成Python市场不好的原因有哪些?

政治。在我的第一个知乎Live「Python 工程师的入门和进阶」中也提过,我们都知道语言通常不是技术瓶颈,那为什么公司会有很强烈的技术选型因素?这其实是「政治」。BAT出来的人到其他小型公司做高管,他们为了站稳会选择重构成自己熟悉和喜欢的技术栈,而且重构大部分是为了KPI和晋升。这些有话语权的人往往不会Python,只熟悉传统的PHP,Java,这就造成一种「恶性」循环,其他语言的市场热度不会降下去,政治正确要比技术正确更重要,Python语言很难在这种环境里突破重围。那么知乎、饿了么这些公司为什么选择Python?嘿嘿,除了创业早期为了显得逼格高(有时候这是创业营销的一种需要),他们的高管中有些是豆瓣出去的哦,所以你看到同样的现象,豆瓣出去的人做技术决策的结果选了Python。

招人难。国内找靠谱的Python工程师实在是太难了。会Python和真的靠它吃饭差别实在太大了,知乎Python话题下大部分充其量算是会用Python写脚本的人在强答罢了。你看我的同事或者我了解到的Python领域里面的开发者基本都是不用知乎也不回答Python问题的。我们知道,Python非常适合创业期完成产品快速试错和迭代,如果一个公司没有优秀的开发者坐镇,我还是不太相信用Python能坚持下去的,太多工程问题真的不是学院派能解决的,很多问题Google/SO是找不到的。那么用人荒造成了想选择Python为公司技术栈的公司望而却步,最后恶性循环大家都不太敢让核心系统用Python了。

总有刁民拿性能说事儿。性能问题确实是存在的,但事实上绝大部分公司和产品真的不需要担心这点,也有人说Python没有大型网站的顶级的解决方案。其实不然,国内有豆瓣,国外有Instagram、Reddit等等成功的案例,我说了很多遍了,决定网站性能的主要因素是架构,然后是代码水平,最后才是语言。 但是很多对Python一知半解的人就被这么吓跑了,并且拿着这些槽点去吓别人。

技术环境不好。PyCON北京场都组织不起来,真的有干货的开发者都不出来活动,万事与Ta无关高高挂起,反观前端氛围真的很好。很多新人想入坑,但是没人带,没方向,没组织,外面尽是坏人,每天看到的都是类型于发爬虫这种很low级别的技术文章,这种气氛下,未来真的青黄不接呀。

Python or Java?

终于到了正题了。我确实不用Java,不过工作和个人项目中我会用到Python,Golang,Lua,Java、CSS,以前做运维的时候还用过Perl和Ruby。很多年前看《程序员修炼之道》,作者建议每年至少学习一门新语言,每季度阅读一本技术书籍。非常有道理,我今年学的是Rust,明年准备学Swift。其实学习语言无非是语法、库和框架这三者,如果掌握正确的方法一个月就能开始用它写点东西了,没什么必要纠结学那个的问题,开发者的基本素养之一就是整个职业生涯里面都得不断学习,除非我不认同某个语言的设计哲学和语法,比如我个人是不喜欢Java的。学的时候可以带着问题来学,比如A语言和B语言相比有什么优劣,设计上为什么不同、它们只能有很么互相借鉴的地方,为什么?等等.. 以后在工作中可以针对不同的项目特点选择合适的语言。我爱Python,但是只在正确的时候用它,而不是一棒子打死无论什么场景都用某语言,要记住,用语言或

者框架来划分技术其实很幼稚。

插个题外话,可能有的读者会问「那怎么不见你写/回答Golang、Rust等方面的文章/问题呀」?因为不自信,不想误人子弟,也不想强答。「自信」是什么呢?就是使用它的时候不担心有什么解决不了的问题,天下我有的感觉,大不了看源码,我C学的不好,但是不影响我带着问题读CPython的源码,不过离贡献C代码就差的很远了,我现在也没想着走这一步,所以对C语言的掌握程度好久没变过了。如果没有经过4-5年的深入和实践,我真的不觉得能在某个领域指手画脚。

说到选择。如果你没有强烈的对语言的认可或者不认可,单纯为了尽快养家糊口,选Java,因为市场需求量大,应用广泛,成熟案例多。如果你很理解「人生苦短我用Python」这句话,答案就不言而喻了,不过无论是否选择Python吃饭,甚至你不是一个纯纯的开发者,我还是再建议你应该也要学学Python。

之前在知乎看到过大概这样一句话「只会Python找工作很难」,我是认可的。通过观察和了解,我身边的大部分除了Python都能使用其他技术完成工作,比如前端、IOS、安卓等。无论Python还是Java都只是编程语言,工作中还需要具备很多其他的能力,拿Web开发来说(这里不考虑软技能和需求分析、沟通协作等方面的事情),HTTP/TCP、Linux、数据库、Web服务器、第三方库和框架、Web基础(HTML/CSS/JS/ES6) 、消息队列、分布式、虚拟化、RPC、缓存、搜索引擎、微服务、上线流程、趁手的开发工具、调试流程、分布式文件系统、安全等等,随便一想就这么多内容。当然最难的和最有价值的是工作经验。只会编程语言算什么?你有什么竞争力,你给个有点悟性的本科生2个月时间工作起来不会差很多。一定不要放大编程语言对于找工作的重要性。

另外插个话题。应届生找工作对语言的要求并没有那么重要,反而数据结构、算法、计算机系统、Linux、计算机网络甚至英语这些基础更重要。希望还没有毕业的同学能够抓紧时间多多充电。多看书多时间多刷题,而不是上知乎。

责任编辑:

选择java还是python-选Python还是Java ?相关推荐

  1. 用java做出32选7_用java做的一个彩票32选7的简单程序

    这是一个简单的选取幸运数字的程序 默认的情况是32(1-32)选取7个不同的数字 当然用户也可以根据自身的需求 自己设置一些数字 生成相应的想要的数字个数(当然不可以大于数字本身的个数) public ...

  2. java好还是python好-Python和Java哪个薪资更高、远景更好?

    运用Python的人越来越多,为啥?人工智能浪潮的兴起与TensorFlow以及爬虫结构的普及让Python有了用武之地:大数据与云计算解决方案的运用也为Python的成功猛推了一把.作为数据科学最盛 ...

  3. 测试开发用java 还是python_究竟是选 Python 还是选择Java?

    对于初学编程,以及想要转行到编程领域的人来说,总有这么一个选择,选 C.Python.还是 Java 好呢?哪个前景更好.哪个好学.哪个好找工作,等等这类问题,是不是很是纠结,我们来分析一波吧! 对于 ...

  4. 选择java还是python-还在纠结选Python还是Java?看完就有数了

    程序员界里,每天都会有无数史诗级别的部落冲突上演,大到编程工具的使用,小到是该用空格还是Tab.其中编程语言的选择,可谓是历史最悠久,最有争议的问题之一.特别对于初学者来说,在做选择时,经常想送自己一 ...

  5. java和python哪个编程好找工作_学编程选Python还是Java?就业发展哪个好??

    原标题:学编程选Python还是Java?就业发展哪个好?? 近日,很多学生在选择专业上遇着难题,不少打算学计算机的学生询问,是学Java好就业还是Python好就业. 我们认为,不管是想学Java还 ...

  6. python和java学哪个好-Python和Java学哪个好?大家是怎么选的

    Python和Java学哪个好?很多开始学习编程的同学就很难选择,过去几年选择Java无话可说,近年来大家都开始关注人工智能这一方向,都觉得人工智能是未来的趋势,选择Java就会和人工智能失之交臂,确 ...

  7. python和java学哪个好-Python和Java二选一该学啥?

    声明:这是一篇容易引起撕逼的问答,为了祖国和谐,人民安康,请各位看官尽量理性讨论.正巧我前两天写了一篇 Java和Python现在都挺火,我应该怎么选 的文章,正好对题,就此回答一波.同时,这篇文章是 ...

  8. python跟java-还在纠结选Python还是Java?看完就有数了

    程序员界里,每天都会有无数史诗级别的部落冲突上演,大到编程工具的使用,小到是该用空格还是Tab.其中编程语言的选择,可谓是历史最悠久,最有争议的问题之一.特别对于初学者来说,在做选择时,经常想送自己一 ...

  9. 零基础学编程学java还是python-学编程选Python还是Java?就业发展哪个好?

    近日,很多学生在选择专业上遇着难题,不少打算学计算机的学生询问,是学Java好就业还是Python好就业. 我们认为,不管是想学Java还是学python,首先得知道,这只是编程语言的选择而已,你首先 ...

  10. python与java-还在纠结选Python还是Java?看完就有数了

    程序员界里,每天都会有无数史诗级别的部落冲突上演,大到编程工具的使用,小到是该用空格还是Tab.其中编程语言的选择,可谓是历史最悠久,最有争议的问题之一.特别对于初学者来说,在做选择时,经常想送自己一 ...

最新文章

  1. 5g信号云端服务器,随着5G万物互联的到来,云服务器迎来新机遇
  2. 青龙羊毛——快手(普通版)
  3. 讲解ontouchstart、ontouchend、onclick区别和坑点
  4. ORA-12154:TNS:无法解析指定的连接标识符
  5. mysql 5.6 安装_MySQL的安装,步骤详细
  6. 北邮 复习 软件工程_软件工程期末复习北邮
  7. Spring 钩子之BeanFactoryPostProcessor和BeanPostProcessor
  8. html如何绘制棒棒糖,如何使用css来画一个棒棒糖
  9. php+api抖音随机播放视频源码
  10. HttpReqeust对象
  11. 别被官方文档迷惑了!这篇文章帮你详解yarn公平调度
  12. c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode...
  13. Interpretation of 403 Bounded biharmonic weights
  14. 根据元素相对位置来控制滚动条
  15. java获取上周任意一天的日期
  16. perl 语言中的q,qw,qr,qx,qq符号用法总结
  17. s7200cpu224xp手册_西门子S7-200模块CPU224XPCN可编程控制器
  18. 证据理论(2)—— 多种合成公式
  19. 【国外网站软件下载慢解决】
  20. 2018天梯赛第一次训练题解和ac代码

热门文章

  1. 创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)
  2. 关于sip呼叫成功后,对方立马挂断的情况说明
  3. 模电学习8. 三极管推挽电路
  4. android之禁用Appt2
  5. php判断三个数为对子,豹子| 简单粗暴方法
  6. Latex写个人简历---程序员的简历
  7. 梅特卡夫定律vs齐普夫定律vs邓巴“150定律”
  8. java毕业生设计伊伊物流公司的管理系统计算机源码+系统+mysql+调试部署+lw
  9. win10如何给已分区的磁盘(如C盘)进行扩容?
  10. cocos creator 发布IOS版本(五)基础通用功能