面试已经有一段时间了,面试的公司也有十来家,因此我打算写一下我对面试的感受和想法。首先我先做一个自我介绍:
我是一名专科生2011年毕业,大学所学专业计算机信息管理,毕业后就来到了北京进入了北京某民营公司(具体名称我就不说了),公司规模不是很大但是具有部委背景。我在这家公司待了将近三年,主要参与开发文明城区系统的设计与开发,期间也参与过其他电子政务系统的开发与上线工作。2014年入职业内知名猎头公司,主要从事公司规划的互联网招聘网站的开发,期间主要负责网站架构、核心代码以及前端页面的开发。2017年9月我入职了微软的合作伙伴公司,主要做AI和文档安全系统的开发与设计。其中在第二家公司和第三家公司也从事了部分项目管理的工作。这八年来我一直从事.NET开发的工作,并且主要偏向电子政务和大型企业内部应用方向。

做完简单的介绍后,我会从四个方面来说一下我对面试的感受和想法,有什么不对的地方欢迎指正。

零、技术

技术方面我将从三个方面来写一下。

  1. 技术基础
    基础很重要,这段时间面试我发现好多公司都会问一些基础问题,这些基础问题不只是所使用的开发语言的基础知识,还包括诸如一些计算机基础知识和网络知识。这些知识是区别码农和程序员的标志,夯实基础才是开发人员追重要的一步,这方面我就不多说了相信很多开发人员都在面试时深有体会。

  2. 技术的单一性
    技术是开发人员的饭碗,但是这个饭碗并不是说掌握了某个技术就能在很多公司受用,这点我在这段时间面是的时候深有感触。只掌握一门编程语言或者只关注编程是大部分程序员的通病,我在工作的前几年也是只关注自己所用到的编程语言,从不关注其他技术甚至排除其他技术。慢慢的我开始发现我所掌握的技术并不足以支撑我未来的发展,于是我开始接触 Python 和一些开源的东西,近期我又开始学习 Java,虽然这些技术还没有用在项目中,但它们已经慢慢支撑我未来的发展。所以开发人员不应只关注一种技术或者只关注一个方向的技术,还应该多关注其他主流技术和其他编程语言,这就是所谓的技多不压身。如果你打算以后从事开发相关的工作的话,就应该涉猎更多的技术方向。

  3. 关注发展方向的单一性
    关注的发展方向单一是开发人员的另一个通病,我们可以考虑这样一个问题:当你的年龄或者精力到了一定程度后,你该怎么办?还能继续做开发工作吗?这种情况下的还能和后来者拼什么?你唯一能拼的就是你的技术,但是我们也从每年的新闻上看到,某某公司裁撤大龄员工之类的新闻。这些并不是说你到了一定的年龄技术经验不如别人了,而是说你的精力,能给公司创造的价值已经远低于后来者。那么这个时候我们是否考虑转向其他方向,比如管理或者产品方向(不止这两个方向),但是这时你发现出现了一个尴尬的局面,你只会技术别的什么也不会。如果你不想在未来出现这种局面,那么应该多关注并学习非技术方向。我个人比较喜欢管理方向,尤其是项目管理方向,因此我以这个为例子来讲说一下。一般来说我会通过网络、书籍和与他人的聊天中获取管理方面的东西,同时我也会通过注意领导在管理方面的做法,多学习多观察,并把所学的所观察到的东西结合自己的理解运用到项目中,才是多方向发展的好方法。

一、薪资

薪资方面,目前因为疫情原因好多公司无法给出高的薪水,这方面作为开发人员应该理解公司,但是理解并不代表公司给多少我们都要接受。我们在谈薪资的时候应该结合自己的技术水平、工作经验和公司目前的情况(公司情况要多去网上了解,比如可以去一些评价公司的APP上查看公司在职员工的薪资范围和评价)来定自己的薪资。同时作为程序员也要结合公司的薪资体系、晋升制度和涨薪制度(这些信息一般HR在面试时会告诉你,如果没有告知可以在谈薪资阶段尽心询问)制定自己的薪资。

二、区域

区域方面没什么可说的,根据个人情况,但是我还是建议一线城市,因为一线城市机会多,第二选择是自己老家的省会城市,因为毕竟省会城市的IT发展水平是省内所有城市中发展较高的,最后的选择就是靠近老家的城市,这些选择并不是说只要靠近老家的城市都行,而是那些IT发展程度在一定区域内较成熟的城市。

三、学历

学历方面,我建议程序员提升学历,即使是自考本科也要比非本科在找工作上有优势(说多了都是泪,好多公司都因为我是专科不予录用,找到工作后考一个本科)。