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

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

新聞 前端
如果你看到這篇文章,恭喜你!不論是初入編程領(lǐng)域的小白,還是已經(jīng)在工作幾年的老手,這篇文章都將對你有很大的幫助。建議看到最后。相信我!一定會有收貨。

 我是Guide哥,一Java后端開發(fā),半個全棧,自由的少年。

如果你看到這篇文章,恭喜你!不論是初入編程領(lǐng)域的小白,還是已經(jīng)在工作幾年的老手,這篇文章都將對你有很大的幫助。建議看到最后。相信我!一定會有收貨。

這篇文章我會試著給你帶來一個更加不一樣的編程能力提高實戰(zhàn)指南。如果你覺得這篇文章對你有用的話,也不要白嫖好吧!點個在看或者贊就是對我最大的鼓勵。歡迎轉(zhuǎn)發(fā)讓更多人看到這篇文章,一起變強(qiáng)!

先來說一下自己的情況!我從小學(xué)就開始接觸電腦,不過到了大學(xué)之后才接觸編程,整個大一都很迷茫,編程很少,也不知道如何提高自己的編程能力。大二的時候,自己加入了學(xué)校的一個技術(shù)組織,自此之后,便真正開啟了自己瘋狂的大學(xué)自學(xué)編程之路。

自學(xué)編程路上,Github 絕對對我?guī)椭畲蟆?我在大二就開始接觸 Github 了,當(dāng)時就覺得上面有太多不錯的學(xué)習(xí)資源了。到了大三下學(xué)期,自己就想著說要不也嘗試著做一下開源唄!然后,我就從比較好入手的 Java 學(xué)習(xí)和面試指南入手。 到目前未知,我的所有的開源項目累計接近 90k star,并且收獲了 4.6k 的關(guān)注。

說到 Github 其實也挺慚愧的!因為我的大部分項目都沒有提供英文版本。實際上,如果你要做開源的話,本著開源精神,最好能有一份英文翻譯版。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

好的!下面我們就開始正文!想要自己編程變得更強(qiáng)的小伙伴記得多記筆記。

1. 選擇一個合適的電腦

學(xué)習(xí)編程前至少要有一個稍微適合一點的電腦吧!

關(guān)于電腦選擇,我覺得不要糾結(jié)是買 Mac 還是 Windows。作為一個使用了 Windows 開發(fā) 4 年,Mac 開發(fā)一年的人客觀地說,兩者對于編程效率的影響沒有你想的那么大。特別是在你初學(xué)編程的階段,是完全沒太大區(qū)別的。

Mac 的性價比更低,一臺合格的 Mac 開發(fā)本 1 萬 2 起步。雖然它確實好一些,但是選擇電腦的時候還是要根據(jù)自己實際經(jīng)濟(jì)情況來決定。

另外,一定不要選擇內(nèi)存低于 8g 的電腦,有條件的話最好能 16g。

2. 六個黃金原則

很多人可能會覺得說,我們學(xué)習(xí)編程,首先是要找一門編程語言好好開始學(xué),比如我在上大學(xué)的時候最開始接觸的是 C 語言。

我覺得非也!就我自己作為一個從大學(xué)自學(xué)編程一路一路踩坑的過來人來說,我覺得學(xué)習(xí)編程第一步應(yīng)該是要搞清楚學(xué)習(xí)編程有哪些必備的網(wǎng)站?我們是如何查資料的?我們是如何解決問題的?國內(nèi)外有哪些技術(shù)社區(qū)比較好?......

初次之外,你還要搞明白學(xué)習(xí)編程不是參加應(yīng)試考試。

2.1. 了解常見的學(xué)習(xí)編程網(wǎng)站

了解學(xué)習(xí)編程有哪些必備的網(wǎng)站之后,你才能更好地進(jìn)行自學(xué)。

一般情況下,但凡是初學(xué)編程的同學(xué),往往都需要課后進(jìn)行持續(xù)學(xué)習(xí)的。一是因為你可能剛學(xué)編程,老師教的東西你聽不明白。二是因為程序員這個行業(yè)本身就需要不斷學(xué)習(xí)。三是因為大學(xué)里面教的東西往往和社會實際需要脫節(jié),只有自學(xué)才可以讓你技術(shù)和社會不脫節(jié)。

推薦幾個我常用的學(xué)習(xí)編程的網(wǎng)站:

a.中國大學(xué) Mooc

上面有很多名校的課程和國家精品課程比較適合我們夯實編程基礎(chǔ)。比如下圖是南京大學(xué)的一門關(guān)于軟件工程的大學(xué)選修課。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

b.慕課網(wǎng)

上面有很多比較適合入門的免費課程。另外,如果你需要實戰(zhàn)項目視頻資源的話,也可以在慕課網(wǎng)找到(慕課網(wǎng)打錢!?。。?。

c.嗶哩嗶哩

是的,你沒看錯!看 B 站也能學(xué)習(xí)!B 站上面有很多優(yōu)秀的學(xué)習(xí)資源以及優(yōu)秀的 UP 主比如 Guide 哥。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

d.LeetCode

國內(nèi)的公司慢慢開始向國外的面試形式靠攏,手撕算法已經(jīng)是很多大廠的標(biāo)配了,不論是社招還是校招。LeetCode 這個網(wǎng)站的話,是我們平時刷題必備的一個網(wǎng)站。

在你初學(xué)編程的階段,也可以經(jīng)常去上面找一些簡單難度的算法題來做。

e.極客時間

主打付費學(xué)習(xí)的一個付費學(xué)習(xí)社區(qū)(極客時間私聊我打錢哈?。2贿^課程的質(zhì)量大部分都挺高的,我自己也看了里面很多的課程,并且很多課程都是 Java 領(lǐng)域大佬級別的人物講的。

2.2. 拓展視野,好的技術(shù)社區(qū)是你成長的助力器

了解了國內(nèi)外有哪些比較好的技術(shù)社區(qū)之后,你才有機(jī)會認(rèn)識到更多更優(yōu)秀的程序員,看到更多對你有幫助的東西。而不是說,整個人的思想都局限在學(xué)校。這點是很重要很重要的! 比較好的技術(shù)社區(qū)的話有:Github(穩(wěn)居第一位好吧!開源項目交流社區(qū))、Stackoverflow(一個程序設(shè)計領(lǐng)域的問答網(wǎng)站,網(wǎng)站允許注冊用戶提出或回答問題。和知乎很像,重大的一點不同是 Stack Overflow 可以對問題進(jìn)行打分)、v2ex、掘金csdn、segmentfault 、知乎......。

3.學(xué)會使用 Googgle 搜索,學(xué)習(xí)和解決問題效率提升一個檔次

知道了要使用 Google 搜索之后,你學(xué)習(xí)編程的和解決的問題可以提升一個檔次。如果你實在是無法越過那道墻的話,可以試試必應(yīng)搜索。

2.3. 不要把學(xué)習(xí)編程還當(dāng)做學(xué)生時代的應(yīng)試考試來看

你或許也發(fā)現(xiàn)了。很多成績特別特別優(yōu)異的同學(xué),他們的編程能力其實并不好。在大學(xué)的時候,那些編程能力最強(qiáng)的往往是那些成績比較一般的。

為什么會這樣呢?

我覺得主要是一個思維的轉(zhuǎn)變問題。很多人學(xué)習(xí)編程的時候,總是想著我要把這個 API 記下來,把這個庫的用法記下來。這樣學(xué)習(xí),導(dǎo)致的結(jié)果只有一個那就是你會很難受!因為,這些根本不是要死記硬背的東西啊!真還當(dāng)這是上課考試??!你要從如何用你學(xué)的東西來解決實際編程問題出發(fā),站在做一個實際的項目的角度來學(xué)習(xí)。

拿我自己來說:我平時也會寫 Python,基本就是自己看著官方文檔或者一些書籍的教的語法跟著寫。如果哪個地方不會了,我就去查一下。

2.4. 不要害怕閱讀英文文檔

大部分最新的資料/技術(shù)都是國外那邊的,基本上大部分都是英文的。據(jù)說 90% 以上的程序員都不習(xí)慣直接看英文文檔,都會選擇看別人的翻譯/總結(jié)或者書籍。但是,書籍或者別人的翻譯/總結(jié)都會比較慢,而且難免會有個人主觀因素影響翻譯效果。

這個時候很多人就會說了我的英語不好??!完全看不懂英文文檔。

別擔(dān)心!有道翻譯和谷歌翻譯就是你最好的老師。如果是使用 Chrome 瀏覽器的話,我還推薦你安裝一個 Mate Translate 插件。 這個插件對于網(wǎng)頁閱讀英文文檔太友好了,可以一站式翻譯您的網(wǎng)頁以及標(biāo)記的文字段落。使用效果如下圖所示:

2.5. 多看優(yōu)秀的代碼

不看優(yōu)秀的代碼,你寫的代碼質(zhì)量很難提高。

雖然要多看優(yōu)秀的代碼,但是也不要被 “最佳實踐” 所束縛,很多時候?qū)嶋H是根本不存在適用于任何場景的“最佳實踐”,沒有銀彈。

有哪些優(yōu)秀的代碼值得學(xué)習(xí)呢?

拿 Java 來說,不知道閱讀什么源碼的話,可以先從 JDK 的幾個常用集合看起。另外,我比較推薦看 Dubbo 的,因為感覺會稍微相對容易一點,模塊劃分清晰,注釋也比較詳細(xì)。搞清楚了 RPC 的基本的原理,知道如何自己實現(xiàn)一個 RPC 框架之后,看起來就沒那么吃力了。

另外,隨便一個框架的源碼都 10w+行了,都看一遍是不可能的。要挑選比較重要的地方看,就比如看 Spring 源碼的話你一定要看 IoC 和 AOP,要知道一個 Spring Bean 是如何一步一步被創(chuàng)建出來的。你要看 Spring Boot 源碼的話就要知道 Spring Boot 的啟動機(jī)制是啥,Spring Boot 是如何實現(xiàn)自動配置的。

2.6. 多讀好書

一定要多看好書!像《重構(gòu)》、《代碼大全》、《代碼整潔之道》這類書是程序員標(biāo)配、必讀的書籍。

看書相比于零散的看一些文章學(xué)習(xí)更加系統(tǒng)。當(dāng)然,網(wǎng)上也有很多比較系統(tǒng)的學(xué)習(xí)資源,比如你要學(xué)習(xí) Java 的話,可以看我開源的 JavaGuide (「Java 學(xué)習(xí)+面試指南」一份涵蓋大部分 Java 程序員所需要掌握的核心知識)。

3. 選擇一門適合的編程語言入門

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

初學(xué)編程第一步就是選擇一門適合自己的編程語言入門。

選擇的時候,無非是要從下面幾點考慮:

  1. 難易程度:一般建議初學(xué)編程應(yīng)該選擇一門稍微簡單點的比如 Python、 C、Java。
  2. 發(fā)展前景 : 確定你要學(xué)習(xí)的編程語言發(fā)展前景是不錯。就比如相比于 PHP ,我肯定更推薦你學(xué)習(xí) Java。
  3. 市場需求 : 有了市場需求之后,工作崗位才會多,找工作也會相對容易。
  4. 薪資水平 : 薪資水平實際和編程語言不是那么相關(guān),和個人實際能力相關(guān)。不過,相同能力下某些編程語言的薪資確實要稍高一些。

下面這份數(shù)據(jù)來自 TIOBE 官網(wǎng)統(tǒng)計的 2020 年 7 月份編程語言排行榜,也可以作為你的參考。從統(tǒng)計結(jié)果可以看出,C、Java、Python 還是很強(qiáng)勢的,這弟兄仨基本常年就是前三(Java 和 C 經(jīng)常爭第一)。另外,R 語言的進(jìn)步也很快,同樣值得關(guān)注。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

再來看一下 PYPL 指數(shù)。 這份指數(shù)數(shù)據(jù)主要描述的編程語言的受歡迎程度,具體受歡迎程度是由分析 Google Trends 得出。從統(tǒng)計結(jié)果可以看出,Python、Java、Javascript 三者穩(wěn)居前三。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

再來看一下編程語言的平均薪資水平和使用年限。這份數(shù)據(jù)來自于 Stack Overflow 2019 Survey 。我們需要格外關(guān)注的是 Go 語言。Go 語言背靠谷歌,薪資比較高也不奇怪。并且,國內(nèi)現(xiàn)在很多大公司比如騰訊使用 Go 進(jìn)行項目開發(fā)的越來越多了。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

相信你看了上面這么多關(guān)于編程語言的介紹之后,你一定可以選擇一門適合自己的編程語言進(jìn)行學(xué)習(xí)和深入。

4. 不要被編程語言所束縛

編程語言只是工具。我們的確需要有一門比較擅長的編程語言,但是,不是任何時候,我們做任何東西都要使用這一門編程語言來做。比如 Java 適合網(wǎng)站開發(fā)而 Python 更適合做數(shù)據(jù)分析。選擇合適的語言做合適的事情很重要。 再比如你想要做全棧開發(fā)的話,還可能需要掌握多門編程語言。拿我自己來說,也算是半個全棧開發(fā),我主要是以 Java 做后端開發(fā),Javascript 來進(jìn)行前端開發(fā)。

5. 多實踐

我見過很多人學(xué)習(xí)編程一年多了,自己敲的代碼可能還不到 1000 行。然后, 你讓他做用自己學(xué)的編程知識做個什么東西,他就蒙了。

學(xué)習(xí)編程以及提高編程能力最直接的辦法就是實踐!不斷實踐!特別是在編程初期的時候,積累代碼量格外重要。

就比如你學(xué)習(xí) Java 后臺開發(fā)的時候,能不能通過自己學(xué)過的知識獨立做個網(wǎng)站呢?再比如你搞懂了某個框架原理之后,能不能模仿著去寫一個簡單的呢?

我們實際項目開發(fā)中是比較忌諱造輪子的,但是,實際學(xué)習(xí)過程中造輪子絕對是最自己百利而無一害的! 就比如我之前搞懂了 RPC 的原理之后,就自己動手寫了一個簡單的 RPC 框架。我的 RPC 框架肯定是無法和 Dubbo 這類已經(jīng)這么成熟的相提并論。但是,在自己去寫 RPC 框架的時候,更加加深了自己對于 RPC 框架的認(rèn)識。實現(xiàn)的過程中,遇到了很多問題,解決問題的過程中也提高了自己的編程能力??偠灾?,造輪子是一種特別能夠提高自己系統(tǒng)編程能力的手段。

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

多實踐不是說拿到問題就直接開始寫代碼、不是不學(xué)習(xí)理論知識。多問自己 why ,而不是 what。 就比如技術(shù)選型的時候,相同的功能可能有不同的解決方案,你是人云亦云地不顧項目實際需要去選擇,還是自己經(jīng)過詳細(xì)的對比呢?想當(dāng)然肯定是根據(jù)自己項目的實際需要,然后經(jīng)過各種對比之后選擇!

“ talk is cheap, show me code”這句話雖好,但是請不要忘記思考!換句話說就是:多寫代碼雖好,可不要貪杯哦!

6. 多修煉內(nèi)功

不要沉迷框架,多花點時間去修煉內(nèi)功——底層技術(shù)。很多人覺得在學(xué)校里面學(xué)的數(shù)據(jù)結(jié)構(gòu)和算法、計算機(jī)組成原理、操作系統(tǒng)這些東西工作之后根本用不到。然后,就想當(dāng)然地覺得這些東西不重要。

如果你暫時覺得這些東西沒有用,很可能是現(xiàn)在學(xué)習(xí)某門技術(shù)只是浮于表面。舉個例子:如果你要看懂框架或者某個類庫的源碼,那數(shù)據(jù)結(jié)構(gòu)是必須要搞懂的吧!如果你要培養(yǎng)和提高自己解決問題的能力,那算法肯定是必須吧!

為什么要修煉內(nèi)功?

  1. 技術(shù)更新?lián)Q代快 :我們前幾年可能還在用 Spring 基于傳統(tǒng)的 XML 開發(fā),現(xiàn)在幾乎大家都會用 Spring Boot 這個開發(fā)利器來提升開發(fā)速度,再比如幾年前我們使用消息隊列可能還在用 ActiveMQ,到今天幾乎都沒有人用它了,現(xiàn)在比較常用的就是 Rocket MQ、Kafka 。技術(shù)更新?lián)Q代這么快的今天,你是無法把每一個框架/工具都學(xué)習(xí)一邊的,底層技術(shù)就是你快速上手他們的瑞士軍刀。
  2. 懂得底層技術(shù)的人更有競爭力 : 現(xiàn)在的程序員這么多,你如何能和別人拉開差距?單純就靠使用框架的能力么?這些隨便從培訓(xùn)班抽一個人可能都會做的工作無法成為你的核心競爭力。

拿 Java 舉例子,有哪些比較底層的技術(shù)呢?

  1. 算法和數(shù)據(jù)結(jié)構(gòu)、計算機(jī)網(wǎng)絡(luò)和操作系統(tǒng)(適用于任何編程語言的底層技術(shù));
  2. 框架的源碼;
  3. Java 程序運行的基礎(chǔ)—JVM;
  4. ......

7. 多總結(jié)、多分享、多輸出

總結(jié)知識不是把自己學(xué)到的東西按照老師的說法完完整整的整理下來,而是結(jié)合自己的理解和補(bǔ)充整理下來。

將自己學(xué)到的東西分享出來,一方面能檢驗自己是否掌握,另一方面還能加深自己的理解和認(rèn)識。

分享和輸出的方式有很多種,給大家推薦幾種最常見,同時也是我最常用的學(xué)習(xí)方式。

7.1. 寫博客

可以養(yǎng)成寫博客輸出的習(xí)慣。我在之前有寫過一篇文章來說為什么要寫博客:程序員寫博客很重要嗎? 。

簡單來說,主要有下面 幾點原因:

  1. 對知識有更加深的認(rèn)識,讓自己的知識體系更加完整
  2. 督促/倒逼自己學(xué)習(xí)
  3. 可能會帶來不錯的經(jīng)濟(jì)收入
  4. 提升個人影響力
  5. 擁有更多機(jī)會
  6. 好的博客會成為面試加分項

這個時候,你肯定就糾結(jié)了: 我該在哪里寫博客呢?

作為一個從大二開始就堅持寫博客,期間折騰了無數(shù)次個人網(wǎng)站的我來說: 我推薦先找一個不錯的博客平臺比如掘金,然后在博客平臺上寫博客,后面可以自己搭建自己的博客網(wǎng)站。

這個時候,你肯定又要糾結(jié)了:我該怎么搭建自己的博客呢?

Emm...這部分要格外好好看,適當(dāng)記筆記哈,小伙伴們!給大家推薦幾個最好也是最常見的搭建博客網(wǎng)站的方法,想要免費高速個人博客網(wǎng)站的小伙伴們不要錯過。

搭建難度 是否需要服務(wù)器 易用性 SEO Hexo 易 非必須 中 一般 Vuepress 易 非必須 易 友好 Docsify 易 非必須 易 不友好 Wordpress 中 必須 易 友好 Halo 中 必須 易 一般

綜上,我還是比較推薦 Vuepress 和 Docsify 的。 關(guān)于如何使用 Docsify 搭建一個自己的博客網(wǎng)站,我還寫過一篇文章手把手教你搭建:《手把手教你搭建一個文檔類型的網(wǎng)站!免費高速!》 。而且,我還提供了配套的視頻教程。就很貼心好吧!記得給 Guide 哥點個贊 !

有了自己的網(wǎng)站后,你可以將自己的文章整理成一個系列,然后部署在自己的網(wǎng)站上,自己想看的時候就可以隨時查閱。你也可以將文章同步到其他博客平臺來擴(kuò)大自己的影響力。

我整理 7 個常見的技術(shù)平臺供大家參考:

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

7.2. 項目組內(nèi)分享

一般公司都會有內(nèi)部的技術(shù)講座以及博客平臺。

你可以在公司或者項目組內(nèi)部組織技術(shù)講座,這樣不僅可以增加自己的存在感,還能提高自己的表達(dá)能力。

你也可以在公司內(nèi)部的博客平臺分享自己寫的博客,這樣你寫的東西就能被更多人看到了!

7.3. 做開源項目

你可以在 Github 分享很多東西,你的學(xué)習(xí)筆記、自己做的實戰(zhàn)項目、自己造的輪子......(資源類的不太推薦,太容易侵權(quán))。雖然,現(xiàn)在 Github 被很多人單純玩成了引流工具。但是,整體來說 Github 整體技術(shù)環(huán)境和氛圍還是很不錯的!

編程小白用了3年在 Github 斬獲 90k Star! 聊聊學(xué)習(xí)編程的姿勢

另外,最好的話是要給項目弄一個英文版本,項目代碼中的注釋最好也要是英文的。畢竟是開源,最好是能準(zhǔn)守開源精神使用世界通用語言(這一點我自己也沒做好,反思?。?/p>

總結(jié)

這篇文章,我站在自己的這些年自學(xué)的角度,掏心窩子地說了很多話??戳诉@篇文章之后,哪怕你只學(xué)會了要使用 Google 搜索我都覺得開心,也希望這篇文章能夠影響到更多人。

另外,文中講了很多編程領(lǐng)域不可爭的事實或者說正確姿勢比如:不要以學(xué)生時代應(yīng)試考試的方式學(xué)習(xí)編程、多實踐、造輪子是一種特別能夠提高自己系統(tǒng)編程能力的手段等等。說了這么多,如果你沒有將這些學(xué)習(xí)編程的正確姿勢用到自己平時學(xué)習(xí)中的話,這篇文章對你的幫助可能非常有限。

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2018-01-10 08:45:57

編程語言PythonKotlin

2021-08-10 19:15:17

語言編程應(yīng)用

2022-08-02 20:21:42

開源項目工具

2015-05-07 10:10:29

GitHub編程語言

2015-05-04 10:05:11

編程語言GitHub流行語言

2021-06-02 09:01:19

JavaScript 前端異步編程

2023-04-02 17:53:10

多線程編程自測

2021-03-07 09:01:05

編程語言開發(fā)

2022-11-02 09:00:02

編程語言拓荒者

2013-04-15 13:53:27

編程程序員

2021-05-28 11:47:43

Linux運維Linux系統(tǒng)

2020-11-26 10:04:04

Java 編程開發(fā)

2022-02-08 08:12:51

無鎖編程設(shè)計

2023-07-03 09:59:00

并發(fā)編程并發(fā)容器

2022-12-11 20:09:50

網(wǎng)絡(luò)編程通信

2023-01-29 09:06:24

微服務(wù)劃分關(guān)聯(lián)

2015-08-21 09:46:44

GitHub編程語言

2024-02-23 19:07:29

編程語言開發(fā)

2023-03-30 19:17:54

語言編程

2022-03-09 09:43:20

并發(fā)編程Java
點贊
收藏

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