关于程序员:作为程序员我们应当如何去学习

9次阅读

共计 3868 个字符,预计需要花费 10 分钟才能阅读完成。

前言  

  每个人想去学习一门本事,必定须要用卓有成效的办法,因为不失当的办法,往往会事倍功半,即便你费尽心思地致力。
  
  记得我还在高中期间,有个很要好的同桌,他那时候十分勤奋好学,晨读来得都是最早而且十分踊跃地朗读诗词,然而他的语文诗词还是记错很多,导致问题总是不现实。不单单是语文的诗词,数学也是一塌糊涂,公式和定理没用对中央,这些是因为他没致力很搪塞地学习吗?并不是,只是因为他并没找到适合的学习办法。作为他的同桌,为了坚固咱们之间的友情,我将本人的学习思路教给了他,让他通晓了 学习并非变化无穷、死记硬背,要抓住要领,踊跃实际 ,起初他问题一路低落,考上了他现实的大学。
  
  在 IT 行业,技术更新迭代,作为程序员,必定都会面临常常要学习新技术的情景,以放弃本人的技术水平,能给老板和需求方一个称心的交付。所以,咱们不停地在度娘里寻找答案,浏览技术文章,而后解决本人当下遇到的技术 bug 问题;咱们为了满足老板 / 需求方 / 产品经理 / 下级的要求,去疾速学习一门新语言 / 新技术 / 新框架;咱们为了能更好地实现需要、实现我的项目,致力扭转着本人的噤若寒蝉,学习着如何跟共事、领导沟通,致力让本人变得健谈起来。但是否有认真地想过,本人解决技术 bug 问题有没安宁下来思考过当前怎么防止再次出现相似问题,有没记功笔记?本人在学习新语言 / 新技术 / 新框架的时候,有没最终真正去做过我的项目,造过轮子?本人在学习沟通技巧的时候,是否有克服缓和的情绪,语言是否连贯,要害时候是否能做到不支支吾吾?
  
  白驹过隙,人生是很快的,一年五年十年后,他人做程序员财务自在了,做架构师了,但本人还在亲自写代码,为什么会这样?
  
  其实程序员的路线,是一条学习之路,” 活到老,学到老“,除非你转行或者家里有矿,不然把握高效率、卓有成效的学习办法,至关重要,这篇文章给大家列明了学习的思路,带刚入行或工作逐步迷茫的人指明一些思路。

学哪些

计算机基础知识

   目前的计算机编程语言和技术框架堪称百花齐放,百家争鸣,让人目迷五色。但 九层之台,起于累土,不要被新工具或者中间件迷住双眼,让本人迷失其中,什么都学习,最终全都没学好。基础知识是所有技术的基石,在将来很长的工夫都不会变动,应该破费足够的工夫坚固根底。
  
  以数据结构和算法为例,大家浏览一下 Java 的 BitSet 的源码,外面有大量的移位操作,移位运算把握的好,看这份源码就没问题。Java 同步工具类 AQS 用到了双向链表,链表常识不过关,必定搞不懂它的原理。互联网大厂都喜爱考算法,为了通过面试也要精通算法。
  

1、以 python 爬虫工程师应该把握的常识为例,按重要水平排出六个梯度:

  • 第一梯度:数据结构和算法、计算机组成原理、网络通信原理;
  • 第二梯度:python 根底;
  • 第三梯度:爬虫框架(scrapy、request 等框架);
  • 第四梯度:结构化数据库(MySQL)、缓存数据库(mongoDB/Redis)、音讯队列(RabbitMQ/RocketMQ/Kafka);
  • 第五梯度:设计模式、并发解决、数据处理框架(numpy 等);
  • 第六梯度:容器化、大数据、AI、区块链等等前沿技术实践。

2、以 Java 工程师应该把握的常识为例,按重要水平排出六个梯度:

  • 第一梯度:数据结构和算法、计算机组成原理、网络通信原理、操作系统原理;
  • 第二梯度:Java 根底、JVM 内存模型和 GC 算法、JVM 性能调优、JDK 工具、设计模式;
  • 第三梯度:Spring 系列、Mybatis、Dubbo 等支流框架的使用和原理;
  • 第四梯度:MySQL(含 SQL 编程)、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper 等数据库或者中间件的使用和原理;
  • 第五梯度:CAP 实践、BASE 实践、Paxos 和 Raft 算法等其余分布式实践;
  • 第六梯度:容器化、大数据、AI、区块链等等前沿技术实践。

  这里梯度举了 2 种语言里一些支流框架和学习内容,其实其余语言也是类似,能够类比带入其中,失常入行要到第二梯度,稳固找工作是第三梯度,要深刻学习成为架构师等级起码是第五梯度,第六梯度看集体是否学有余力,可持续学习。

知识面

  大多数公司招聘并无对知识面状况进行限定,只须要该程序员岗位须要的特定技能、学历的门槛,但本人所学的知识面,往往在面试期间会体现出程序员的广度和深度。
  
  如何变得更广更深呢?须要咱们 开掘本人心田真正的趣味点,带着好奇心去学习。一段时间里,我看到有人问我:“你的趣味到底在哪里?”我笑而不语,我总是答道:“趣味在网络,在我青睐的游戏外面。”同样的,我青睐着学技术,没错就是学习技术这个过程,从 0 到 1 把握技术,并使用在理论中,那是一种既令人愉悦又令人兴奋的事件。
  
  咱们要解脱本人始终是公司里石破天惊的基层,支出只有靠老板给你发的工资,晋升只有每个季度或每年甚至每几年的升职加薪。始终这样规规矩矩地按照大多数人一样的形式降级,却没想着多学习晋升本人,扩大视线,那必定是不行滴。所以要给本人造就趣味,让本人爱上学习,趣味和好奇心是集体学习后退的能源,不要一味把编程当做赚钱升职的工具,要造就本人对编程的趣味。能够从本人始终以来的兴趣爱好动手,比方喜爱游戏,那么尝试着本人开发一款游戏,而后把这款游戏分享给共事、敌人、同行,能够写个技术文章专门介绍这款游戏,这样整个过程你都经验了后,你会发现即便没有播种很多好评和关注,你也曾经成长了,你会逐步对技术产生趣味。

基础学科

  这里的基础学科包含英语、语文、数学,没错,就是从你从小学到高中的必学课程,为什么要强调基础学科在工作中还要去学习呢?
  
  首先是英语,咱们代码大部分都是英语,文档也是英语,英语是极为重要的根底,学好英语与把握编程语言一样重要。且不说外企对英语的要求,许多出名博客就是把英文翻译成中文,充当常识的搬运工。如果英语足够好,间接浏览一手英语材料,防止别人翻译存在的舛误。
  
  其次是语文,如果你要分享技术博客,分享本人的心得体验,语文写作是必不可少的,能够说当初的网络世界里,在现如今自媒体爆炸、抖音小红书知乎亘古未有的时代里,处处充饰着作文,咱们程序员又何尝不须要写作呢。
  
  最初是数学,不要认为编程就只是 CURD,只是复制粘贴,要想深刻学好编程,算法是必不可少的,强烈建议养成常常刷算法的习惯,能够常常在 leecode 里刷题,保持一段时间你会感激本人这个习惯的。

如何去学

搭建常识图谱

​ 学习,肯定要有本人的体系,搭建本人的常识图谱,能够应用市面上罕用的思维导图工具,常常查阅本人的常识图谱,查漏补缺,偶然也能温故而知新,如下图所示:

温故而知新

  高中是咱们常识的顶峰,每周小考,每月大考,教材堆积如山,天堂般的重复训练强化记忆。温习是反抗忘记的惟一办法。大脑的忘记是有法则的,先快后慢。随着工夫的推移,忘记的速度会变慢,忘记的数量也会缩小。有些人总可能把本人一开始看过的货色牢记于心,而且还能死记硬背,但大部分人的记忆都不是永恒的,一个人最多能够忘记 10 年的货色,反复记忆越多,记忆越能坚固。一个刚入门的 linux 运维工程师,可能刚开始敲命令都要百度、记笔记,但长期敲打命令后,不必半年就能解脱笔记和百度,疾速手打。下图是艾宾浩斯遗忘曲线,表白了记忆依据工夫的保留比率。

  每个人的忘记水平都不一样,倡议第二天温习前一天的内容,七天后温习这段时间的所有内容,所以学习还要勤于温习,而且记忆的了解成果越好,忘记的也越慢。

间断工夫与碎片工夫

  如果要学好一门技术,专一是必不可少的,不少敌人利用碎片工夫学习,比方在公交上看公众号的推送。其实咱们都高估了本人的抗干扰能力,如果处在嘈杂的环境,注意力容易被打断,记忆留存度也很低。碎片工夫适宜学习简略孤立的知识点,比方链表的定义与实现。
  
  学习简单的常识,须要大段的间断工夫。图书馆是个好中央,宁静气氛好。手机放一边,不要理睬 QQ 微信,最好浏览纸质书,泡上一整天。有些城市呈现了付费自习室,提供格子间、茶水等等,也是十分好的抉择。
  
  能够在间断工夫里全面学习常识,碎片工夫坚固知识点,温习知识点。

学以致用

分享

  学习后,去被动分享吧,无论是公司里的共事,还是在你的博客里分享,尽可能分享,享受分享。因为分享能传授别人,也能让本人的常识留存,这比本人闷声造车好太多了,学习内容是有均匀留存率的,如下图:


  筹备一份 ppt,并与共事分享你的技巧。既温习常识,又锤炼口才。我已经有一个共事,他谈话很匆忙,口头禅很多,比方“对,对”,经常听不清,但他并没有被感动。领导屡次让他分享这项技术,观众的反馈是能够预感的,所以他充分认识到了毛病。

  保持写技术博客,别在意别人眼光,也别在意相似的文章他人曾经写了成千上万遍了。只有当你真正开始提笔,畅享写作的快感,让本人文章更加通顺易懂,尽可能换位思考,给不懂的人保姆式的教程,置信我,你会愈发享受这个过程。而且坚持下去,你会失去更多的反对和粉丝,这会让你更有能源。

实际

  实际是测验真谛的唯一标准,既然学会了,学通了,就要开始搞我的项目,搞框架。尽管咱们经常强调不要反复造轮子,但为了更好地理解学到的常识,还是有必要造轮子的,能够本人写个 demo,去更好相熟技术,而后将所学的技术使用到理论我的项目中,让本人真正把握这门技术,因为只有真正应用所学的技术,才会踩到坑,才会去频繁百度和搜寻文档,最终踩了无数个坑后,胜利把握技术,这样的过程经验多了,能力成为技术大神。

正文完
 0