大學四年,我是如何學習編程的?

大學四年,我專業是計算機專業,
但大家也知道,學校的課程和專業不是那麼互相連貫,並且無法形成體系。
大學裏有基礎的Java, 計算機原理,互聯網技術,JSP, C語言等課程。
但知識點完全不夠成一種進階關係,也沒大的項目可以用來實踐。

今天我分享下,我大學走過的路,如何在學校裏免費學技術,沉澱一些編程技能。

編程書籍

這是我大學看過的書籍。

設計模式

這裏簡單介紹一下: 設計模式是軟件設計中常見問題的一般可重複解決方案, 可以通過提供經過驗證的開發範例來加快開發過程

Head First 設計模式

image

Head First 設計模式 ,一本入門書籍,具有相當高的可讀性,從簡入深!
共有14章,每章都介紹了幾個設計模式,完整地涵蓋了四人組版本全部23個設計模式

設計模式之禪(第2版)

image

設計模式之禪(第2版) 一本入門的書籍,它用簡潔的方式來告訴你什麼是設計模式。
極具趣味,容易理解,但講解又極爲嚴謹和透徹。深刻解讀6大設計原則和28種設計模式的準確定義、應用方法和最佳實踐。

Objective-C編程之道:iOS設計模式解析

image

Objective-C編程之道:iOS設計模式解析 簡單地講,本書結構清晰,易於理解。物超所值。優化Objective-C編程實踐的必修寶典。

大話設計模式

image.gif

大話設計模式 通過老鳥與菜鳥之間的對話讓我們瞭解到設計模式更多的含義與其應該出現的方式。總結的23個設計模式。例子偏多,需要有一些編程基礎。

tip: 大話系列叢書,在我的網盤中剛剛更新,有興趣的可以到網盤下載.

Design_patterns

design_patterns 中包含了許多設計模式的簡介,大家可以進行一個參考,也有很多外鏈接供大家學習,免費的!

其實關於設計模式還有很多要說的東西,不止是書中提到的,我們在平時編碼的過程中,也要應用到設計模式,不僅可以提升開發效率,還可以給我們一個完善的編程思想體系。

我總想多囉嗦幾句,設計模式 是很重要的一部分,使用好它可以令你的項目結構清晰,代碼更加流程化,減少溝通成本。有很多人並不會把它當回事,我相信,通過以上基本書你們可以大概的瞭解設計模式的魔力!

基礎能力

學習編程就如同建一個樓房,你需要將基礎只是打穩、打牢靠,這樣才能一往無前,好的地基是成長的根本,我們需要穩紮穩打,一步一個腳印!

關於修養

程序員的自我修養

image

程序員的自我修養 很好的一本基礎書,包括了非常多的基礎理論、原理知識,可以大大的提升你對硬件-軟件的認識。
這本書描述了一個應用程序在編譯、鏈接和運行時刻所發生的各種事項。用簡單的圖片講解複雜的理論知識,非常好看,首推!

網絡是怎樣連接的

網絡是怎樣連接的 從瀏覽器輸入開始一步步探索,如何通過DNS分配IP地址,TCP/IP工作原理,網卡驅動,防火牆,緩存服務器,以圖配文,講解了網絡的全貌。

程序是怎樣跑起來的

image.gif

程序是怎樣跑起來的 從計算機內部的結構開始一步步的深入講解二進制、內存、數據壓縮、操作系統、彙編語言、C語言基礎、操作系統與程序之間的關係等。讓我們瞭解到了打開程序背後發生的事兒~

計算機是怎樣跑起來的

image.gif

計算機是怎樣跑起來的 通過探究計算機的本質,提升工程師對計算機的興趣,在面對複雜的最新技術時,能夠迅速掌握其要點並靈活運用。

這是一個系列的書籍,看名字大概就可以知道,它們是基於最基礎的理論與實踐來告訴你計算機、手機、智能硬件的原理,從硬件到軟件,都解釋的非常清楚,圖文並茂,強烈推薦!👍

TCP/IP詳解卷1:協議

TCP/IP詳解卷1:協議 如果你對什麼是三次揮手,四次握手,爲什麼要出現這種方案,TCP/IP到底意味着什麼,看它你就會了解你需要的東西。

image.gif

現代操作系統(原書第3版)

image.gif

現代操作系統(原書第3版) 涉及Windows Vista以及最新的Linux/UNIX操作系統,列舉出了很多例子,在大學的課程中也有可能涉及到,像看一部小說一樣看完整本書!

深入理解計算機系統(原書第3版)

image.gif

深入理解計算機系統(原書第3版) 偏向底層的知識,適合一些篇中高級的程序員觀看,可以瞭解很多你不曾想到的知識,還有大量的源碼分析參考,👍

挑戰編程技能 : 57道程序員功力測試題

image

挑戰編程技能 : 57道程序員功力測試題 在面對問題的時候你會如何解決?可以給基礎程序員做一些能力的提升,而且趣味性很高。

關於機器學習

Python編程快速上手:讓繁瑣工作自動化

image

Python編程快速上手:讓繁瑣工作自動化 Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言,這本書不僅包括了python基礎知識,還有很多例子作爲提升,很好的一本python入門書。

Python網絡編程(第3版)

image.gif

Python網絡編程(第3版) 全面介紹Python3中最新提供的SSL支持,異步I/O循環的編寫,用Flask框架在Python代碼中配置URL,跨站腳本以及跨站請求僞造攻擊網站的原理及保護方法,等等。

Python網絡數據採集

image.gif

Python網絡數據採集 第一部分重點介紹網絡數據採集的基本原理:如何用Python從網絡服務器請求信息,如何對服務器的響應進行基本處理,以及如何以自動化手段與網站進行交互。第二部分介紹如何用網絡爬蟲測試網站,自動化處理,以及如何通過更多的方式接入網絡。

機器學習

image.gif

機器學習 作爲人工智能一個重要的分支,在內容上儘可能涵蓋機器學習基礎知識的各方面。這本書是一個入門書,但 本書更適合大學三年級以上的理工科本科生和研究生, 以及具有類似背景的對機器學 習感興趣的人士

關於JavaScript

JavaScript高級程序設計(第3版)

image.gif

JavaScript高級程序設計(第3版) 本書是JavaScript 超級暢銷書的最新版。ECMAScript 5 和HTML5 在標準之爭中雙雙勝出,使大量專有實現和客戶端擴展正式進入規範,同時也爲JavaScript 增添了很多適應未來發展的新特性。

你不知道的JavaScript(上卷)

image.gif

你不知道的JavaScript(上卷) “你不知道的JavaScript”系列就是要讓不求甚解的JavaScript開發者迎難而上,深入語言內部,弄清楚JavaScript每一個零部件的用途。本書介紹了該系列的兩個主題:“作用域和閉包”以及“this和對象原型”。掌握了這些知識之後,無論什麼技術、框架和流行詞語,你都能輕鬆理解。

tip:作爲系列書我就不一一列舉,在我的網盤中都可以下載到

JavaScript語言精粹

image

JavaScript語言精粹 本書通過對JavaScript語言的分析,甄別出好的和壞的特性,從而提取出相對這門語言的整體而言具有更好的可靠性、可讀性和可維護性的JavaScript的子集,以便你能用它創建真正可擴展的和高效的代碼。

深入淺出JavaScript

image

深入淺出JavaScript 《深入淺出JavaScript(影印版)》帶你遊歷令人興奮的交互式網頁創建過程。你將從《深入淺出JavaScript(影印版)》學到什麼?這麼說你準備從寫HTML和CSS的靜態網頁躍進到編寫動態網絡應用程序腳本了?這裏就是起點。

編程網站

TopCoder

https://www.topcoder.com/challenges

image

TopCoder是最開始的在線競技編程平臺之一。它提供了很多的算法挑戰,用戶可以使用平臺上的編輯器直接完成挑戰。

每個月該平臺會提供幾次它們最受歡迎的Single Round Matches,比賽要求用戶在特定的時間內與他人競爭,看誰解決問題的速度更快。

TopCoder上排名靠前的用戶都是很有競爭力的程序員,他們會定期參加各種比賽。這些用戶還可以通過名稱爲ALGORITHMS WEEKLY BY PETR MITRICHEV的博客平臺去發表一些關於編程競賽、算法、數學等方面的文章。

Coderbyte

https://coderbyte.com/

image

Coderbyte提供了200多項編碼挑戰,挑戰者可以使用10門編程語言中的任意一種直接在線解決(看看這個例子)。這些挑戰的難易程度各不相同。

另外Coderbyte還提供了很多的算法教程,入門視頻和麪試準備的課程。與HackerRank和其它網站不同,用戶可以查看其他挑戰者提供的解決方案,而不是Coderbyte官方發佈的。

Project Euler

https://projecteuler.net/

image

Project Euler提供了很多關於計算機科學和數學領域的挑戰。挑戰內容大致都是要求挑戰者編寫一段小程序從而爲某個數學公式或方程式提供解決方案。

由於不支持直接在編輯器上編程,因此需要用戶在自己的電腦上先寫好解決方案,然後在網站上再提供出來。

HackerRank

https://www.hackerrank.com/domains

image

HackerRank提供了很多不同領域的挑戰,比如算法、數學、SQL、函數式編程、人工智能等等。挑戰者可以直接在線完成所有挑戰(看看這個例子)。

HackerRank針對每一項挑戰專門成立了討論和領導委員會,而大多數挑戰來自於一篇社論,它解釋了更多的挑戰,以及如何接近它提出解決方案。

除了這篇社論,你目前還不能看到其他用戶在HackerRank上的解決方案。

HackerRank還支持用戶提交應用程序,而且通過解決公司發起的編碼挑戰,挑戰者還有機會獲得一份工作。

CodeChef

https://www.codechef.com/

image

CodeChef是一家位於印度的編程競賽網站,該網站提供了數百種挑戰。

挑戰者可以通過在線編輯器進行編程,而且還可以根據自身的編程能力去查看已經分類好的適合於自己的挑戰題目(請查看本示例)。

CodeChef有一個龐大的編程社區,爲論壇提供幫助,負責編寫教程,而且也會參加CodeChef的編碼競賽。

CodeEval

https://www.codeeval.com/

image

CodeEval類似於HackerRank,它還提供了很多公司發起的挑戰,如果能很好地完成這些挑戰,你還有機會得到一份工作。

公司可以創建挑戰和舉辦競爭比賽來招募新的工作人員。挑戰者可以在這裏查看當前的挑戰列表。

Codewars

https://www.codewars.com/

image

Codewars提供了很多的編碼挑戰,這些挑戰都是由他們自己社區提交和編輯的。

挑戰者可以用幾種語言在編輯器中直接在線完成挑戰。用戶還可以查看針對每個挑戰的討論以及其他用戶的解決方案。

LeetCode

https://leetcode.com/

image

LeetCode是一個很受歡迎的在線判題系統,它提供了190道挑戰題目,這些題目可以幫助挑戰者爲面試做好技術準備。

挑戰者可以用9種編程語言直接在線完成挑戰。雖然該網站不支持查看其他用戶的解決方案,但用戶可以爲自己的解決方案提供統計數據,例如與其他用戶相比,代碼運行速度如何。

他們也有一個專門爲面試準備的Mock Interview部分,這是由他們自己主持的編碼競賽,其中有一些文章幫助用戶更好地瞭解某些問題。

SPOJ

http://www.spoj.com/

image.gif

Sphere Online Judge(SPOJ)是一個在線判題系統,提供20000多個編程挑戰。

挑戰者可以直接通過在線編輯器中提交代碼。SPOJ還舉辦了自己的競賽,並有一個區域專門供用戶討論編碼挑戰。他們目前沒有像其他網站那樣提供任何官方解決方案或社論。

CodinGame

https://www.codingame.com/

image

CodinGame與其他網站有點不同,因爲它不是簡單地在編輯器中去完成編碼挑戰,而是讓挑戰者真正遊戲的。

面試題和電子書

image.png

電子書:

image

image

DOC文檔

image

視頻:

image

面試題

image

**由於我當時整理的太多了 ,這裏只貼部分

博客網站

CSDN
泡在上的日子
開源中國社區
github: https://github.com/
stackoverflow: https://stackoverflow.com/
谷歌博客:https://developers.google.cn/

編程學習路線

前端:
image.png

python:

image.png

image.png

image.png
image.png

java:

image.png

image.png

只是我局部畫的思維導圖,很多細節由於篇幅我不不在貼了。

一些開源電子書籍

Flutter 實戰電子書

本項目爲 Flutter 中文網《Flutter 實戰》開源電子書項目,第一本系統介紹Flutter技術的中文書籍,它是Flutter中文社區發起的開源項目之一,旨在幫助開發者入門,系統地、循序漸進的瞭解Flutter。

作者稱:“在全球,隨着Flutter被越來越多的知名公司應用在自己的商業APP中,Flutter這門新技術也逐漸進入了移動開發者的視野,尤其是當Google在2018年IO大會上發佈了第一個Preview版本後,國內刮起來一股學習Flutter的熱潮。

爲了更好的方便幫助中國開發者瞭解這門新技術,我們,Flutter中文網,前後發起了Flutter翻譯計劃、Flutter開源計劃,前者主要的任務是翻譯Flutter官方文檔,後者則主要是開發一些常用的包來豐富Flutter生態,幫助開發者提高開發效率。而時至今日,這兩件事取得的效果還都不錯!”

image

項目介紹

本項目爲 Flutter 中文網《Flutter 實戰》開源電子書項目

官網地址爲:https://book.flutterchina.club

GitHub 地址

https://github.com/flutterchina/flutter-in-action

TensorFlow 2.0的中文深度學習

因爲這是一本基於TensorFlow 2.0 正式版中文深度學習開源書。

image

還包含電子書和配套源代碼。

話不多說,一起來看看這本爆款書籍吧!

深度學習開源書介紹

這本書共包含15個章節。

從目錄章節構成來看,理論與編程並不是獨立分開,而是隨着難度的遞增,循序漸進穿插編排的。

大體上可以分爲四個部分

第一部分是1-3章。主要介紹人工智能的初步認知,並引出相關問題。

第二部分是4-5章。主要介紹TensorFlow相關基礎,爲後續算法實現鋪墊。

第三部分是6-9章。主要介紹神經網絡的核心理論和共性知識,助於理解深度學習的本質。

第四部分是10-15章。主要介紹常見的算法與模型。

除此之外,每個章節裏的內容編排也是理論與實戰相結合

image

image

image

在這個repo中,作者根據章節也給出了源代碼和數據,但同時他也表示:

時間倉促,源代碼還沒有整理完全。

有興趣的讀者可以跟進這個repo的更新。

以“迴歸問題”爲例,作者便給出了對應的數據和.py文件。

image

從代碼來看,上手也是較爲容易。

本書電子版地址如下:
https://github.com/dragen1860/Deep-Learning-with-TensorFlow-book/blob/master/%E3%80%90%E3%80%8ATensorFlow2%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E3%80%8B%E3%80%91.pdf

Python數據科學

image

Python進階

image

大公司技術博文

美團技術博客

image.png

在2019年春節到來之際,我們再次精選了114篇技術乾貨,製作成一本厚達1200多頁的電子書呈送給大家。

image

這本電子書主要包括前端、後臺、系統、算法、測試、運維、工程師成長等7個板塊。疑義相與析,大家在閱讀中如果發現Bug、問題,歡迎掃描文末二維碼,通過微信公衆號與我們交流。也歡迎大家轉給有相同興趣的同事、朋友,一起切磋,共同成長。

我已經下載好了。喜歡的同學可以私我獲取。

阿里巴巴技術年貨

1、《阿里技術參考圖冊》

image.png

此套圖冊將呈現阿里技術全景,分爲研發篇和算法篇兩冊,爲你清晰講解阿里業務生態的全貌:包括文化娛樂(優酷、土豆等)、核心電商業務(天貓、淘寶、村淘等)、本地生活(高德地圖、盒馬等)、支付& 金融服務(螞蟻金服)、智慧物流(菜鳥)、市場營銷(阿里媽媽)、雲計算(阿里雲)等。

如果你希望加入阿里搞技術,卻面對不同的部門、成百上千的技術崗位一頭霧水,這套圖冊將爲你撥開迷霧,清晰呈現每個事業部的主攻方向、技術創新及突破、發展路徑等。

如果你希望瞭解業界最新技術趨勢,來自阿里人工智能實驗室、天貓、淘寶、菜鳥等部門技術負責人,同樣帶來前沿的技術解析,揭祕阿里在各個領域的技術積累及發展方向。

免費下載傳送門:

《阿里技術參考圖冊——算法篇》

《阿里技術參考圖冊——研發篇》

2、《不止代碼》

image.png

你是否有類似這樣的問題——“天天寫業務代碼的程序員,怎麼成爲技術大牛,開始寫技術代碼?”今天,阿里資深無線開發專家李運華,系統梳理了自己的思考和理解,希望幫助更多同學少走一些彎路。

成爲技術大牛夢想雖然很美好,但是要付出很多,不管是Do more 還是Do better 還是Do exercise,都需要花費時間和精力,這個過程中可能很苦逼,也可能很枯燥,這裏我想特別強調一下:前面我講的都是一些方法論的東西,但真正起決定作用的,其實還是我們對技術的熱情和興趣!

免費下載傳送門:

《不止代碼》

3、《阿里巴巴機器智能計算機視覺技術精選——頂級會議 CVPR 2018收錄論文》

image.png

CVPR(Conference on Computer Vision and Pattern Recognition)是計算機視覺領域的頂會之一,伴隨着視覺AI的火熱,近幾年參會人數急劇增加。2018年的CVPR會議於6月18日-22日在美國猶他州鹽湖城舉辦。本屆大會有超過 3300 篇的大會論文投稿,錄取 979 篇(接受率約爲 29%),其中包括 70 篇 Oral 論文和 224 篇 Spotlight 論文,參會人數達到6500人。

未來的計算機視覺技術一定是理論探索和數據實踐的共同推進。希望這本論文合集能拋磚引玉,給學術界和工業界帶來一些輸入,共同推進計算機視覺技術的發展。

免費下載傳送門

《阿里巴巴機器智能計算機視覺技術精選》

4、《阿里機器智能技術精選》

image.png

2018 年伊始,萬衆期待的人工智能學術會議AAAI 2018 在華人春節前一週正式召開,這也標誌着全球學術會議新一年的開啓。

現在,阿里正式推出《阿里巴巴機器智能技術精選集》,收錄多篇AAAI優秀論文,並向業界開放下載。該書集中展示了阿里巴巴的最新研究成果,包羅NLP、搜索推薦、社交網絡、基礎算法、深度學習等多個方向,希望與致力於AI技術探索的研究者及同仁一起探討交流。

免費下載傳送門:

《阿里機器智能技術精選》

5、《阿里巴巴Java開發手冊》

image.png

《Java開發手冊》是阿里巴巴集團技術團隊的集體智慧結晶和經驗總結,經歷了多次大規模一線實戰的檢驗及不斷完善,公開到業界後,衆多社區開發者踊躍參與,共同打磨完善,系統化地整理成冊。

本手冊以Java開發者爲中心視角,劃分爲編程規約、異常日誌、單元測試、安全規約、MySQL數據庫、工程結構、設計規約七個維度。代碼的字裏行間流淌的是軟件系統的血液,質量的提升是儘可能少踩坑,杜絕踩重複的坑,切實提升系統穩定性,碼出高效,碼出質量。

免費下載傳送門:

《阿里巴巴Java開發手冊》

6、《2017阿里技術年度精選集》

image.png

2017年,在技術發展的歷史上,一定是個特別的一年:柯潔與AlphaGo的驚世大戰,無人咖啡店開放體驗,AI設計師“魯班”橫空出世、三年投入千億的達摩院正式成立……

在全年發佈的近300篇文章中,我們選出 65篇,集結成這套《2017阿里技術年度精選》,分爲上、下兩冊,總計600餘頁。這套精選集覆蓋多個熱門技術領域:算法、機器學習、大數據、數據庫、中間件、運維、安全、移動開發等,文章內容涉及技術架構、核心算法、解決方案等乾貨。無論你是計算機相關專業的在校學生、科研機構的研究人員,還是步入社會的IT從業人員,相信都能從中受益。

免費下載傳送門:

《2017阿里技術年度精選集上》

《2017阿里技術年度精選集下》

7、《強化學習在阿里的技術演進與業務創新》

image.png

當前的機器學習算法⼤致可以分爲有監督的學習、⽆監督的學習和強化學習(Reinforcement Learning)等。強化學習和其他學習⽅法不同之處在於強化學習是智能系統從環境到⾏爲映射的學習,以使獎勵信號函數值最⼤。如果智能體的某個⾏爲策略導致環境正的獎賞,那麼智能體以後產⽣這個⾏爲策略的趨勢便會加強。強化學習是最接近於⾃然界動物學習的本質的⼀種學習範式。然⽽強化學習從提出到現在,也差不多有半個世紀左右,它的應⽤場景仍很有限,規模⼤⼀點的問題就會出現維數爆炸,難於計算,所以往往看到的例⼦都是相對簡化的場景。

未來深度強化學習的發展必定是理論探索和應⽤實踐的雙鏈路持續深⼊。希望這本電⼦書能拋磚引⽟,給⼯業界和學術界帶來⼀些輸⼊,共同推進深度強化學習的更⼤發展。

免費下載傳送門:

《強化學習在阿里的技術演進與業務創新》

8、《九年雙11:互聯網技術超級工程》

image.png

阿里的雙11是一次全球商業、科技、數據、智能的大協同,是一個商業社會的大協同,更是一個技術的大協同,是名副其實的世界互聯網技術的超級工程。

2017年11月11日晚上10點,阿里巴巴集團CTO張建鋒(花名:行癲)連線上海雙11媒體中心,爲700多位中外媒體記者介紹了阿里技術在雙11中取得的突破與成績,表示“阿里雙11是名副其實的世界互聯網技術超級工程。”

數據智能、機器智能已經融入到整個系統的每一個方面:整個商品推薦、整個交易鏈路、包括整個決策都是用機器智能來做的,我們希望將技術變成全社會能夠共享的普惠基礎設施,從而降低整個社會的創新成本,提升整個社會的創新效率。

免費下載傳送門:

《九年雙11:互聯網技術超級工程》

9、《阿里巴巴Android開發手冊》

image.png

《阿里巴巴Android開發手冊》是阿里巴巴集團各大Android開發團隊的集體智慧結晶和經驗總結,將淘寶、天貓、閒魚、釘釘等App長期開發迭代和優化經驗系統地整理成冊,以指導Android開發者更加高效、高質量地進行App開發,呈現給用戶體驗好、性能優、穩定性佳、安全性高的產品。

本手冊以開發者爲中心視角分爲Java語言規範(遵循《阿里巴巴Java開發手冊》),Android資源文件命名與使用,Android基本組件,UI與佈局,進程、線程與消息通信,文件與數據庫,Bitmap、Drawable與動畫,安全,其他等九大部分,《阿里巴巴Android開發手冊》作爲阿里巴巴開發規約重要的一環,我們的目標是:

  • 防患未然,提升質量意識,降低故障率和維護成本;
  • 標準統一,提升協作效率;
  • 追求卓越的工匠精神,打磨精品代碼。

免費下載傳送門:

《阿里巴巴Android開發手冊》

10、《深入探索Android熱修復技術原理》

image.png

隨着無線互聯網在各領域大行其道,我們再一次見證計算機操作系統這一平臺技術的週期性發展規律,既:從一個操作系統的興起,到平臺上應用和開發者的繁榮,再到安全領域技術逐步應用到日常應用研發領域,最後進入到平滑發展或者走向衰退。

作爲平臺真正進入巔峯期的一個不起眼的標誌——安全領域類的技術逐步融入到應用研發領域, 這一現象在Windows、Linux到Android上已被多次驗證,屢試不爽。以熱修復技術爲例,作爲安全類技術的標誌性衍生產物,其進入到應用化領域開始大行其道時,標誌着平臺發展開始邁入新階段,這也意味着應用市場的繁榮程度、應用開發者的思維和研發模式也進入到遊戲的下半程。

免費下載傳送門:

《深入探索Android熱修復技術原理》

寫在最後

預祝你大學四年 能學到更多,作爲你畢業後拿到第一份工作的資本,加油吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章