当你毕业走出学校,走上工作岗位的一刻,无论你的成就有多高,职位多显赫,你都会有了个新的名字,"软件技工程师","CV超人
"(这个一般特指使用特定语言的工程师)"高级技工""逻辑工人"当然,这些统称"程序员"。
程序员很有趣的职业,有些人对程序员的进行了脸谱化,将程序员概括成为刻板,机械,呆滞,甚至诡异。这可能没有恶意,只是
出于某种调笑的目的,但这其实并不准确。程序员也是人,任何一个超过五个人的群体都不可能有一个统一的性格和品质。
程序员固然有对技术孜孜以求其他漠不关心的,也有不少下了班就出去浪的,身边同时有三五个女朋友的,晚上夜店嗨多了那个第
二天没法上班的,撸串喝酒跟人打架的,妈妈带着高中就怀孕女儿到开发大厅骂街的...都有。
这是发生在我身边的事。当然那都是别人,我从来都不跟着去。
他们在酒吧跟女孩贫的时候我都在家认真的读严蔚敏老师的《数据结构》.....
反正我一直坚信我是这么做的.....
但确实程序员这个会给从业人员带来某些相似的特质,由于长期从事非1即0的绝对逻辑工作,几乎大家都会对真理的决不妥协,对
真相的孜孜以求,以及当观点受到挑战时瞬间爆发的与平时完全不同的张扬人格。
这个道理是我从隔壁硬件开发厅的一个长发,齐刘海,喜欢穿浅色过膝连衣裙,纯色发带,光脚穿不太高的坡跟凉拖,不说话时带
着浅浅但很甜美的笑的女Teamleader那里学来的。
是在我指责他们的硬件设计有问题后,她把刘海用发夹别起,露出洁白的额头,光着大脚丫子踩在我的办公椅上,用手拍打着我的
显示器告诉我的。
我和我的同事们对此的印象十分深刻,我至今还记得我抱着一个屏和壳分离,屏幕有着放射状裂纹的显示器去工程部换的路上。走
廊里的同事们都指指点点
“你看,不愧是做图像处理的,出多大bug啊”
“是啊,显示器都炸了,也不知道他们用啥语言.....”
当然这只是一个小事啦,也为了大家更好的了解这个行业,下面对一些经常被问到或大家关心的问题进行一些说明,仅供参考啦!
1 程序员都有啥操作系统,用啥环境?
其实这个见仁见智啦,大部分遵从公司习惯。
剩下的你自己可以有自己的习惯,这个不太有人会干涉。当然,大家协作的项目一定会有一个共同的编译环境啦。其实所有人都会
根据项目调整W还是L,A或者U,I。
这里就需要我们的学生朋友,多看看不同的系统,你可以不了解他的内核结构进程调度通讯方APIbalababla ... ,但最起码见过吧
。
以我来说,如果一个新人不了解LINUX编程,甚至不熟练VIM,都很正常。人家没用过么,但你连基本命令符都不知道,ipconfig和
ifconfig不分,就有点,让人觉得比较....有一定提高的空间了。
这里还有一件事特有意思,程序员们通常会坚守一些可靠的老版本的软件。我以前一直以为只有我这样。后来发现大家都懒得更新
或者干脆对新特性不感兴趣。最直观的例子就是Windows了。程序员们可能是最后还坚守在xp的人了。我的好多同事都满怀期待的表示,
等win10普遍了,评价稳定了,一定考虑把系统升级到win7.....
不换操作系统这个事可以找到很多听起来很装X的理由,但就我来说,我只是懒得去修改新系统带来的配置兼容性之类的bug而已,
那玩意真挺麻烦的....
顺便,因为我觉得VS08的初版和sp版的兼容BUG实在太烦人了,所以我今年8月的一个项目开始改用VS2010啦,,同事们看到无不赞
叹的说
“呀!真新潮,界面好炫啊。”
呵呵,当然现在很多新生力量的程序员朋友们有些已经开始不断追求最新技术和开发环境了。好事!毕竟新的思维和做法才是这个行
业的核心。
2 程序员的平时都是怎么问别人问题的?
关于这个我发现很多新手们,包括我公司在声名显赫校毕业的新人朋友们,不太会问问题,或者按我们的说话不会交流。
交流是一门巨大的学问,也是大型软件公司需要给新人上的第一课,也是最漫长的一课。
也许你平时和哥们谈钱谈女人谈日本动作电影谈游戏你口若悬河旁征博引滔滔不绝,听得你朋友目瞪口呆暗自佩服纳头便拜,不由
得觉得有一股浓郁的王霸之气铺天盖地的袭来,但,这和程序员或者技术或者说商务中所谓的交流半分钱关系都没有。
程序员的交流要求,简洁清晰无歧义,直观可视有逻辑。
这个要讲就太多太多了,我简单说说要点。
最简单有效的方式,A还是B?这个问题用指针还是容器?用库函数还是重写?有没有这样的API?如果你要提问,给对方两个选择通
常是最有效直接的,原因
1 证明你思考了这个问题,已经把答案的选项具体到两个,同时对方也知道在问题中你已经进行到哪个程度。
2 对方比较容易给你一个直观的回答,哪怕两个都不是,通常对方也会给一个可参考的答案。
不建议使用“不知道怎么做”,“没思路”之类的提问方式。一般大家都不喜欢,因为你没思路,人家不能给你个思路吧,那不是
把工作替你做了吗?所以还是“你好,关于这个问题,我是这样想的,您帮我看看行不行?”这类的提问方式比较讨喜。记住问题在你
心里是条路,但别人只关心卡住你的点,大家乐意于帮你越过困难点,但路,你得自己走下去.....
至于和客户交流,这样的习惯就更重要了。
下面给大家简单说一下类似交流中的注意事项,供大家参考
1 想知道别人的看法,先给出你自己的看法。
2 当面+事后文档(交流记录)是最有效的交流方式,如果不能 文档 好于 当面 好于 电话。
3 交流文档中尽量使用简单陈述句式,如“这个帖子写得真墨迹”。等等,禁止使用夸张,反问,排比,双重否定等表达方式。毕竟这
不是写文章。
4 如句子逻辑较长,请分条描述,严禁在技术讨论等文字中使用包含任何的个人感情语句。
5 如果你要表达的内容包含比较复杂的逻辑,使用双方都容易理解的方式表达(推荐画图)
例如
bool flag = 叫TK的鬼子给我发邮件;
while(!flag)
{
我就在网上瞎白话;
sleep(1000);
}
return :);
//当然这里flag是可以被异步访问的,因为我们明白,鬼子写邮件是不耽误我在这瞎白话的.....
3哪个语言更好,更有用,应该先学?C,C++,java,Csub,python,PHP,VB?
我们知道,我们要装修房子或维修家电,我们需要一种神器,钳子。钳子有很多种,管子钳,尖嘴钳,钢丝钳,剥线钳,还有我们
常见的网线钳。
那么。这些钳子中哪个最重要,哪个最有用,哪个更高级,哪个钳子是所有钳子的基础呢?哪个钳子能替代其他所有钳子呢?显然
,哪个都不行。
那么你该学习哪一种钳子的使用呢?显然,如果你毕业以后如果确定你要成为一名电工,那么剥线钳和钢丝钳最适合你。(我瞎猜的
哈)
但现在我们的问题是,谁能确定毕业以后应该从事哪种职业呢,那么没办法,我们只好从最基本的钳子开始学,因为发明那些钳子
的大神以前都是用最基本的钳子出身的,所以我们学这种。
不一定就是对,但应该不会错,仅此而已。
所以,争论哪种钳子最有用没有任何意义,你是程序员,是因为你具备编程的思想,而不是因为你会哪种语言,那些都是工具,是
你手里的钳子。只要你有思想,遇到什么情况,使用哪种钳子,哪怕这种钳子你之前没用过,拿起来,研究研究,用,就好了。
我国某大型通讯企业 华东区 某位面试官 很喜欢问 哪个语言好 这类没正型的问题,他这样问有三个原因
1 他想知道你对你主语言优点的了解。
2 他想知道你对你的主语言外其他语言的了解。
3 他脑子有点问题,大学时候因为这个事受了点小刺激。
所以,初学者争论哪个语言更好这类问题是挺好的一件事,争论才能加强理解嘛。入职第二年还在争论也正常,刚工作,体验到语
言的精深之处了嘛。但是如果第三年还在争论,那可能就需要一些帮助了。
当然,对刚入行的你,绝大多数程序员朋友在工作第一阶段使用哪种语言不是自己决定得了的。
记住,当你不再讨论哪种语言更好更优雅更有用应该先学之类问题的时候,也是你开始有权参与讨论当前项目应该使用哪种语言的
时候。
4 程序员加班多吗?累吗?
这个我觉得大家挺关心的,以自己的经验来说说。
软件工程师这份工作,至少我工作那时还是说出去挺好听的。尤其是父母那代人里,一听,弄高科技的嘛:),当然现在差点了。
这行到底加班多不多其实也没个共性,同一个行业有的公司天天加班,有的公司按时下班。同一个公司这个组就加班,那个组就按
时下班。同一个组这段时间就加班,那段时间就不加班。这个其实跟活多活少,直接领导的风格都有关系。
以我来说,我跳过一次槽。刚毕业那个公司加班比较少,有忙的事时候加班,一个月大约到不了五六个小时。
(为让大家理解,程序员正常不加班的平均月工时是 21.75天 * 8小时 = 174小时上下 年假少算的话大约 180)
后来我跳去的公司,我们被组成一个特别小组参与一个项目的攻关。这个项目还是非常有难度的,最开始我们只有20个人,大约要
理解和维护600W行代码。那段时间是我职业生涯最痛苦的,每天工作到1点左右,持续大约四个月。那时每月加班大约120个小时左右。
最高似乎逼近过200个小时。这就相当于一个人干两份活了。万幸我们的加班费制度很完善,所以那段时间有一种打网游刷钱的感觉啊。
那段时间的努力没有白费。我们的能力,就是从那时开始被领导认同的。后来我们组建了一个部门,200人左右来维护这个项目,最
开始那批人熬住没走的就成了骨干和干部。这时人也多了,项目就不那么紧了,除了一些喜欢下班后工作的家伙(这样的不少),我们
的加班大约保持在10-70个小时都有,以后就开始持续降低。我一般认为10-20个小时就算比较正常可以接受的。
这时,以之前狂加班的兄弟为骨架的部门,加班后遗症开始显现。这种后遗症困扰了我近两年。这个我就不多说,这就涉及到很多
项目管理上的知识了,不在我们讨论之内。
当然,码农俗话说,忙半年闲半年。即便是在忙的时候,也免不了大家在一年中有那么几个月大眼瞪小眼无所事事晚来早走闲着难
受满院乱晃的岁月,这是软件生产的流程决定的,不知道别人是不是都这样。
PS:如果让我一直设计和编写代码,有时真的觉得时间过得飞快。真有时恨下班时间太早,想再干一会等到看结果,这不是无聊鸡汤
吹牛X,大约是一种职业病吧,我爱这个职业,也是因为这个。
再PS:其实我已经有半年没有加班了。
再再PS:我们这边对代码量要求算不高不低,C/C++200行一个月,java项目(主要是安卓)300行左右(这个有的部门标准使我们的N
多倍,N大于20),OC我接触他们那边少,不过也就两三百的样子,多的时候也过不去两千。基本上,一百人的团队,一个月产量过五万
行效率就挺高了,过十万就是比标准速度快了一些了,过三十万,技术主官就会奇怪的问,怎么你们现在写代码都不需要用脑子了吗?
如果你这个月的工作内容只是写代码,而不需要过多思考,完成一个月的工作任务大约一个小时左右吧。当然CV超人们不包含在这个数
据中了。
5 文档和编码规范
程序员最讨厌是四件事:写文档 写注释 没文档 没注释
其实一句话,文档是程序员工作的一部分,很多时候比代码还要重要。当然也许你会辩驳说文档不是程序,文档不是最终产品云云。
那我们说的现实点,假设情况很极端,代码好文档不好的程序员通常比不上文档好的兄弟升职快。代码好文档不好的组也没有文档好的
组效益高。我和大家一样都不喜欢这个现象,但这是事实。
另一个角度说,文档不好,就意味着项目流程不好,也可以理解为项目经理对项目的掌控性不高(也有可能是特别高,这是特例),
这样的情况下基于项目的协同性,节奏感考虑,这个项目的质量一定不会高。项目规模越大越是如此。当然这个又扯到管理上了。从开
发角度说,写文档注释哪怕只是给自己看,没坏处,这个早有论断了,咱就不讨论了。
至于编码规范, 我大学的时候曾经特别喜欢C语言混乱代码大赛的那个输出歌词的著名代码,并真的一字一行的把那个代码解析了
出来。直到上班快两年了,才明白写代码别人不认识并不叫什么本事。
你所在公司的编码规范建议你务必遵守,往小了说,良好的格式方便阅读。往大了说,避免很多错误。例如功能宏有do while(0)包
括,有if就一定有else,一行代码只做一件事,数字写在==的左侧(这个我总忘),不要使用递归等等等等。还有无论你对运算符的顺
序多么的了解,请使用括号,如果你的笔试题这样写
a+++b或者 r = a+ 26 | b * abc(c);
如无特殊情况,你会被无情的淘汰掉。可能你对优先级烂熟于胸,但大家都不会犯错,我会选那个用括号的。因为他更安全。记住任
何炫技的行为都可能带来灾难性的后果。
我说的特殊情况是指,如果两个女生面试,一个有着高超而又危险的技巧,一个拥有稳定又良好的规范。那么我想大家会毫不犹豫的
,选择胸大的那一个。
哈哈,玩笑,两个女生竞聘一个程序员岗位的事情实在是比较少见啦。当然,决没有歧视女程序员的任何意思,我们首席技术官和以
前一手带我的老师都是女的.....
6 黑客和程序员
这个总被问到,程序员都会黑客技术吗?肯定不是。黑客都会写程序,呵呵,反正自称黑客的挺多都不是。
中国的黑客分为四种,一种是白天在软件公司上班晚上兼职黑客的,有点战时为兵平时为民的意思。我们公司出过这事,后来出事了
几个人还判了刑。因为公司还有一点点影响力,低调处理了。这种事一般极少。
第二种是自学编程热爱技术,但不在正规公司工作,喜欢以搞破坏的方式宣示自己力量的。这个是我们一般理解的黑客,我和大家一
样都挺崇拜的。特别是大学时尤为如此,即便是现在我碰到这种朋友也会表达尊敬虚心请教的。(这是另一个故事了,哪天再有空我给
大家讲讲)这种人一般被媒体和大家渲染的神乎其神,穿越于黑暗中的侠客啥的,大家当故事看就得了。这种人绝大多数都已经被招安
了,少有还“孤独的游走在黑夜边缘”的。其实要讲实力,一个简单的比喻。
受过正规软件工程师培训的程序员们就像正规军,进退有度分进合击。黑客大神更像大侠,武功高强,高来高去。我们不否认现在民
间有些个高手,单挑打赢一个大兵没问题。但如果10个这样的大侠对一个班的大兵,可能就胜负各半了。如果等数量的大侠对一个连的
士兵,我们大家都明白,大侠们是不可能打赢的。毕竟这不是电视剧,大侠不是杨过小龙女,正规军的训练是大侠们没有经历过的。十
个坐在一起的程序员高手还远远不是一个十人团队,就是这么个原因。
第三种可可乐了,大伙可能还不太容易见到。就是我前面说的,不会编程的“黑客”们。属于第二种的半成品,或者说十分之一成品
。这种一般都是看了电影电视小说中某个孩子或普通人,一般是受人欺负总被虐的,轰的一声就发现自己有计算机天赋了。成为了黑客
帝国中霹雳无敌刷天扫地谁都怕怕大将军。然后银行钱随便花,妹子随便霍霍,警.方军.方有事都得求着他,一人之力打败美.军之类的
。看完以后抱着黑客梦就开始学。
我有天赋啊,我是电脑大明白,哈哈,我这天赋,买本书,额这C语言?我这天赋学前二十页够用了。下载个三分钟黑客速成视频吧
,报个班拜个师傅花点钱吧。
这种“黑客”最大的技术成就就是刷过QQ钻,用工具攻击过人家网站,毕生所学最大的用武之地就是用来教别人.....包括那个什么
“毒王”之流的都属于这个段位。
当然,真有一些高手高手高高手就是从这时候过来的,但真能过这道坎的,千中无一,比高考和考公务员成功率要低,劝朋友们慎
重吧。
顺便说一句,刷一些钻啊会员啊的通用方法,就是到肯德基打份工,一个礼拜你网上各种vip会员就办全了,还省心,比学技术快多
了。
第四种是传说中的,听说过没见过,专业的黑客团队,专业工程师团队转型的,这个按《中华小当家》中的说法属于暗黑编程界,
我没接触。现在也少了,因为咱们网络...环境管控啥的我就不多说,你们都懂。
我有一个很尊敬的大哥,就因为参与这种事(他只是在很外围的外围帮个小忙)因此而前途瞬间灰暗无光,只能靠我们这些从前在他
照拂之下的小兄弟来跑上跑下为他某个前程。这事让我挺难受的。
我办公室出门左转有个小厅,它的墙上写着:
“终身不以我之技术,
直接或间接
从事或教授他人,
威胁或可能威胁他人的信息安全或财产安全的
相关技术和行业。
否则,
愿此行业将我抛弃,
无团队再接纳我,
无人愿与我合作”
不知道谁说的,但说的挺好的,共勉。
7 程序员找工作必须知道的那些事
这个本来我不想说的,一个是涉及到一些行业规则。一个是太多太多不知从哪说起。
我瞎说,想到哪说到哪,大家参考,随意取信。
首先,为啥大家招聘的时候会要求 211 985啦 四六级啦 研究生啦这类要求呢?这个想来大家是疑惑的,我并不比他差啊,为啥就
被条件要求卡掉了。这个大家和人事一起真实参与招聘后才会明白,这些条件,其实是为了过滤。毕竟现在每个职位争夺都很激烈,20
个名额可能抛出上万份简历供挑选(这个真不是夸张),而招聘工作也是有日程有任务的,人力资源必须在技术面试前淘汰这上万人中
的绝大多数。(没错,你的简历就这样被一帮不懂技术的人随意淘汰了)。因为技术面试我一天看八个也已经很累了。
可是,要看一万份简历,在一到两天之内看完,是绝壁痛苦的,也是很难完成的,失误率很高的。那怎么保证先期缩小范围内,大
家懂了吧?其实好多条件都是人力拍脑门定的,旨在过滤掉绝大多数,再从少数里挑选合适的人。当然有合适的人被这样过滤掉了,但
,这也是没办法的事。
你想吃一个苹果,现在给你一百个,其中80个是烂的。于是你过扔掉70个,在三十个里找个能吃的,就这么回事。你不必管扔掉的
有多少能吃,反正你就吃一个。这个东西很残酷但谁也无力改变,所以,应届的朋友们被淘汰了,千万不要失去信心。
这就说到另一个,当一个公司缺人缺的多时,他就没那么多要求了。因为人力必须在规定时间内把人招满,淘汰率太高了可能剩不
下那么多能吃的苹果了。所以在适当的时机投出简历,是很重要的,所以才会说“金三银十”。(这个日期在每个地方说法上还不一样
)所以好多情况是,前面各种挑各种事多,最后发现人不够了,差点也没什么了。
对无论你的技术力量有多强大,你读书时有多少实际经验和多高的水平。入职后都得经历从民间编程高手到正规软件工程师得转变,
也就是说都得基本从头培养。所以,所谓技术面试时你的基础知识固然重要,但也不是全部,不好还能教。你的性格,反应,是否聪明
(给面试官感觉)也对结果起到一定影响作用。
上海一家银行的技术部的首席,当年毕业后在上海大半年都没找到工作。就是因为看起来笨笨的,表情有点木讷,而且说话反应不
快。当然后来事实证明他的个人能力和技术水平无可挑剔。和他相处的这些年让我很擅长在应试者中发现这样的奇葩。
所以,所谓面试去除了技术水平的部分,剩下的有运气的因素,也有缘分的影响。但有一点,现在的环境来看,做为我们这些技术
工人只要手艺没问题,那找个好工作一定是不成问题的,或早或晚而已。
另外,如果你不个是个刚入行的新手,你再找第二份工作,那么学历啥的已经不再重要了,重要的是经验。国内交通口一家做视频
很有名的公司开发部部长就是初中学历。特别热情和强大的一位大哥。
国内外大型知名软件公司的经验是特别提行市的,因为你在那里受到的是最专业的培训和可能挺残酷是试炼。国内好多小公司的技
术总监技术主官之类的都是以前大公司里名不见经传的一些人物(当然也有牛X的)。所以,你大概能从一家小公司的管理风格和员工的
工作习惯判断出他的主管以前供职于哪家企业。
另外,你之前从事的行业也很重要。这个就看运气了,声音的播放处理是个冷行业,但从事人也很少。我的一个做这行的兄弟跳槽
去日本很知名的一家这个行业的公司沈阳分公司。人家北方的大区经理(鬼子叫高级部长),特地北京飞到沈阳,并亲自到在公司楼下
等他,可见重视。因为他要找一个同行业的工作固然很难,但鬼子想找个有此行业经验的人那更是难了。
瞎说一句,目前国内关于基础设施建设,政府大型工程方面的软件开发今天数据特别漂亮,汽车也挺好,手机不如去年,工业嵌入
式还成,民用嵌入式比去年好,web依旧便宜但量大(可怜的CV超人们),ERP挺不错的。这些个数据大家不必参考 ,仅供随便看看。
好了,鬼子的邮件到了,我得继续工作了,就说这么多,想说的还有不少,但嘴笨拙舌的也说不出来,就这些吧。今天一天比我上个月整月打字都多了。写的不好是肯定的,写文章我是不在行,但如果大家能从我这个小短文里获得一些启示,也算我没白忙活吧。
就这样,祝好运。
Apple
12月2日于806开发厅6办公室
这个小短文没版权,大家喜欢的话可以随意转载,留下我的名字,注明转自C语言百度贴吧就行了,话说这始终是我最爱的语言啊。
(转载自 百度“C语言吧” ,原作者 apple465)