JavaRush /Java Blog /Random-TW /一種語言統治一切

一種語言統治一切

在 Random-TW 群組發布
在任何程式語言中,每一層程式碼下面都有一種語言。他等待著被發現... 翻譯和改編自 Eric Girois 的一篇來自 Medium 上 Better 程式設計社群的文章。 一種語言統治一切 - 1當我寫這篇文章時,「學什麼程式語言」風格的搜尋查詢數量超過了 5.17 億(!)。搜尋結果清單中的每一頁都講述了特定語言相對於其他語言的優勢,並且在90% 的情況下,您會被推薦相同的東西,例如Python、JavaSctipt(或語言語言權威評級前3 名的東西)。7 月份的當前評級在這裡;)讓我大膽地正式不同意所有 5.17 億個結果,並說你應該學習的第一個編程語言是邏輯。僅僅知道如何編寫程式碼是不夠的。市場上充斥著各種課程的畢業生,這就是為什麼初級開發人員的職位基本上不復存在的原因。要在這些現實中取得成功,您不僅需要編寫程式碼,還需要擁有邏輯思維。

我的第一堂電腦科學課

我第一次接觸電腦科學是在十年級的選修課上。我來到教室,感到一種欣喜:教室裡有一堆盒冰淇淋和幾罐糖漿。當我們入座時,老師宣布:「今天我們要做週日(一種用冰淇淋和糖漿製成的甜點——編者註)。但有一個條件:你需要寫下準備甜點的具體說明,我會按照說明進行。” “毫無疑問,”我想,“這很容易。” 只需一分鐘,我就寫下了完美的說明: 將三勺覆盆子冰淇淋放入杯中,將兩湯匙巧克力糖漿倒入杯中,將生奶油加入杯中,在周日的頂部添加糖粉和一顆櫻桃,然後我的老師——充當“電腦”—— 完全按照指示進行,她的表演是我見過的最刻薄的表演。她開始瘋狂地「攻擊」冰淇淋紙盒,但耐用的蓋子卻毫髮無傷。「好吧,先把蓋子打開。」我說,希望能盡快拿到甜點。“你沒能正確地為我寫下說明,所以很遺憾我無法為你安排下週日!”

快轉到嘗試 #2

取下蓋子,打開一盒覆盆子冰淇淋將三勺覆盆子冰淇淋放入杯子中打開巧克力糖漿,然後在杯子中加入兩湯匙打開生奶油,然後在杯子中添加一些在頂部撒上糖粉和一顆櫻桃週日我有信心我已經成功了 一次。老師打開蓋子,舀起三球冰淇淋,放進杯子裡。終於,我的星期日要準備好了!然後她打開巧克力糖漿,將兩湯匙放入杯中。但不是兩勺糖漿——只有勺子,沒有糖漿!我的指示又不夠精確。一切結束後,我收到了一杯冰淇淋、兩個金屬湯匙、一噸生奶油和大約 300 匙糖粉。似乎在那一刻,一切都變得清晰了:電腦是一個由純邏輯引導的實體。他不了解上下文,也不會做出假設。他遵循一套嚴格的指示,並且不折不扣地遵循它們。製作週日的最後說明非常冗長,但這是必要的: 如果尚未打開,請打開以下所有物品的包裝:覆盆子冰淇淋,巧克力糖漿,配料和鮮奶油從將其放在架子上並放在您面前拿一個冰淇淋勺,一次一個,舀出三勺冰淇淋並將其放入杯子中。一切完成後,將湯匙放在桌上。如果你還沒有巧克力糖漿勺,那就拿一把。然後取一匙巧克力糖漿,倒入杯中。這個動作做兩次。完成後將巧克力糖漿放在架子上。將淡奶油瓶倒置,用手指按住瓶口附近的按鈕三秒鐘,然後將瓶子放回原來的位置。將 40 粒糖粉撒在杯中的冰淇淋和巧克力糖漿上,然後將糖粉搖晃器放回原來的位置。從櫻桃罐中取出一顆櫻桃,小心地將其放在星期日的頂部。給學生星期日和甜點勺。 說明中的最後一條命令非常重要,因為沒有它,老師就會開始自己週日吃飯。 這就是程式設計的現實——你需要向電腦給出最精確的指令。本質上,所有程式語言都是由指令組成的。

軟體開發職業

軟體開發正處於發展階段,將其作為一個單獨的行業來談論似乎太籠統了。有鑑於此,「軟體開發人員」這個職位聽起來很模糊。就業市場上對兩名具有不同技能的開發人員的需求可能相同,這表明成功的開發職業需要的不僅僅是程式設計技能。經驗豐富的開發人員有一個共同特徵,即獨立於程式邏輯。最好的開發人員都善於批判性思考。這很重要,因為大多數軟體開發專案都是記錄不足的拼湊噩夢。需要具有批判性思維的人來收集所有數據並填補空白。因此,那些無法將事實連成一體的專家就落後了。所有這些引出了另一個非常重要的陳述: 電腦科學的基礎知識——無論是現在還是未來——都是首要的。它們比編寫程式碼的能力更重要。 流行語言來來去去。框架正在變得過時,公司正在透過組合所使用的技術堆疊來回應不斷變化的市場需求。什麼保持不變?基礎知識的基礎知識。

如何培養邏輯思維

邏輯和批判性思考可以而且應該發展。我建議您注意以下幾點:

1. 研究演算法在運作環境下的有效性

稱為 Big-O 表示法用於描述演算法的複雜性。如果您能夠用 Big O 術語評估您的程式碼並分析執行的步驟數與所花費的時間,則認為您已經朝著正確的方向邁出了第一步。

2.學習資料結構

資料結構是每個複雜程序的基礎。知道在哪種情況下最適合使用哪種類型是一項重要技能。資料結構與演算法的複雜性直接相關,因為選擇錯誤的結構可能會殺死程式。

3. 讀/看/聽

當然,您需要 使用 JavaRush學習 Java 程式設計:)
要了解基礎知識,請閱讀有關設計概念、最佳實踐和編碼風格的書籍。強烈建議正在學習程式設計的人閱讀:
  • “物件導向的設計技術。設計模式」(E. Gamma R. Helm R. Johnson J. Vlissides),
  • “重構。改進現有程式碼」(M. Fowler),
  • 「完美程式碼」(S. McConnell)
  • 「乾淨的代碼」(B. Martin)
  • 「務實的程式設計師」(E. Hunt)
  • 「演算法:建構與分析」(T. Cormen、C. Leiserson、R. Rivest 和 K. Stein)

4.練習!

如果沒有數百小時的練習,你就不可能成為一個優秀的大提琴手。日常練習是程式設計成功的關鍵。如今,有許多線上平台,您可以在其中找到數千個需要了解資料結構和演算法的任務(HackerRank、LeetCode、CodeWars 等)。
JavaRush 上提供了從簡單到複雜的 Java 程式設計問題。課程中有超過1200個,還有小項目和任務遊戲
對我來說,使用此類平台的最有效方法是想出解決問題的獨特方法並將解決方案發佈到 Github 上。然後查看類似問題的最佳解決方案並分析其他程式設計師的方法。這給我們帶來了最後的提示:

5.分析別人的程式碼

學習程式設計和工作初期的主要錯誤是自我孤立。軟體開發是一個很大程度上依賴團隊合作的領域。我們一起制定標準,犯錯誤,隨著時間的推移(再次通過反覆試驗),我們找出最有效的方法。花時間閱讀經驗豐富的開發人員的程式碼將會得到回報。只要確保程式碼實際上是好的。

結論

個人建議:永遠不要為你不知道的事感到羞恥。如上所述,這個行業龐大,語言數量令人難以置信,而且還有資訊海洋。至少需要花費大量的時間和精力來形成程式設計的整體思路,更需要累積經驗,更需要很多倍的時間和精力才能成為真正的專業人士。當我最終成功時,我會告訴你:)
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION