首先我简单的说下目前的市场发展行情,Java和Python发行时间都有很多年了,但是或许你自己也应该清楚,Python是什么时候开始步入我们的生活,步入我们的眼线的,对,就是近几年,这几年随着培训机构的不断兴起,互联网的快速发展,就我自己处在这个圈子来看,Python炒的有点凶了,大家都说Python是一胶水编程语言,意思就是说他可以做很多方面的工作,可以做:web开发,网络爬虫,数据分析,机器学习,量化教育,人工智能。但是说到底,Python真正比较好学的就只有web开发和网络爬虫,那既然是写web的话,那我为什么不学Java呢,现在的培训机构都把Python炒的很凶,都说Python学出来能拿到多高多高的工资,你自己去各大招聘网站看,现在你要是想做Python方面的工作基本上只能在一线城市工作,而且这些招聘里面占比40%的还是培训机构。而Java就不一样,你学好Java,在一线,二线,甚至三线都好找工作,只不过是三线城市和二线,一线相比,薪资待遇稍微要差一点,下面我再来讲下两者具体的区别。

语言的优劣之争是个永恒的话题,有时候一次偶然地“擦枪走火”甚至可能会引发一场铁杆粉丝之间的“战争”。

也经常有人问我:“战老师,到底是Java好还是Python好? 我应该学习哪个语言?”

我也挺为难的,只好说道:

Python挺适合入门的,看起来很简单,适合创业团队,可以快速开发,快速上线,快速迭代。适合特种部队的突袭。等到发展到一定规模,动态语言的劣势就会体现出来,维护/重构难度高,特别是我觉得动态语言写的代码腐化速度要比静态的Java要快一些。

Java呢,语法相对Python啰嗦,表达力要弱一些,开发起来一板一眼,有很多规范,适合集团军的大规模协同作战;有很多著名的框架和类库,性能不错,系统稳定而成熟,是开发大型系统的极好选择。

他说:“战老师你这是在和稀泥嘛,我到底应该学啥?”

我说:“你应该把注意力放到那些和Java无关,和Python无关,能反映一个程序员水平高低的编程的共性问题。”

举个非常简单的例子,开发中需要实现一个定制的、简单的缓存,如果使用ehcache ,memcached, redis这样的开源系统就太重量级了,经理要求你新写一个,可以支持(key,value)存储,设置过期时间,过期的可以自动清理掉,你能不能快速地实现一个高质量的版本?

这其中涉及到的就是数据结构和算法、以及线程的知识,和具体的语言关联度很小。

再比如给你一个需求,你能不能找出其中“概念”,从而设计出类?能不能做好信息的封装和隐藏,定义出良好的接口,让每个类的职责单一而准确?

Python中有class , Java 中也有class, 但是上述工作却和具体语言没什么关系。你需要做的是利用你的经验,在脑海中做一次思维体操,然后用某个语言工具把他们表达出来。

有些“概念”比较容易发现,有些“概念”和现实没有直接的对应关系,需要抽象一下才能找到,这就比较考验抽象的能力了。

可能有人说,我们Web开发都是“面向数据库”编程的,都是基于数据库的增删改查,用不上你说的这些东西。 那如果经理给你一个项目需求,让你完整地设计出表结构来,要求方便后续的程序开发,又要考虑到灵活性和扩展性,你能不能搞定呢?

在编程中,你发现了重复的代码,那能不能找到一个概念(最终可能由一个类或者函数来表达),来表示这个重复的模式,从而极大地消除重复代码?

你能否区分哪些是不变的部分,哪些是变化的部分,把他们区分开来,“发现变化,并且封装变化。”

说到底,本质上还是那个抽象的能力, 这样的例子有很多,这里不再一一列举了。

作为一个程序员要发展,要成长,不可能一直增删改查,不可能一直停留在编程语言的特性上面,争论孰优孰劣。

对于做技术的人来说,总有一天,眼光和视野要超越编程语言,进行设计和架构的工作,停止无谓的争论,开始扎扎实实地学习吧。

java和python哪个好学-学java好还是Python好?相关推荐

  1. python和java哪个好学-到底学python好还是学java比较好 哪个容易学习点

    7月份编程语言排行榜 Python和Java到底谁更厉害?到底学python好还是学java比较好,哪个容易学习点! 要闻聚焦 1.2019年7月编程语言榜单公布:Python第一,Java第二但出现 ...

  2. 学Python好还是学Java好?学哪个更好就业?

    学Python好还是学Java好?学哪个更好就业?对于刚刚入行的的初学者来说,常常会在Python和Java这两大编程语言面前感到迷茫.Python作为后起之秀,潜力无限;而Java是行业经典,成熟稳 ...

  3. 高中学历可以学java么_初高中学历能学会Java吗,低学历能学Java吗?

    初高中学历能学会Java吗,低学历能学Java吗? 2018-05-25 | 烟台 | 点击211次 | 信息编号:201792910194522310418856521472 很多人以为Java只有 ...

  4. 最新出炉的Java十大应用领域,学Java好工作找不完

    现阶段很多人被表象迷惑,感觉Java开发人员并不好找工作,或者误以为市场饱和了.其实在我们的身边,不论是手机上还是网站上,随处可见Java的身影,除了人才缺口日益扩大,应用领域也是越来越广泛,今天随动 ...

  5. 人工智能学JAVA吗_人工智能是学java吗

    人工智能不是学java,人工智能(Artificial Intelligence)是计算机科学的一个分支,英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新 ...

  6. 学java编程语言_为什么要学Java编程语言?

    Java是一门面向对象编程语言,具有功能强大和简单易用两个特征. Java编程语言因为自己独特的特性,成为很多编程入门者的首选编程学习语言,原因有以下几点: 1. 世界第一编程语言 自2002年起,历 ...

  7. java方法重载编程_学java教程之普通方法重载

    学编程吧学java教程之普通方法重载发布了,欢迎通过xuebiancheng8.com来访问 先来看什么是普通方法重载呢,先来看一个例子 public class Person{ String use ...

  8. 学java需要什么基础_学java需要什么基础?

    展开全部 学java需要数据结32313133353236313431303231363533e58685e5aeb931333431373936构基础.要学好一门编程语言,数据结构是必不可少的知识, ...

  9. 零基础学java web开发pdf_新手学Java Web开发.pdf

    作 者 :杨磊等编著 出版发行 : 北京:北京希望电子出版社 , 2010.01 ISBN号 :978-7-89498-988-8 页 数 : 480 丛书名 : 新手学编程系列 原书定价 : 49. ...

最新文章

  1. codeforces A. Jeff and Digits 解题报告
  2. php array_merge内存不够,php array_merge函数使用需要注意的一个问题
  3. tomcat ssi配置及升级导致ssi include错误问题解决
  4. Window密码恢复的方法(转)
  5. CentOS7 安装 mircosoft Netcore 自测部署安装
  6. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》...
  7. loadrunner性能测试步骤
  8. HTML5 前端原生 WebSocket 通信
  9. 编译出错:self-encoder.context-me_method = ME_UMH;
  10. 解决Win7下JMF读取摄像头错误
  11. db4o java教程_Db4o 社区版 8.1.1 发布,面向对象数据库
  12. PLC供电系统电源模块的选择
  13. 十年程序人生——转自黎活明
  14. 服务器瘦身linux,Linux系统桌面瘦身加速工具组trans-purge
  15. selenium之使用driver及其属性
  16. 朋友圈发图多大不会被压缩_微信:朋友圈照片自动压缩 不暴露位置信息
  17. 计算机每次关机需要配置,电脑一键关机怎么设置 电脑关机一步到位设置教程...
  18. 【玩转c++】多态深度刨析
  19. 信息时代的管理信息系统
  20. js 格式化当前时间 日期推算

热门文章

  1. 如何使python print输出不换行
  2. python内置函数(2)-递归与迭代
  3. 黑马程序员-JAVA基础-IO流中的装饰设计模式
  4. 值转换器IValueConverter
  5. 吴昊品游戏核心算法 Round 7 —— 熄灯游戏AI(有人性的Brute Force)(POJ 2811)
  6. [原创]关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究
  7. Castle ActiveRecord学习实践(4):实现One-Many关系的映射
  8. 量子计算机区别于冯诺依曼机的一个显著特点,大学计算机基础习题答案西安交大.doc...
  9. python输入完怎么运行-如何在服务器上跑python程序
  10. 学python爬虫需要什么基础-学爬虫,需要掌握哪些Python基础?