大学四年,我是如何学习编程的?

Posted Tamic大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大学四年,我是如何学习编程的?相关的知识,希望对你有一定的参考价值。

大学四年,我专业是计算机专业,
但大家也知道,学校的课程和专业不是那么互相连贯,并且无法形成体系。
大学里有基础的Java, 计算机原理,互联网技术,JSP, C语言等课程。
但知识点完全不够成一种进阶关系,也没大的项目可以用来实践。

今天我分享下,我大学走过的路,如何在学校里免费学技术,沉淀一些编程技能。

编程书籍

这是我大学看过的书籍。

设计模式

这里简单介绍一下: 设计模式是软件设计中常见问题的一般可重复解决方案, 可以通过提供经过验证的开发范例来加快开发过程

Head First 设计模式

Head First 设计模式 ,一本入门书籍,具有相当高的可读性,从简入深!
共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式

设计模式之禅(第2版)

设计模式之禅(第2版) 一本入门的书籍,它用简洁的方式来告诉你什么是设计模式。
极具趣味,容易理解,但讲解又极为严谨和透彻。深刻解读6大设计原则和28种设计模式的准确定义、应用方法和最佳实践。

Objective-C编程之道:iOS设计模式解析

Objective-C编程之道:ios设计模式解析 简单地讲,本书结构清晰,易于理解。物超所值。优化Objective-C编程实践的必修宝典。

大话设计模式

大话设计模式 通过老鸟与菜鸟之间的对话让我们了解到设计模式更多的含义与其应该出现的方式。总结的23个设计模式。例子偏多,需要有一些编程基础。

tip: 大话系列丛书,在我的网盘中刚刚更新,有兴趣的可以到网盘下载.

Design_patterns

design_patterns 中包含了许多设计模式的简介,大家可以进行一个参考,也有很多外链接供大家学习,免费的!

其实关于设计模式还有很多要说的东西,不止是书中提到的,我们在平时编码的过程中,也要应用到设计模式,不仅可以提升开发效率,还可以给我们一个完善的编程思想体系。

我总想多啰嗦几句,设计模式 是很重要的一部分,使用好它可以令你的项目结构清晰,代码更加流程化,减少沟通成本。有很多人并不会把它当回事,我相信,通过以上基本书你们可以大概的了解设计模式的魔力!

基础能力

学习编程就如同建一个楼房,你需要将基础只是打稳、打牢靠,这样才能一往无前,好的地基是成长的根本,我们需要稳扎稳打,一步一个脚印!

关于修养

程序员的自我修养

程序员的自我修养 很好的一本基础书,包括了非常多的基础理论、原理知识,可以大大的提升你对硬件-软件的认识。
这本书描述了一个应用程序在编译、链接和运行时刻所发生的各种事项。用简单的图片讲解复杂的理论知识,非常好看,首推!

网络是怎样连接的

网络是怎样连接的 从浏览器输入开始一步步探索,如何通过DNS分配IP地址,TCP/IP工作原理,网卡驱动,防火墙,缓存服务器,以图配文,讲解了网络的全貌。

程序是怎样跑起来的

程序是怎样跑起来的 从计算机内部的结构开始一步步的深入讲解二进制、内存、数据压缩、操作系统、汇编语言、C语言基础、操作系统与程序之间的关系等。让我们了解到了打开程序背后发生的事儿~

计算机是怎样跑起来的

计算机是怎样跑起来的 通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。

这是一个系列的书籍,看名字大概就可以知道,它们是基于最基础的理论与实践来告诉你计算机、手机、智能硬件的原理,从硬件到软件,都解释的非常清楚,图文并茂,强烈推荐!👍

TCP/IP详解卷1:协议

TCP/IP详解卷1:协议 如果你对什么是三次挥手,四次握手,为什么要出现这种方案,TCP/IP到底意味着什么,看它你就会了解你需要的东西。

现代操作系统(原书第3版)

现代操作系统(原书第3版) 涉及Windows Vista以及最新的Linux/UNIX操作系统,列举出了很多例子,在大学的课程中也有可能涉及到,像看一部小说一样看完整本书!

深入理解计算机系统(原书第3版)

深入理解计算机系统(原书第3版) 偏向底层的知识,适合一些篇中高级的程序员观看,可以了解很多你不曾想到的知识,还有大量的源码分析参考,👍

挑战编程技能 : 57道程序员功力测试题

挑战编程技能 : 57道程序员功力测试题 在面对问题的时候你会如何解决?可以给基础程序员做一些能力的提升,而且趣味性很高。

关于机器学习

Python编程快速上手:让繁琐工作自动化

Python编程快速上手:让繁琐工作自动化 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,这本书不仅包括了python基础知识,还有很多例子作为提升,很好的一本python入门书。

Python网络编程(第3版)

Python网络编程(第3版) 全面介绍Python3中最新提供的SSL支持,异步I/O循环的编写,用Flask框架在Python代码中配置URL,跨站脚本以及跨站请求伪造攻击网站的原理及保护方法,等等。

Python网络数据采集

Python网络数据采集 第一部分重点介绍网络数据采集的基本原理:如何用Python从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。

机器学习

机器学习 作为人工智能一个重要的分支,在内容上尽可能涵盖机器学习基础知识的各方面。这本书是一个入门书,但 本书更适合大学三年级以上的理工科本科生和研究生, 以及具有类似背景的对机器学 习感兴趣的人士

关于JavaScript

JavaScript高级程序设计(第3版)

javascript高级程序设计(第3版) 本书是JavaScript 超级畅销书的最新版。ECMAScript 5 和html5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript 增添了很多适应未来发展的新特性。

你不知道的JavaScript(上卷)

你不知道的JavaScript(上卷) “你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用域和闭包”以及“this和对象原型”。掌握了这些知识之后,无论什么技术、框架和流行词语,你都能轻松理解。

tip:作为系列书我就不一一列举,在我的网盘中都可以下载到

JavaScript语言精粹

JavaScript语言精粹 本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。

深入浅出JavaScript

深入浅出JavaScript 《深入浅出JavaScript(影印版)》带你游历令人兴奋的交互式网页创建过程。你将从《深入浅出JavaScript(影印版)》学到什么?这么说你准备从写HTML和CSS的静态网页跃进到编写动态网络应用程序脚本了?这里就是起点。

编程网站

TopCoder

https://www.topcoder.com/challenges

TopCoder是最开始的在线竞技编程平台之一。它提供了很多的算法挑战,用户可以使用平台上的编辑器直接完成挑战。

每个月该平台会提供几次它们最受欢迎的Single Round Matches,比赛要求用户在特定的时间内与他人竞争,看谁解决问题的速度更快。

TopCoder上排名靠前的用户都是很有竞争力的程序员,他们会定期参加各种比赛。这些用户还可以通过名称为ALGORITHMS WEEKLY BY PETR MITRICHEV的博客平台去发表一些关于编程竞赛、算法、数学等方面的文章。

Coderbyte

https://coderbyte.com/

Coderbyte提供了200多项编码挑战,挑战者可以使用10门编程语言中的任意一种直接在线解决(看看这个例子)。这些挑战的难易程度各不相同。

另外Coderbyte还提供了很多的算法教程,入门视频和面试准备的课程。与HackerRank和其它网站不同,用户可以查看其他挑战者提供的解决方案,而不是Coderbyte官方发布的。

Project Euler

https://projecteuler.net/

Project Euler提供了很多关于计算机科学和数学领域的挑战。挑战内容大致都是要求挑战者编写一段小程序从而为某个数学公式或方程式提供解决方案。

由于不支持直接在编辑器上编程,因此需要用户在自己的电脑上先写好解决方案,然后在网站上再提供出来。

HackerRank

https://www.hackerrank.com/domains

HackerRank提供了很多不同领域的挑战,比如算法、数学、SQL、函数式编程、人工智能等等。挑战者可以直接在线完成所有挑战(看看这个例子)。

HackerRank针对每一项挑战专门成立了讨论和领导委员会,而大多数挑战来自于一篇社论,它解释了更多的挑战,以及如何接近它提出解决方案。

除了这篇社论,你目前还不能看到其他用户在HackerRank上的解决方案。

HackerRank还支持用户提交应用程序,而且通过解决公司发起的编码挑战,挑战者还有机会获得一份工作。

CodeChef

https://www.codechef.com/

CodeChef是一家位于印度的编程竞赛网站,该网站提供了数百种挑战。

挑战者可以通过在线编辑器进行编程,而且还可以根据自身的编程能力去查看已经分类好的适合于自己的挑战题目(请查看本示例)。

CodeChef有一个庞大的编程社区,为论坛提供帮助,负责编写教程,而且也会参加CodeChef的编码竞赛。

CodeEval

https://www.codeeval.com/

CodeEval类似于HackerRank,它还提供了很多公司发起的挑战,如果能很好地完成这些挑战,你还有机会得到一份工作。

公司可以创建挑战和举办竞争比赛来招募新的工作人员。挑战者可以在这里查看当前的挑战列表。

Codewars

https://www.codewars.com/

Codewars提供了很多的编码挑战,这些挑战都是由他们自己社区提交和编辑的。

挑战者可以用几种语言在编辑器中直接在线完成挑战。用户还可以查看针对每个挑战的讨论以及其他用户的解决方案。

LeetCode

https://leetcode.com/

LeetCode是一个很受欢迎的在线判题系统,它提供了190道挑战题目,这些题目可以帮助挑战者为面试做好技术准备。

挑战者可以用9种编程语言直接在线完成挑战。虽然该网站不支持查看其他用户的解决方案,但用户可以为自己的解决方案提供统计数据,例如与其他用户相比,代码运行速度如何。

他们也有一个专门为面试准备的Mock Interview部分,这是由他们自己主持的编码竞赛,其中有一些文章帮助用户更好地了解某些问题。

SPOJ

http://www.spoj.com/

Sphere Online Judge(SPOJ)是一个在线判题系统,提供20000多个编程挑战。

挑战者可以直接通过在线编辑器中提交代码。SPOJ还举办了自己的竞赛,并有一个区域专门供用户讨论编码挑战。他们目前没有像其他网站那样提供任何官方解决方案或社论。

CodinGame

https://www.codingame.com/

CodinGame与其他网站有点不同,因为它不是简单地在编辑器中去完成编码挑战,而是让挑战者真正游戏的。

面试题和电子书

电子书:

DOC文档

视频:

面试题

**由于我当时整理的太多了 ,这里只贴部分

博客网站

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

编程学习路线

前端:

python:


java:

只是我局部画的思维导图,很多细节由于篇幅我不不在贴了。

一些开源电子书籍

Flutter 实战电子书

本项目为 Flutter 中文网《Flutter 实战》开源电子书项目,第一本系统介绍Flutter技术的中文书籍,它是Flutter中文社区发起的开源项目之一,旨在帮助开发者入门,系统地、循序渐进的了解Flutter。

作者称:“在全球,随着Flutter被越来越多的知名公司应用在自己的商业APP中,Flutter这门新技术也逐渐进入了移动开发者的视野,尤其是当Google在2018年IO大会上发布了第一个Preview版本后,国内刮起来一股学习Flutter的热潮。

为了更好的方便帮助中国开发者了解这门新技术,我们,Flutter中文网,前后发起了Flutter翻译计划、Flutter开源计划,前者主要的任务是翻译Flutter官方文档,后者则主要是开发一些常用的包来丰富Flutter生态,帮助开发者提高开发效率。而时至今日,这两件事取得的效果还都不错!”

项目介绍

本项目为 Flutter 中文网《Flutter 实战》开源电子书项目

官网地址为:https://book.flutterchina.club

GitHub 地址

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

TensorFlow 2.0的中文深度学习

因为这是一本基于TensorFlow 2.0 正式版中文深度学习开源书。

还包含电子书和配套源代码。

话不多说,一起来看看这本爆款书籍吧!

深度学习开源书介绍

这本书共包含15个章节。

从目录章节构成来看,理论与编程并不是独立分开,而是随着难度的递增,循序渐进穿插编排的。

大体上可以分为四个部分

第一部分是1-3章。主要介绍人工智能的初步认知,并引出相关问题。

第二部分是4-5章。主要介绍TensorFlow相关基础,为后续算法实现铺垫。

第三部分是6-9章。主要介绍神经网络的核心理论和共性知识,助于理解深度学习的本质。

第四部分是10-15章。主要介绍常见的算法与模型。

除此之外,每个章节里的内容编排也是理论与实战相结合

在这个repo中,作者根据章节也给出了源代码和数据,但同时他也表示:

时间仓促,源代码还没有整理完全。

有兴趣的读者可以跟进这个repo的更新。

以“回归问题”为例,作者便给出了对应的数据和.py文件。

从代码来看,上手也是较为容易。

本书电子版地址如下:
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数据科学

Python进阶

大公司技术博文

美团技术博客

在2019年春节到来之际,我们再次精选了114篇技术干货,制作成一本厚达1200多页的电子书呈送给大家。

这本电子书主要包括前端、后台、系统、算法、测试、运维、工程师成长等7个板块。疑义相与析,大家在阅读中如果发现Bug、问题,欢迎扫描文末二维码,通过微信公众号与我们交流。也欢迎大家转给有相同兴趣的同事、朋友,一起切磋,共同成长。

我已经下载好了。喜欢的同学可以私我获取。

阿里巴巴技术年货

1、《阿里技术参考图册》

此套图册将呈现阿里技术全景,分为研发篇和算法篇两册,为你清晰讲解阿里业务生态的全貌:包括文化娱乐(优酷、土豆等)、核心电商业务(天猫、淘宝、村淘等)、本地生活(高德地图、盒马等)、支付& 金融服务(蚂蚁金服)、智慧物流(菜鸟)、市场营销(阿里妈妈)、云计算(阿里云)等。

如果你希望加入阿里搞技术,却面对不同的部门、成百上千的技术岗位一头雾水,这套图册将为你拨开迷雾,清晰呈现每个事业部的主攻方向、技术创新及突破、发展路径等。

如果你希望了解业界最新技术趋势,来自阿里人工智能实验室、天猫、淘宝、菜鸟等部门技术负责人,同样带来前沿的技术解析,揭秘阿里在各个领域的技术积累及发展方向。

免费下载传送门:

《阿里技术参考图册——算法篇》

《阿里技术参考图册——研发篇》

2、《不止代码》

你是否有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?”今天,阿里资深无线开发专家李运华,系统梳理了自己的思考和理解,希望帮助更多同学少走一些弯路。

成为技术大牛梦想虽然很美好,但是要付出很多,不管是Do more 还是Do better 还是Do exercise,都需要花费时间和精力,这个过程中可能很苦逼,也可能很枯燥,这里我想特别强调一下:前面我讲的都是一些方法论的东西,但真正起决定作用的,其实还是我们对技术的热情和兴趣!

免费下载传送门:

《不止代码》

3、《阿里巴巴机器智能计算机视觉技术精选——顶级会议 CVPR 2018收录论文》

CVPR(Conference on Computer Vision and Pattern Recognition)是计算机视觉领域的顶会之一,伴随着视觉AI的火热,近几年参会人数急剧增加。2018年的CVPR会议于6月18日-22日在美国犹他州盐湖城举办。本届大会有超过 3300 篇的大会论文投稿,录取 979 篇(接受率约为 29%),其中包括 70 篇 Oral 论文和 224 篇 Spotlight 论文,参会人数达到6500人。

未来的计算机视觉技术一定是理论探索和数据实践的共同推进。希望这本论文合集能抛砖引玉,给学术界和工业界带来一些输入,共同推进计算机视觉技术的发展。

免费下载传送门

《阿里巴巴机器智能计算机视觉技术精选》

4、《阿里机器智能技术精选》

2018 年伊始,万众期待的人工智能学术会议AAAI 2018 在华人春节前一周正式召开,这也标志着全球学术会议新一年的开启。

现在,阿里正式推出《阿里巴巴机器智能技术精选集》,收录多篇AAAI优秀论文,并向业界开放下载。该书集中展示了阿里巴巴的最新研究成果,包罗NLP、搜索推荐、社交网络、基础算法、深度学习等多个方向,希望与致力于AI技术探索的研究者及同仁一起探讨交流。

免费下载传送门:

《阿里机器智能技术精选》

5、《阿里巴巴Java开发手册》

《Java开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册。

本手册以Java开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、mysql数据库、工程结构、设计规约七个维度。代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出高效,码出质量。

免费下载传送门:

《阿里巴巴Java开发手册》

6、《2017阿里技术年度精选集》

2017年,在技术发展的历史上,一定是个特别的一年:柯洁与AlphaGo的惊世大战,无人咖啡店开放体验,AI设计师“鲁班”横空出世、三年投入千亿的达摩院正式成立……

在全年发布的近300篇文章中,我们选出 65篇,集结成这套《2017阿里技术年度精选》,分为上、下两册,总计600余页。这套精选集覆盖多个热门技术领域:算法、机器学习、大数据、数据库、中间件、运维、安全、移动开发等,文章内容涉及技术架构、核心算法、解决方案等干货。无论你是计算机相关专业的在校学生、科研机构的研究人员,还是步入社会的IT从业人员,相信都能从中受益。

免费下载传送门:

《2017阿里技术年度精选集上》

《2017阿里技术年度精选集下》

7、《强化学习在阿里的技术演进与业务创新》

当前的机器学习算法⼤致可以分为有监督的学习、⽆监督的学习和强化学习(Reinforcement Learning)等。强化学习和其他学习⽅法不同之处在于强化学习是智能系统从环境到⾏为映射的学习,以使奖励信号函数值最⼤。如果智能体的某个⾏为策略导致环境正的奖赏,那么智能体以后产⽣这个⾏为策略的趋势便会加强。强化学习是最接近于⾃然界动物学习的本质的⼀种学习范式。然⽽强化学习从提出到现在,也差不多有半个世纪左右,它的应⽤场景仍很有限,规模⼤⼀点的问题就会出现维数爆炸,难于计算,所以往往看到的例⼦都是相对简化的场景。

未来深度强化学习的发展必定是理论探索和应⽤实践的双链路持续深⼊。希望这本电⼦书能抛砖引⽟,给⼯业界和学术界带来⼀些输⼊,共同推进深度强化学习的更⼤发展。

免费下载传送门:

《强化学习在阿里的技术演进与业务创新》

8、《九年双11:互联网技术超级工程》

阿里的双11是一次全球商业、科技、数据、智能的大协同,是一个商业社会的大协同,更是一个技术的大协同,是名副其实的世界互联网技术的超级工程。

2017年11月11日晚上10点,阿里巴巴集团CTO张建锋(花名:行癫)连线上海双11媒体中心,为700多位中外媒体记者介绍了阿里技术在双11中取得的突破与成绩,表示“阿里双11是名副其实的世界互联网技术超级工程。”

数据智能、机器智能已经融入到整个系统的每一个方面:整个商品推荐、整个交易链路、包括整个决策都是用机器智能来做的,我们希望将技术变成全社会能够共享的普惠基础设施,从而降低整个社会的创新成本,提升整个社会的创新效率。

免费下载传送门:

《九年双11:互联网技术超级工程》

9、《阿里巴巴android开发手册》

《阿里巴巴Android开发手册》是阿里巴巴集团各大Android开发团队的集体智慧结晶和经验总结,将淘宝、天猫、闲鱼、钉钉等App长期开发迭代和优化经验系统地整理成册,以指导Android开发者更加高效、高质量地进行App开发,呈现给用户体验好、性能优、稳定性佳、安全性高的产品。

本手册以开发者为中心视角分为Java语言规范(遵循《阿里巴巴Java开发手册》),Android资源文件命名与使用,Android基本组件,UI与布局,进程、线程与消息通信,文件与数据库,Bitmap、Drawable与动画,安全,其他等九大部分,《阿里巴巴Android开发手册》作为阿里巴巴开发规约重要的一环,我们的目标是:

  • 防患未然,提升质量意识,降低故障率和维护成本;
  • 标准统一,提升协作效率;
  • 追求卓越的工匠精神,打磨精品代码。

免费下载传送门:

《阿里巴巴Android开发手册》

10、《深入探索Android热修复技术原理》

随着无线互联网在各领域大行其道,我们再一次见证计算机操作系统这一平台技术的周期性发展规律,既:从一个操作系统的兴起,到平台上应用和开发者的繁荣,再到安全领域技术逐步应用到日常应用研发领域,最后进入到平滑发展或者走向衰退。

作为平台真正进入巅峰期的一个不起眼的标志——安全领域类的技术逐步融入到应用研发领域, 这一现象在Windows、Linux到Android上已被多次验证,屡试不爽。以热修复技术为例,作为安全类技术的标志性衍生产物,其进入到应用化领域开始大行其道时,标志着平台发展开始迈入新阶段,这也意味着应用市场的繁荣程度、应用开发者的思维和研发模式也进入到游戏的下半程。

免费下载传送门:

《深入探索Android热修复技术原理》

写在最后

预祝你大学四年 能学到更多,作为你毕业后拿到第一份工作的资本,加油吧!

以上是关于大学四年,我是如何学习编程的?的主要内容,如果未能解决你的问题,请参考以下文章

大学四年,我是如何学习编程的?

大学四年我是如何学习程序设计的

我学编程时最后悔的事!

我学编程时最后悔的事!

大学四年自学编程,月薪过万后总结出来的学习经验!建议收藏,反复阅读~

大学四年自学编程,月薪过万后总结出来的学习经验!建议收藏,反复阅读~