这里收录比较实用的计算机相关技术书籍,可以在短期之内入门的简单实用教程、一些技术网站以及一些写的比较好的博文,欢迎Fork,你也可以通过Pull Request参与编辑。
目录
语言无关类
操作系统
- 开源世界旅行手册
- 鸟哥的Linux私房菜
- Linux 系统高级编程
- The Linux Command Line (中英文版)
- Linux 设备驱动 (第三版)
- 深入分析Linux内核源码
- UNIX TOOLBOX
- Docker中文指南
- Docker —— 从入门到实践
- Docker入门实战
- FreeRADIUS新手入门
- Mac 开发配置手册
- FreeBSD 使用手册
- Linux 命令行(中文版)
- Linux 构建指南
- Linux工具快速教程
- 理解Linux进程
- Linux From Scratch systemd 中文翻译
- 55分钟学会正则表达式
- 每个Linux用户都应该知道的命令行技巧
- 每个程序员都应该了解的内存知识
- 每个程序员都应该了解的CPU缓存知识
- 每个程序员都应该了解的虚拟内存知识
- shell脚本教程
- 查找命令行的网站
- 正则表达式在线测试
web服务器
- Nginx开发从入门到精通 (淘宝团队出品)
- Nginx教程从入门到精通(PDF版本,运维生存时间出品)
- Apache 中文手册
- Elasticsearch权威指南
- 25 台服务器是怎样支撑 StackOverflow 的?
- 图片服务架构演进(孔凡勇)
- 最佳日志实践(王健)
版本控制
- Git教程
- git简易指南
- 猴子都能懂的GIT入门
- Git 参考手册
- Pro Git
- Pro Git 中文版 (整理在gitbook上)
- Git Magic
- GotGitHub
- Git Community Book 中文版
- Mercurial 使用教程
- HgInit (中文版)
- 沉浸式学 Git
- Git-Cheat-Sheet (感谢 @flyhigher139 翻译了中文版)
- GitHub秘籍
- Github帮助文档
- git-flow 备忘清单
编辑器
MySQL
NoSQL
- NoSQL数据库笔谈 (PDF)
- Redis 设计与实现
- Redis 命令参考
- 带有详细注释的 Redis 3.0 代码
- 带有详细注释的 Redis 2.6 代码
- The Little MongoDB Book
- The Little Redis Book
- Neo4j 简体中文手册 v1.8
- Neo4j .rb 中文資源
- 8种Nosql数据库系统对比
项目相关
- Gradle实战
- 持续集成(第二版) (译言网)
- 让开发自动化系列专栏
- 追求代码质量
- selenium 中文文档
- Joel谈软件)
- 約耳談軟體(Joel on Software)
- Gradle 2 用户指南
- 编码规范
- 开源软件架构
设计模式
Web
- 网络传输基础
- 关于浏览器和网络的 20 项须知
- 前端知识体系
- 浏览器开发工具的秘密
- Chrome 开发者工具中文手册
- Chrome扩展开发文档
- Grunt中文文档
- Yeoman中文文档
- 移动Web前端知识库
- 正则表达式30分钟入门教程
- 前端开发体系建设日记
- 移动前端开发收藏夹
- JSON风格指南
- HTTP 接口设计指北
- 前端资源分享(一)
- 前端资源分享(二)
- 前端代码规范 及 最佳实践
- w3school教程整理
- Wireshark用户手册
- HTTP 下午茶
- HTTP/2.0 中文翻译
大数据
编程艺术
- 程序员编程艺术
- 每个程序员都应该了解的内存知识(译)【第一部分】
- 取悦的工序:如何理解游戏 (豆瓣阅读,免费书籍)
- 编程技巧总汇
语言相关类
AWK
SED
Java
- Apache Shiro 用户指南
- Jersey 2.x 用户指南
- Spring Framework 4.x参考文档
- Spring Boot参考指南 (翻译中)
- MyBatis中文文档
- 用jersey构建REST服务
- Activiti 5.x 用户指南
- Google Java编程风格指南
- Netty 4.x 用户指南
- Netty 实战(精髓)
- REST 实战
- Java 编码规范
- Apache MINA 2 用户指南
- JVM必备指南
- Java入门教程
- javarevisited博客
- journaldev教程
Android
- 开发工具下载
- CodePath Android教程
- Android Design(中文版)
- Google Material Design 正體中文版 (译本一 译本二)
- Google Android官方培训课程中文版
- Android学习之路
- Android构建工具
- Android开发技术前线(android-tech-frontier)
- Android内存优化(上)
- Android内存优化(中)
- Android内存优化(全)
- 查找代码的一个网站
- Android开源库汇总
- 查找示例代码的网站
- Android SDK使用教程
- Android最佳实践
- Android Material icons
C/C++
- C++ 并发编程指南 (@傅海平ICT)
- Linux C编程一站式学习 (宋劲杉, 北京亚嵌教育研究中心)
- CGDB中文手册
- 100个gdb小技巧
- 100个gcc小技巧
- 学习gdb调试技巧
- ZMQ 指南
- How to Think Like a Computer Scientist (中英文版)
- 跟我一起写Makefile(PDF)
- GNU make中文手册
- GNU make 指南
- Google C++ 风格指南
- C/C++ Primer (by @andycai)
- 简单易懂的C魔法
- Cmake 实践 (PDF版)
- C++ FAQ LITE(中文版)
- C++ Primer 5th Answers
- C进阶指南(1)
- C进阶指南(2)
- C进阶指南(3)
- C语言全局变量那些事儿
- 如何实现一个malloc
- 在线编程和调试的网站
CSS
- 学习CSS布局
- 通用 CSS 笔记、建议与指导
- CSS参考手册
- Emmet 文档
- 前端代码规范 (腾讯alloyteam团队)
- HTML和CSS编码规范
- Sass Guidelines 中文
Go
- Go编程基础
- Go入门指南
- 学习Go语言 (PDF.pdf?download))
- Go Web 编程 (此书已经出版,希望开发者们去购买,支持作者的创作)
- Go实战开发 (当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作)
- Network programming with Go 中文翻译版本
- Effective Go
Groovy
Haskell
iOS
- iOS开发60分钟入门
- iOS7人机界面指南
- Google Objective-C Style Guide 中文版
- iPhone 6 屏幕揭秘
- Apple Watch开发初探
- 马上着手开发 iOS 应用程序
- 网易斯坦福大学公开课:iOS 7应用开发字幕文件
JavaScript
- Google JavaScript 代码风格指南
- Google JSON 风格指南
- Airbnb JavaScript 规范
- JavaScript 标准参考教程(alpha)
- Javascript编程指南 (源码)
- javascript 的 12 个怪癖
- JavaScript 秘密花园
- JavaScript核心概念及实践 (PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者)
- 《JavaScript 模式》 “JavaScript patterns”中译本
- 命名函数表达式探秘 (注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份)
- 学用 JavaScript 设计模式 (开源中国)
- 深入理解JavaScript系列
- ECMAScript 6 入门 (作者:阮一峰)
- jQuery
- Node.js
- underscore.js
- backbone.js
- AngularJS
- Zepto.js
- Sea.js
- React.js
- CoffeeScript
- ExtJS
- Meteor
- Chrome扩展及应用开发
LaTeX
LISP
Lua
Perl
PHP
- PHP调试技术手册(PDF)
- XDebug 2中文手册(译) (CHM)
- PHP之道
- PHP 最佳实践
- PHP 开发者实践
- 深入理解PHP内核
- PHP扩展开发及内核应用
- CodeIgniter 用户指南
- Laravel4 中文文档
- Laravel 入门
- Symfony2中文文档 (未译完)
- Phalcon中文文档(翻译进行中)
- YiiBook几本Yii框架的在线教程
- 深入理解 Yii 2.0
- Yii 框架中文文檔
- 简单易懂的PHP魔法
- swoole文档及入门教程
- Composer 中文网
- Slim 中文文档
Prolog
Python
- 小白的Python教程
- 简明Python教程
- 零基础学Python
- 可爱的 Python
- Python 2.7 官方教程中文版
- Python 3.3 官方教程中文版
- 深入 Python 3
- PEP8 Python代码风格规范
- Google Python 风格指南 中文版
- Python入门教程 (PDF)
- Python的神奇方法指南
- 笨办法学 Python (PDF版下载)
- Django 1.5 文档中文版 正在翻译中
- Diango 1.7 文档中文版 正在翻译中,目前只翻译了目录
- Django 最佳实践
- Django搭建简易博客教程
- The Django Book 中文版
- web.py 0.3 新手指南
- Web.py Cookbook 简体中文版
- Dive Into Python 中文版
- Bottle 文档中文版 (需翻墙)
- Flask 文档中文版
- Jinja2 文档中文版
- Werkzeug 文档中文版
- Flask之旅
- Introduction to Tornado 中文翻译
- Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢 @shwley 联系了作者)
- Python 绘图库 matplotlib 官方指南中文翻译
- Scrapy 0.25 文档
- ThinkPython
- Python快速教程
- Python 正则表达式操作指南
- python初级教程:入门详解
- Python Cookbook 第3版 中文版
- Twisted 与异步编程入门
- TextGrocery 中文 API ( 基于svm算法的一个短文本分类 Python 库 )
- Requests: HTTP for Humans
- Pillow 中文文档
R
Ruby
- Ruby 风格指南
- Rails 风格指南
- 笨方法學 Ruby
- Ruby on Rails 指南
- Ruby on Rails 實戰聖經
- Ruby on Rails Tutorial 原书第 3 版 (本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 9.9 美元)
- 编写Ruby的C拓展
- Ruby 源码解读
Scala
- Scala课堂 (Twitter的Scala中文教程)
- Effective Scala(Twitter的Scala最佳实践的中文翻译)
- Scala指南
Scheme
Shell
Swift
from https://legacy.gitbook.com/book/uuie/practical-programming-books/details---------
关于 IM 工具
由于我们的好朋友 WYS 并不能够使用 Telegram,选了个 HipChat,和 Telegram 类似,但是社交性质更差一点,是给公司用的。注册链接
这是注册链接。最好微信还是加我一下 @CircuitCoder 刘晓义,万一 Hipchat 上不去了还找我有事呢?
关于快速赚钱
今天下午扯淡扯得太欢脱了,发现只说了快速赚钱的部分,没说不快速赚钱的部分,嘻嘻为了防止各位误解,在这里澄清一下。当时语境是说有快速赚钱的部分,也有不快速赚钱的部分。举例:
- NLP 自然语言处理
- CV (Computer Vision) 计算机视觉,曹老师的专业,包括人脸识别,光学文字识别,提取图片信息等等
- AI/ML 人工智能/机器学习,通常来说是上面那些服务的实现方法。很多你们可能觉得没法解决的问题都是用这个解决的,比如翻译,根据信息搜索图片,等等。比较好玩的地方在于一般学习出来的结果,人们都看不懂是怎么回事。
- 图像引擎 做游戏,做渲染,等等,研究怎么搞得快
当然,这些技术还可能被应用在其他一些科研学科上,比如现在有很多经济学家使用机器学习的方法研究经济现象,或者物理学家使用下面提到的 Python 语言进行计算。但是总归总,这也是很少数的一部分。
关于提到的真正的纯理论领域,CS 涉及的有:
- 编码学,密码学 如何以最高的硬件或者时间效率保存信息,以及如何安全的保存信息。
- 计算理论 什么东西可以算。举例:停机问题:不存在一个程序能够在有限时间内预测另一个程序能否在有限时间内结束(你已经能看到数学家的味道了)。
- PL/Compiler 这两个很近,一个是 Programming Language,研究编程语言的设计,一个是 Compiler,研究编译器的设计
- 算法以及数据结构 怎么算得快
具体可以看Wiki的介绍
所以总之,还是有不少方向的,下午的时候我可能说的比较绝对了。
关于一切App的开发,都属于软件工程学,也就是 Applied CS 最后的一层,只是 CS 很小的一部分。
选择领域
这里有一些关于研究领域的推荐软件工程学最简单,也最好上手,但是最后的结果类似 Handicraft。总之能够有一些挺好玩的事情。
人工智能 或者 机器学习 也是个好方面,因为现在算是学术风口,Google 开源了 TensorFlow,百度开源了 PaddlePaddle,都是做机器学习的,所以想要找国外的资料或者国内的资料都有。
Computer Vision 也是很好玩的,现在 ML 发展很快,之前很多的问题用 ML 重新做一次效果拔群,所以最近也是论文大爆发。曹老师是之前做这方面的,所以看各位能不能有幸活到她过完产假回来。
不推荐研究计算理论、编码学和算法。这里研究不是学习,而是指尝试做一些新成果,因为这些领域真的已经有好久好久没有更新了,大学在这些方面投入的资源也不多。当然你要是真的喜欢,另当别论,我并不是说这个就是比其他的无聊一些。
关于工程学
关于工程学多说一点,因为我做这个的,嘻嘻。现在说是开发 App,事实上指三类人:搞 Android 的,搞 iOS 的,搞 Web 的。最后一个指做网站的。Web 是最好上手的一个,因为它用的语言比较好学,比较好用,而且天生自带跨平台(是个智能手机都有浏览器)。选择编程语言
C++ 是个好语言,学了 C++ 基本学其他的语言都比较容易了,因为它既涉及了计算机的架构,也涉及了面向对象等较为先进的编程理念。这里会说一些挺好玩的其他的语言:- Java 纯面向对象语言,对于 C++ 的优势是能够跨平台运行,编程过程没有 C++ 那么痛苦,库很多很多很多,基本上工程里面想干啥都有造好的轮子,而且是 Android 上面多用的编程语言,最近跟着 Google 飞了一会。也是很老的语言了。
- Python 科研 & 工程用语言。Python 的优势也是库多,而且开发比 Java 快,并且自带跨平台。Python 出名出在它上面有一套类库叫 SciPy,图表打爆 PPT,符号运算打爆 Mathematica,并行运算打爆一般本科生手打的 C++ 代码,因此在科研界十分出名。Python 做 Web 开发也是很常用的。
- Javascript 上面提到的,用在 Web 上的主要语言。特点就是写起来爽,约束很少,并且现在还在很快的发展中,是一个很有活力的语言。最近忽然成为 Web 界大哥是因为 Node.js 的出现,解决了传统 C++ 做网站后端的并发问题(举例,服务器要读文件,那么代码的执行就要卡住。这时 C++ 写的程序只能等,Node.js 写的程序能够干别的事情)。
- Ruby 工程用语言,打着的旗号是对人十分友好,并且对它“有7种求1-100和的方法”十分自豪。由于一个在它之上建立的 Web 开发框架 Rails 十分的厉害,Ruby 现在基本靠 Rails 苟延残喘。
- Haskell 概念语言。之所以用概念语言是因为这个语言和上面那群腊鸡都不一样,这个语言是纯函数式的。上面那些语言都是指令式的,意思是都是一行一行执行。Haskell 的写法和数学更接近,定义一串函数的解析式,然后去直接求值。这个语言里没有指令的概念。
square :: Int -> Int square x = x * x
- Rust 一个新生的 C++
- Go 一个 Google 爸爸造的专门用来写 Web 服务器的语言,解决了 Node.js 解决的一部分问题。
一些书
基础
C++ 基本上算是以上大多数的基础。入门 C++ 今天提到了一本书叫做- C++ Primer Plus
- The C++ Standard Library - A Tutorial and Reference (C++标准库)
- Inside C++ Object Model (深入C++对象模型)
Java
- (完全无编程基础) Head First Java <- 大半本漫画书
- (有编程基础) Thinking in Java <- 这个作为入门书在业内毁誉参半,很多人认为对初学者太难
竞赛
如果各位希望做竞赛,或者希望能够对上面说的算法及数据结构
有一些了解,可以看这本书,大概谈到了如何解决一些常见的问题:- Introduction to Algorithms (算法导论,很有名)
其他
如果各位想学学自己做一个编程语言,有一本书,俗称龙书,引为业界传奇,可以看一看。网站
这些网站很厉害:- Codecademy https://www.codecademy.com 可以在上面学一些编程语言或者涉及的工具,比如 Java,Ruby on Rails, Javascript, Python, Git 等等
- Codeforces https://codeforces.com 今天说的那个打比赛的网站。对于各位可能会比较难,而且是全英文的。
- Github https://github.com 全球最大同性交友平台(嘻嘻),其实是开源代码平台。开源至一群人把源代码在特定许可证下公开的行为。Github 上有很多高手做的项目。
- Github explore http://github.com/explore 这里会实时刷新 Github 上面最受人关注的项目,可以作为刷 Github 的入口。
- HackerNews 小型 Reddit,整天发一些挺好玩的关于技术圈的新闻。这个最好在手机上下个阅读器,因为原版网站太难看了。
工具
加入高等研究实验室可能会需要对以下工具有所了解。Git
直译饭桶,是管理源代码的工具,扩展开来可以用来管理大多数以文件为基础的多人合作项目,提供的功能是能够让多人同时修改一个项目内的文件,标记各自的修改,可以查询任意一个时刻的历史状态,并且能够很简单的合并多人做出的更改。Github 是以 Git 为基础的。实验室有一个内部的 Git 服务器在 git.thsitg.org,可以放一些私人项目,因为 Github 的私人项目是要交钱的。
如果你在 Google 上看到了以下网站,基本可以认为问题已经解决了:
- Stackoverflow 以及 StackExchange 有关的一票子网站: 理工专业向百度知道
- MDN: 这个我在做 Web 开发的时候经常遇到
一个拿手的编辑器
无论如何,进了实验室,不是写代码,就是做设计。有一个拿手的编辑器,可以大大提高效率。推荐的代码编辑器有:- Atom: Github 爸爸搞得,十分的好用
- Sublime: Atom 抄袭的目标,最近有点颓
- Visual Studio: 写一些和 Windows 系统有关的代码的话,是无敌的
- Vim: 自虐以及服务器管理用,是我的编辑器,嘻嘻
- Sketch: 做 App 和网站设计十分的方便,就是有点贵,而且只能在 Mac 上用。我之前买了一个,可以找我要序列号
- Adobe Illustrator: 优于 Photoshop 主要在于矢量以及对 App/Web 设计的一些优化。
一款拿手的游戏 (可选)
嘻嘻,在我们屋子里可以经常看到这些游戏:- Starcraft II
- Overwatch
- Protal 2
- Osu
No comments:
Post a Comment