今天主要就参加浦发银行信息科技岗的心路历程做一小结。2018.8.1日,是我第一次面试(提前批岗位),通知的是让8月1号中午12点半面试,我提前1个半小时到了通知上的指定地点,根据身份证签到,签到后会发给你一张名牌纸(以后的每场考试随身带,放在自己的桌子前展示给面试官),今天人比较多,到了12点了上午场的还没有面试完,HR小姐姐告诉我们,先去吃饭,面试过程比较长,下午场的可能得忙到晚上6、7点了。所以我和同伴就就近吃了饭,吃完饭还早,我们就四处逛了逛,讲真浦发银行夏天的冷气给的超级足,冻得我鸡皮疙瘩起了一地,办公环境也超级棒,很向往在这种地方工作!
面试总共分为三面,一面是群面,二面是专业面试,三面是机试,由于应聘者多,所以三面不分前后顺序。等到两点左右,终于叫到我的名字了,我进行的顺序是一面、二面、三面。
一面是群面,三个面试官对应6个应聘者,按照hr小姐姐发的号码牌依次进去之后面对面试官坐下,每人抽一个题目两分钟准备,三分钟发言(不分先后顺序,谁准备好了就可以举手发言),待每个人发言完毕。有两个面试官分别问了两个问题“你觉着你人生中的制高点在什么地方,是什么?”和“你认为浦发银行能陪伴你多久,你能在浦发银行工作多长时间?”,第一个问题只有三个人回答就被迅速转到第二个问题了,第二个问题按顺序每人都要回答,此场面试大该半个小时左右。
二面是专业面试,三个面试官对应1个应聘者,进场之后首先第一个做的就是自我介绍,我只是说了本科和研究生所上学校,所学专业,面试官还想听更多的自我介绍,可是我准备不充分,草草收场,所以提前要准备一份漂亮的自我介绍吸引面试官眼球(很重要)。接下来面试官主要针对简历里面写的项目进行了解,提问,我噼里啪啦将自己的项目讲述了一遍,但是这次应聘的是系统开发岗,从面试官的眼神中我能读到,他们对这些并不是特别的感兴趣!对于项目哪一部分是你自己独立完成的,这点面试官是十分在意。我的方向是图像,所以,面试官问了一个问题“.jpg和.bmp图片有什么区别?也就是说在编码上有什么区别?”,接下来接二连三问了好多问题“MFC中你主要实现哪些操作?”"除了MFC可以做界面,还有哪些呢?"”对数据库有所了解吗?如何对数据进行选取,查找操作?”、“了解linux吗?Linux查找、打开一个文件用的是什么命令?”、“会JAVA吗?看你有过实习经历,讲一讲”、“听过ftp吗?耳熟吗?”、“c++中的重载函数说一下?”、“链表中定义一个类,类中的成员变量调用到函数中是什么?”、“行业动态,你是从哪些渠道获得的?”,我们组的面试的专业性比较强,其他组面三个人,我们组可能才会面试两个人。下来之后和我的小伙伴们进行交流,他们的面试官问了如下问题“**,你会不会?”“**,你学的好不好?”,“**,这些课的成绩怎么样?”,“你说你英语不错,那么现场来一段即兴英语演讲?”、“你阅读英文能力怎么样,以后可以和外国人进行沟通,撰写文档吗?”,整个下来感觉专业面最紧张,也是最难的,你的能力全在这个时候展现,是骡子是马,拉出来一溜就知道了,什么都逃不过面试官的眼睛,所以还是得多学点东西,否则真么会被问到尴尬。。。感觉时间很短,出来之后同学跟我说,我进去了15分钟。还有就是,对手太强大了,我前面的,后面的都是211、985的研究生,亚历山大啊!
三面试机试,进入考场后会有指定的电脑,你坐下之后,浏览提前阅读信息,开始作答。页面只支持c、c++、Java,所以会python,还有其他语言的小伙伴们很着急。因此,如果要搞研发的话,C++、Java还是很重要!我的机试题目是三道编程题,分别是“判断一个数是不是素数?”、“判断从1990到2010年中的瑞年?并打印”、“输入几个单词,将字母变换成另外一组单词输出?如果字母是i,则变换后的字母是26+i-1”。每个题目中的条件都已经给定,什么样子的数是素数,什么样子的年是闰年都会给出,接来来就看你的编程能力了,此项答题时间为1个小时。
以下对面试过程中遇到的问题进行梳理。
专业知识点总结
1.jpg和.bmp图片有什么区别?
JPG:采用高压缩比技术的图像存储格式。有损压缩格式,所以在你对一张JPEG格式的图片反复进行修改保存时,则会让图片失真,品质下降。优点(文件小,利于网络传输),缺点(画质损失)。
BMP:(全称Bitmap)是Windows操作系统中的标准图像文件格式,它采用位映射存储格式,除了图像深度可选以外,不支持文件压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。优点(无损压缩,图质最好),缺点(文件太大,不利于网络传输)。
2.MFC的操作?
MFC是微软基础类库(Microsoft Foundation Classes),以C++类的形式封装了Windows API,并且包含一个应用程序框架,其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
个人用MFC ,主要是通过其做出来一个界面。首先,创建一个项目,然后设置opencv的环境变量,测试运行结果,成功后会弹出一个对话框控件。我需要做的就是在对话框控件上添加按钮Button控件和Edit Control控件,右键控件设置其属性,主要设置控件ID;然后双击控件到制定代码编辑处进行代码操作,操作完成将图片显示到对应ID的按钮中。
3. 除了MFC,还有那些可以做界面?
QT、wxWidgets、WPF、GTK+
4. Linux的一些基本命令操作?
cd:用于切换当前目录 ls:查看文件与目录的命令 grep:文本搜索 find:查找 mkdir:创建指定的名称或目录 cp:复制文件 mv:移动文件、目录或更名 rm:删除文件或目录 ps:列出系统中当前运行的命令 kill:终止指定的进程 tar:对文件进行打包 gzip和bzip:进行压缩和解压 chomd:改变文件的权限 chown:改变某个文件的拥有者和群组 tail:查阅正在改变的额日志文件 pid:查看进程 vi:创建一个文件,并编辑文件内容 history:显示历史命令 su-root:将普通用户改成root用户 df-lh:查看磁盘状态,可知道一共多大,使用了多少,剩余了多少以及挂载点 df-a:全部文件系统使用情况 df-h:统计每个磁盘整体情况 kill-l:列出所有信号名称 kill-9:彻底杀死进程 kill-u:杀死指定用户的进程 du-ah:查看文件大小 job-l:查看后台任务 compgen-c:可以打印出所有支持的命令列表 repquota:能够显示出一个文件系统的配额信息 whatis:查看某一命令的用法简要 disown-r:可以将搜优正在运行的进程移除 netstat:查看网络是否联通 ifconfig:查看ip地址及接口信息 wc-c:对文件的内容进行统计,统计字节数 wc-l:统计行数 wc-w:统计字数
更多linux常用命令网址:https://mp.weixin.qq.com/s/Ye4Rn_Dl58Sb_2PAsch_1g
5. 数据库的一些基本操作?
(1)创建数据库
create database 数据库名;
(2)查看数据库
show databases;
(3)选择指定的数据库
use 数据库名;
(4)删除数据库
drop database 数据库名;
(5)创建表
create table 表名 (字段名 字段类型 该列是否允许为空)
创建完成后自动会创建三个表名:“表名.frm”,“表名.MYD”,“表名.MYI”
(6)查看数据库中所有的表
show tables;
(7)查看数据表结构
describe 表名;
(8)修改数据表结构
alter table 表名 add [column] create_definition [first | after column_name] //添加新字段 add primary key (index_col_name,...) //添加主码名称 alter [column] col_name {set default literal |rop default} //修改字段名称 change [column] old_col_name create_definition //修改字段名及类型 modify [column] create_definition //修改字段类型 drop [column] col_name //删除字段 drop primary key //删除主码 rename [as] new_tablename //更改表名
(9)删除指定数据表
drop table 表名;
(10)添加表数据
语法1:insert into 表名 values(值1,值2,...)(自增长的列应写null) 语法2:insert into 表名(字段1,字段2,...) values (值1,值2,...) 语法3:insert into 表名 set 字段1=值1,字段2=值2,...
(11)更新表数据
update 表名 set 字段1=值1 where 查询条件
若无查询条件,表中所有数据行都会被修改。
(12)删除表数据
delete from 表名 where 查询条件
(13)查询表数据
select * from 表名;
(14)限制查询记录
select * from 表名 limit[start] length start:表示从第几行记录开始输出,0表示第1行
6. Java的一些了解?
Java是一门面向对象的编程语言,从C++衍生出来的,摒弃了c++中难以理解的多继承、指针等概念。单看语言,两种语言的语法上相类似,功能上也彼此接近,但是执行与处理机制完全不同,java的应用在高层,离不开逻辑业务,而c++在中间和底层,可以离开逻辑业务,为java服务。
解释对编译:Java是一种解释性语言,意味着它在执行的时候会被“翻译”JVM成二进制形式,c++是编译性语言,一步到位成机器语言。
内存安全:java会给定数组分配任意参数,即使超出范围也只会返回错误提示,而c++会引起错误,甚至是奔溃。
指针:java不支持指针,可以使用值引用的方式进行值传递,而c++中指针允许直接在内存中进行管理。
重载:java允许方法重载,而c++允许运算符重载。
垃圾回收机制:java自动回收,而c++用析构函数回收垃圾。
语言的区别:
(1)java只能单继承,即一个类只能由一个父类继承,而c++可以多继承,一个类有多个父类。
(2)java中运算符都用运算符“.”,而C++中的域运算符用“::”,指针运算用“->”;。
(3)java中采用关键字“import”以包的形式导入,文件层级之间采用符号“.”隔开,C++中包含文件采用预处理命令“#include”,文件层级之间用符号“\”隔开。
(4)java的程序代码是在包package里面,而C++中所有的程序代码都在一个“*.h”或者“*.cpp”文件里面。
(5)java中声明常量的关键字是“final”,而java中声明常量的关键字是“final”。
7. C++重载函数?
c++允许我们在参数列表不同(个数、类型或者顺序不同)的情况下定义相同名字的函数。在函数调用的时候,根据函数名字以及参数类型决定调用的具体函数。优点,减少了函数明的数量,避免了名字造成的空间污染,增加了程序的可读性。
8. 什么是C++类,类中成员变量被函数调用后叫什么?
类的定义:
class 类名 { public: //行为或属性 protected: //行为或属性 private: //行为或属性 };
如果你定义了一个类,这个类中有一个成员变量叫a,函数调用这个变量的时候,调用的是类对象的指针this->a。
9. 什么是ftp?
ftp(file transfer protocol)文件传输协议,用于internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。
10. 行业前沿动态,获取渠道?
CSDN、知乎、小木虫、github、专知、一些微信公众平台、微博和百度贴吧等。
11.三道编程题
(1)判断素数
#include <iostream> using namespace std; int issushu(int n) { int i = n; if (i < 2) return 0; else { for (i = n - 1; i >= 2; i--) { if (n%i == 0) return 0; } } return 1; } int main() { int n; cin >> n; if (issushu(n)) cout << "true" << endl; else cout << "false" << endl; return 0; }
(2)判断闰年
#include <iostream> using namespace std; int main() { //输出从1990年到2010年之间的闰年 for (int i = 1990; i <= 2010; i++) { if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { cout << i << endl; } } return 0; }
(3)字符转换
当时编写时候,输入语句没有用好,还有等号没有考虑到,导致出错。
#include <iostream> using namespace std; int main() { char a[100]; int n = 0; cin.getline(a, 100); while (a[n] != 0) { n++; } for (int i = 0; i < n; i++) { if (a[i] >= 'a'&&a[i] <= 'z') { a[i] = 'z' - (a[i] - 'a'); } if (a[i] >= 'A'&&a[i] <= 'Z') { a[i] = 'Z' - (a[i] - 'A'); } } for (int i = 0; i < n; i++) { cout << a[i]; } cout << endl; return 0; }
编程题,当有多道的时候,注意时间的分配,抓住分数很重要,考虑问题要周到,思路清晰,考虑好了之后再动手写。
经验总结
此次面试可能大半是凉凉了,明白了一些事情。我们在面试某个公司前,需要对公司有所了解,最好能举例说出公司最近发生的事情,那样的话公司会觉着你一直在关注动态,求职意愿强烈,公司的培养人才理念,公司的发展战略以及你觉着你为什么能够比别人更加胜任这份工作等。专业知识方面,根据你所应聘的岗位,在应聘前需要有明确的定位,此岗位需要怎样的人才,你的专业技能是否符合公司想要找的,知识是否扎实(打好基础很重要)!