非计算机专业出身的程序员在面试时会有哪些劣势?

如题所述

1.有内存概念,科班的人编程一般都知道自己在什么时候需要跟内存打交道,什么时候不需要,而非科班的人,大部分都是功能导向的,很多人不理解内存在计算机科学里面的重要地位,像python这样的语言,你其实大部分时候看不到内存,跟你打交道的是list呀,map呀这些数据结构,你在写code的时候一般都不会考虑他的内存情况。

2.不会被局限到框架中,大部分培训班出来的人,都是学了一门语言加框架,所以他一般就是背的这些东西,但是不理解,比如典型的web框架,尤其以前jsp时代,好多非科班的人,捧着一本厚厚的jsp书跟查字典一样学这个东西,非科班的人容易被某个框架局限住。而科班的人一上来就知道所谓框架不过是人家写好的code,你理解他在做什么就可以了。
3.对操作系统的理解,这一点上很容易看出科班跟非科班的差距,大部分非科班的人看到的都是程序呀,语言这一层面的,但是科班的人,如果操作系统学的不错的,他关注的其实是对机器的抽象,他知道我们要run一个程序,需要这么一些东西,包括进程怎么管,内存怎么管,io怎么管,网络怎么管,这样对于编程来说,你其实拿到的是什么,是一个进程管理器的句柄,一个内存管理器的句柄,一个io管理器的句柄,一个网络管理器的句柄,有这几个功能句柄,你就可以操作这个机器了。
4.再进一层是缓存,这个可能需要有工程经验的科班人士才会有的意识,实际上计算机体系结构,只有一个东西就是缓存,跟上层应用相关的cache最典型的就是python里面的迭代器。弄明白这个,很多架构上的事情你才会明白,比如数据库有一个cache,搜索引擎有cache,你做的所有的优化,基本上都是跟cache相关的。
5.抽象的意识,这个也需要写过很多实践的code才能明白,跟科班可能关系不是很大,跟悟性有关,有的人很笨,无论是不是科班,他就是悟不到这一块,有的人很聪明,无论是不是科班,只要他写过一些code,你点拨他一下,他自然而然就知道什么时候该做什么样子的抽象。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2024-03-13
非计算机专业出身的程序员在面试时可能会面临一些劣势,这些劣势主要源于他们在知识背景、技能掌握、实践经验以及沟通表达等方面的相对不足。
首先,知识背景方面,非计算机专业出身的程序员可能缺乏计算机科学和软件工程方面的系统教育。这使得他们在面对一些与计算机科学原理、算法、数据结构等相关的面试问题时,可能无法迅速、准确地给出答案。同时,他们也可能对软件开发过程中的一些最佳实践和规范了解不足,从而影响到项目的质量和效率。
其次,技能掌握方面,非计算机专业出身的程序员可能在编程技能、技术栈熟悉程度以及问题解决能力等方面存在差距。他们可能需要花费更多的时间和精力来学习和掌握新技术,以及在解决实际问题时可能需要更多的尝试和调整。
再者,实践经验方面,计算机专业出身的程序员通常有更多的机会参与学校或企业的实际项目,从而积累丰富的实践经验。而非计算机专业出身的程序员可能在这方面相对不足,缺乏实际项目的锻炼和验证,使得他们在面试中难以充分展示自己的能力和潜力。
最后,沟通表达方面,由于非计算机专业出身的程序员在专业知识上的不足,他们可能在与面试官进行技术交流和沟通时存在一定的障碍。这可能导致他们在面试中无法充分展示自己的思考和解决问题的能力,甚至可能给面试官留下不够专业的印象。
然而,这并不意味着非计算机专业出身的程序员在面试中一定处于劣势地位。他们可以通过自学、参加培训课程、参与实际项目等方式来弥补这些不足。同时,在面试前充分准备,了解公司的技术栈和面试流程,以及积极展示自己的学习态度和能力,也有助于提升他们的面试表现。本回答被网友采纳
相似回答