學java還是python 都說搞底層和算法的才厲害,學Java的感到自卑,怎么辦?
都說搞底層和算法的才厲害,學Java的感到自卑,怎么辦?這是一個偉大的方式來建立一個宇宙飛船,但有許多只是螺絲釘。搞算法的人看不起搞工程的人,搞操作系統(tǒng)內(nèi)核的人看不起寫驅(qū)動的人,搞體系結(jié)構(gòu)的人看不起寫
都說搞底層和算法的才厲害,學Java的感到自卑,怎么辦?
這是一個偉大的方式來建立一個宇宙飛船,但有許多只是螺絲釘。
搞算法的人看不起搞工程的人,
搞操作系統(tǒng)內(nèi)核的人看不起寫驅(qū)動的人,
搞體系結(jié)構(gòu)的人看不起寫模塊的人,
搞嵌入式系統(tǒng)的人看不起寫應(yīng)用的人,
寫背景的人看不起寫前景的人。
使用Mac OS X的工程師鄙視使用Linux的工程師,
使用Linux的工程師鄙視使用windows的工程師。
C語言工程師鄙視C工程師,
C工程師鄙視Java和C工程師,
Java工程師和C工程師互相鄙視。
有漂亮妻子的程序員鄙視沒有漂亮妻子的程序員。
有妻子的程序員鄙視沒有妻子的程序員。
沒有妻子和女友的程序員鄙視單身狗。
……
其實,想想上面的鄙視心態(tài)很簡單。一般來說,站在最高層的人的心態(tài)是我制定了游戲規(guī)則。你只是游戲中的一個棋子。當然,我可以看不起你。
但他真的創(chuàng)造了游戲規(guī)則嗎?顯然不是。
站在蔑視鏈頂端的大多數(shù)人也是這一層的螺絲釘。因此,大多數(shù)人沒有資格鄙視。比如說:建房子的時候,打基礎(chǔ)的工人看不起砌墻工人嗎?事實上,真正的殺手是房子的設(shè)計師(當然,大多數(shù)設(shè)計師都是從一個地方復(fù)制到另一個地方,并不羨慕)。
所以如果這個蔑視鏈真的有意義的話,那么我想:底層的人比你付出更多的時間。Java更容易上手,C更難上手,算法更難上手。
但是優(yōu)秀Java程序員的門檻并沒有降低。同樣,做算法的人很難做出好的算法。大多數(shù)從事C語言開發(fā)的人不會獨立編寫操作系統(tǒng)。
如果你只是想繼續(xù)學習Java,你應(yīng)該怎么做?只是時間和精力比別人多。
每種語言都有自己的優(yōu)勢。不要用Java的缺點來比較其他語言的優(yōu)點,而要充分發(fā)揮Java自身的優(yōu)點。
學Python一定要會算法嗎?
開始時,您不必很好地學習算法。但是隨著技術(shù)的發(fā)展,仍然需要算法,否則只能做一些工作。
1. 學好軟件開發(fā)離不開計算機理論基礎(chǔ),比如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、網(wǎng)絡(luò)技術(shù)、算法研究等,如果你喜歡這項技術(shù),那就不是問題。先開始,你可以彌補。
2. 算法是軟件開發(fā)的靈魂。好的算法寫不出好的程序。
3. 如何學習算法,首先選擇經(jīng)典算法教材?;镜目梢詮臄?shù)據(jù)結(jié)構(gòu)中學習,其中包含一些基本的算法,然后再學習特殊的算法(實際上,在數(shù)據(jù)結(jié)構(gòu)領(lǐng)域?qū)W習算法一般就足夠了)。網(wǎng)上還有很多論壇、算法網(wǎng)站,為了吸引眼球,它們一般都很通俗易懂。大多數(shù)算法都是C語言,但是語言在算法層次上是相互聯(lián)系的,因此理解算法模型是最重要的。
4. 萬事開頭難。只要你開始,剩下的就是慢慢操作這項技術(shù)。該算法在實際應(yīng)用中是最快、最強的。
我希望我能幫助你
至于Java或python,這取決于你的職業(yè)規(guī)劃。
您可以檢查每種語言的歷史記錄。隨著技術(shù)和硬件的進步,歷史上許多流行語言已經(jīng)被淘汰或正在衰落。
但市場上唯一不變的是算法的基本要求。算法和數(shù)據(jù)結(jié)構(gòu)是基本技能。從MySQL默認存儲引擎的B樹到redis的哈希,所有的軟件都離不開基本的數(shù)據(jù)結(jié)構(gòu)和算法。
具有高性能要求(如響應(yīng)時間和QPS)的技術(shù)公司基本上都是Java。各種中間件、微服務(wù)和業(yè)務(wù)邏輯開發(fā)基本上都是用redis實現(xiàn)的java。
有些性能要求很高,可能使用C。
壽命很短。我用python。選擇Python意味著擁有一個龐大的Python生態(tài)系統(tǒng)。從爬蟲、數(shù)據(jù)分析、人工智能、網(wǎng)站背景等,基本上都有現(xiàn)成的框架或工具。
但是Python的一個大漏洞是Gil,而多線程基本上是雞肋。
Python的性能比Java差得多。有些公司從Python開始。Python無法處理隨后的業(yè)務(wù)擴展。如果你沒記錯的話,你就餓了,你知道接下來的業(yè)務(wù)已經(jīng)轉(zhuǎn)移到Java了,最核心的功能已經(jīng)用Java重寫了。
語言只是手段,核心是算法。至于如何選擇,應(yīng)該結(jié)合職業(yè)規(guī)劃和具體領(lǐng)域。
2020年學習java好還是學習python好?Java程序員飽和了嗎?
作為一名計算機行業(yè)的從業(yè)者,同時也是一名計算機專業(yè)的研究生導(dǎo)師,讓我來回答這個問題。
首先,學習C語言很有用。一方面,C語言仍然被廣泛使用,另一方面,它有助于研究生入學考試。
計算機科學與技術(shù)(規(guī)劃)專業(yè)是比較傳統(tǒng)的計算機專業(yè)之一。其主要特點是注重基礎(chǔ)知識的掌握和知識的廣度。因此,計算機科學與技術(shù)專業(yè)畢業(yè)生未來的就業(yè)面是比較廣闊的。但相對于軟件工程專業(yè),規(guī)劃專業(yè)的實踐并不豐富。因此,在主修Java的基礎(chǔ)上,多學習C語言是一個不錯的選擇,可以進一步豐富自己的知識結(jié)構(gòu),從而增強就業(yè)競爭力。
Java語言和C語言都是IT行業(yè)廣泛使用的編程語言。Java語言的主要應(yīng)用領(lǐng)域是Internet,而C語言主要用于操作系統(tǒng)和嵌入式開發(fā)??梢哉f,這兩種應(yīng)用場景有著明顯的區(qū)別。要想系統(tǒng)深入地學習C語言,最好的辦法就是確定相關(guān)的發(fā)展方向。在當前物聯(lián)網(wǎng)飛速發(fā)展的時代,嵌入式方向是一個不錯的選擇。
物聯(lián)網(wǎng)是工業(yè)互聯(lián)網(wǎng)的基礎(chǔ),從技術(shù)架構(gòu)上分為五個層次和一個保障。五個層次是設(shè)備、網(wǎng)絡(luò)、平臺、分析和應(yīng)用,一個層次是安全。從技術(shù)應(yīng)用的角度來看,設(shè)備層和網(wǎng)絡(luò)層需要使用C語言(也可以使用Python),分析層和應(yīng)用層需要使用Java技術(shù)(Hadoop平臺等),因此物聯(lián)網(wǎng)可以將Java和C語言的應(yīng)用進行集成。由此看來,在掌握Java語言的基礎(chǔ)上,有必要學習C語言,從而形成物聯(lián)網(wǎng)全棧開發(fā)的知識結(jié)構(gòu)。