学习资料

0、资源导航

   菜鸟教程:http://www.runoob.com/(runoob 为 Running Noob 的缩写,意为:奔跑吧!菜鸟。)

   编程狂人:http://www.tuicool.com/mags

   伯乐在线资源导航:http://hao.jobbole.com/

   技术的正宗与野路子:http://zhangtielei.com/posts/blog-programmer-learn.html

   基础知识整理:http://dongxicheng.org/knowledges-carding/

   free-programming-books:https://github.com/vhf/free-programming-books/blob/master/free-programming-books-zh.md

   free-programming-books-zh:https://github.com/vhf/free-programming-books/blob/master/free-programming-books-zh.md

1、前端

《HTML5与CSS3基础教程》:http://pan.baidu.com/s/1nvATyZ3

   HTML5与CSS3基础教程代码示例:http://pan.baidu.com/s/1dFaBSzB

《如何正确学习JavaScript》:http://www.shejidaren.com/how-to-learn-javascript.html

《JavaScript基础教程》:http://pan.baidu.com/s/1eSBhEWM

   JavaScript基础教程代码示例:http://pan.baidu.com/s/1c14PWre

《JavaScript高级程序设计》:http://pan.baidu.com/s/1c2mPrcW

   JavaScript高级程序设计代码示例:http://pan.baidu.com/s/1pLrm6t9

《css3专业网页开发指南》:http://yuedu.baidu.com/ebook/37eb1fc06bd97f192379e9bb.html

《锋利的jQuery》:http://pan.baidu.com/s/1slSwqmT

   锋利的jQuery代码示例:http://pan.baidu.com/s/1skSLYtJ

《Bootstrap教程》:http://www.runoob.com/bootstrap/bootstrap-tutorial.html

《Android第一行代码》:http://pan.baidu.com/s/1ge6LKyR

《高性能网站建设指南》:http://pan.baidu.com/s/1skSgehZ

《高性能网站建设进阶指南》:http://pan.baidu.com/s/1skGAH8h

2、后端

《啊哈C!》:http://pan.baidu.com/s/1o7YrKlO

《C语言点滴》:http://zhaoyan.website/xinzhi/cbook/book.php

《Java编程规范》:http://pan.baidu.com/s/1nvnSVyT

《Java核心技术-基础知识》:http://pan.baidu.com/s/1cqXhIQ

《Java核心技术-高级特征》:http://pan.baidu.com/s/1cvaTlk

《Java编程思想》:http://pan.baidu.com/s/1cpBmmq

《Effective Java》:http://pan.baidu.com/s/1i5wi6Nz

《深入分析Java Web技术内幕》:http://pan.baidu.com/s/1mhOm49U

《J2EE设计开发编程指南》:http://pan.baidu.com/s/1o8S2wT8

《Java并发编程》:http://pan.baidu.com/s/1dF5KgRf

《JAVA网络编程》:http://pan.baidu.com/s/1kUVaiBt

《深入剖析Tomcat》:http://pan.baidu.com/s/1miTmyYs

《Scala语言规范》:http://pan.baidu.com/s/1hrLCNv2

《大型网站技术架构:核心原理与案例分析》:https://pan.baidu.com/s/1i4KUNLN

3、操作系统、计算机网络

《鸟哥的Linux私房菜-基础学习篇》:http://cn.linux.vbird.org/linux_basic/linux_basic.php

《鸟哥的Linux私房菜-服务器架设篇》:http://cn.linux.vbird.org/linux_server/

《sed与awk》:http://pan.baidu.com/s/1sltky1v

《计算机网络导论》:http://www.dwz.cn/sGVVr

《HTTP协议(RFC2616)中文版》:http://pan.baidu.com/s/1pKQioSN

《HTTP权威指南》:http://pan.baidu.com/s/1kVjTk15

4、大数据

《Head First SQL》:http://pan.baidu.com/s/1nu6930P

《从实践中学习Oracle SQL》:http://pan.baidu.com/s/1hs0otus

《Oracle Database 11g PLSQL编程实战》:http://pan.baidu.com/s/1pLTMqFL

《数据库系统概念》:http://pan.baidu.com/s/1hsiEaVE

《数据仓库》:https://pan.baidu.com/s/1eSms3h4

《数据仓库生命周期工具箱》:https://pan.baidu.com/s/1sli8m4H

《Hadoop权威指南》:http://pan.baidu.com/s/1i4Tcsbr

《Hive编程指南》:http://pan.baidu.com/s/1dE53Uql

《Hadoop技术内幕-HDFS》:http://pan.baidu.com/s/1i4OsAdZ

《Hadoop技术内幕-MapReduce》:http://pan.baidu.com/s/1nvGZgHb

《Learning Apache Kafka》:http://pan.baidu.com/s/1mh9tzYS

《Spark快速数据处理》:http://pan.baidu.com/s/1kU7t6C3

《Learning Spark》:http://pan.baidu.com/s/1o7KKC4M

《Getting Started With Storm》:http://pan.baidu.com/s/1mioASkg

5、数据结构、算法、设计模式

《XML教程》:http://www.runoob.com/xml/xml-tutorial.html

《JSON教程》:http://www.runoob.com/json/json-tutorial.html

《啊哈!算法》:http://pan.baidu.com/s/1c10MkCw

《数据结构与算法分析-Java语言描述》:http://pan.baidu.com/s/1geETo2Z

《Head First设计模式》:http://pan.baidu.com/s/1skV3QlJ

9、后记

      编程语言只是工具罢了,纯粹的工具。学会一门语言并不像你想的那么难,看看它的简明教程和语法,再看看它的例子,我相信你可以学会这门语言。C++虽然是一门庞大的语言,但绝不是现在人们口中谈虎色变的东西,它是很靠谱的编程语言,无论是性能、库、还是IDE,都是齐全的。

      也许你会问,现在不都是说用Vim、Notepad++、Emacs什么的吗,Visual Studio是不是俗气了些?那是初学者都不理会的东西吧?IDE什么的别开玩笑了,我又不是大一的小孩。

      也许你会问,Linux和Mac才真正是酷的吧?现在只有初级用户才用Windows吧?也许你会问很多很多诸如此类、被误导的问题,原因是现在的编程语言和编程世界被神化了。本来朴质的工具,被渲染上神秘主义的面纱,让众人觉得那些无关痛痒的东西是我们需要的。

      我可以负责任地告诉你,我的想法是:编程语言是什么都无所谓,编程工具是什么也都无所谓,编程所在系统是什么根本没关系;真正有用的是算法和设计模式。算法和设计模式才是编程的根本。只要明白这两个,其他都是浮云般的存在。

      算法和设计模式是独立于上述的一切而存在的。无论用C++还是Python,或者用JavaScript,算法该咋实现还咋实现,它是程序能力和效率的保证;而设计模式也是同样的道理,无论用Linux,还是GitHub,只要明白设计模式,都能设计出很规范的、相对很鲁棒、有利于后续开发的程序。

      大学中说:“事有始终,物有本末,知其前后,则近道矣”。然而,现在人在给初学者意见、甚至是自己在学习的时候,不但不从根本的算法和设计模式入手,反而扯出一堆皮毛的东西,还形成了阵营,相互挖苦和嘲笑,这本身不是很奇怪的么?让那些本来应该得到重视的智慧被无视,让那些无关痛痒的技巧被学习,从古至今像这样而成功的人,我没有听说过。

      如果你是初学者,现在迷茫于或者迷惑于这些建议的话,我劝你静下心来,不要被这个时代的喧嚣和浮躁所感染。你需要做下面这些事情。

      1)把基础的计算机结构学好(计算机组成原理、体系结构)。

      2)把数据结构学好,也要掌握一些比较高级的数据结构,每种数据结构自己都动手去做一下,形成一个自己的数据结构小类库,以后对你绝对会有用。

      3)把操作系统的基本知识学好,不是Linux,也不是Windows,是那些并发、调度、缓存机制、文件系统等算法性的东西。这些东西在以后绝对会用得上,并不是在你实现操作系统的时候,而是在你写一些稍底层的结构的时候。

      4)算法这东西可以说是无穷无尽的。首先把基础算法弄明白,比如动态规划、贪婪、分支限界此类的经典算法,然后随着兴趣去学更多有意思有用的算法。如果喜欢智能、自然语言处理,可以去尝试看看机器学习的书,然后动手实现一个机器学习小类库。这个类库未必用,也未必能让别人用,写它的最重要的意义在于理解那些算法。

      5)致力于设计模式。算法是超脱的,是理性的。要让计算机执行这个算法,必须化为程序,那就必然用到编程。无论是什么语言,如果不会设计模式,即便你对这门语言再熟悉,也不可能设计出优秀的程序。所以设计模式在程序设计的时候是必须的,也是很重要的。

      6)蔑视那些沉浸在神秘主义编程论里的人吧!在明白了上面那些后,你自己就可以实现编程语言、编程工具甚至是编程用到的操作系统。然后告诉他们:“too young,too naïve”。

      找到你感兴趣的领域,在这个领域不断深入,并最终成为这个领域的专家。至于这个领域是什么,可大可小,可方可圆。我曾经亲眼见过一个人用Excel软件设计出了令人目眩的界面。虽然他不会什么C语言和算法,但是我依然相信他是专家。正所谓“领域万变,但精神唯一!”。

      ——摘自《C语言点滴》

posted @ 2016-10-21 23:11  beidoufeng  阅读(295)  评论(0编辑  收藏  举报