how-to-learn

如何學會學習 學習事物更快、更有效率的方法的心得和觀察 作為開發人員和軟體工程師,我們注定要無休止地學習。 10-15年前,要想在這個行業成為頂尖人才,您必須掌握Java、JSP、Servlets和Tomcat。也許之後您學會了Objective-C和Cocoa Touch,因為手機應用程序是新潮流,而且老實說真的很激動人心!現在一切都關於React和現代JavaScript-3年前的JavaScript已經不再是JavaScript-它是過時的JavaScript。作為一名系統開發人員,C++然後是Go然後是Rust?Haskell和Elixir呢? 每隔幾年就會有一個重大的趨勢和就業市場的變化。 我喜歡學習。掌握新知識對於提高專業水平非常有用,作為一名開發人員,您學到的每一項知識都是您工具箱中的一個工具,對您的職業生涯有莫大的幫助。 在這篇文章中,我想討論我學習得更快更有效的方法。 戰勝拖延症 拖延是您的敵人。它可以以多種形式出現,例如看Netflix或瀏覽Reddit。它也可以表現為做一些淺薄的工作,一些不重要的任務,這些任務實際上並不值得做。但是這讓您有了生產力的感覺,同時又把您從真正的事情-學習新知識,分散了注意力。 如何戰勝拖延症?您需要對此進行訓練。有一種方法是開始做。例如,作家們迫使自己寫作的方式之一就是每天專注於寫作200個詞。一旦您開始寫作並寫滿這200個詞,您可能已經進入了寫作的狀態,可以繼續下去。您專注於過程,而不是結果。您也可以寫200個不好的字直到您進入“狀態”,並寫出5000個像《Inc》雜誌水平的字。 控制注意力 我們需要盡一切所能來戰勝拖延症。我所做的其中一件事是使用一個名為SelfControl的macOS應用程式,以及一個名為Block Site的Chrome擴展程式。我封鎖了所有與工作無關的社交媒體,以及我經常訪問的所有新聞網站。要觀看這些內容,我必須使用iPad或手機。 管理時間 另一種方式是進行時間分段。西番蓮(pomodoro)技巧在這方面非常有幫助:您工作25分鐘,休息5分鐘。按需調整時間,但主要的結論是您在指定的時間內進行工作,並有休息時間。然而,我無法接受這種固定性的技巧。我拒絕在我的工作周圍建立任何嚴格的結構,但我有類似的方法。只有在我有靈感時才寫作。如果我沒有靈感,我就不會坐在桌前寫作。 分而治之 我靠學習然後教授這些知識來維生。例如,下個月我將深入研究GraphQL並制作一個關於它的課程。對我來說,這樣做有很大的好處,因為我一直在學習新東西。當然,要學習的事情永遠不會有盡頭。對於參加我課程的人也有很大的好處:我從他們的起點開始,因此我不會陷入專家的陷阱,即假設事情並為錯誤的受眾創建一些資源。我喜歡這樣。 然而,這也帶來了一個挑戰:我怎樣才能學得足夠快?我按塊工作。我選擇一個主題,參加幾門課程,閱讀盡可能多的書,並嘗試列出整個論點的目錄。這將成為電子書的目錄。然後,我開始獨立地撰寫每個塊的內容。我有一份列印出來的清單,每天我選擇1、2或更多我心情可以學習和寫作的主題。根據心情學習更容易。此外,如果有一天我不想做,我就會跳過,明天再回來,精神饒恕,準備好開始。 將一個大主題分成小塊更加容易掌握和理解。如果我每天解決一個問題塊,到月底我已經學到了很多東西。每一個塊都是整個大畫面的一部分,我所要做的就是可視化這個大畫面。每個塊都是一篇博客文章,通過創建一本電子書來理解整個大畫面。 我真的鼓勵任何人採用我的方法,並嘗試立即解釋他們所學到的東西。不要害怕,即使您是這個主題的新手,您的觀點在此議題上也有一席之地。 從書中學習 值得討論的另一個項目是閱讀書籍。我有很多很多很多我想閱讀的書。我的圖書應用程式裡堆滿了我從未閱讀過的好書。我讀了很多書,很多很棒的書。很多時候我被一本書觸動到了,但一個月后,我忘記了在其中讀到的內容。您如何記住閱讀一本書時學到的東西? 這是我的技巧。無論我使用Kindle還是iPad閱讀,或者我手上有一本實體書,我都會對我想記住的所有主要概念進行標記。 然而,僅僅記住一些我想記住的內容是不夠的。 完成書籍閱讀後,我將只閱讀我所標示的內容,並在閱讀過程中對書籍進行摘要。這是私人的,但我也開始發布這些摘要,就像我為《深度思考》這本書一樣。 我不僅使這些概念在我腦海中形成了確定的印象,還將它們寫下來(這是一個很大的幫助),現在我有了一份可以回頭查看我從這本書學到了什麼的參考資料。 或者,我只是想寫下我從一章或一個段落中學到的東西,並根據我的意見進行擴展。這也很好。 應用所學 當涉及到學習一門編程語言或框架時,您最好的方法就是使用它來創建項目。側邊項目特別適合這個目的,因為您不需要完全掌握面向企業的設計模式,您可以一邊學習一邊進行。學習某樣東西並不需要100%的擴展架構。那只會讓您陷入停滯不前的困境。做一些有趣的項目也是很好的。我喜歡在注重樂趣的平台上工作,例如Glitch。 您也可以創建遊戲,或者正如許多人所做的那樣,在Product Hunt上推出小型產品。這是一個很好的方式,可以給您帶來迫切感和推動力,使您不惜一切努力,精心打造出一些讓人們看到並使用的東西,而不是將它完全閒置並在3天后遺忘於硬碟中的項目。 休息 休息對於放鬆心靈非常重要。每天花費1小時在某事上,可能比在一天內花費12小時更人性化。每天晚上,您的大腦都有機會思考您所學到的內容。我認為這樣更好。也許您可以輪流1小時閱讀和1小時收聽播客或進行一個實踐項目。 此外,當您被卡住某件事時,不要花費3小時在上面。出去走走。打個盹。出去跑步。做點別的事情,然後回來。我無法計算有多少次我在第二天醒來,頭腦中已經有了解決方案。 或者,解決方案在淋浴時等著您,或者在您在森林中遛狗時等著您。令人驚訝的是,當您在工作時,這麼多次點子就是藏起來不願出現。

成為軟體開發人員的8個好理由

為什麼成為軟體工程師是你未來職涯的好計劃 如果你從7歲起就是一位有天賦的電腦天才,毫無疑問,你將成為一名優秀的軟體工程師。但如果這不是你的情況,為什麼你應該成為那些整天在鍵盤上輸入,讓機器按照你的意願運行的人之一呢? 我假設你是願意選擇這個職業來謀生,而不僅僅是為了自己的享受。 對於職業的喜愛又是另一個話題,必須仔細評估。 如果你努力工作,卻並不是非常在意電腦,那麼軟體工程將不是一個好選擇,因為為了做得好,你需要花費無數不計其數的時間精緻你的手藝,跟上整個行業的步伐,了解每一個小細節,以便正確地完成工作。 對於成為任何職業的優秀來說,激情是一個關鍵的因素。 你每天都會學到新東西 每天你都會面臨新的挑戰。你是一名工作在潛在非常複雜問題上的工程師。 你需要知道如何解決問題,如果你不知道,你需要在職場上學習。 人們期望你每天都在學習,這很棒,因為你不會在就業市場上停滯不前,而是隨著時間的推移積累了大量的經驗。對於你的公司來說是有價值的經驗,如果你決定換工作的話,對其他公司也是如此。如果你想嘗試獨立開發,甚至對於你自己來說也是有價值的經驗。 每天被要求學習可能會令人沮喪,也可以非常令人興奮。這完全取決於你的心態。 這是一個高需求的職業 我不認識一個合格且找不到工作或沒事可做的開發者。優秀的開發者需求量很大。你可能找不到一個頂尖或有名的公司的工作,但當地的公司都在迫切尋找人才。 你可以選擇自己的職業道路。 你可以搬到矽谷,加入一家頂尖公司,獲得非常高的薪水,與聰明人一起打造下一個大事業。 你不需要搬到矽谷才能找到開發人員的工作,特別是作為一名網絡開發人員,這是一個更容易進行遠程工作的職業之一。 未來可見,機會不會短缺。相反,對於開發人員的需求可能會更大,開發新軟體或維護現有軟體。 能夠遠程工作 遠程工作,即使只是每週幾天,可以實現良好的工作/生活平衡。 雖然並不是所有的環境都允許遠程工作,但遠程工作對軟體開發非常適用。 如果你是那些希望全職遠程工作的開發者之一,則你基本上可以選擇任何你想要居住並有良好的網絡連接的地方。 不需要浪費時間通勤,不需要為一天中找些好吃的東西而煩惱,不需要根據辦公室政治和規則在特定時間離開,或者更糟糕的是,等到人們決定離開的時間,以避免成為第一個離開的人並傳遞“錯誤信息”。 你只需要一個良好的網絡連接和一個安靜的地方(強烈建議有一個專門的房間),然後你就可以坐在那裡,盡力工作,並根據需要休息。也許你喜歡在上午11:00遛狗,在某些地方,作為你自己的工作時間完全是允許的,只要你完成了預期的工作。 良好的薪水和經濟福利 軟體開發是一份薪水相對不錯的工作,這取決於你的責任和你在工作中的能力。 作為一個遠程員工,你可以選擇為一個更富裕的國家工作,並從中獲益經濟上的好處。當然,這在很大程度上取決於你的選擇。 如果你選擇成為一名自由職業者,這是另一個公司願意為才華濟錢的領域。 然而,在你的前幾份工作中,你可能只會得到平均薪水。 你可以選擇獨立工作 假設你在一家公司工作了10年,有一天你突然“瘋狂”地決定離職,因為這份工作已經無法滿足你的要求。或者你被解雇了,或者公司倒閉了。 大多數職業都需要有人雇傭你,但軟體開發有一個很好的點,就是自己進行獨立開發,你可以自己開發一個產品,然後將其銷售給全世界。 它可以是一個SAAS(軟體即服務 - 網絡應用程序),一個移動應用程序,一個桌面應用程序,甚至是一本關於你最擅長的主題的電子書。你可以將多年的經驗應用到新的創業中,並將這段新經驗供未來雇主參考。 這是一種創作的出口 這雖然不是繪畫或設計,但編程是一個高度有創造力的專業。 每次你開始編寫一個程序,你都在創造一些新的東西,就像你在孩童時期玩樂高一樣。 很多時候,你嘗試使用各種技術,只能發現那不是一個好的方法,所以你選擇了一個不同的方向。每次你編寫一個新程序,你都會學到一些新東西。 這永遠不會讓人感到無聊(除非你的工作本來就很無趣,但編程本身應該不會無聊 - 否則你總是可以尋找一份不無聊的工作) 編碼是社交的 即使一個人一天花10個小時孤立地坐在電腦前,也可以說編程是社交的。 我們使用由人們開發的軟體,人們撰寫了使用該軟體的手冊和指南,我們依賴開源軟體,在論壇上與人們互動來討論和學習更多關於編程的知識,最後,我們為人們創造軟體。 你和一個團隊一起工作,這個團隊可以分佈在不同的地方,也可以在你辦公室附近。你有利益相關者,人們在等待你修復問題。 程序員喜歡參加會議,甚至有些勇敢的人在會議上發言,我們喜歡在Twitter上發表意見、評論和分享事情。 我們在GitHub上標星標識項目,提出問題,提交請求以改進他人的工作。 所有這些都是一種社交活動,最好的是你可以按照自己的節奏進行,根據自己的意願進行社交。 這取決於你自己 每個人都有同樣的機會。我們可以訪問全世界最強大的伺服器和服務。你的手機比NASA用來送人上月球的電腦強大數千倍。 西伯利亞的人可以擁有與矽谷的人相同的硬體。 你可以在線訪問數百萬本書。你所需要的只是時間、奉獻和毅力,你可以學到所有需要學的知識,以履行任何工作。 障礙每天都在降低。10年前的情景完全不同,想像一下10年後會怎樣。 你可以做一款應用程序,並在很短的時間和前期投資中在全世界販售它。 這些是8個隨機的理由。我確信還有更多好的理由,也有許多理由不成為一名軟體開發人員。

我對《專注力》這本書的筆記

在這篇文章中,我將提煉出我從卡爾·紐波特(Cal Newport)的《專注力》這本書中學到的關鍵概念。我也添加了一些我個人的觀察和經驗。 我會推薦這本書嗎? 是 書籍評分 4/5 這是一本最受推薦的書之一,也是我迄今為止讀過的最好的書之一。我讀了很多書。 這本書的總結是:要做出優秀的工作,你需要將自己置於一個能夠讓你有大量專注、無干擾和無分心的環境中。 這就是你進行深度工作的地方。 這個概念對於程序員來說非常常見。當我們在編寫程式碼時,需要將所有東西都牢記在心中,而最微小的分心都可能影響我們的工作能力。 開放式辦公室對於生產力來說並不利。我讀到有人起得很早去辦公室“在其他人到達之前工作”,或者在工作結束後在家工作,因為在工作場所有太多的干擾。 我很幸運,除了實習期外,從來沒有待過辦公室,我一直在家工作,不過這也帶來了自己的一些挑戰。 依我之見,做出優秀的工作的唯一方式就是花很多時間獨處,沒有任何可以分散注意力讓你的思緒漫遊的東西。 作為一個知識工作者,你需要一直進行這種類型的工作。你不能停止學習新事物,對吧?你總是需要這種品質時間來提升能力和事業。 這本書提出了一個很好的觀點:因特網使我們的世界變得非常小,我們與全球各地的人競爭。除非你能夠做出最好的工作,否則你注定只能平庸,否則人們將去“追隨”住在你10,000英里之外、做得比你更好的人。 已經感到焦慮了嗎?但是有一個方法:深度工作。做出出色的工作,你就會蓬勃發展,因為在這個如此容易分心和立即滿足的社會中,深度工作變得越來越稀缺。 這本書開始時定義了深度工作的三個主要特點: 深度工作是有價值的 深度工作是稀缺的 深度工作是有意義的 有價值 作為知識工作者,我們最重要的能力是知道如何快速學習和掌握新事物,並將這些知識應用於我們的專業。 沒有學習就沒有進步,我們一生都在學習。如果你十年前就停止學習手機的工作原理,你將與社會脫節。如果你停止學習工廠中更先進的設備,工廠將從業務中淘汰你。或者其他人會在那裡工作,而不是你。 這就是深度工作讓你能夠脫穎而出的地方。它讓你能夠快速、深入地學習。學習是一種需要大量專注時間的技能。專注程度越高,所需時間越少。優秀的音樂家因為過去進行的深度工作,才能夠憑藉著深度工作的成果值得買票。 如果你不進行深度工作,其他人會進行,而且在長期來看將比你更有價值。 稀缺 深度工作是稀缺的。在大公司工作的人幾乎沒有機會進行深度工作,因為這些公司的運作方式如此。太多人、太多會議、太多電子郵件和電話不讓你能夠專注。 商業世界希望我們每天都有明確、可衡量和微觀管理的步驟,我們需要儘快回復電子郵件,總的來說進行淺顯的工作,與深度工作相反。對最新的會議議程做出反應。 扮演忙碌的開發者角色。沒有辦法衡量深度工作,以及你在其中的表現如何,所以在各個層面上都在阻礙它。被人認為忙碌總比表現得無所事事要好。每天發推特20次,假裝什麼都懂,總比一個月不發推特要好。 作為遠程工作者,你可以有更多機會進行遠程工作。將連續的時間段專注於工作,關閉電子郵件,在3個小時後再度使用通訊工具。這是可行的。 像我這樣的獨立工作者就更容易做到這一點。除了回應客戶之外,我不需要回應任何人,所以我可以抽出我需要進入狀態並專注於完成我最佳工作的時間。在白天,深度工作的時間是稀缺的。你不能有8個小時的深度工作。大腦會耗竭。3個小時已經是一個很大的成就了。 作為邊緣網格工作者,我們可以做出更好的工作,更頻繁地做出更好的工作,並在整個生活中獲得比那些生活中有太多事情需要應付的人更好的結果。 有意義 我們生活在這樣一個社會中,回復20封電子郵件似乎比思考推動項目前進的策略更有生產力。這更容易衡量,也更容易滿足我們的內心,因為拖延更容易導致你轉向收件箱進行淺顯而無關緊要的工作。而這確實可以帶來即時的滿足感。 然而,這種滿足感並不持久。 深度工作可以帶來更深層次的滿足感。就像木工花幾個月時間製作一件作品,將裸死樹變成藝術品一樣,你是一個熟練的工匠,專注於讓你的工作盡善盡美本身就是一種令人難以置信的滿足感。 學會欣賞你工藝的成果和工藝本身,是開始進行深度工作的第一步。 如何進行深度工作 大腦偏向於淺顯的工作,並尋求任何可能的分心,讓你回到進行淺顯工作。 在進行深度工作之前,你需要設定一種方法來使它成為可能。有不同的方法或配置可讓你有能力進行深度工作。你需要一個儀式,而對於不同類型的人來說,適合不同生活方式的儀式也不同。 你可以永久性地消除生活中的所有干擾,這樣你就有很多時間專注於你的專業。你只做一件事,而且你做得非常出色。你刪除了所有可能分散注意力的事物。該書引用了一些作家的例子,他們只專注於寫作書籍,而不是參加會議或回復電子郵件,因為這些東西會耗竭他們的生產力。 你可以有一年中的一段時間完全專注於某件事情,然後另一段時間做其他事情。你可以定期做這樣的事情,比如夏天去小木屋。這包括去度假一個月時間來完成你幾年前開始的項目。 每天做一點點深度工作成習慣。例如,你在通常時間之前早醒2個小時,並利用這2個小時進行深度工作。這就是我通常做的事情,我每天發布一篇博客文章。這樣你就可以建立一個你不能在某段時間後打破的努力鏈,因為那將是一種遺憾。你每天寫了20天的1000個字,打破這個鏈就太可惜了。如果你能堅持下去,你很快就能寫一本書。 當你有空閒時間時,你可以擠出時間來進行深度工作。比如周末,又或者有幾個小時的閑暇,沒有固定的承諾。 不管你喜歡哪種方式,也取決於你的承諾和工作或學校的情況,你需要創造一種儀式讓你投入工作。關於這一點,有一本很好的指南書是《奇蹟早晨》。你不能只指望靈感來帶領你進行最佳的工作。你需要創造一個使這種工作成為可能的環境。例如,我使用一個名為SelfControl的應用程序封鎖所有分心的東西,需要工作時關閉設備。尼采曾說“所有真正偉大的思想都是在散步時誕生的”。他進行深度工作的方式就是散步。 這通常被推向極端,即建立一個專門的地方來進行深度工作。例如作家去小屋,甚至在自家庭院建造小木屋。你做的越多努力來建造这个小木屋,你就越有可能真正使用它。一些著名的作家也習慣去高檔酒店房間。你支付了房間費,現在你最好寫點東西。 有些人在團隊中表現最佳,尤其在進行創新工作時,所以一個好的技巧是找一些志同道合的人與你一起工作。 不要同時專注於太多任務。專注於幾個重要的任務。 保持“成績”。我的成績是我在過去30天內發布的文章數量。每天我寫一篇新的博客文章,我的成績就會增加。我不會真正追踪它,但我知道我錯過一天。 問責制也至關重要:公開工作,有公開的路線圖或發布日期,這是一個很好的幫助。我每天都發布文章,我的博客讀者是我的問責伙伴。我不能跳過一天。 休息片刻。花時間在大自然中充電。你的深度工作時間是有限的,當你耗盡了深度工作時間時,不要進行淺顯工作。 你有多少次在努力工作時去Reddit、Hacker News或你最喜歡的新聞網站,甚至在生活中的每一個微小閒暇時刻都使用智能手機。 我經常這樣做!甚至更多時間在工作困難時使用智能手機。我們經常被這些網站和工具分散注意力,它們利用了對新聞和閃亮事物的自然傾向。 接受無聊意味著我們必須再次接受無聊。要進行深度工作,我們必須首先學會不去尋找容易和淺顯的分心。 一種做法是安排分心。比如安排1小時的網絡瀏覽時間,看Reddit、YouTube,無論何時你感覺到在該時段以外進行分心,都要抵抗。 做體力活動時進行深度工作是一個很好的時間。比如遛狗,或者只是散步。我記得曾讀到史蒂夫·賈伯斯以他的長時間散步而聞名。蘋果的大多數創新可能就是這樣發生的。我認為我最好的想法都是在遛狗3-4小時的時候產生的,我使用iPhone的語音記錄器來記錄我在思考時的任何想法,因為我回家後肯定會忘記。 社交媒體是最消耗精力的事情之一。你可以很容易地花幾個小時在Facebook或Twitter上,產生爭議,表達觀點,建立人脈,隨時掌握行業新聞和趨勢。 當然,這不是深度工作。這是淺顯工作,相反的。遠離社交媒體對我們來說肯定更好,但是出於某種原因,我們從未放棄它們,很多時候因為如果沒有它們,你就會與同行甚至朋友斷絕聯繫。這種事情滲透到現代世界中。 社交媒體本質上驅使我們定期檢查它,使其成為我們一天中的定期干擾。我使用應用程序像RescueTime來知道我在電腦上浪費了多少時間,而iOS設備允許你限制在社交媒體上的時間(這是一個很棒的功能!)。有些專業職業需要使用社交媒體,因為工作就是通過它們來進行的,情況有所不同。 如果我將社交媒體存在減少到最低,並完全專注於寫博客,我仍然可以成功,但由於在遙遠的工作和沒有全球網絡上的人脈,適度使用社交媒體對於知道未來要關注的事情非常有幫助,例如。

讀書癖

讀書癖是一個日本詞語,指的是「買書卻不讀,讓它們在家堆積,或者把書放在書架上等待日後閱讀」。 我經常做這種事情。 很久以前,我就開始有這個「愛好」了,但當時我還不知道有個詞可以形容它。 20年前,當我還在大學時,我發現只要連接到校園以太網(還沒有WiFi!),我們就可以獲得一個非常有趣的PDF圖書庫。 我花了下午的時間下載我覺得有趣的書到我的iBook中。 你永遠不知道什麼時候一本書會派上用場,而且當然我也沒有錢就隨便「買書,因為它們可能日後派上用場」。 如今,我喜歡收集實體書和電子書。雖然電子書的便利性很大,因為在你想閱讀時可以將其下載到Kindle或Apple Books,但我喜歡那種「物體感」。 我的書不多,但是我有一個很好的圖書館。它們大多是關於個人生產力和非虛構類的書籍。 很久以前我就發現,技術書籍很快就會過時。而且大部分時間它們充滿了你永遠不需要的信息。對於這些書籍,數字格式更好。 但對於那些永恆存在或可能持續幾十年的書籍,我的圖書館中有為它們留下的空間。 我很少從頭到尾地閱讀一本書。我可以說,我正在用眼睛看的書中,我只讀完了其中20%。 但我還繼續買新書。 我喜歡它們仍然可以教會我很多東西。如果我沒有從圖書館或亞馬遜購買這些書籍,我可能會忘記它們。有些書籍在願望清單上停留了幾個月甚至幾年,我才決定購買它們。而有些書則是一見鍾情,我一看見它們就會買。 買書本來就是好事情,只要我們還能購買讀書的時間 —— 亞瑟·叔本華 有時,當我不知道做什麼時,我就拿起一本書隨意翻閱幾頁。 因為我買的都是非虛構類書籍,所以我可以翻到書的任意頁面,都能從中獲得價值。 我們買書是因為我們相信我們在購買讀書的時間 —— 沃倫·齊芳 我很樂意知道有些書永遠不會被我讀到。 我有一本每個人都推薦的書,但我還沒看到第10頁。總有一天,我會看到的。