我在2017年成為Go開發者的計劃

我知道,現在已經是2020年了。但我在整理電腦時,偶然發現了一張2017年的思維導圖。 根據那些記錄,早在2016/2017年我就有一個目標:成為一名員工。獲得一份穩定、待遇優厚的工作,而不是當一名承包商,從事無數個副業,卻從未發展成盈利的企業。 我希望能夠以Go開發者的身份被一家公司雇用。雖然我精通PHP和JavaScript開發,但對於除了個人項目外的Go經驗一無所知。但是,我對於使用相同技術堆棧開發感到有些厭倦,想要嘗試一些新的東西。 對我來說,現在這個想法聽起來有些瘋狂,因為: 我從未做過員工 那個時候,我已經擔任自由職業者/承包商將近10年了(現在已經超過13年) 讓我不再從事自己的項目的想法對我來說很難相信 但是,對你來說,看到我是如何計劃從對Go一無所知到在幾個月內成為一家公司的Go開發者,可能會很有趣。 我買了一本關於Go的權威書籍:《The Go Programming Language》作者是Donovan和Kernighan。是的,就是那個《C語言程序設計》(K&R)的Kernighan。 這本書非常棒,強烈推薦。 我花了一個月的時間認真閱讀了每一章。每天都學到一些新知識,並將我的筆記整理成博客文章。 我每天發布博客文章,有時甚至一天發布多篇。 我在算法和算法平台上進行了一些小項目的開發。 我開始了自己的項目,它是一個很好的主意,我現在仍然這麼認為。這是一個與GitHub互動的Web應用程序,旨在幫助可視化項目隨時間的進展情況。 我使用Go來構建它,這是一個很好的學習過程。 當你在一個你對之充滿興趣的項目上工作時,學習起來比在學校裡因為獲得詢問而學習要容易得多。 我讀其他人在GitHub上的代碼。我花了幾天的時間在Go論壇上,試圖理解人們寫的內容。 我看了一些使用Go開發的熱門項目(如Docker、Kubernetes等)。 我追蹤了Go領域的每一位主要的「影響力者」,每一位在這個主題上有影響力的Twitter帳號。 我訂閱了我能找到的所有Go郵件列表。 我訂閱了所有關於Go的播客和YouTube頻道。 總之,我整天都在全身心地投入到Go中。 從早上到晚上。 這是一個很好的計劃。 在一些面試過程的後期,它算是有點成功。 但它沒有成功,也就是說我沒有被雇主聘用,因為有1個原因:我並不真正想成為一個員工。 對於自由和獨立以及建立自己的事業的渴望太強烈了,所以由自由職業者/承包商/獨立人轉變為員工的轉變失敗了。 回顧起來,我對此感到滿意。 而且,我可能無法長期成為一個員工。 我仍然了解Go,並且我真的很高興我花了那麼多時間和精力去學習。 這使我成為一個更好的開發者,無疑的。

用Go構建命令行應用程序:彩虹貓

喜歡命令行應用程序嗎?也不要錯過 cowsay 教程! 我正在尋找一些終端應用程序來尋找靈感,結果我偶然發現了 lolcat。 原始碼在 https://github.com/busyloop/lolcat,並且已經有了一些Go的實現: https://github.com/cezarsa/glolcat https://github.com/latotty/lolcat https://github.com/lalyos/lolcat https://github.com/vbatts/gogololcat 看起來是一個完全沒有用的東西,所以讓我們來實現它! 首先,讓我們在屏幕上打印一些值,然後我們將為它們上色,然後我們將研究如何接受用戶輸入以作為管道工作。 我使用 https://github.com/enodata/faker 生成假的輸出。 go get -u github.com/enodata/faker 該程序輸出了一些短語: package main import ( "fmt" "strings" "github.com/enodata/faker" ) func main() { var phrases []string for i := 1; i < 3; i++ { phrases = append(phrases, faker.Hacker().Phrases()...) } fmt.Println(strings.Join(phrases[:], "; ")) } 不幸的是,這都是無聊的黑白。讓我們添加一些顏色。我們可以通過在 fmt.Printf 中插入一個逸出字符序列來實現這一點。這樣就可以以金色 #FFD700(RGB顏色碼:255,215,0)打印所有字符串: package main import ( "fmt" "strings" "github.com/enodata/faker" ) func main() { var phrases []string for i := 1; i < 3; i++ { phrases = append(phrases, faker....

談論不同主題的寫作

我已經在這個博客上寫了很長一段時間了。在這段時間裡,我涵蓋了許多不同的主題。 回顧往事,我從一些隨機的 Web 開發主題開始,然後專注於 Go、React、Node.js、CSS、HTML、瀏覽器 APIs、Next.js、Vue.js、Svelte、數據庫、Python、Swift,甚至電子學和 C 語言。 有時候,當我有希望寫一些與我通常所寫的主題不同的內容時,我會考慮一下。 這是我的博客,它不是一本名為“Web 開發”或其他類似的出版物。 儘管如此,當你長時間寫關於一個主題時,即使是像我這樣涵蓋了廣泛範圍的主題,你也會開始覺得自己與讀者之間有一個“合約”。 如果我決定寫關於 X 的內容而讀者對此不感興趣,會發生什麼事呢?他們會停止閱讀或關注這個博客嗎?他們會取消訂閱郵件通訊嗎? 除非你完全偏離了主題,否則幾乎從不會有這種情況。 你讀到了上面的主題列表嗎?它們之間幾乎沒有什麼相關性,除了它們都與編程有關。但是一位 React 開發者對於 C 語言或 CSS 沒有興趣。 因此,廣泛的專業領域是編程,在這個領域下我可以寫關於任何事情。 如果我開始寫關於園藝、狗、或者徒步旅行之類的內容,那就不一樣了。 有時候我會談論商業方面的事情,或者內容的製作,但這些都是相關的。 我考慮過在旅行時寫一些類似“旅遊博客”的帖子,只是為了做些不同的事情。也許有一天我會寫,儘管我不想讓讀者困惑。還有 Google 啊哈哈。 對我來說,規則是寫我想寫的內容。每天寫一篇帖子是關鍵。否則我早就停下來了。如果有一天我想寫關於旅行、烹飪或其他任何事情的內容,我就會去寫。 有時候我寫一篇關於如何為數字遊牧在整個歐洲旅行期間設置我的面包車的帖子,說實話,關於這些主題我獲得了更多的回覆。也許只是因為在他們那個時代這有些不尋常。 我將來要做的一件事是開始寫關於 SwiftUI 和 iOS 開發的內容。我已經考慮了好幾個月了。其實,我想已經有幾年了。 但現在我覺得是合適的時候了。 過去,我決定寫一些我不是非常熱衷的主題,比如數據庫。我對數據庫有多少熱情呢?我開始寫了幾天後就停下來了。 但我想,我可以寫一些我對於 iOS 應用的想法,計劃階段,開發過程,上架 App Store,等等的內容,這可能是我的一部分讀者非常感興趣的內容。 也許他們也有一個 iOS 應用的想法,這可能會是他們開始的觸發點。 我是否對 Web 開發厭倦了?絕對不是。而且任何 iOS 應用也需要與 Web 或 API 相應的對應組件,所以這不意味著我會停止寫關於它的內容。 而且我喜歡 JavaScript。 我只是喜歡編程。用代碼創造事物。不管是 Web 應用、iOS 應用還是桌面應用,都無關緊要。 對我來說,改變一下我寫關於什麼的方式只是為了多元化並保持我的能量水平高。 對我來說一直都是這樣。我會工作在一個 Web 應用上,然後轉到 iOS 應用,然後再轉到 macOS 開發,然後再回到 Web 應用。...