學了4年C++後,我轉向了Python

學了4年C++後,我轉向了Python

C++ 已經學不動了,現在換 Python 還來得及嗎?一位四年工作經驗的 C++ 程序員親述轉型歷程,這不僅僅是語言上的轉變,而是代碼思維甚至工作環境的轉變。

通常,程序員會認為 Python 編碼比較簡單,即便是在校學生也可輕鬆入門,這是大多數轉型 Python 程序員的最初想法。當然,Python 程序員現在的社會需求更大,薪資也相對更高一些。隨著 C++ 的日益增負,不少程序員都抱怨“希望 C++ 別再加了,實在是學不動了”,本文講述了一名具備四年工作經驗的 C++ 程序員轉行學習 Python 的心路歷程。

1

由深入淺

最近幾年,從 C++ 轉型 Python 的程序員不在少數,畢竟由深入淺易,由淺入深難。學習 C ++ 感覺就像在海里深潛,潛的越深,景色越美,但需要付出更多時間和精力。總的來說,最終所覆蓋的距離並不會很大。Python 有點像浮潛,很容易觸碰,如果可以持續投入學習,很快就可以有所領悟。從這兒可以清楚看出,每種語言都應該在正確的地點和時間使用。

2

C ++ 語法更嚴格,Python 庫更豐富

C ++ 語法更加嚴格,一旦出現編碼錯誤,基本會連帶發生很嚴重的後果。C++ 程序員通常需要深入瞭解計算機、編譯器和編程語言語法。當深入瞭解時,我們可以看到並被一些事物所吸引,比如編譯過程和內存管理。

作為 C ++ 程序員,大部分人往往更關心語法調整和場景用例,注重內存分配及釋放。程序更加獨立,編程人員往往清楚知道代碼會發生什麼,同時認為其他人寫的代碼不太可靠,更容易出錯,並且可能會破壞內存用量。

C++ 程序員的主要日常工具是 Vim,有許多用於編寫代碼的插件,用於調試的 GDB 和用於分析內存使用和錯誤的 Valgrind,可能用 g++ 編譯並編寫 Makefile。此時,作者並不認為 IDE 會讓其受益,反而非常依賴編譯器來查找錯誤類型。

3

轉型 Python,要學會放手

轉換 Python 需要學習的第一件事就是放手,程序員不必再瞭解底層發生了什麼,內存是否被分配或釋放,這些都沒有關係。因為 Python 可以使用其他人編寫的代碼,這些代碼被打包成庫,程序員可直接在代碼中調用,可以節省時間並幫助更快地編寫代碼。這並不意味著編碼速度變慢,或者依賴未維護和無功能的庫,但重點肯定是不同的。

當作者開始用 Python 編寫代碼時,首先用 Python 編寫了 C ++ 代碼,雖然這也可以生成最終運行效果,但並沒有從 Python 語言中獲益。只有以更“Pythonic”的方式編寫並使用庫以及更高級的概念(如生成器,裝飾器和上下文)時,Python 編碼才得到改進。

作為一名 Python 開發人員,傾向於首先考慮能解決手頭問題的庫。Python 擁有豐富的庫生態系統和支持社區,幾乎可以完成任何事情。目前比較常用的庫是,NumPy 用於數值計算,OpenCV 用於計算機視覺,json 用於讀取 json 文件,SciPy 用於科學計算,sqlite3 用於數據庫。

目前,作者使用的日常工具是帶有 IdeaVim 插件的 PyCharm(一個 IDE),一個功能強大的調試器,比默認的 Python 調試器 pdb 更友好,也會使用 pip 來安裝需要的庫。除非真的需要,否則不會再監視內存使用情況。實用技巧

如果是 C ++ 開發人員,並且考慮開始使用 Python 編寫代碼,以下是作者的建議:

  • 擺脫舊習慣。停止使用 C ++ 編譯器作為調試器,不過度優化內存使用情況。避免編寫類似 C ++ 的代碼,儘量不依賴類型。
  • 培養新習慣。開始使用庫寫 Pythonic 代碼(但不要過度)。
  • 保持可讀性。使用更復雜的概念,例如生成器、裝飾器、上下文等,可以試試 PyCharm。
  • 使用 C ++ 和 Python 公共庫。某些 C ++ 庫(如 OpenCV 和 QT)具有 Python 接口,程序員很容易在 Python 中使用相同的庫,而不是從頭開始學習新庫。
  • 不要忘記二者的本質區別。Python 有時太慢或不適合任務,這就到了運用 C ++ 知識的時候了。在 Python 中使用 C ++ 代碼的方法有很多,比如 SIP、ctypes 等。

4

寫在最後

當轉換到一種新的編程語言,尤其是與個人習慣完全不同的語言時,需要花費大量時間學習、挖掘、發現,最重要的是要明白不僅語言應該改變,編碼風格和工作方法也要改變,因此需要提前做好大量準備工作。

最後小編自己也是一個有著6年工作經驗的工程師,關於python編程,自己有做材料的整合,一個完整的python編程學習路線,學習資料和工具。想要這些資料的可以關注小編,並在後臺私信小編:“01”領取,希望能幫助到你。

相關推薦

推薦中...