Python和Java不知道要選哪個嗎? 看這篇就對了!!

Python和Java不知道要選哪個嗎? 看這篇就對了!!
Python和Java不知道要選哪個嗎? 看這篇就對了!!

還夾在Python和Java兩樣中間不知道該怎麼選嗎? 那麼看這篇準沒錯!! 看完一定可以找到適合你的!!

PythonJava 是兩種現今非常熱門、卻又不同的程式語言。對現在的科技業來說,兩者都是十分有用工具,而且瀏覽各大求職網站,Java 工程師近十年來一直是科技業炙手可熱的職缺。而新興的 Python 語言,職場上對於會 Python 語言的工程師的需求也是越來越高。如果現在你想轉職工程師,卻又不知該學哪種程式語言的話,可以參考本篇文章。

1、動態類型 vs. 靜態類型

Java 和 Python 最大的區別之一,就是兩種語言處理變數的方式。Java 強迫你在第一次聲明變數時,就必須要定義它的類型,且不可再修改,這就是「靜態類型」。而 Python 不需要在一開始就聲明變數的類型,且後續可以改變一個變數的類型,例如可以把整數變數替換為字符串(string)。

2、Python 中一切皆為物件

在 Python中,無論是數值(整數、浮點型)、字符串、字典、元組對象、還是他們所對應的類型,以及函數、模塊等,都是物件,他們的祖先是PyObject。而 Java 中的函數,基本數據類型等都不算物件。

3、括號和縮排

Python 與眾多程式語言的不同之處,在於它使用縮排區分程式區塊(block)。而 Java 與其他大部分的程式語言都是使用大括號定義函數和類定義的開頭和結尾。使用縮排的好處在於程是碼會比較易讀,且不會有缺括號導致錯誤的可能。

4、軟體可移植性

Java 的可移植性 (可攜性) 更強,可以用於開發平台獨立的應用。這是 Java 相較於 Python 的優勢之一,任何可以運用 Java 虛擬機器 (JVM) 的電腦或者行動裝置都可執行 Java 的應用。相較於 Java,執行 Python 的程式就比較麻煩,都需要一個編譯器來將 Python 代碼轉化為你的作業系統可理解的代碼。因為大部分的設備有安裝了 Java 虛擬機器 (JVM) ,所以 Java 工程師可以自信的說他們的開發出來的 Java 應用,幾乎對所有的用戶都可用。

5、Python 的 GIL

Python 的 GIL (全局解釋器鎖) 一直被不少開發者所詬病。Python 的多執行緒在多 CPU 條件下,並不能一併運行,而必須要在每個執行緒運行時,先需要獲得解釋器的訪問權限,才可以運行。在一個執行緒運行時,其他的執行緒只能處於等待的過程。不過這方面的問題可使用多工處理機制來彌補。而 Java 支援真正的多執行緒,控制資源的的共享很到位。

6、應用領域

Java 主要用於商業邏輯強的領域,如電子商城系統、金融、保險等傳統資料庫事務領域,通過類似 ssh 框架事務代碼,對商業資料庫,如 Oracle、DB2、SQL 伺服器等支援較到位。Python 主要用於大數據分析、金融分析、信息分析、圖像演算法、數學計算、統計分析、算法建模、伺服器運算、自動化操作、開發速度快,適合需要快速靈活開發的產業。

7、哪一個更好上手?

一開始或許是 Python 較好上手。因為 Python 的語法設計很直覺,讓新手們可以快速上手、寫各種應用程式。但是入門簡單,並不代表會一直簡單下去。要學會如何巧妙運用 Python,還需要學習各種 Python 的函式庫。Python 的強大在於函式庫,因為 Python 的函式庫可以用 Python、C 語言、C++等程式語言設計,再提供給 Python 使用,所以無論是 GPU 運行、神經網絡、智能算法、數據分析、圖像處理、科學計算等,各式各樣的函式庫都在等著你來學習。而 Java 就沒有那麼多函式庫,無論是入門還是進階,學習的難易度相較於 Python 都較平均。

 

 

 

其他閱讀

Python課程創造AI新生活!!在家就能享用頂級咖啡師煮的咖啡~

聯發科設計超強AI人工智慧晶片!! 快報名Python課程搭上熱潮!!

JK羅琳就快被Python課程取代寫出哈利波特續集!?

重新學習UI UX Python課程 打好基礎輕鬆領高薪

有一個傳說 來上Java課程還能任高薪職缺 媒合率竟高達百分之90

稱霸排行榜的五大程式語言你都瞭嗎? 除了熱門的Java課程,你還可選….

程式課程選達內,美上市IT課程教育集團

Python, Java等工程師容易得到的病,”冒名頂替症候群”你知道是什麼嗎?

Python, Java等工程師容易得到的病,"冒名頂替症候群"你知道是什麼嗎?
Python, Java等工程師容易得到的病,”冒名頂替症候群”你知道是什麼嗎?

有人說Python, Java等工程師容易患”冒名頂替症候群”? 連愛因斯坦生前都可能得到這個病? 倒底是什麼?

什麼是「冒名頂替症候群」?

根據中文版維基百科對於「冒名頂替症候群」的解釋如下:
冒名頂替症候群(英語:Impostor syndrome),又稱為冒名頂替現象(英語:impostor phenomenon)、騙子症候群(英語:fraud syndrome)。這個名稱是在1978年由臨床心理學家克蘭斯博士(英語:Pauline R. Clance)與因墨斯(英語:Suzanne A. Imes)所提出的,用以指稱出現在成功人士身上的一種現象。患有冒名頂替症候群的人無法將自己的成功歸因於自己的能力,並總是擔心有朝一日會被他人識破自己其實是騙子這件事。他們堅信自己的成功並非源於自己的努力或能力,而是憑藉著運氣、良好的時機,或別人誤以為他們能力很強、很聰明,才導致他們的成功。即使現實環境中的證據指明,他們確實具備優秀才能,他們還是認為自己只是騙子,不值得獲得成功。

另外,維基百科也列出一些罹患此症狀的名人,包含曾任 GOOGLE 副總裁、現任 Facebook 的首席運營官雪柔·桑德伯格、演員艾瑪華生、美國聯邦最高法院大法官索尼婭·索托瑪約、甚至還提到愛因斯坦在臨終前有可能也遭遇此症狀

美研究:58% 的矽谷高科技人才都有「冒名頂替症候群」

這個「症狀」各行各業都有,美國一個社群媒體「Blind」,2018 年就曾做過一個針對Amazon、Facebook、微軟、Google、Cisco 等頂尖科技公司科技菁英的調查,結果竟發現:平均高達 58% 的專業 IT 人才,私下認為自己其實是個「假貨」。如下圖所示:

CSS-box-model
而根據知名IT部落客「半路出家軟體工程師在矽谷」的文章指出,軟體工程師,更是極有可能是一個格外讓人容易患有「冒名頂替症候群」的職業。他也在文章中明白的指出「非本科系」出身的他,也經時常覺得自己不如人的 OS:「別人從小學習,或是大學四年的主修,學了那麼多知識、實習工作了那麼多厲害的專案,我該如何追上他們呢?」

程式語言推陳出新速度快 軟體工程師競爭激烈

其實軟體工程師是個經常需要在短時間內「砍掉重練」的職業。由於今日科技發展太過快速,新的程式語言一直不斷被開發出來。從第一代的機器語言、第二代的組合語言、1950 年代 Fortran、ALGOL、COBOL 等開啟第三代程式語言的時代 (今日常用的 C、 C++、C#、Java、JavaScript 等都算是第三代程式語言),到現今第四代的Python、Ruby 等,都需要軟體工程師不斷的學習,隨時適應新的程式語言、框架、及工具,才不會被時代淘汰。未來,可能還要跟 AI (根據維基百科所述,下一代的「第五代程式語言」可在沒有工程師的狀況下由 AI 自行解決特定問題) 打一場職場生存戰呢!

科技產業天才菁英如雲 常讓從業者有「不如人」錯覺

而通常容得下軟體工程師這種職位的產業,都有一定的水準,也就是說這個產業幾乎充斥者「工程師中的工程師」、「菁英中的菁英」。尤其是在矽谷這個地方,有些天才從小就開始寫程式,Python或Java等等的…. 到高中學時就已經累積了幾萬個小時的練習,知識和技能都熟的跟吃飯一樣,甚至還可以製造出劃時代的產品、創業後賺大錢、在你現在的年紀早已退休享受人生了。如這位「 7 歲教人寫程式、14 歲成為 IBM 的 AI 人工智慧專家–全球最年輕的 AI 工程師」,所以經常會讓軟體工程師有「不如人」的錯覺。

對付「冒名頂替症候群」 心理學教授:成長型思維是藥方

而這位部落客「半路出家軟體工程師在矽谷」也提到自己每天在職場上被史丹佛、柏克萊、MIT、卡內基美隆等名校電腦科學系所的畢業生圍繞,也會有像是「冒名頂替症候群」的想法,如:「我當初面試的時候,是不是剛好運氣好才被雇用的?」、「如果他們發現我不夠資格的話,我是不是就要立刻被開除了?」

若身為工程師的你,也有「冒名頂替症候群」的話,不妨參考暢銷書《心態致勝(Mindset: The New Psychology of Success)》一書的作者、也是史丹福大學心理學教授卡蘿.杜維克(Carol Dweck)在 TED 的演講:《相信你還可以更好的力量》(The power of believing that you can improve)。這種「成長型思維(Growth mindset)」正好是「患有」這個「症候群」的人的解方:

暢銷書《心態致勝》作者在 TED 上發表的「成長型思維」是「冒名頂替症候群」患者的解方

杜維克長年對不同群體的實證研究後,得出了一個結論:無論任何人,只要具備成長型思維,打從心裡相信「能力都是可以改進的」,並且付諸行動,就可以一步步接近目標

其實只要紮實努力過,就算最終結果不合預期,但是在這努力過程中所得到的技能、眼光,以及歷練,對自己來說都是得到。所以選擇接受挑戰,必定是正確的選擇,不是嗎?

 

 

 

其他閱讀

Python課程創造AI新生活!!在家就能享用頂級咖啡師煮的咖啡~

聯發科設計超強AI人工智慧晶片!! 快報名Python課程搭上熱潮!!

JK羅琳就快被Python課程取代寫出哈利波特續集!?

重新學習UI UX Python課程 打好基礎輕鬆領高薪

有一個傳說 來上Java課程還能任高薪職缺 媒合率竟高達百分之90

稱霸排行榜的五大程式語言你都瞭嗎? 除了熱門的Java課程,你還可選….

程式課程選達內,美上市IT課程教育集團

從七大點告訴你Python和Java有何不同!!

從七大點告訴你Python和Java有何不同!!
從七大點告訴你Python和Java有何不同!!

想學習程式語言卻在Python和Java之間猶豫不決嗎? 本篇列出七點告訴你他們的不同!! 需要的人快讀下去!!

PythonJava 是兩種現今非常熱門、卻又不同的程式語言。對現在的科技業來說,兩者都是十分有用工具,而且瀏覽各大求職網站,Java 工程師近十年來一直是科技業炙手可熱的職缺。而新興的 Python 語言,職場上對於會 Python 語言的工程師的需求也是越來越高。如果現在你想轉職工程師,卻又不知該學哪種程式語言的話,可以參考本篇文章。

1、動態類型 vs. 靜態類型

Java 和 Python 最大的區別之一,就是兩種語言處理變數的方式。Java 強迫你在第一次聲明變數時,就必須要定義它的類型,且不可再修改,這就是「靜態類型」。而 Python 不需要在一開始就聲明變數的類型,且後續可以改變一個變數的類型,例如可以把整數變數替換為字符串(string)。

2、Python 中一切皆為物件

在 Python中,無論是數值(整數、浮點型)、字符串、字典、元組對象、還是他們所對應的類型,以及函數、模塊等,都是物件,他們的祖先是PyObject。而 Java 中的函數,基本數據類型等都不算物件。

3、括號和縮排

Python 與眾多程式語言的不同之處,在於它使用縮排區分程式區塊(block)。而 Java 與其他大部分的程式語言都是使用大括號定義函數和類定義的開頭和結尾。使用縮排的好處在於程是碼會比較易讀,且不會有缺括號導致錯誤的可能。

4、軟體可移植性

Java 的可移植性 (可攜性) 更強,可以用於開發平台獨立的應用。這是 Java 相較於 Python 的優勢之一,任何可以運用 Java 虛擬機器 (JVM) 的電腦或者行動裝置都可執行 Java 的應用。相較於 Java,執行 Python 的程式就比較麻煩,都需要一個編譯器來將 Python 代碼轉化為你的作業系統可理解的代碼。因為大部分的設備有安裝了 Java 虛擬機器 (JVM) ,所以 Java 工程師可以自信的說他們的開發出來的 Java 應用,幾乎對所有的用戶都可用。

5、Python 的 GIL

Python 的 GIL (全局解釋器鎖) 一直被不少開發者所詬病。Python 的多執行緒在多 CPU 條件下,並不能一併運行,而必須要在每個執行緒運行時,先需要獲得解釋器的訪問權限,才可以運行。在一個執行緒運行時,其他的執行緒只能處於等待的過程。不過這方面的問題可使用多工處理機制來彌補。而 Java 支援真正的多執行緒,控制資源的的共享很到位。

6、應用領域

Java 主要用於商業邏輯強的領域,如電子商城系統、金融、保險等傳統資料庫事務領域,通過類似 ssh 框架事務代碼,對商業資料庫,如 Oracle、DB2、SQL 伺服器等支援較到位。Python 主要用於大數據分析、金融分析、信息分析、圖像演算法、數學計算、統計分析、算法建模、伺服器運算、自動化操作、開發速度快,適合需要快速靈活開發的產業。

7、哪一個更好上手?

一開始或許是 Python 較好上手。因為 Python 的語法設計很直覺,讓新手們可以快速上手、寫各種應用程式。但是入門簡單,並不代表會一直簡單下去。要學會如何巧妙運用 Python,還需要學習各種 Python 的函式庫。Python 的強大在於函式庫,因為 Python 的函式庫可以用 Python、C 語言、C++等程式語言設計,再提供給 Python 使用,所以無論是 GPU 運行、神經網絡、智能算法、數據分析、圖像處理、科學計算等,各式各樣的函式庫都在等著你來學習。而 Java 就沒有那麼多函式庫,無論是入門還是進階,學習的難易度相較於 Python 都較平均。

 

 

 

其他閱讀

Python課程創造AI新生活!!在家就能享用頂級咖啡師煮的咖啡~

聯發科設計超強AI人工智慧晶片!! 快報名Python課程搭上熱潮!!

JK羅琳就快被Python課程取代寫出哈利波特續集!?

重新學習UI UX Python課程 打好基礎輕鬆領高薪

有一個傳說 來上Java課程還能任高薪職缺 媒合率竟高達百分之90

稱霸排行榜的五大程式語言你都瞭嗎? 除了熱門的Java課程,你還可選….

程式課程選達內,美上市IT課程教育集團