學習是以興趣為前提的,你要對你所要學的內容產生興趣,這樣你才會花心思去學習。這和是不是小白沒關系的,對于小白而言,在學習過程中就需要更努力,多花時間和心思沒有什么是學不會的。
自學方法:
1、作為一個初學者,你必須明確系統的學習方案,我建議一定有一個指導的人,全靠自己學,放棄的幾率非常大,在你對于web前端還沒有任何概念的時候,需要一個人領進門,之后就都靠自己鉆研,第一步就是確定web前端都需要哪些內容,并且在多少時間內學完,建議時間6個月保底。
2、視頻為主,書為輔。很多初學者在學習前端的時候非常喜歡去買書,但是最后的結果是什么?看來看去什么都不會寫,所以在這里給大家提醒,書可以看,但是是在建立于你已經對于某個知識點有了具體操作的執行后,在用書去鞏固概念,這樣更加利于你對于知識的理解。
3、對于學習技術來講,掌握一個學習方法是非常重要的,其實對于學習web前端來講,學習方法確實很多都是相通的,一旦學習方法不對,可能就會造成“方法不對,努力白費”。其實關于這方面還是很多的,我就簡單說個例子,有的人邊聽課邊跟著敲代碼,這樣就不對,聽課的時候就專心聽,做題的時候就專心做題,這都是過來人的經驗,一定要聽。根據每個人的不同,可能學習方法也會有所出路,找到適合你自己的學習法方法是學習的前提。
4、不建議自己一個人瞎學,在我了解學習編程的這些人來看,從零基礎開始學并且最后成功做這份工作的其實并沒有幾個,我覺得大部分原因就是因為他們都不了解web前端是干什么的,學什么的,就盲目的買書看,到處找視頻看,最后看著看著就放棄了,所以我建議初學者在沒有具體概念之前,還是找有經驗的人請教一下,聊過之后你就會知道web前端具體是干什么的,該怎么學,這是我個人的小建議,可以不采納。
自學路線:
第1階段:前端頁面重構(4周)
內容包含了:(PC端網站布局項目、HTML5+CSS3基礎項目、WebApp頁面布局項目)
第2階段:JavaScript高級程序設計(5周)
內容包含:(原生JavaScript交互功能開發項目、面向對象進階與ES5/ES6應用項目、JavaScript工具庫自主研發項目)
第3階段:PC端全棧項目開發(3周)
內容包含:(jQuery經典交互特效開發、HTTP協議、Ajax進階與PHP/JAVA開發項目、前端工程化與模塊化應用項目、PC端網站開發項目、PC端管理信息系統前端開發項目)
第4階段:移動端項目開發(6周)
內容包含:(Touch端項目、買粉絲場景項目、應用Angular+Ionic開發WebApp項目、應用Vue.js開發WebApp項目、應用React.js開發WebApp項目)
第5階段:混合(Hybrid,ReactNative)開發(1周)
內容包含:(買粉絲小程序開發、ReactNative、各類混合應用開發)
第6階段:NodeJS全棧開發(1周)
內容包括:(WebApp后端系統開發、一、NodeJS基礎與NodeJS核心模塊二、Express三、noSQL數據庫)
視頻教程:
網頁鏈接
網頁鏈接
如果你對于學習前端有任何不懂的可以隨時來問我,如果沒有比較好的教程,也可以問我要。
善用GitHub
GitHub是好的學習平臺
GitHub擁有非常多的開源項目,這些開源項目中的一些已經成為了IT行業的軟件基石,比如Linux內核項目。
如果你想學一門軟件開發的技術,比如學會用Python做一些數據分析,那GitHub就是這方最好的一個學習平臺。為什么這么說?
學習首先是需要找一個好的教程,在GitHub上最不缺的就是教程類的項目。以Python為例,通過在GitHub上搜索,可以很容易找到這個Awesome Python的項目,它收集了很多Python相關的教程、項目、庫等等。
你可以在這個項目中找到你想要的學習資料。而且因為它是一個Star數近十五萬的明星項目,被很多開發者認可,所以上面推薦的資料質量也是非常高的。
當然GitHub并不完全是英文的,中文資料也很多,不過我還是推薦盡可能使用英文的資料,如果你要走技術之路,英文是必須的。
找到教程學習后,接下來就是去開發一個真正的項目了。按正常的流程,我們需要在我們的電腦上配置復雜的軟件開發環境,就這一步已經讓很多人望而卻步了。
但是在GitHub上,你可以直接在網頁上編輯代碼,然后提交到GitHub上,這樣你就可以在任何一臺電腦上開發你的項目了。這個功能叫做GitHub Codespaces。
比如下面就是我在開發的一個開源項目,其是一個基于Python的項目,我可以在網頁上直接編輯代碼,然后提交到GitHub上。
在上圖紅框部分可以創建一個免費在線的開發環境,打開后就是一個網頁版的VSCode。也就是說GitHub給了你一個云端開發環境(一個擁有Root用戶權限的Linux系統,可以配置安裝任何軟件)!這個開發環境可以一直存儲在云端,在任何時候打開就可以繼續開發,保存在上面的文件也不會被刪除。
有時候當你只想閱讀其他人的代碼時,在GitHub網頁上按下.鍵就會自動打開一個在線VSCode的開發環境,相比網頁可以更方面的閱讀與搜索代碼。
GitHub是好的寫作平臺
基于Markdown的寫作一直是我推崇的,早在十年前,我在Wordpress上寫作,Wordpress提供了最簡單的網站搭建體驗,以至于全球有超過四成的網站都是用Wordpress搭建的,包括個人博客。
但Wordpress的搭建還是太麻煩了,雖然現在很多國內的云服務商都提供了一鍵搭建Wordpress的功能,但還是有很多限制,比如不是免費的,需要備案,需要維護服務器等。
在GitHub上寫作非常簡單,只需要一個GitHub賬號,然后在GitHub上創建一個倉庫,然后在倉庫里創建一個Markdown文件,就可以開始寫作了。寫作的內容就是Markdown格式的文本,GitHub會自動將Markdown轉換為HTML,然后在瀏覽器上顯示出來。
除了這種方式,還可以使用Cloudflare Pages,它可以將GitHub倉庫里的內容自動部署到Cloudflare的CDN上,這樣就可以使用自定義域名了。
如果你想要更好的寫作體驗,還可以使用這個vuepress-theme-hope的開源項目,它提供了非常強大的定制能力,使用方式卻很簡單,比如我用它在GitHub上搭建了一個文檔網站:買粉絲4chat開發手記。
在每個頁面的底部都有一個在GitHub上編輯此頁的按鈕,點擊后就可以直接在GitHub上修改這個頁面,修改后提交,GitHub會自動重新構建網站,然后你就可以在網站上看到修改后的內容了。
由于GitHub的倉庫會自動保存每次修訂的歷史記錄,如果出錯也可以回退到之前的版本,再也不擔心數據丟失的問題了。
GitHub是好的開發平臺
GitHub是最好的開發平臺。從上面的內容相信你可以看出來,GitHub圍繞軟件的搜索、閱讀與開發體驗方面做了很多改進。甚至用一個瀏覽器就可以完成軟件產品的開發、測試與部署。本文不會詳細的介紹GitHub的全部功能,但以下這些功能是我感覺非常值得嘗試的:
1、GitHub Codespaces:提供一個在線的云端IDE,可以在瀏覽器里直接編輯代碼,然后在云端編譯、運行、調試代碼,非常方便。
2、GitHub Copilot:提供一個在線的AI代碼自動補全功能,可以根據上下文對你的代碼自動補全,甚至包括寫博客!(這篇文章的一部分就是這個AI小助手自動撰寫的,你能看出來嗎?)
3、GitHub Actions:提供一個Pipeline as Code的CI/CD服務。比如可以實現,當博客文章更新時,自動發送通知給訂閱者,我的博客就實現了類似的功能,具體的實現可以看這個文件:.github/workflows/gh-pages.yml。
4、GitHub Packages:提供類似Docker Hub的軟件包管理功能。
最重要的是,這些功能很多都提供了免費的額度,足夠日常使用了,你要做的就是去創作,利用技術杠桿去實現自己的想法。
利用GitHub打造個人技術影響力
在GitHub上你可以找到很多很厲害的人,比如前端大佬antfu,Elixir的作者JoséValim,通過關注這些人的動態,了解最新的技術趨勢,不斷提高自己的技術能力。
GitHub也是一個很好的技術展示平臺,你可以通過創建自己的GitHub Profile來展示自己的技術棧,比如我的GitHub Profile。也可以用這個工具GitHub Profile README Generator來生成自己的GitHub Profile。
基于GitHub的生態
GitHub的生態系統非常龐大,有很多SaaS服務可以與其集成,從而提供完美的開發體驗,比如:
1、SSO:很多技術網站都提供了GitHub的SSO集成,尤其是和開發者SaaS服務相關的網站,如果要使用這些服務,則必須要有一個GitHub賬號。
2、Cloudflare:全球最流行的CDN,和GitHub集成后,Cloudflare Pages可以實現自動部署,當代碼push到GitHub后,Cloudflare會自動將網站發布到Cloudflare的全球網絡節點中。
3、Vercel:和Cloudflare Pages一樣,集成GitHub后,可以自動部署網站到Vercel的CDN網絡中。我的一些小工具就是部署到Vercel上的。
4、Railway:提供了后端服務包括數據庫的托管,集成GitHub后,可以自動部署應用到Railway的服務器上。
這些SaaS服務同樣都提供了一些免費額度,輕度使用,可以免費做很多小項目。
GitHub Next
GitHub Next正在探索一些能影響軟件開發未來的方向,目前有幾個方向挺有意思的:
1、AI:或者說深度學習模型,正在逐漸的改變世界,比如GitHub Copilot正是基于深度學習模型來實現代碼自動補全的功能。未來基于GitHub Copilot的代碼重構、寫自動化測試、與開發者結對編程也不是不可能的事情,當然讓AI幫我們寫文章,或者合寫文章也是一件自然而然的事情。
2、語音編程:如果能通過自然語言與GitHub Copilot溝通,那編程將會變成搭積木一樣的簡單,一些基本的功能就可以通過語音來實現,而不需要寫代碼。這事想想就覺得不可思議,甚至有種托尼·斯塔克與賈維斯對話去制造鋼鐵俠戰甲的感覺。
3、協作:由于疫情的出現,遠程工作正變得越來越流行(或者說需要),