博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【杂谈】野生在左 科班在右——数据结构学习誓师贴
阅读量:5991 次
发布时间:2019-06-20

本文共 1893 字,大约阅读时间需要 6 分钟。

【杂谈】野生在左 科班在右——数据结构学习誓师贴

【杂谈】野生在左 科班在右——数据结构学习誓师贴

一. 科班 Vs 野生

这个老生常谈的问题让很多野生码农觉得不公平,在一次次面试中因为学历和那些工作中根本就用不到的知识虐的一脸懵逼,然后除了抱怨什么也做不了。那为什么看起来很多科班同学的编码水平和职场软技能都不如野生码农的逆风局中,科班同学却能够胜出呢?下面所说的3点并不绝对,只是概况。

  1. 学历的背后

    这是HR同学说的,笔者并没有去求证。HR同学说招聘应届毕业生国家是有很多补贴的,可以降低一些用人成本。另一方面,规模稍大的软件公司在承接业务和申请一些资格认证的时候,人员学历构成是证明研究能力的一个硬指标,也就是说你必须至少拥有多少本科生,研究生,博士生,才能申请某些科研基金或者政策性的扶持资金,毕竟科技企业也是具备商业属性的,其本质还是要赚钱。

    另一方面,研究生和博士生所经历的教育,让他们的逻辑思维和系统性思维能力更胜一筹,也就是说面对大家都不会也查不到资料的问题时,他们知道如何一步一步提出假设或方案,设计方案,验证结果。而你只会两手一摊说自己无能为力,很多时候一件事情并不是你无能为力就可以不做的。

  2. 内功修为

    高手之间的较量,都是内功和基础的修为。你或许都没有意识到,码农的学名叫做程序设计师,而事实上,程序设计师不仅仅是职位名称上逼格更高,更重要的是,其知识体系的抽象层级更高,设计模式,数据结构,算法基础这三座大山将两者完全划分为了两个层次。

    曾经有一个HR讲过这样一个故事,说面试者说自己熟练掌握了React,VueAngular,非常自信,可面对他提出的“那你除了SPA模型以外,对前端还有哪些了解呢”的问题一脸懵逼不知所措。这个故事让我很受启发所以自己一直记得,并时刻以此为戒告诉自己接触的新知识要尽可能去了解其原理和本质,因为在更高的抽象层级和面对的实际需求上,不同的新技术很可能是殊途同归的,而你却没有意识到。内功修为深厚的人更容易看到事物的本质,因为抽象的思维让他们的视野变得更广,也让他们思考和认知的角度更加靠近数学和哲学的本质。

  3. 学力差距

    前端的知识体系平均每18个月更新一轮,选择这个方向意味着你必须要有足够的学习时间和自学能力。这是一场HIIT(High Intensity Interval Training)式的比赛,招式上的优势是无法让你保持持久竞争力的,你必须拥有间歇性到达巅峰的能力。就好比《倚天屠龙记》里学会了九阳神功的张无忌,分分钟就学会了太极拳;好比《天龙八部》里的鸠摩智,凭借小无相功就可以催动少林72绝技,也像《火影忍者》里仙人模式的漩涡鸣人,就会一招螺旋丸,然后混入各种查克拉,变化成各种属性的忍术。

    那些内功修为深厚或具备学习技巧的程序员,往往能更快地学会新的技术,并找出它们和现有技术之间的异同以及可能适用的场景,结果就是牛逼的程序员越学越亢奋,越玩越开心,而内功修为不足的程序员凭借毅力和熬夜能力,在2-3轮的技术迭代后被无情地淘汰。

想要提升自己学力的读者,吐血推荐阅读斯科特杨的《如何高效学习》这本书。这是一本高效学习的方法论,作者凭借超强的学力,用一年多时间学完了MIT Open Courseware里4年的CS(Computer Science)课程,并分享了他是如何做到的,其中很多学习方法是非常有借鉴价值的。

二. 前端的数据结构学习和练习

Talk is cheap , Show me the code.

2.1 主动练习

关于这个话题,笔者只有一句话要说,那就是动手实现所学到的东西。如果你读过设计模式数据结构算法基础这一类的书籍就会发现,其中大部分的内容也并不是难到完全看不懂,而是难在你不知道这些抽象的东西是如何跟现实连接在一起的,你需要主动用这种抽象的思维去连接现实的开发,才会找到感觉。

2.2 方法论

你能找到的大部分讲解数据结构的书都是C语言或者Java描述的,你可以在互联网上找到O'Relly出版的《数据结构与算法javascript描述》这本书,并用你熟悉和喜爱的javascript来学习数据结构的知识。请记得数据结构是内功的修炼,是不受语言限制的,所以不要再把数据结构的学习安排在C语言之后。

2.3 誓师贴

笔者自己也是野生前端码农,为了让自己坚持学完数据结构的知识,会将学习过程中所实践的编程习题整理出来,并在里提供javascript版本的参考代码,习题相关帖会陆续在各大技术博客发布,欢迎关注点赞,也期待有小伙伴一起加入学习!

转载于:https://blog.51cto.com/13869008/2289505

你可能感兴趣的文章
AngularJs $resource 高大上的数据交互
查看>>
pageX,clientX的区别
查看>>
windows 7接内外网出现冲突
查看>>
容器如何访问外部世界?- 每天5分钟玩转 Docker 容器技术(36)
查看>>
无聊的一天
查看>>
centos 7 之systemd
查看>>
快速查找算法
查看>>
磨刀不误砍柴工,聊聊旧系统升级改造那些事儿
查看>>
Jquery
查看>>
mysql常用操作之create、update、drop、truncate等
查看>>
nfs限定挂载过来以后的用户为本地用户
查看>>
我的友情链接
查看>>
Zabbix监控平台汉化修改
查看>>
项目小总结
查看>>
Android之Merge及自定义属性attrs.xml使用
查看>>
我的友情链接
查看>>
极速理解设计模式系列:6.适配器模式(Adapter Pattern)
查看>>
软件验收管理工作内容(一)
查看>>
python和hbase交互
查看>>
C语言的入口函数不一定叫main
查看>>