每次面试,我都是幸运的,就像校招的时候,被问到了一个曾经研究过的脑力题一样。这回,也没有像一部分同仁那样,来回的跑,专场,半天完事,剩下的就是等流程,虽然现在还是没有完全的尘埃落定,但起码我做了我能做的,行不行的看上帝心情。
技术人,三年是个坎,是定方向,挑平台的重要时刻,做了近大半年的算法,总是觉得不得法,时间精力和收获不对等,决定及时止损,在更熟悉的工程领域深耕,还是Java吧。个人觉得,潮流没必要硬赶,能在本命技术上加以了解拓展就很不错了。
说回面试,因为只参加了一场,所以,问题有限,基本上也就是锁,并发,jvm, 大部分还是得说实际的经历,怎样查cpu高,怎样查oom,怎样调的gc.但是面试大哥的几个看似不起眼的小问题,让我对学技术这回事产生了不一样的感觉。
一:
问:synchronized 作用 优化 局限和代替方法;
答:巴拉巴拉
问:线程同步还有什么方法
答:巴拉巴拉
问:既然都能实现,那么 lock semaphore有什么区别 。。。
二:
问: fork join
答:巴拉巴拉
问:MapReduce
答:巴拉巴拉
问:那么 fork join 和 MapReduce有什么区别 异同。。。
还有一些忘记了。。。
都是很基本的些问题,但是,现在回想起来不那么简单,不是说回答起来有多难,而是能不能像人家这样问出来。
我觉得,这是一种观察技术的角度,高屋建瓴,求同存异,是一种高度总结和提炼。这不仅需要技术细节的精准把握,也需要把各个看似少有联系的模块建立联系。
常常说的精准的技术选型什么什么的,大概也都是这么从小知识点到大方案慢慢积累而来。
为啥架构师们就感觉牛逼的不行。可能,我们和架构师之间的距离,就差着一步‘总结和思考’。这大概才是真正的技术活。
或许有人说 ,这也没什么啊 ,那也许是我太low了.