初级中级和高级程序员之间到底有什么差异

本故事纯属虚构,如有雷同,纯属巧合。

故事背景

小白工作一年后,常常产生了疑问:“自己到底还是不是菜鸟?中级和高级是什么样子的?”,带着这个疑惑,他找到直属领导小L咨询。

小L:“每个公司对初级、中级、高级程序猿定义不一定一样,不过,我可以简单的描述一下我们公司的大致划分:

初级:可以完成功能开发;

中级:能优雅地实现功能,可以独立负责一个模块;

高级:能够完成系统的设计,能够使用已掌握的技能解决问题。并且能够考虑到系统的扩展性、安全性、稳定性等问题。”

小白:“太抽象了,可以详细说说吗?”

小L:“那好,趁今天不忙,你去把中级工程师小王,和扫地僧叫过来吧”。

不一会儿,小白、小王和扫地僧都来了,小L给他们一个相同的任务:实现判断一个数是否是奇数。半个小时将程序拿出来。

奇特的比赛

滴答滴答,半个小时很快就过去了。小白、小王和扫地僧的程序都写好了,小L让小白先展示自己的程序,然后说明一下。

图片来自于网络,版权归原作者所有

ROUND1:

小白:奇数(odd)指不能被2整除的数,数学表达形式为:2k+1,因此我就写了一个方法,根据求余之后的值是否为1来判断。

接下来轮到小王的程序了。

图片来自于网络,版权归原作者所有

ROUND2:

小王:因为int的整数范围为-2^{31}~12^{31}-11,即在所有的int数值中,有一半都是负数,如果i为负数,所有的求余都是负数,不会等于1,例如i=-5,i%2=-1。所以考虑正负整数的情况下,i需要满足求余不等于0。

接下来轮到扫地僧的程序了。

图片来自于网络,版权归原作者所有

ROUND3:

扫地僧:不管int的数据是怎么样子的,它在计算机里都是二进制表示,想要判断是否为0,根据二进制的特点(2n2^n2n+…+^),只需要看看二进制的最后一位是1,还是0即可,最快的办法就是使用提取二进制的最低位来判断。

尾声

经过这次事件后,对小白的触发挺大的。虽然上面的程序不能完全说清楚就是初级、中级和高级的区分,但至少从思路上来说,初级、中级、高级的区分还是很明显的。




转载请注明:http://www.xxcyfilter.com/zytd/zytd/16702.html