程式設計師編寫程式碼的通用程式語言有很多種,大多數使用企業軟體的程式設計師在退休前通常只使用一種程式語言。然而,也有一些程式設計師在日常工作中有機會使用多種程式語言。例如,如果程式設計師使用Flatter本機模組,則有機會使用Dart、Kotlin(或Java)、Objective-C(或Swift)、C/C 等。
大多數程式設計師在一種語言上工作了幾十年,這一點會限制他們的技術技能。我們經常看到很多 .NET和Java專家。卻很少看到掌握多種語言的程式設計師。學習多種程式語言會帶來更多好處。但是,學習每一種流行的程式語言,並不是一個明智的選擇。
在這個故事中,我將向您展示每個程式設計師都應該學習的五種程式語言。並用實例說明學習這些程式語言的好處。
C語言幾乎是所有底層軟體元件的基礎語言。 C的抽象化更接近硬件,C為程式設計師提供了最小的語法(保留了32個關鍵字)。與其他現代流行程式語言相比,C的語法更接近組合語言。因此,C編譯器可以有效率地將C原始碼轉換為機器語言,並產生輕量級和極快的二進位執行檔。
C 是C的擴展,所以你可以使用C 的C語言缺少的特徵(例如:類別、命名空間等)。學習C/C 對任何程式設計師都有許多好處。 C/C 促使您編寫最佳化的程式碼,因為C/C 不提供自動垃圾收集。
C提高了您解決問題的能力和基本的電腦科學技能,因為它不提供預先建置的資料結構和功能齊全的標準函式庫。例如,如果需要C語言中的堆疊,則必須建立自己的堆疊。
同樣,學習C/C 有助於提升電腦科學知識和技能。下面的故事解釋了為什麼程式設計師應該先學習C語言。
你可以用任何語言開始程式設計——但從C 開始有更多好處!
世界上大約有700 種程式語言。但是,開發人員使用大約 20 種不同的程式語言來建立企業軟體。換句話說,即使有很多程式語言,也只有少數流行的通用程式語言。開發人員通常在學校、大學或職業生涯開始時開始編碼。
當他們開始編碼時,每個開發人員都會發現自己在問一個問題:我應該先學習哪種程式語言?如果你在大學學習電腦科學,課程大綱通常首先是 C 程式語言。
在C語言程式米銘語言仍然在與硬體相關的軟體專案中經常使用。
但 Java、C#、JavaScript、Go、Python、Ruby、PHP 和 Kotlin 等語言在現代軟體產業中佔據主導地位。這是因為他們的:
另一方面,現代社群並不經常使用 C——其他流行的語言提供了比 C 更友善、簡單和靈活的環境。是的,C 是硬體相關專案的更好選擇,但大多數開發人員都在工作與網路和行動相關的專案。
讓我解釋為什麼學習 C 是最好的選擇。
幾乎所有程式都提供內建方法或函式庫方法來解決需要邏輯演算法的編碼問題。例如,如果您需要將特定項目複製到第二個陣列中,則可以使用JavaScript 中的內建篩選器方法。如果您使用的是 Java,則可以使用套件中的filter方法java.util.stream。從字面上看,任何流行的程式語言都有一個內建方法或庫方法來過濾數組。但是如果你使用 C,你必須自己實現它——因為 C 中沒有內建或庫過濾方法。
當您找到這些場景時,您將面臨需要解決的問題。練習演算法問題是成為優秀問題解決者的好方法。我們並不總是處理僅涉及您最喜歡的企業程式語言的標準庫和內建功能的簡單任務。我們經常處理涉及解決問題技能的任務。因此,使用 C 編寫初始程式碼會使您成為更好的問題解決者。
而且,參加競賽程式黑客馬拉鬆的開發人員經常使用 C 來解決問題。
Python、C# 和 Java 等程式語言是非常人性化的語言。但是,這些語言與物理硬體非常抽象。換句話說,在開始使用 C 進行程式設計之前,您將無法體驗電腦硬體的行為。現代程式語言隱藏了與硬體相關的整個體驗,提供了全新的沙盒環境。在大多數情況下,這個沙盒環境是使用虛擬機器創建的。
不幸的是,開發人員跳過了與硬體相關的關鍵主題,如記憶體管理、檔案處理和程式碼最佳化——因為它們不是從 C 開始的。現代程式語言自動處理記憶體分配和垃圾回收器的釋放。另一方面,在 C 程式語言中,開發人員透過編寫高度最佳化的程式碼來管理記憶體。
使用 C 編寫初始程式碼可為您帶來難忘的硬體之旅,這是每位電腦科學家都應該體驗的。
當一種程式語言提供非常人性化的抽象時,特定的程式語言將變得不那麼靈活。您最喜歡的程式庫的每個標準庫方法和內建方法都充當硬編碼的黑盒子。換句話說,現代程式語言隱藏了低階程式碼,並為開發人員提供了乾淨但有限的介面。使用現代程式語言,直接動態記憶體分配實際上是不可能的。同時,C 透過公開所有低階程式碼存取為您提供真正的自由。
C 編譯器產生極快的組譯程式碼。因此,C 開發環境本身會激勵您編寫高效能程式碼。在C中,我們必須小心地宣告變數、分配記憶體、清理記憶體、存取資源和釋放資源。如果您最初使用 C,則可能不會使用目前使用的程式語言使用過多的記憶體、不需要的資源和錯誤的資料結構。
與現代程式語言不同,您必須用 C 寫許多程式碼行。這是因為 C 提供了對您需要的一切的低階存取——它沒有為您提供高度抽象的標準庫。當程式碼中的行數增加時,程式碼的複雜度也會增加。因此,我們必須編寫乾淨且不言自明的程式碼來擺脫雜亂的程式碼。
當我們處理行業級軟體專案時,編寫乾淨的程式碼是一項非常需要的技能。事實上,如果我們從事過基於 C 的項目,那麼編寫乾淨的程式碼就是小菜一碟。
隨著 C 專案的積極發展,C 已成為 C 的子集。 C 確實是一種現代程式語言,具有功能齊全的標準函式庫。因此,學習C 和學習C是不一樣的。但是,直接的記憶體操作能力和低階存取能力還是有的。幾乎所有現代程式語言都透過引入新的語法、語義和標準庫方法來相互競爭。但是,像 Go 這樣的語言只擴展了標準函式庫和社群驅動的函式庫。
如果開發人員立即跳入 Python、JavaScript、C# 或 Java 等現代程式語言,他們將錯過 C 程式語言提供的寶貴經驗。從 C 開始程式設計是了解程式語言如何與硬體連接的好方法。
先用C語言選擇硬路線。它將幫助您成為您最喜歡的程式語言的專家。
*原文連結:https://betterprogramming.pub/why-every-developer-should-start-programming-with-c-39b3a87392bf。
Bash是為類別Unix作業系統建構的命令語言和命令列解釋器。 Bash解釋器程式預先安裝在幾乎所有類似Unix的作業系統中。此外,許多GUI終端軟體通常使用Bash作為預設命令解釋器。因此,我們可以為不同的類別Unix作業系統編寫可移植的Bash腳本。
程式設計師遵循不同的實踐來提高他們的日常程式設計效率。許多程式設計師通常會為重複的手動過程編寫自己的Bash腳本。例如,我編寫了一個簡單的Bash腳本來建立和複製TypeScript專案的輸出。學習Bash無疑是學習過程自動化的第一步。流程自動化確實是提高生產力的方法。
Bash本機支援進程。換句話說,您只需提及其名稱即可運行另一個程式。因此,您可以快速編寫自動化腳本以提高程式效率。下面的故事解釋如何將GUI元素加入Bash腳本中。
Bash 腳本包含一組以 Bash 指令語言編寫的指令,這些腳本可以在 Unix shell 解譯器中執行。我們使用 bash 腳本來自動執行幾個任務,如果我們按照手動方式執行這些任務,這些任務顯然很耗時。但是如果我們與現代計算相比,bash 腳本是老式的東西,因為與用戶的所有互動都是透過命令列介面完成的。我們知道一些開發人員正在使用引人注目的標誌和顏色來突出控制台介面中的重要內容。如果一個特定的老式 bash 腳本被高度技術性的觀眾使用,那很好。但是如果它被普通觀眾使用,那麼進行一些用戶友好的互動顯然是件好事。
事實上,您可以使用Zenity命令列工具將基於GUI(圖形使用者介面)的輸入/輸出元件包含到您的下一個bash 腳本中,該工具幫助我們顯示GTK 對話方塊。此外,可以使用notify-send命令列工具顯示本機 GUI 通知。這兩個工具通常隨流行的 Linux 發行版一起提供,因此不需要任何類型的預先安裝。
很明顯,使用本機訊息方塊向使用者顯示任務完成情況比在控制台中列印原始文字要好。使用Zenity可以輕鬆產生錯誤、資訊、問題和警告類型的訊息框。
訊息訊息框:zenity --info。
警告訊息方塊:zenity --info。
錯誤訊息方塊:zenity --error。
錯誤訊息方塊:zenity --question。
如果使用者允許,需要執行一組指令,則可以使用問題類型訊息。例如,從磁碟刪除檔案。這可以透過使用簡單的if條件或$?儲存最後一個傳回值的特殊變數。
通知非常適合顯示長時間運行的批次指令的狀態。這一點非常重要,即使用戶正在做一些其他工作,而不是查看控制台以了解發生了什麼,他們也會收到通知。透過notify send命令列工具,可以輕鬆生成本機通知。
考慮下面的簡單例子…
Zenity還具有發送通知的功能,但notify send為我們提供了更多調整的自由。
Zenity透過提供各種輸入元素為收集使用者輸入提供了良好的支援。它有以下類型的輸入框。
日曆輸入框zenity --calendar。
這是一種更好的捕獲用戶輸入的日期的方法,而不是要求用戶從控制台以yyyy-mm-dd格式輸入所需的日期。
字串輸入框zenity --calendar。
我們通常使用read指令從控制台取得一些字串輸入。 bash腳本對於非技術人員的可用性可以透過提供一個GUI文字欄位來增強,該欄位還接受通用的按鍵(主/結束鍵等)和簡單的複製貼上功能。
非常類似的zenity --password可以用來捕捉使用者的秘密字串,如密碼或PIN碼。此外,密碼輸入還允許您啟用使用者名字段。然後返回使用者名稱和密碼,並用|字元分隔。
檔案選擇對話框zenity --file-selection。
本機儲存/開啟對話方塊可以順利顯示。我在Neutralinojs中也使用了此功能。
如果我們使用普通的控制台輸入來詢問使用者的一些選擇,我們可以為使用者所需的選擇實現幾個縮短鍵輸入。例如,要求使用者輸入字母A以接受一個選項,另一方面要求使用者輸入字母B以啟動另一個選項。從使用者的角度來看,透過顯示基於GUI的清單選擇,可以稍微改進此方法。
讓我們假設您正在製作一個安裝腳本,您需要詢問需要安裝哪個幫助程式插件,以便與主軟體程式進行雙重驗證。
如上所述,有幾個GUI輸入元素可以與bash腳本一起使用,而不是一直使用原始文字。此外,我將向您展示一個更高級的範例,該範例是使用這些本機GUI元素實現的。
*原文連結:https://medium.com/swlh/how-to-modernize-your-bash-scripts-by-adding-gui-cba613a34cb7。
#以上是每個開發人員都應該學習的五種程式語言(上)的詳細內容。更多資訊請關注PHP中文網其他相關文章!