易学笔记--程序猿踩过的十个最典型的坑

  • 程序猿踩过的十个最典型的坑

  1. 遇到问题只会百度:百度是大多数码农解决问题的唯一途径(当然之前还有coogle),百度很多时候确实能帮的上大忙,但是有时也无能为力。这是因为百度中答案只是只言片语,没有前因后果,答案对应的问题可能和你的问题发生的背景不一样,所以很多时候还是要靠猜的。就算有段完整的代码让你拷贝过来,结果编译时一大堆错误,这个坑相信很多人都遇过

  2. 天天重复复制粘贴:复制黏贴是个好东西,看怎么用而已,滥用的结果就是一大堆重复的代码。有项目或者新功能要开发,不管三七二十一,先把原来似曾相识的代码复制过来再慢慢修改,这就是不懂得抽象和不懂得总结的结果,这个坑在“原始码农”阶段尤其突出。

  3. 没时间学习新东西:能正常上下班的码农不是真正的码农,每天都忙于项目开发,哪有时间接触新的东西,能按时交项目就不错了。对,老板也是这个意思,老板只需要结果,不需要过程,更加不管你用什么技术实现的。长年累月下去,码农自己能掌握的技术就是项目中所涉及的技术了,而且是自己负责的那一部分,这样的结果就是知识固化,只会打理自己的“一亩三分地 ”

  4. 技术更新快跟不上:这个在技术界是非常普遍的现象,当你用struct的时候,springMVC出现了;当你用springMVC的时候,springBoot出现了;当你用springBoot的时候,springCloud出现了。软件开发这个行业和医生、律师或者教师行业完全不一样,后者是知识体系相对稳定,个人是否优异只在于经验的丰富程度,而软件行业的知识体系变化很快,想只掌握其中一门技术长久混下去似乎是不太可能的

  5. 懒于编写文档总结:这个是非常多码农的通病,宁愿码一万行代码,也不愿意写一百个字文档。学过软件工程的人都知道,软件开发的生命周期是先有设计文档后才编写代码的,这里面的原因就是文字和代码表现形式 不一样,文字可通过多种方式表达意思以及容易修改,而代码具有特定的语法以及不容易修改,一旦完成的代码想重头再来那是非常困难的事情。文档对项目的总结和跟踪是非常重要的,要用文档来指导代码开发,但这恰恰是非常多程序猿忽略的一个重要环节。

  6. 没自己的知识体系:由于没有总结和归类的习惯,一个项目完成后除了代码还是代码,这肯定形成不了自己的知识体系。知识体系指的是宏观方面对技术的把控和认识程度,而代码只是微观方面技术实现手段而已。“大数据”这三个字连楼下卖早餐的阿姨都知道,但是对它能说出个所以然就要靠自己的大数据理解的知识体系了。

  7. 遇个问题折腾半天:这个坑是最浪费时间和影响效率的,尤其对微小创业型公司非常致命。一个小问题对于有经验善于总结的程序猿来说是3分钟就能解决的事情,但是对新手来说或者是没有总结习惯的老手来说那可能就是半天或者两三天的大问题,特别对一个团队而言,如果每个人都为这种那种小问题折腾,这个效率可想而知。假如一个程序猿五百块成本一天,浪费二天就是一千块,一个月遇到三次这种情况就是三千块,再假如团队中十个人这种情况,那成本就是三万了。这看似是小问题,实际上是关乎公司存亡的大问题

  8. 看书只看到第一页:不可否认程序猿是非常努力的一个群体,买书学习是必不可少的,某天心血来潮买了一本新的技术书,蛮有信心地要大干一场,结果书是买回来了,由于各种原因(地表最强理由就是我很忙半年过去了书还是停留在第一页,不仅仅是浪费了钱,也是浪费了书的作者的一番用苦良心。

  9. 理论太多看不下去:有些书籍偏理论,有些书籍偏实践,选书也是一种技术活。某些书说了一大堆理论让你知道很多高大上的概念,但是最后依然无从下手,应了那句话“道理懂了一大堆,依然过不好这一生”。技术是要落地才能实现其价值的,特别是对于程序猿而言,无法落地的书籍本人一般不看,运行代码一遍胜过千言万语,只有经过自己手调试的代码才算是自己的,因为这样印象才会深刻。

  10. 入个门怎么这么难:凭着程序猿高智商的头脑,如果一心一意想学某个技术确实不会是太难的事情。但是现实中,很多事情可能会打断你的计划,比如赶项目、折腾死人的BUG 、陪老板开会、陪业务测试、系统出故障等等,这些事情会偷偷地浪费了你的时间,回到家只想睡觉或者刷微信,最后看书的事情就无奈地被抛开了。

  • 针对这些坑,我想用“易学笔记 ”去解决

  1. “易学笔记 ”是我最近两年在工作之余通过以笔记的形式记录各个领域的知识,从而搭建起来的知识体系。“易学笔记 ”以各个技术领域为单元,每个单元详细介绍各个知识点,让读者按着知识点由浅到深学习,强调代码的落地实现,结合少量的理论知识帮助理解。

  2. “易"的体现-->技术点以标题为导向与绝大多数的书籍不一样,易学笔记以标题为导向,每一个标题就是一个知识点,让读者从标题中就定位想要的内容,而不需要再慢慢看内容去查找。在实际开发中往往是很具体的某个点的问题,这就需要快速方便地定位答案,而且不要受其它无关的干扰 。比如在python教程中“第4章:介绍python对象类型/4.1 python的核心数据类型/4.2 字符串/4.2.1 获取操作” 和“第4章:介绍python对象类型/4.1 python的核心数据类型/4.2 字符串/4.2.2 字符串合并和重复操作”,从标题很容易看出,前者是对字符串的获取操作,而后者是对字符串重复多次操作。

  3. “易"的体现-->超链接关联技术点与绝大多数的书籍不一样,易学笔记在某一个笔记中如果用到了其它笔记的某个技术点,则把该技术点的笔记链接黏贴到本笔记。比如在Maven教程中:“第9章:使用Nexus创建私服/9.6 部署构件到Nexus/9.6.1 使用Maven部署构件到Nexus”说明如何将本地Jar包上传到私有仓库的,在其它笔记多次引用本笔记进行构建上传说明。这样做有几个好处:

    1. 让读者方便地找到关联的技术点

    2. 让读者减少阅读重复内容,只需弄懂一个笔记即可,就好像代码中的公共方法一样,只在一个地方声明多个地方引用

  4. “易"的体现-->主题归类:易学笔记主导同一个主题的内容应该归类在一起,一来是方便阅读,二来是让读者尽量全面掌握该主题内容,三来让读者“知根知底 ”(这个主题的内容就全部在这里了)

  5. “易"的体现-->强调先后:易学笔记主导先铺垫后展开的思路,比如先环境安装、概念说明,再到后面的代码运行、概念运用等

  6. “易"的体现-->大白话概念说明:这个是从人的认知上说的,遵守先告诉读者这个是什么,然后再告诉读者怎么用。比如,对于Java Bean的概念,很多书籍都没说清楚,一来就说Java Bean怎么用,让很多读者不知所措

  7. “易"的体现--> 大量实例本人一直推崇代码一定要落地,所以在“易学笔记”中会给出大量的实例,而且实例就在当前标题下,直接点击即可下载,里面的实例都是经过我本人运行通过后才放进去的。除外,有些实例是命令行,直接复制黏贴即可运行,这样做的目的就是手把手教你运行代码。

  8. “易"的体现-->容易搜索: 易学笔记遵守解决问题的常规思路,搜索是解决问题最快的方法。易学笔记提供的文档都允许文字搜索和定位,不像某些PDF或者视频没方法提供搜索。

  9. “易"的体现-->可当参考书:易学笔记所有主题教程涉及的知识点尽量大而全,目的也是让读者在遇到问题的时提供参考的解决方案,百度并不一定是唯一的解决途径

  10. “易"的体现-->在线交流:对于易学笔记的读者可在线与本人进行技术交流,指出笔记中的不足,技术人嘛,一起学习一起进步。

  • 同为程序猿的你将得到什么?

  1. 易学笔记为你提供一份详细的热门领域的学习笔记,协助你快速入门

  2. 易学笔记让你比直接看书快几倍的速度获取新技能,而且学习效果会更好

  3. 易学笔记可当做参考书积累自己的知识体系,形成自己的“小百度”知识库

  4. 易学笔记帮助你形成分步骤、细化知识点的思维同时养成做笔记的习惯

  5. 易学笔记帮助你短时间内技能提升,实现升职加薪以及高薪跳槽

  • 本人近期将会分享的笔记有

  1. 易学笔记--从0开始学JAVA(个人纯手工笔记共享 免费!免费!免费!)--比直接看书快N倍的速度掌握知识点--总共19章(已发布)

  2. 易学笔记--Maven教程:目前绝大多数Java开发框架的基础(已共享)

  3. 易学笔记-python语言:当前排名第4的开发语言,机器学习必须要懂的(已共享)

  4. 易学笔记-go语言:coogle超级账本(区块链技术)项目就是采用go语言

  5. 易学笔记-Linux命令:所有基于Linux操作系统项目开发的基础

  6. 易学笔记-docker容器:当前非常火的虚拟技术,很多公司的旧系统都计划往docker容器迁移

  7. 易学笔记-Servlet和JSP:最原始的HTTP请求架构,了解它有助于后面的spring架构的学习

  8. 易学笔记-spring入门:spring是springboot/springcloud的基础,必须掌握的Java框架

  9. 易学笔记-springCloud:非常火爆的微服务架构

  10. 易学笔记-系统分析师考试:每年5月系统分析师考试学习笔记,可以以本笔记为主,官方教材为辅快速学习掌握相关知识点

  • 本人近半年将会分享的笔记

  1. 易学笔记-算法:不容置疑,算法是所有软件开发的基础

  2. 易学笔记-TCP/IP通信:不容置疑,通讯是所有分布式系统、网络编程的基础

  3. 易学笔记-Redis内存存储:非常火爆的内存数据库

  4. 易学笔记-MongoDB:非常火爆非关系型数据库

  5. 易学笔记-Mysql:非常流行的关系型数据

  6. 易学笔记-Nginx:非常火爆的软负载中间件

  7. 易学笔记-缓存机制:分布式缓存是如何设计的

  8. 易学笔记-Python爬虫:Python语言在数据获取方面的应用

  9. 易学笔记-大数据:Hadoop/HBase/hlive等

  10. 易学笔记-人工智能:机器学习/深入学习/推荐系统等

  11. 易学笔记-区块链:coogle超级账本项目       


猜你喜欢

转载自blog.51cto.com/12074015/2330874