因为学算法和数据结构并不能直接带来什么,不能马上开发应用,不能马上产生数据。
那算法和数据结构的意义是什么呢?
写这个招聘的这家公司算是好公司,金融领域,有稳定业务稳定需求,产品质量非常高,切实解决了用户需求。也就意味着,对于应聘者来说,这家公司会是议价强势的一方。
所以因为这个公司还不错,所以想招聘水平还不错的人去解决问题,这样才能保持公司的水平嘛。
虽然现场面试才是最重要的,但招聘信息还是多少能反映一点,最抽象的层面你需要具备什么,那算法和数据结构是一个比较抽象的层面,也就是说用人方普遍认为,有较高水平的应聘者,算法和数据结构是过关的。
其实直接看结论,这就是废话。但是,认真想想,这个结论,掌握数据结构和算法真的被应聘者重视过吗?
或者掌握数据结构和算法也是表象,背后更深的原因是什么呢?是掌握基础知识的水平?是解决问题的能力?我觉得把这个想清楚很重要。
因为稍不留神,只是说:
哦,数据结构算法重要,那就疯狂刷教科书,教学视频。
再换成其他的:
哦,编程工资高,就赶快报培训班。
哦,金融有意思,貌似股票比较容易接触,直接买股票。
哦,房子过去疯涨,房子就是一切,其他的都是屎。
最后的结论,对于应聘者来说,学数据结构和算法的意义就只是应付别人的要求。
然而,可惜的是,招聘方的出发点却不是这样。他们的出发点更可能是一个抽象的标准,表达什么意思呢?可能意思是:
哦,你看你掌握了数据结构和算法,说明你或多或少理解了计算机编程的一些精髓,只有在这个基础上,才更可能高水平地解决实际问题。
当然这都是概率上的,并不绝对。
其实最终要达到的目标是什么呢?当然是能高水平地解决各种问题了,要尽量明确,我去解决你的问题,解决了给我回报,解决得好,给更多,如果解决不了,走人。
那么,在这个原则下,倒推掌握算法和数据结构对于应聘者的意义是什么:
重要的不是具体的知识点,什么链表,二叉树,怎么反转链表,怎么用前序,中序,后序递归地遍历二叉树。
重要的是用不断在累加的知识,形成了什么技能,我自己或者和多少人一起,完成了什么作品,解决了啥问题,进一步这个问题可不可以普适更大更多的问题。
然后,此时此刻,招聘方你是什么性质的公司,你的需求是什么,我应聘方,我的大致可以带给你什么,又有什么是需要之后进一步和公司一起去挑战解决的。
或者说,学习算法和数据结构也好,学其他的也好,学习的意义不在于学习本身,在于实际问题的倒推出来的需求,因此要去学习些什么。
在这个结论下,我觉得最最重要的,就是学习本身其实只占50%的时间,剩下50%,还有很多重要的要做,理解对方的问题和需求,还有更多看似不那么有“思考含量”的工作,比如整理,复盘。
只可惜这样的话,工作量就更多了,因为不单纯了,要分心要串联的事更多了。如果只是单纯学习就行了,那多好啊。
这是一道坎。