面试一个5年经验的java,不知数据结构,却大谈分布式,这样的候选人能要吗?

我估计你是问了人家 jdk各种数据结构底层实现原理,其实我一直很纳闷啊,知道底层实现原理 这当然很OK 很加分,但若是不是那么知道,那又怎样呢?人家知道哪些数据结构适合哪些场景并能熟练使用它们,这...不够么?对你们公司的用人需求不够么?难道你是指望他给你们公司创造一个新的数据结构?又或者觉得jdk已经实现的数据结构性能遇到瓶颈 指望求职者给你再实现一遍一模一样但性能比jdk提供的还优秀的数据结构啊?




那要看你们工作需不需要经常用到算法,有的人喜欢往深入研究,有的人喜欢往广度研究,没有什么优劣之分,将军一定要比士兵打枪准吗?




我来谈下看法:

一、大学数据结构课程能考90分以上的很多,尤其是女生,是否可以认为他们的工作能力比五年经验的程序猿强?

二、大学很多老教授、女讲师,专门教数据结构,但从没企业和软件项目开发工作经验,他们的数据结构功底吊打99%的程序猿,是否企业可以高薪挖这些数据结构专家来做架构师,五十万不够就一百万,比学校一年十多万的死工资来说,吸引力还是很大的。

三、我大学数据结构课程全专业考试第一,实验课满分。但工作十几年后,在软件开发中已经非常习惯于各种数据结构编码,但是你再让我像大学那样做题,我可能不及格,这说明我数据结构没学好吗?如果一个人能记住十几年前学习的课程的一半以上,这种人应该可以作为心理学专家一个研究课题。

四、分布式设计真的很重要,如果不是外包项目,而是一个可能有业务增长的产品平台,就必须考虑未来一两年业务的发展,现在比较成功的互联网产品一两年十几万用户很正常,这时候如果还是单体架构,研发一定会成为公司发展的瓶颈,而单体架构演进的第一个目标就是分布式。而分布式又是一个很复杂的体系,这方面比较优秀或者有很多经验的程序猿,往往比较受发展迅速的互联网公司欢迎。所以需求导向,现在程序猿不会点分布式相关知识,都不好意思去面试。




说什么都没用,整个项目让他试试就知道了,实践是检验真理的唯一标准




个人觉得不行,数据结构是基础,程序是什么,是算法和数据结构,连基本的数据结构都不懂,你敢让他在软件大厦上做事情?只知道调接口的程序员风险很大。




我就说一下我的经历吧!

我12年毕业以后,干了两年实施和1年的开发,当时时间比较多,我就把Java 流行的框架都学了一遍,每个知识点都知道一点,都不精通,然后觉得自己了不起了,就出去找工作了,当时也大概5年经验,面试 了几场,直接被灭了!连最基础的Java知识点都不知道!


后来,就痛下心来,醒悟过来,终于认识到没有基础,那就什么都没有,于是我就把Java的知识点打牢,主要是java基础、并发编程、设计模式、JVM、数据结构。SSM的使用和源码,然后才开始学习分布式。

后来公司招人的面试中,很多人都存在这样的状况,简历上什么知识点都是精通,然后一问三不知。连最基础的Java知识点都不会。

如果你想在技术的道路上走的更远,数据结构是基础,必须要精通,还有一些基础的技术,操作系统、编译原理,计算机原理等。

还有技术底层的技术了解多了,多写代码很有帮助的,比如ArrayList 和 CopyOnArrayList 两者都可以当做list使用,但是他们的 使用场景不一样。错误使用会导致系统的崩溃。

下面说一下我认为学习源码的好处!


1、提升技术功底:学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提

升自己的技术功底

2、深度掌握技术框架:源码看多了,对于一个新技术或框架的掌握速度会有大幅提升,看下框架demo大致就能知

道底层的实现,技术框架更新再快也不怕

3、快速定位线上问题:遇到线上问题,特别是框架源码里的问题(比如bug),能够快速定位,这就是相比其他没看过

源码的人的优势

4、对面试大有裨益:面试一线互联网公司对于框架技术一般都会问到源码级别的实现

5、技术追求:对技术有追求的人必做之事,使用了一个好的框架,很想知道底层是如何实现的




CPU什么原理




数据结构那么多内容,不可能在工作中全部都会用到,没有用到的有些遗忘是正常的事情。但是对于数据结构的一些基本概念,基础知识还是必须的。

其次,既然谈分布式,个人建议你面试的重点要放在他实践的分布式开发,架构方面的内容,问深问细。类似分布式事务的处理,高可用,CAP,分布式缓存,数据一致性等方面展开问。




四年java,发表一点个人看法。敲代码是什么?是像很多人说的,我知道怎么用就行了,还是另一部分人说的,必须得了解底层?其实大部分情况是面试造航母,上班拧螺丝,对于初级和中级,会用就行是OK的,但是15k以上,你就得懂点底层了?底层的重要性是发生了重大bug,懂底层的能更快更准确发现bug,并分析产生的原因,这样才能有方向怎么改,对不对?而不懂,放在你面前的一行错误代码你也发现不了,这就是底层碾压……九层之台,起于累土。千里之堤,溃于蚁穴。有时间还是建议各位code好好分析一下底层,借鉴别人的思路和写法,你会发现,撸代码是如此有趣[大笑]




作为一个程序员很荣幸回答这个问题,在此也给自己拉拉粉,希望喜欢我的伙伴们加波关注。下面开始回答问题

首先,面试一个人尤其是技术工种要考虑的方面有很多,比如说很直接的就是“性价比”,如果这个伙伴要的薪资范围比公司的预期要少,那可以考虑,毕竟有5年的经验。



其次,要考虑公司招人的岗位需要什么技术,如果这个5年经验的伙伴不知道数据结构,而你们的日常工作中不知道甚至知道不会用都没法看展工作,那就直接pass。


再次,要考虑这个伙伴的职业规划,有没有兴趣或者打算学习这门课程,我说的是数据结构与算法,可不是数组、链表、键值对的底层实现。


最后,还要综合考虑,比如沟通能力、逻辑思维能力、团队意识等等。

这些问题你如果能回答了,在你的心里也就应该有了答案。

我是程序员小樊,关注我不迷路,欢迎大家关注、点赞+转发。

展开阅读全文

页面更新:2024-04-29

标签:数据结构   分布式   经验   知识点   功底   底层   源码   框架   原理   课程   优秀   基础   程序   技术   公司

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top