一. 科班 Vs 野生
这个老生常谈的问题让很多野生码农
觉得不公平,在一次次面试中因为学历和那些工作中根本就用不到的知识虐的一脸懵逼,然后除了抱怨什么也做不了。那为什么看起来很多科班同学
的编码水平和职场软技能都不如野生码农
的逆风局中,科班同学
却能够胜出呢?下面所说的3点并不绝对,只是概况。
-
学历的背后
这是HR同学说的,笔者并没有去求证。HR同学说招聘应届毕业生国家是有很多补贴的,可以降低一些用人成本。另一方面,规模稍大的软件公司在承接业务和申请一些资格认证的时候,人员学历构成是证明研究能力的一个硬指标,也就是说你必须至少拥有多少本科生,研究生,博士生,才能申请某些科研基金或者政策性的扶持资金,毕竟科技企业也是具备商业属性的,其本质还是要赚钱。
另一方面,研究生和博士生所经历的教育,让他们的逻辑思维和系统性思维能力更胜一筹,也就是说面对大家都不会也查不到资料的问题时,他们知道如何一步一步提出假设或方案,设计方案,验证结果。而你只会两手一摊说自己无能为力,很多时候一件事情并不是你无能为力就可以不做的。
-
内功修为
高手之间的较量,都是内功和基础的修为。你或许都没有意识到,
码农
的学名叫做程序设计师
,而事实上,程序设计师
不仅仅是职位名称上逼格更高,更重要的是,其知识体系的抽象层级更高,设计模式
,数据结构
,算法基础
这三座大山将两者完全划分为了两个层次。曾经有一个HR讲过这样一个故事,说面试者说自己熟练掌握了
React
,Vue
和Angular
,非常自信,可面对他提出的“那你除了SPA
模型以外,对前端还有哪些了解呢”的问题一脸懵逼不知所措。这个故事让我很受启发所以自己一直记得,并时刻以此为戒告诉自己接触的新知识要尽可能去了解其原理和本质,因为在更高的抽象层级和面对的实际需求上,不同的新技术很可能是殊途同归的,而你却没有意识到。内功修为深厚的人更容易看到事物的本质,因为抽象的思维让他们的视野变得更广,也让他们思考和认知的角度更加靠近数学和哲学的本质。 -
学力差距
前端的知识体系平均每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 誓师贴
笔者自己也是野生前端码农,为了让自己坚持学完数据结构
的知识,会将学习过程中所实践的编程习题整理出来,并在github个人博客里提供javascript
版本的参考代码,习题相关帖会陆续在各大技术博客发布,欢迎关注点赞,也期待有小伙伴一起加入学习!