学Java好还是学Python好?看完本文解除你心中的疑惑

很多初学者想要通过学好一门编程语言,以此从事这方面的岗位工作,了解到了Java和Python, 都是当下比较不错的编程语言,到底选择哪一个比较好?对此,我的建议如下:我先问大家一个问题,为什么中国人用刀叉是很容易上手的一件事情,而外国人用筷子,应该是他们在中国吃饭时最痛苦的一件事情吧。为什么会这样呢?

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

在这里插入图片描述

这个道理同样适用于我们的学习,小编对Java和Python都有较为丰富的使用经验,当然,Java的应用经验更丰富,代码量比Python更多一些。正是由于我们丰富的Java经验,当我们想要学习软件测试需要用到,我们会发现,使用Python是一件非常容易的事情。基本上来说,解决问题的方式,方法,算法,思路,所有的编程语言都一样。我们去学习一门新的编程语言的时候就会容易很多,只需要关注与我们所熟悉的编程语言在语法和使用上存在哪些方面的不同即可。

那么问题来了?那到底是Python值得学习还是Java呢?

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

1.如果一个不懂2-3门编程语言的人,或者很少使用到Java或者Python,来告诉你Java好还是Python好,这是赤裸裸的不负责任。如果这个人用Python并且混得还稍微可以,他一定会告诉你Python好,如果这个人用Java,他一定会告诉你用Java好。如果两个语言都没有用过的键盘侠,他会告诉你语言都是相通的,不要纠结。每一个人都说得好有道理的样子,于是让你无从选择。小编熟练使用8种以上的编程语言,所以才稍微感觉有点资格,来说一说这两门编程语言。虽然,从我个人的角度在我心目中,编程语言只有两种,第一种是Java/C,第二种是其它。但是我不能通过这种偏激的方式来误导大家。

2.我们必须要明白Java和Python的各自定位。Java源自C和C++的技术体系,于1995年推出,定位于给专门的程序员设计大型的复杂分布式应用而设计。而Python是1991年推出(比Java还早)主要面向于系统管理,科研,教育和非程序员群体等。大家一定要理解清楚一个现实,这个世界上并不是只有程序员才需要写程序,还有很多群体需要写程序。

3.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 - 10010",
             "content":"Content from Python - 10010", "scope":"1", 
"processresult":""}
 data_encoded = urllib.parse.urlencode(proposaldata).encode('utf-8')
 proposal = opener.open("http://localhost/agileone/index.php/proposal/add", data_encoded)
 print(proposal.read())

相信大家很难区分所谓的简单与难。因为代码几乎都很类似,这种情况发生在很多场景,解决很多问题时都是一样的。其实很多人之所以宣传Python简单易学,我们抛开某些可能的商业目的或者社会心理的原因之外(商业目的还用说吗,比如最简单的例子,某某学院专门做Python培训的,当然我会不顾一切地说服你,Python是最好的编程语言,没有之一,Java都是垃圾,都是落伍了的,这种睁眼说瞎话的还少吗?因为你很懒,懒得去求证真相而已。社会心理就是我自己是搞Python的,我怎么能说自己做的技术很Low逼呢,我自己是搞Java的,Java必然是最牛的啊)。让我们单纯从事实出发,Python简单的原因只是因为,我们使用Python时,我们可能跟个傻子一样,在直接调用别人给我们写好的代码接口而已,而Java的很多处理相对要原生一点,我们写的代码要稍微多一点。但是只要完成封装,代码就很难说谁更简单了。而这个封装的过程,其实才是编程最重要的部分,如果这一部分我们都不愿意亲自参与,也不想知道个中实现原理,你想想,你怎么可能成长为一个优秀的程序员,还有天理吗?让那些勤奋的人,情何以堪。

这一点就像C语言,由于C语言更原生,更底层,几乎没有提供太多封装好的代码接口,很多问题的解决都需要我们自己写代码,所以这也是为什么很多人觉得C语言很难,道理是一样的。但是,牛逼的人,都更喜欢自己创造。相比起C语言来说,Java和C#之类的,为我们提供的代码接口要丰富得多,我们使用起来其实也要容易得多,结论就是,在C语言面前,其它高级语言都太简单了,因为封装了太多可以直接用的类库和接口。所以,要成长为一个高级程序员,一定不是写写简单的应用而已,比如Java的源代码是必须要去学习的,我们一定要知道这些封装好的代码接口的实现细节。否则,跟使用Python封装好的东西,又有何本质区别呢?

所以,请不要再纠结了。小编的经验,如果你把Java作为你的人生的第一门用心学习的语言,那么你只需要花极短的时间,就可以基本学会C++,JavaScript,PHP, Python,R,C#,Objective-C,Swift,Go(是的,每一门语言都可以在极短的时间学会,只是具体的问题解决和一些坑需要多积累一些实战经验而已)。但是反过来,如果你把Python作为你的第一门语言,问题就回到外国人使用筷子这件事情上了,答案不言而喻。

所以,你未来如果要立志成为一个专业的程序员,建议先学习Java(或者C#也行,两者有很多原理上很像,实在不行,C/C++也可以哦),那是给程序员的专属语言,是有门槛的,所以你才能够建立自己的竞争力。如果你只是想玩玩,感受一下,或者是把编程语言作为一个工作中的工具而已,Python是个不错的选择。这是面向学习的建议,如果是在企业中真实做项目,那就不要纠结了,项目需要什么,咱们就学什么,不需要那么多理由,干,才是真理。

锤子好用还是榔头好用?

Java好还是Python好?

为什么非得二选一?

浮躁,一个吃饭的工具而已,搞技术的,通吃它们不就完了吗,你再也不会纠结了,这,才是一个技术人员该有的状态。难道不是吗?

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题的答案取决于你的目标是什么。 JavaPython都是流行的编程语言,它们都有自己的优点和缺点。 Java是一种面向对象的编程语言,它有严格的语法规则,编译型语言,并且在企业级应用方面非常流行。如果你的目标是成为企业应用开发人员,或者是想在 Android 应用开发方面有所涉猎,那么Java 可能是一个不错的选择。 相比之下,Python是一种解释型语言,它的语法规则相对来说比较宽松,因此容易上手。 Python在科计算、数据分析、人工智能和网络编程方面非常流行,如果你的目标是从事这些领域的工作,那么Python 可能会好。 总的来说,如果你不确定自己的具体目标,或者希望同时掌握两门语言,那么你可以先从 Python 入手,因为它的习门槛相对较低。然后,在熟练掌握了 Python 的基础之上,再去Java 也不迟。 ### 回答2: Java还是Python好这个问题,其实没有绝对的答案,取决于个人的需求和兴趣。 如果你对编程刚开始接触,没有任何编程基础,那我建议PythonPython是一种简洁易懂的编程语言,语法简单,习曲线较为平缓。Python的特点是代码可读性强,适合初习和理解,同时很适合进行科计算和数据分析。Python也有很多强大的库和框架支持,如NumPy、Pandas和Django等,这些都使得Python成为了应用广泛的语言。 相比之下,Java是一种加强大、严谨和庞大的编程语言Java的语法相对复杂一些,需要花费多的时间去习和理解。Java是一种面向对象的语言,它的特点是安全稳定、跨平台性强。Java广泛应用于企业级应用开发和大型软件项目,例如Android开发和大数据处理等领域。 Java还是Python要根据具体的需求来选择。如果你希望快速入门,并且对数据分析和机器习感兴趣,那么Python是一个不错的选择。如果你希望从事企业级开发或者对软件工程有深入的了解,那么Java是比较有意义的。 总而言之,习哪种语言并没有绝对的优劣之分,关键是要对自己的兴趣和需求有清晰的认识,选择适合自己的语言,并在习过程中不断实践和探索,才能取得好的习效果。 ### 回答3: Java还是Python这个问题没有绝对的答案,取决于个人的兴趣、需求和目标。以下是我对这个问题的观点: 首先,JavaPython都是非常常用的编程语言,拥有广泛的应用领域。Java主要用于大型企业级应用和Android应用开发,而Python则广泛应用于科计算、人工智能、数据分析、Web开发等领域。 其次,Python相比Java有着简洁的语法和高的可读性,适合初者入门。Python的代码加简洁明了,语法灵活,习曲线较Java要平缓一些。对于初者来说,Python容易上手。 另外,Java在性能和稳定性方面强大,适合大规模、高并发的应用开发Java是一门静态类型语言,对变量类型有严格限制,能够减少很多编程错误和bug。 最后,个人的兴趣和职业发展也是选择编程语言的重要因素。如果对于数据分析、人工智能等领域比较感兴趣,那么Python好的选择。而如果对于企业级应用、Android开发等领域感兴趣,那么Java好的选择。 综上所述,Java还是Python好,没有绝对的答案。应该根据个人的兴趣、需求和目标来选择。如果拿不定主意,可以先一门再另一门,毕竟掌握多门编程语言对于提升自己的能力也是有好处的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值