Java和Python现在都挺火,我应该怎么选?

这篇文章主要介绍了Java和Python现在都挺火,我应该怎么选?本文通过全面分析给大家做个参考,需要的朋友可以参考下

声明:这是一篇容易引起撕逼的文章,为了祖国和谐,人民安康,请各位看官尽量理性讨论。同时,这篇文章是面向一些初入行的朋友进行一些相对中肯一点的分析和建议而已,虽然有浓厚的个人色彩,但我还是尽量以事实说话,以代码说话,大牛们就不要拿自己的牛逼经验来这里装逼了,当然,你如果非得来跟我撕,哥们儿我奉陪。另外,由于文中以自己所在的机构蜗牛学院所做的一些事情来举例,如果你认为这是软文广告,请止步于此。强哥打广告,都是硬的,软的不来(做了**还要立**的事哥不屑)。好吧,咱们进入正题。

我先问大家一个问题,为什么中国人用刀叉是很容易上手的一件事情,而外国人用筷子,应该是他们在中国吃饭时最痛苦的一件事情吧。为什么会这样呢?

其实原因非常简单,当我们学会了一门技术难度要求更高的技能以后,再去降级学习难度更低的技能是非常容易的一件事情,反之则不然。

这个道理同样适用于我们的学习,对Java和Python都有较为丰富的使用经验,当然,Java的应用经验更丰富,代码量比Python更多一些。

那到底是Python值得学习还是Java呢?

这里面有三点我必须说破,却很少有人从这个角度来给大家做分析:

如果一个不懂2-3门编程语言的人,或者很少使用到Java或者Python,来告诉你Java好还是Python好,这是赤裸裸的不负责任。如果这个人用Python并且混得还稍微可以,他一定会告诉你Python好,如果这个人用Java,他一定会告诉你用Java好。如果两个语言都没有用过的键盘侠,他会告诉你语言都是相通的,不要纠结。每一个人都说得好有道理的样子,于是让你无从选择。强哥熟练使用8种以上的编程语言,所以才稍微感觉有点资格,来说一说这两门编程语言。虽然,从我个人的角度在我心目中,编程语言只有两种,第一种是Java/C,第二种是其它。但是我不能通过这种偏激的方式来误导大家。我们必须要明白Java和Python的各自定位。Java源自C和C++的技术体系,于1995年推出,定位于给专门的程序员设计大型的复杂分布式应用而设计。

而Python是1991年推出(比Java还早)主要面向于系统管理,科研,教育和非程序员群体等。大家一定要理解清楚一个现实,这个世界上并不是只有程序员才需要写程序,还有很多群体需要写程序。比如蜗牛学院在这方面的定位就很清楚:Java开发全栈方向的学生学习Java编程和JavaScript编程,软件测试方向的就业班学员学习Python(因为他们并非专业的程序员群体),而软件测试方向下属的自动化测试开发高级研修班,是Java/Python两个方向同时存在。那你说你觉得哪个更好呢?Python比Java早4年出身,但是在国内为什么几乎到2010年之后,Python才逐渐火起来呢?原因很简单,因为我们都太现实了。

由于大数据的盛行,由于自动化测试方面的人才需求,以及对于互联网的一些基础应用系统的的开发,企业加大了对Python人才的招聘力度(当然,与Java比还有较大的差距),由于有一门感觉很简单又能赚大钱的编程语言出现了,简直是人类的福音啊,所以火起来了。这一点与近几年虚火很旺的Web前端开发很像,其实绝大部分人没什么技术能力,但是工资却拿得不错。这不是个人的原因,企业也很浮躁,仅此而已,一旦虚火泄了,谁能撑到最后?请各位自行脑补。

也不知道大家从哪里得来的一些“误导”,觉得Python简单,Java很难,所谓"人生苦短,我用Python"之类的。一方面,Python上手的确相对要快一点而已,仅此而已。解决复杂问题时,没有人会觉得难点在使用哪门编程语言上,而是解决这个具体问题的算法思路上。这一点各位务必要拎清这个思路。另外一方面,由于Python近几年的火爆,不排除一些人故意散播一些言论,来误导大家使用Python。

这件事情就像这么多年,一直有人觉得学习软件测试要容易一些一样,很多人也是报着通过软件测试进入这个行业,选择了一个自己认为没有难度的领域进入。但是,强哥发现,当3,5年过去了,很多测试人员目前最焦虑的就是,自己技术不够深,在企业当中越来越没有竞争力了。所以最终,还是得硬着头皮研究深层次的测试技术,无论是编程,网络,数据库,协议,还是自动化测试,性能测试等。

但是这个过程非常痛苦,就像我说的那样,这个世界上99%的人都会选择一条容易走的大路,因为懒惰,因为恐惧。而成功是属于那1%的人一样。这句话同样适用于编程语言或者技术功底的训练上。

其实大家如果有过实际的编程经验,我们不妨认真想想,当我们研发一个系统的时候,究竟会用到哪些技术?

那些什么需求分析,跟测试撕逼,跟客户撕逼,跟老板撕逼的那些烂事我们就不提了。我们就来看看纯技术层面的一些基本要求:数据库,Linux命令,网络协议,接口设计,算法思路,框架,改BUG,编程,前端交互。你应该懂我,利用不同的编程语言编写程序只是研发过程中众多你需要掌握的技术当中的一块而已。

其它,与你用哪们编程语言无关,这一点如果你都理解不了,觉得强哥在忽悠你的话,那请自便吧。或者换一个角度,会一门编程语言,而不是完整技术体系,就能当技术大牛的情况,我觉得可能只有在你们家村里可以行得通,因为就你一个人懂。

当然,以上我们讨论是的纯粹的基于技术定位,你也许可以反驳我说,难道做测试的都得懂编程,难道做Python的都不行?

这当然不是这样的,任何一个领域都有大神,随着经验的丰富都能够解决很多难题。但是,那是很久以后的事了,我们现在讨论的是,你还在纠结Java还是Python的这件事,毫无疑问,这个时候,你仍然还是一个菜鸟,甚至连门都没入。强哥建议大家,不要因为什么事情简单,所以我要去做,无论是学习编程语言,还是其它,这是最要命的一个出发点,会毁了你的未来。

下面我给大家列出一段我分别使用Java和Python写的发送一个HTTP协议的一段代码。这段代码收录在强哥今年年底即将出版的一本自动化测试开发的高级教程里面,全书均采用Java进行代码演示,明年,我会有一本几乎一模一样的但是是使用Python进行代码实现的书。之所以能够这样,原因很简单,Java能解决的基本问题,Python也能解决,当然,Python能解决的,Java一样可以。但是在干重活儿方面呢,Java更成熟一些。

Java的代码,实现Agileone系统的需求提案新增功能:

 // 实现需求提案的新增 public void doAdd() { // 先发送POST请求实现登录 String postUrl1 = "http://localhost/agileone/index.php/common/login"; String postData1 = "username=admin&password=admin&savelogin=true"; String resp1 = hr.sendPost(postUrl1, postData1); System.out.println(resp1); // 对sendPost()方法进行了额外的封装,一次封装,处处使用 // 再发送POST请求完成新增 String postUrl2 = "http://localhost/agileone/index.php/proposal/add"; String postData2 = "type=Enhancement&importance=Medium&" + "headline=&" + "content=这是用于Java代码测试的内容-10009&processresult="; String resp2 = hr.sendPost(postUrl2, postData2); System.out.println(resp2); }

我们再来看看Python实现同样功能的代码:

 # 导入urllib和http库 import urllib import http.cookiejar # 利用cookiejar自动管理整个过程中的Cookie cj = http.cookiejar.CookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) # 利用urllib构造POST请求并处理登录 logindata = { "username" : 'admin', "password": 'admin', "savelogin" : "true" } data_encoded = urllib.parse.urlencode(logindata).encode('utf-8') login = opener.open("http://localhost/agileone/index.php/common/login/", data_encoded) print(login.read()) # 发送Post请求提交新增需求提案 proposaldata = {"type":"Requirement", "importance":"medium", "headline":"Headline from Python -

以上就是Java和Python现在都挺火,我应该怎么选?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java