附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读书籍书单大全:

书单导航页(点击右侧 极客侠栈 即可打开个人博客):极客侠栈
①【Java】学习之路吐血整理技术书从入门到进阶最全50+本(珍藏版):
②【算法数据结构+acm】从入门到进阶吐血整理书单50+本(珍藏版):
③【数据库】从入门到进阶必读18本技术书籍网盘吐血整理网盘(珍藏版):
④【Web前端】从HTML到JS到AJAX到HTTP从框架到全栈帮你走更少弯路(珍藏版):   
⑤【python】书最全已整理好(从入门到进阶)(珍藏版):

⑥【机器学习】+python整理技术书(从入门到进阶已经整理好)(珍藏版):
⑦【C语言】推荐书籍从入门到进阶带你走上大牛之路(珍藏版):
⑧【安卓】入门到进阶推荐书籍整理pdf书单整理(珍藏版):

⑨【架构师】之路史诗级必读书单吐血整理四个维度系列80+本书(珍藏版):

⑩【C++】吐血整理推荐书单从入门到进阶成神之路100+本(珍藏):

现在的开发工作要求我们能够快速掌握一门编程语言。怎样才能快速掌握一门编程语言呢?一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。
第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且学习效率不高。因为没有实际问题驱动的语言学习通常是不牢固不深入的。有的人学着学着成了语言专家,反而忘了自己原本是要解决问题来的。第一种路子也有问题,在对于这种语言的脾气秉性还没有了解的情况下大刀阔斧地拼凑代码,写出来的东西肯定不入流。说穿新鞋走老路,新瓶装旧酒,那都是小问题,真正严重的是这样的程序员可以在短时间内堆积大量充满缺陷的垃圾代码。

由于通常开发阶段的测试完备程度有限,这些垃圾代码往往能通过这个阶段,从而潜伏下来,在后期成为整个项目的毒瘤,反反复复让后来的维护者陷入西西弗斯困境。
实际上语言学习有一定规律可循,对于已经掌握一门语言的开发者来说,对于一般的语言,完全可以以最快的速度,在几天至一周之内掌握其最常用的50%,而且保证路子基本正宗,没有出偏的弊病。其实真正写程序不怕完全不会,最怕一知半解的去攒解决方案。
因为你完全不会,就自然会去认真查书学习,如果学习能力好的话,写出来的代码质量不会差。而一知半解,自己动手土法炼钢,那搞出来的基本上都是废铜烂铁。比如错误处理和序列化,很多人不去了解“正路子”,而是凭借自己的一知半解去攒野路子,这是最危险的。

因此,即使时间再紧张,这些内容也是必须首先完整了解一遍的。掌握这些内容之后进入实际开发,即使有问题,也基本不会伤及项目大体。而开发者本人则可以安步当车,慢慢在实践中提高自己。
         以下列出一个学习提纲,主要针对的是有经验的人,初学者不合适。这个提纲只能用于一般的庸俗编程语言学习,目前在流行编程语言排行榜上排前20的基本上都是庸俗语言。如果你要学的是LISP之类非庸俗语言,或是某个软件中的二次开发语言,这里的建议未必合适。还是那句话,仅供参考。
       1. 首先了解该语言的基本数据类型,基本语法和主要语言构造,主要数学运算符和print函数的使用,达到能够写谭浩强程序设计书课后数学习题的程度;
        2. 其次掌握数组和其他集合类的使用,有基础的话可以理解一下泛型,如果理解不了也问题不大,后面可以补;
        3. 简单字符串处理。所谓简单,就是Regex和Parser以下的内容,什么查找替换,截断去字串之类的。不过这个阶段有一个难点,就是字符编码问题。如果理解不了,可以先跳过,否则的话最好在这时候把这个问题搞定,免留后患;
        4. 基本面向对象或者函数式编程的特征,无非是什么继承、多态、Lambda函数之类的,如果有经验的话很快就明白了;
        5. 异常、错误处理、断言、日志和调试支持,对单元测试的支持。你不一定要用TDD,但是在这个时候应该掌握在这个语言里做TDD的基本技能;
        6. 程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制,这是初学时的一个难点,因为大部分书都不太注意介绍这个极为重要的内容;
        7. 基本输入输出和文件处理,输入输出流类的组织,这通常是比较繁琐的一部分,可以提纲挈领学一下,搞清楚概念,用到的时候查就是了。到这个阶段可以写大部分控制台应用了;
        8. 该语言如何进行callback方法调用,如何支持事件驱动编程模型。在现代编程环境下,这个问题是涉及开发思想的一个核心问题,几乎每种语言在这里都会用足功夫,.NET的delegate,Java的anonymous inner class,Java 7的closure,C++OX的 tr1::function/bind,五花八门。如果能彻底理解这个问题,不但程序就不至于写得太走样,而且对该语言的设计思路也能有比较好的认识林琪琦的微博http://t.qq.com/linqiqi259

9. 如果有必要,可在这时研究regex和XML处理问题,如无必要可跳过;
        10. 序列化和反序列化,掌握一下缺省的机制就可以了;
        11. 如果必要,可了解一下线程、并发和异步调用机制,主要是为了读懂别人的代码,如果自己要写这类代码,必须专门花时间严肃认真系统地学习,严禁半桶水上阵;
         12. 动态编程,反射和元数据编程,数据和程序之间的相互转化机制,运行时编译和执行的机制,有抱负的开发者在这块可以多下些功夫,能够使你对语言的认识高出一个层面;
        13. 如果有必要,可研究一下该语言对于泛型的支持,不必花太多时间,只要能使用现成的泛型集合和泛型函数就可以了,可在以后闲暇时抽时间系统学习。需要注意的是,泛型技术跟多线程技术一样,用不好就成为万恶之源,必须系统学习,谨慎使用,否则不如不学不用。

编程达人教你如何快速掌握一门编程语言附技术书阅读方法论相关推荐

  1. 编程达人教你如何快速掌握一门编程语言

    现在的开发工作要求我们能够快速掌握一门编程语言.怎样才能快速掌握一门编程语言呢?一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习:其二是花很多时间完整地把整个 ...

  2. 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!

    程序员要精通一门语言,还是要掌握多门语言? 对于这个问题,公说公有理,婆说婆有理. 技术更新太快,精通一门编程语言已经实属不易,又怎么好意思说精通多门语言呢? 不过呢,当你精通一门语言同时,涉猎一下其 ...

  3. Forth Week :快速上手一门编程语言

    快速上手一门编程语言 概述 图灵完备性语言 识别类型 学习路径 一 掌握该语言的背景 - 2h 二 掌握该语言的基本程序逻辑语法 - 1h 1.顺序结构 2.分支结构 1)if语句 2)switch ...

  4. 如何学习编程、一门编程语言怎么算入门、快速掌握一门编程语言

    ninechapter 美帝代码搬运工,资深面试官,微信公众号-九章算法(ninechapter) 当你提出这个问题的时候,总有人会告诉你,你应该学习这个,学习那个,亦或者是刷题根本没用,你应该去做项 ...

  5. 如何快速学习一门编程语言

    之前自己想学一门语言,总是上b站来找一门教学视频从头到尾来看.这种学习方式属于培训班式 的学习,学习的虽然比较系统,但是到最后自己掌握的知识往往是做项目时候所用到的那些,其他的回想起来可能也只是记住一 ...

  6. 如何学好一门编程语言或技术?

    2019独角兽企业重金招聘Python工程师标准>>> 相信大家都知道,在看一本书的时候,通过该书的目录和索引能够很快的了解本书内容和找到我们需要的页数,因为一本专业的书本往往记录的 ...

  7. 如何快速掌握一门新的技术

    本文来自代码GG陆晓明的公众号"代码GG之家" 网络时代,获取信息的渠道变的更多,也更便捷.然而在汪洋如海的知识里,如何能找到自己的方向,这确实需要一些技巧. 新的技术,都不会是凭 ...

  8. 怎样才能学好一门编程语言?要怎样去学习才算成功?成为一名合格的程序员

    截止到目前为止,编程开发语言已经有很多种,而每个程序员根据自己的学习能力不同,掌握一到几种不同的语言. 学习目的 每个人学习一门编程语言,都是有自己的目的.比如有人想写一个App,有人想写一个小程序, ...

  9. 干货|怎样在1小时内学会任何一门编程语言? 如Python/Go/JAVA/C++

    学习一门编程语言是有套路的,套路是可以传承的 今天向大家介绍1小时内掌握一门编程语言的方法 此刻挨踢哥仿佛听到达内蓝翔技校挖土机的抗议 这是一场将绳命别在裤腰带上的分享 50分钟了解语言特性 天下编程 ...

最新文章

  1. FCN网络的训练——以燃气表数字识别为例
  2. 节点、支路、回路的概念
  3. python基础教程:Counter类
  4. react全局状态管理_react 状态管理的复杂度来源
  5. linux 命令全集
  6. Python中的枚举(enumerate)
  7. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
  8. 保活 进程唤醒_Android 8.0以上系统应用如何保活
  9. [WeChart]微信小程序抓包步骤
  10. 计算机机房灭火器种类,常见灭火器的种类、适用范围以及使用方法
  11. 电脑PE系统无法进入,完整详细解决方案
  12. vb6调用webservice
  13. 为什么要将数据序列化?
  14. 吉米_王:浅谈“并行计算”
  15. 用java编写租车系统代码_java实现租车系统
  16. (转载)libvirt 问题解决记录集
  17. eyou隐藏升级弹窗、云插件库、接口配置、功能开关【按需显示插件】
  18. 暖通工程师职称论文如何发表
  19. 软件测试初级测试之测试基础
  20. 基于php农产品在线销售网站

热门文章

  1. Android反编译工具与反编译步骤及常见问题
  2. attempted to return null from a method with a primitive return type (int).
  3. openGL参数曲面----二次贝塞尔曲线
  4. /Users/apple/.zshrc:2: command not found: i 终端报错解决方法
  5. lemonldap java_Java LDAP操作
  6. 响铃:社交型流量平台,为何线上平台都扎堆去线下造节
  7. 大疆FPGA/芯片开发工程师(A卷、B卷)笔试题详解
  8. 高级Java程序员技术栈
  9. T4 如何去掉图片背景色变成透明
  10. C++中换行endl和\n的区别