自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么要學(xué)習(xí)更多的編程語言?同時(shí)認(rèn)為 Go 是最佳

新聞 前端
我不敢說在這些語言中我稱得上專家,但是我比其他人有更多的關(guān)于語言和框架的經(jīng)驗(yàn)。為什么我熱衷于學(xué)習(xí)編程語言?因?yàn)槲沂侨菀妆徽T惑的,當(dāng)我看到一些語言中的一些優(yōu)異的特性時(shí),我就忍不住去學(xué)習(xí)它。

 [[383160]] 

page head

我與編程語言的開放式關(guān)系

迄今為止我已經(jīng)編程四年了。從開始的基于 C# 的游戲開發(fā),然后使用 python 處理機(jī)器學(xué)習(xí)。學(xué)習(xí)使用 Javascript 以及 Typescript 做前端工作。后來想要做移動(dòng)端應(yīng)用,所以又學(xué)習(xí)了 Ionic,React,React Naive。為了達(dá)到更好的后端性能,Go 是一個(gè)最佳選擇。隨著 Flutter 的誕生,所以我學(xué)習(xí)了 Dart 來編寫更多的移動(dòng)應(yīng)用。我從一些大學(xué)課堂上學(xué)習(xí) Java,當(dāng)我在 Facebook 工作時(shí)學(xué)習(xí)使用 PHP。

我不敢說在這些語言中我稱得上專家,但是我比其他人有更多的關(guān)于語言和框架的經(jīng)驗(yàn)。為什么我熱衷于學(xué)習(xí)編程語言?因?yàn)槲沂侨菀妆徽T惑的,當(dāng)我看到一些語言中的一些優(yōu)異的特性時(shí),我就忍不住去學(xué)習(xí)它。

 

 

[[383161]] 

page middle

那么我為什么讓你做同樣的事呢?因?yàn)樵谀悴涣私庥心男┕ぞ撸@些工具具體是做什么之前,你也不可能去選擇正確的工具。選擇正確的工具和武器可以幫助你贏得大部分的戰(zhàn)爭。我個(gè)人發(fā)現(xiàn)這一點(diǎn)在生活中十分有用。選擇合適的語言,可以極大地減少解決問題所需要付出的努力。

解決真實(shí)世界中的問題

我來舉一個(gè)真實(shí)的例子,使用合適的語言可以節(jié)省很多時(shí)間,而只關(guān)注問題的主要部分。幾個(gè)月前,我選購了一個(gè)藍(lán)牙耳機(jī) AirPods??梢哉f是蘋果發(fā)布的最好的技術(shù)了。我嘗試了很多藍(lán)牙耳機(jī),但是沒有一個(gè)像這個(gè)一樣方便。但是,主要問題是我個(gè)人使用的是 Windows 筆記本以及 Android 手機(jī)。AirPods 可以自動(dòng)連接到我的手機(jī),但是筆記本卻不是這樣。我每次必須設(shè)置并且手動(dòng)連接,這是一個(gè)痛苦的過程。因?yàn)槲乙恢毕朐谑謾C(jī)以及筆記本電腦間切換。我需要一個(gè)可以將 AirPods 一鍵連接到筆記本的快捷按鈕。

我的第一個(gè)想法是使用 python, 因?yàn)槲掖_信可以找控制電腦藍(lán)牙的庫。但并不是這樣,沒有一個(gè)維護(hù)良好的庫可以完成這個(gè)工作。下一個(gè)選擇是 Node.js。后來我發(fā)現(xiàn)了一個(gè)可以控制藍(lán)牙的 Javascript 庫。通過運(yùn)行以下腳本,我可以將 AirPods 立即連接到我的電腦。

  1. // App.js 
  2. const device = new bluetooth.DeviceINQ(); 
  3.  
  4. const airpodsAddress = "18:81:0E:B2:6B:A6" 
  5. const airpodsName = "Akshat's Airpods"
  6.  
  7. device.findSerialPortChannel(airpodsAddress, function (channel) { 
  8.  
  9.     // make bluetooth connect to remote device 
  10.     bluetooth.connect(airpodsAddress, channel, function (err, connection) { 
  11.         if (err) return console.error(err); 
  12.  
  13.         console.log('YAY! Airpods Connected'); 
  14.         // Don't need a communication stream between the two 
  15.         // so let's just exit the stream. 
  16.         setTimeout(() => process.exit(0), 5000); 
  17.     }); 
  18. }); 

現(xiàn)在我需要一個(gè)可以運(yùn)行該腳本的一個(gè)快捷方式。我以為可以直接將腳本放在任務(wù)欄,但是 windows 不允許任何非可執(zhí)行文件放在工具欄。我寫了一個(gè)批處理文件,希望掛載在任務(wù)欄,但還是失敗了。那么什么語言可以創(chuàng)建一個(gè)可執(zhí)行文件呢? Golang 是一個(gè)不錯(cuò)的選擇,我寫了一個(gè)腳本來運(yùn)行 Node.js 腳本.

  1. // main.go 
  2. package main 
  3.  
  4. import ( 
  5.  "fmt" 
  6.  "os/exec" 
  7.  
  8. func main() { 
  9.  output, err := exec.Command("npm""start").CombinedOutput() 
  10.  
  11.  if err != nil { 
  12.   fmt.Println(err.Error()) 
  13.  } 
  14.  fmt.Println(string(output)) 

在任務(wù)欄放置該可執(zhí)行文件的快捷方式,設(shè)置圖標(biāo)。太棒了!一個(gè)便于訪問的按鈕,可以讓我很快的連接到 AirPods。

我知道通過使用 C# 我也可以獲得相同的結(jié)果。但我不想在我的筆記本電腦上安裝 Visual Studio 這樣一個(gè)怪異的 IDE。我還可以使用 nexe 等其他工具將我的 Nodejs 應(yīng)用程序打包到 exe 中,但這只是不必要的工作。 這只是一個(gè)簡單的例子,說明了解不同的工具如何幫助您輕松解決問題。如果我所知道的只是 Python 或 Java 或 Go,那將是一件非常困難的事情。我有更多的例子,知道使用正確的語言,大大減少了解決問題所需的時(shí)間和精力。

重點(diǎn)

  1. 學(xué)習(xí)不同語言真的很有趣。此外,它還可以擴(kuò)展您的視野,讓您置身于舒適區(qū)之外。

  2. 學(xué)習(xí)更多語言的另一個(gè)原因是訓(xùn)練自己思考一種語言或范式之外的問題。面向?qū)ο缶幊毯馨?,但也需要了解功能編程或程序編程。一旦你可以?xùn)練自己去思考特定語言之外的編程,你將不再受限于它的限制。

  3. 你學(xué)習(xí)的第一語言將是困難的,第二語言將更難,但在那之后就是信手拈來了。這只是語法變化和一些陷阱的避免。然后,您可以了解該語言的特定庫和框架。

  4. 我能想到學(xué)習(xí)更多語言的另一個(gè)令人信服的理由是 WASM。 Web Assembly 將允許您在瀏覽器上運(yùn)行所需的任何語言。這意味著如果您學(xué)習(xí)更快速的語言(如 C ++),可以充分利用瀏覽器的快速性并創(chuàng)建像 https://squoosh.app/ 這樣的精彩內(nèi)容。

最后的思考

  1. 你是一個(gè)Javascript或python開發(fā)人員。我強(qiáng)烈建議學(xué)習(xí)低級(jí)語言。你可以直接學(xué)習(xí) C 或 C ++,但我會(huì)建議 Golang。您可以輕松獲得類似 C++ 的速度,而不會(huì)受到 C 系列的挫折。

  2. 對于所有低級(jí)語言開發(fā)人員,請嘗試使用 python 或 Javascript。如果您還沒有嘗試過這些語言,那么您就錯(cuò)過了。 Python 就像偽代碼,現(xiàn)在 Javascript 無處不在。這兩種語言都可以讓您使用低級(jí)語言。您可以為 Node.js 和 Python 編寫C ++模塊。相信我,它會(huì)改變你的生活。

我希望我已經(jīng)說服你與你的主要語言建立開放的關(guān)系,并獲得一些新的令人興奮的經(jīng)歷。 如果你知道兩種截然不同的語言,到目前為止你的經(jīng)驗(yàn)是什么?您認(rèn)為它對您的職業(yè)生涯有何幫助?請?jiān)谠u論中告訴我。

 

責(zé)任編輯:張燕妮 來源: Go語言中文網(wǎng)
相關(guān)推薦

2014-07-02 09:56:33

2012-04-11 09:19:08

Haskell編程

2017-04-05 18:10:05

R語言開發(fā)Ross

2022-01-17 16:09:43

Go語言開發(fā)

2010-01-22 15:14:37

學(xué)習(xí)C++

2023-08-30 10:20:34

編程語言Python

2015-05-25 15:31:56

C語言學(xué)習(xí)和使用 C 語言

2014-12-08 09:47:48

Go

2022-05-20 11:41:00

數(shù)據(jù)科學(xué)編程語言Python

2020-04-07 16:12:56

Go編程語言開發(fā)

2020-12-21 14:28:01

語言JavaC ++

2023-05-04 07:44:13

編程界小語言Java

2024-07-08 00:01:00

GPM模型調(diào)度器

2018-05-23 00:20:29

2022-06-02 08:48:39

Go枚舉器Iota

2017-11-21 14:41:29

編程語言Python

2017-11-14 11:12:50

Go語言編譯器

2019-11-15 13:10:17

潘石屹Python語言

2023-05-29 08:03:41

代碼Go語言

2022-08-17 17:57:37

GoGo語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)