程序员工作内容实际工作中有没有程序员工作内容因为有些地方忘了或者是某个功能不知道怎么实现了,边查资料边看教程来完的

您的位置:
为什么中国的程序员技术都偏低?
作者:博客园
&  首先来说一个高级程序员并非靠自己读几本书写几万行代码就能练就的,我更关注于低层的环境,也就是程序员实实在在的工作环境。因为程序员的高低还得从实际的工作来衡量,而非其它。所以我想说的是,中国的软件公司的性质直接导致程序员的水平的高低。而我所说的软件公司,不是指某个或者某几个,而是指主流的软件公司,大众型的软件公司。所以我希望那些已经步入一个理想的公司的程序员理解我这篇文章的定位。
  软件公司的无偿加班对程序员的影响:
  国内的软件公司中程序员是常常加班的,每日加,周未也常加。基于这种性质,出现了一种很莫名其妙的现象:每天程序员的实际下班时间总是要晚于规定下班时间,至于晚一个小时还是两个小时还是更多这就另说,总之,程序员这份工作,如果按时下班反而自己感觉自己像是做贼似的。表面上公司并没有强迫谁加班,但实际上在潜移默化中有一种威慑力,要求你要多为公司工作几个小时,而且表面上你所工作的这几个小时还是你自己愿意的。正因为是&自己愿意的&,所以公司更有理由认为是无偿的。
  还有就是周未加班,一般周未加班是因为&忙&(关于这个带引号的&忙&,见&软件公司的&忙&对程序员的影响&)。但周未加班一般是无偿的,至于法律所规定的那种&偿&就更尝不上了。不过一般公司是这样规定的:周未加班可以倒休。关于倒休,一般是周未的班真的加了,倒休却遥遥无期,原因很简单,公司&忙&嘛!
  这种情况对程序员的影响:消极、软弱无主见、虚伪、对前途渺茫。
  软件公司的&忙&对程序员的影响:
  软件公司的&忙&其实有时也是真忙,从原因来说,软件公司认为是程序员(其实也有其他员工,但本文不涉及讨论)造成的,程序员认为公司造成的。而根据&一个巴掌拍不响&原则来看,应该是公司与程序员合作不协调出现的恶性循环造成的。深层原因大家自己研究去吧。不过从我这里的表象来看,这种&忙&有这么几点,这几点如果不代表大家的意见,大家可以补充:
  **项目开发与计划脱节,表现为项目开发慢于计划。
  **突如其来的事件。
  **为某种说不清道不明的原因,像是作秀。
  **假忙。
  **真忙。
  上面说的第一种情况最常见,这涉及到软件工程的话题,其实也是软件公司做不大,程序员水平提不高的核心。而&软件公司做不大&已有前辈文章《浅谈:国内软件公司为何无法做大做强?》中说过了,而&程序员水平提不高&本文所言即是,所以这个原因大家读完这两篇自己体会吧。
  上面说的第二种情况也常有,比如偶尔赶个标书,比如客户那里突然出现了BUG,急着去改等等。
  第三种情况就很让人晕菜了,有点无病呻吟的感觉,比如不知道从哪里冒出一个会议,开到个七八点;
  第四种情况很特别,也比较常见,大家同室坐、彼此各自心。一片共同耕作的美好景象,但果实见不到两颗豆呢。这可是大家齐心虚度时光。程序员可以拿出这个时间提高自己吗?当然不可以了,你表面上还是得干活呢。
  第五种情况就不说了,因为这是正根。
  总之软件公司是&忙&的,一般是以上三种&忙&,偶尔这三种都没有了,第四种就马上出来的。
  这种情况对程序员的影响:混乱无序、怨由心生、虚伪做作、学习时间少。
  软件公司的流程不规范对程序员的影响:
  无像样的需求、无像样的设计、没有测试、没有文档、没有维护(所谓维护也大都是客户测试出BUG来改一改)。
  其实说到需求这一块也并非完全是软件公司的问题,大多数情况下,客户也是根据程序员直接上来编码后暴露出来的问题才渐渐明白自己的需求是什么的。
  &什么都没有&的问题在于,什么也不清楚,如果写一堆以不变应万变的代码,第一,时间不允许,第二,难度太大。要是稀里糊涂去实现,扩展与维护性又差,整个一堆豆腐渣工程,总之是没法下手。长了一堆&打铁&技巧,神不像神,程序员不像程序员的。
  这种情况对程序员的影响:无规划性、代码质量低、手忙脚乱、技术永远停留在&打铁&水平。
  软件公司对程序员员工的&全能型&要求对程序的影响:
  装系统、修打印机、写文档、编代码、见客户、扫地搬桌子、接网线,在国内软件公司中程序员做什么事都有可能。单单说技术方面,也是要求事事能做,看一下招聘要求就知道了。
  这种情况对程序员影响:术业无专攻
  软件公司的工资拖欠对程序员的影响:
  很悲哀,这是存在的。我向来认为一个员工与公司合作的最底线应该是按时按量发工资。但很多公司打破了这个底线。一个朋友开玩笑地说过:&家庭有钱,谁干程序员呀!&这话虽只可信一半,但是从国内情况来看,程序员的生活质量还是不高的,工资的拖欠直接影响到程序员的心态,甚至影响到程序员的生活。
  这种情况对程序员影响:低调、迷茫、心态不稳、思想徘徊、生活困难。
  软件公司对软件开发的要求对程序员的影响:
  软件公司对软件开发的要求一般是实现即可。如果说写一个和记事本一样的程序,公司感觉程序员应该在一天内搞定;如果写一个WPS,公司也就感觉程序员应该在两到三个月搞定。这不是浮夸,事实就是这样的。公司所着眼的点在于&就这么一点功能&,而非在于&怎么实现这&一点&功能。
  这种情况对程序员的影响:开发难度大、维护难度大、压力大、难沟通。
  软件公司的承诺对程序员的影响:
  国内软件公司一般实际行动能力差,但没理难说话,他们也知道自己没理,所以比较爱承诺,把实际问题抛向以后解决。然而承诺也只是口头的,有一点&我以人格担保&的意思。不过一般情况下,国内的程序员还是比较有忍耐能力的(从上文来看不忍耐还能混吗),但公司层面的&人格&却是不可信,多承诺少兑现,员工面试时听到的说话到干了两年走了都没做到的事根本不少见。然而路遥马乏力,日久人变心,这样的结果往往是使公司与员工走入恶性循环。
  这种情况对程序员的影响:不满、被动、拿不起放不下、进退两难。
  结论:
  消极、软弱无主见、虚伪、对前途渺茫、混乱无序、怨由心生、虚伪做作、学习时间少、无规划性、代码质量低、手忙脚乱、技术永远停留在&打铁&水平、术业无专攻、低调、迷茫、心态不稳、思想徘徊、生活困难、开发难度大、维护难度大、压力大、难沟通、不满、被动、拿不起放不下、进退两难。
  上面这些短语概括了程序员的性格、心态、生活环境、工作环境等方面,它们就像毒素一样,日久能把一个健康的程序员毁掉。在这样的环境下,还问为什么你的技术这么低?太搞笑了。
(转载请保留)
互联网的一些事,已超50万小伙伴关注!(1)该资料对你:(4)(0)
说明:讲述一个java程序员的求职面试,工作的一些个人经历。
关键词:&&&
&&& 不久前,我曾在网上论坛上看到了一个这样的帖子:
&&& 大家给我个底吧,我是即将毕业的大学生,现在有软设的证书了。
&&& 主要擅长于计算机的维护、应用以及开发;
&&& 软件方面:现以通过国家软考中心软件设计师资格考试;
&&& 主要熟悉的IDE环境:VC++,C++BUILDER,VB;
&&& 主要使用的数据库接口:ADO;
&&& 主要使用的数据源:ACCESS,SQLSERVER,擅长使用SQL语言;
&&& 主要使用图形接口:OPENGL,对DirectX接口也有一定了解;
&&& 其它语言:JAVA(J2EE、J2ME);
&&& 网络方面:熟悉ASP,PHP,JAVASTRIPT,以及网络构架设计、施工、调试,对安全知
识也有相当的了解;
&&& 系统维护方面:有三年的计算机维护经验,熟悉系统工作原理;
&&& 其它:熟悉CAD、PHOTOSHOP等几乎所有常用软件的使用,UNIX系统的应用;
&&& 我投了很多简历,并面试了几家公司,目前只有一家公司出1500,大家说我去吗?
&&& 这个&准程序员&朋友的简历真可谓是&高、大、全&,所掌握的技术很是全面,几乎是无
所不知无所不晓。然而,为什么只有一家公司愿意聘用他,而且才给他1500元的月薪?他很
&&& 过了几天,有一个在软件公司开发团队做TeamLeader的朋友想招聘Java软件工程师,
找我帮忙推荐,招聘要求如下:
&&& 软件工程师(1人)
&&& 1、计算机或相关理工科专业;2年以上工作经验;
&&& 2、熟练运用Java等编程语言,熟悉其他编程语言如,VB\VFP等者优先;
&&& 3、熟练使用MySQL等主流数据库,熟悉Oracle者优先;
&&& 4、对Linux操作系统熟练,熟悉Solaris者优先;
&&& 5、工作踏实认真,具备良好的团队合作精神及良好的沟通能力;
&&& 6、有独立项目开发经验者优先。
----------------------- 页面 3-----------------------
&&& (私下透露月薪范围是视个人能力而定)
&&& 他跟我说他们贴出这个招聘启示已经一个多月了,也没有招到合适的人,请注意这个招
聘要求可比上面那位仁兄简历中写的技术少多了。
&&& 是什么原因让我们的用人单位总是招不到人,在其并不复杂的用人需求面前如此的困
惑,又是什么原因让我们的&准程序员&在应聘工作岗位时四处碰壁呢?
&&& 是我们的&准程序员&们掌握的技术不够全面吗?还是用人单位岗位要求太复杂?显然
都不是,现实情况却正好相反,那是什么原因造成的这种局面?
&&& 我告诉大家,无非是两点原因:第一点,应聘者对自身没有一个清晰的定位,不是好高
骛远,就是定位过低。第二点,应聘者所掌握的技术知识和工作岗位的需求脱节,要么是学
了用不上,要么是有用的没有学。这两点原因无外乎就是&对即将走向的工作岗位没有清楚
&&& 如果,我们的&准程序员&能够做到&知己知彼&那么自然&百战不殆&了。
&&& 本书就是让我们即将走向程序员岗位的朋友们,能够做到既&知己&又&知彼&,在入职前
能够对这个职业有一个清楚的了解,在入职后对职业方向有更清晰的认识,从而,使大家更
加充满自信的走向工作岗位。
----------------------- 页面 4-----------------------
&&&& 《我工作我Java》1
原名:《Java程序员要上班!》 1
第一卷生存法则9
第1章知己知彼,百战不殆10
1.1问题1:这个职业赚钱吗?赚多少钱10
1.1.1修炼第一层境界:剑指四方,试问天下谁与争锋11
1.1.2修炼第二层境界:世界如此之大,要学的东西很多11
1.1.3修炼第三层境界:最深即最浅,最浅即最深,不过如此12
1.1.4点评&修炼三层境界&13
1.1.5回答这个问题13
1.2问题2:大学毕业生找不到职业入口13
1.2.1工作经验都是什么经验14
1.2.2他们为什么面试的时候这么问?15
1.2.3程序员的笔试20
1.2.4回答这个问题23
1.3问题3:跨行业真的这么难吗?24
1.3.1跨行业最难的是什么24
1.3.2跨行业的入口--原来从事行业的业务知识24
1.3.3农民造出了飞机,为什么他还是农民25
1.3.4回答这个问题25
1.4秘诀:经营自己的优势25
1.4.1善于发掘和积累自己的优势26
1.4.2善于展示与利用自己的优势26
1.5点评&经营自我&28
第2章软件开发职业的误区28
2.1误区1:软件开发职业是青春饭29
2.1.1不必为30岁以后烦恼29
2.1.230岁以后照样可以编程序29
2.1.350多岁的程序员多的是30
2.1.4点评&青春饭&30
2.2误区2:做软件开发必须要加班熬夜的工作30
2.2.1程序员们熬夜工作的借口30
2.2.2常态加班的危害31
----------------------- 页面 5-----------------------
2.2.3控制好工作的一日时间表才是关键32
2.2.4&偏执与狂热&不等于加班加点33
2.2.5程序员的大脑与第二大脑33
2.2.6点评&加班熬夜&34
2.3误区3:开发一个软件产品一定是集团作战34
2.3.1几百人的公司其他人都在干什么35
2.3.2需要较全的人员配置的项目38
2.3.3坚信,只要是&人&做到的我就能做到38
2.3.4点评&集团作战&39
2.4误区4:程序员不是一般人39
2.4.1程序员的与众不同与平凡39
2.4.2程序员们就是一般人41
2.4.3点评&一般人&42
2.5误区5:存在&软件蓝领&岗位42
2.5.1&软件蓝领&是个&美梦&42
2.5.2&让程序员放弃思考?&是个&噩梦&43
2.5.3软件开发流程&理想&的&不理想&43
2.5.4&软件蓝领概念&忽略的东西46
2.5.5现实中的软件开发团队48
2.5.6点评&拧螺丝&50
2.6关于误区50
第3章程序员的&菜鸟心态综合症&51
3.1症状1:指望着公司里有一个老师51
3.1.1临床表现51
3.1.2治疗1:弄明白她为什么辞职51
3.1.3治疗2:理解公司的本质是什么 51
3.1.4治疗3:要搞清楚你的主管是你的老板,他绝对不是你的老师52
3.2症状2:不知道怎么让自己前进52
3.2.1临床表现52
3.2.2治疗1:你只管低着头上山,暂时不要向山上看52
3.2.3治疗2:明知山有虎,偏向虎山行53
3.2.4治疗3:没有过不去的火焰山53
3.2.5治疗4:虚心使人进步,骄傲自满要不得 54
3.3症状3:想做圈养的羊,不想做野生的狼55
3.3.1临床表现55
----------------------- 页面 6-----------------------
3.3.2治疗1:理解&丛林法则&生存的法则 56
3.3.3治疗2:向掠食动物学习如何生存57
3.4症状4:缺乏自信,总对自己说No57
3.4.1临床表现57
3.4.2治疗1:生活取决于自己57
3.4.3治疗2:找到通往高楼的那扇门 58
3.4.4治疗3:逐个排除你恐惧的理由 58
3.5症状5:缺少幸福感,内心总在跳跃59
3.5.1临床表现59
3.5.2治疗1:比一比到底谁最幸福59
3.5.3治疗2:要努力进取也要找到幸福的理由 60
3.6症状6:困兽心态,焦躁与不安60
3.6.1临床表现60
3.6.2治疗1:像猴子一样生活60
3.6.3治疗2:多和团队成员沟通 61
3.7症状7:缺少感激心,心存感激让你受益匪浅61
3.7.1临床表现61
3.7.2治疗1:心存感激不等于低人一等62
3.7.3治疗2:首先应该对你的领导心存感激62
3.7.4真心换真心63
3.8症状8:不知道什么是&团队合作&64
3.8.1临床表现64
3.8.2治疗1:分析在公司上班的三个目标 64
3.8.3治疗2:团队合作--就是团队主管的目标 65
3.9点评&心态&65
第4章换位思考,项目主管的招聘技巧66
4.1招聘就像大海捞针66
4.2技巧1:是否有独立完成项目的经验66
4.2.1独立完成一个项目的经验是什么经验67
4.2.2没有独立生存的能力不能有最佳团队合作68
4.2.3测试手段69
4.2.4锻炼攻略:需要主动寻找独立工作的机会71
4.3技巧2:是否有独立解决问题的能力72
4.3.1见招拆招的能力72
4.3.2程序员的韧性72
----------------------- 页面 7-----------------------
4.3.3测试手段72
4.3.4锻炼攻略:训练创意思维74
4.4技巧3:评价程序员的思考方式74
4.4.1一切皆程序75
4.4.2找到规律76
4.4.3锻炼攻略:抓住中心把复杂的事情变简单77
4.5点评&换位思考&79
第5章程序员,保持你前进的步伐80
5.1程序员前进的四个阶段80
5.1.1第一阶段,找到一个编程语言去入门80
5.1.2第二阶段,用所这门语言去分析和推理80
5.1.3第三个阶段,新知识新技术的积累81
5.1.4第四个阶段,大道无形81
5.2学习与积累81
5.2.1找到好书,相当于找到一个好老师82
5.2.2每本书都没有从头看到尾是不是等于不用功?84
5.2.3学会建立沉淀目录86
第二卷制胜法宝88
第6章Java程序员的七种武器89
6.1武器1:编程IDE开发工具89
6.1.1TeamLeader的嗜好89
6.1.2什么功能是程序员最需要的89
6.1.3下面这些IDE你都用得到93
6.1.4点评&开发工具&98
6.2武器2:数据库系统98
6.2.1广告与市场的力量98
6.2.2不要盲目选择数据库,根据用途选择合适的数据库99
6.2.3以下这些数据库绝不能仅仅是&眼熟&100
6.2.4研究一下JDBC源程序102
6.2.5不熟悉数据库就会&绕远&113
6.2.6点评&真相&117
6.3武器3:Web服务器软件118
6.3.1Web服务器是如何工作的118
6.3.2支持JSP的Web服务器的原理119
6.3.3常用的WebServer120
----------------------- 页面 8-----------------------
6.3.4研究一下WebServer的源程序120
6.3.5点评&深入研究&124
6.4武器4:操作系统125
6.4.1让我们看看这个招聘启事125
6.4.2Java程序员为什么需要研究操作系统125
6.4.3我们应该更关心操作系统的哪些方面125
6.4.4哪些操作系统我们要重点关注126
6.4.5点评&Linux&131
6.5武器5:编程语言132
6.5.1Java程序员只会Java语言行吗132
6.5.2各个编程语言的特长134
6.5.3点评&第二门语言&136
6.6武器6:辅助设计工具136
6.6.1UML图设计工具136
6.6.2常用UML设计工具137
6.6.3UML要&灵活&的掌握140
6.7武器7:版本控制工具140
6.7.1工作原理140
6.7.2常用版本控制工具140
6.7.3融入团队的开发氛围141
6.8点评&武器&141
第7章破除Java开发中的封建迷信142
7.1迷信1:Java占内存到底大不大142
7.1.1测试一:让程序去裸奔143
7.1.2测试二:针尖对麦芒146
7.1.3让人不再&迷信&的测试结果147
7.1.4先天与后天147
7.2迷信2:Java和C到底谁快148
7.2.1测试一:让程序转起来148
7.2.2测试二:读取个大文件吧149
7.2.3测试三:内存处理的速度152
7.2.4测试结果分析153
7.2.5也不要过于迷信C语言153
7.2.6Java语言与C语言之间的应用比较154
7.3迷信3:Java就等于JSP吗154
----------------------- 页面 9-----------------------
7.3.1一个面试的现象154
7.3.2JSP开发时间长了的误解155
7.3.3Java的纯真年代155
7.3.4Java绝对不等于JSP156
7.3.5努力保持一个纯真的心态156
7.3.6点评&纯真&156
7.4迷信5:C/S与B/S相比一无是处156
7.4.1B/S是一个很好的创意157
7.4.2B/S程序本身也是一个C/S程序157
7.4.3C/S程序的优势--速度158
7.4.4C/S程序的应用领域158
7.5迷信6:J2EE的开发必须用EJB159
7.5.1EJB真人真事159
7.5.2我们不禁要问,什么是&服务集群&?什么是&企业级开发&?160
7.5.3把EJB掰开了揉碎了160
7.5.4EJB的最底层究竟是什么161
7.5.5EJB中所谓的&服务群集&163
7.5.6这种部署难道是无懈可击164
7.5.7EJB活学活用,J2EE不是必须使用EJB165
7.5.8&技术&不是神,不要动不动就&崇拜&165
7.6点评&迷信&165
第8章揭秘中大型应用系统166
8.1何谓&中大型应用系统&?167
8.2无法学习与模拟167
8.3资深程序员的&经验&167
8.4为什么要熟悉系统的运行环境168
8.5带你进机房里去看看硬件设备168
8.5.1机房的基本情况168
8.5.2&U&的概念170
8.5.3机房中的设备171
8.5.4在机房里我们发现了什么175
8.6安全与效率--永恒的主题176
8.6.1绝对安全是不存在的176
8.6.2RAID177
8.6.3负载均衡178
----------------------- 页面 10-----------------------
8.6.4双机、集群的配置模式179
8.6.5网络流量与速率180
8.6.6带宽180
8.7一个软硬件部署方案实例180
8.8点评&经验&181
第9章为什么要学习用框架开发182
9.1学习框架是因为它&火&182
9.2使用框架开发的好处182
9.2.1框架的目的是简化编程工作182
9.2.2框架是一个应用程序的半成品183
9.2.3框架的好处是代码重用183
9.3框架不仅仅只有&SSH&183
9.3.1WebWork183
9.3.2EasyJWeb184
9.3.3Click184
9.3.4JBlooming185
9.4用框架的思想去&自由思考&185
9.5自己也可以试着做一个186
9.5.1先看看不用框架怎么编写程序186
9.5.2从应用程序中找到共性的东西188
9.5.3我们试着做一个最简单的框架188
9.5.4有了这个框架开发工作被简化193
9.6点评&自由思考&193
第三卷达人策略195
第10章高手有多高菜鸟有多菜196
10.1五年工作经验的&菜鸟&196
10.2高手是怎样炼成的196
10.2.1修炼1:Java悟道197
10.2.2修炼2:关注程序的品质197
10.2.3修炼3:&技术&与&技巧&都很重要211
10.2.4修炼4:走入Java的底层程序开发212
10.2.5修炼5:从Worker到Maker226
10.3点评&高手有多高,菜鸟有多菜&227
第11章控制内存的功力 228
11.1别指望Java和内存无关 229
----------------------- 页面 11-----------------------
11.2容易被搞晕的--堆和栈 229
11.2.1堆--用new建立,垃圾自动回收负责回收229
11.2.2栈--存放基本数类型,速度快 229
11.2.3何谓栈的&数据共享&230
11.2.4实例化对象的两种方法230
11.3内存控制心中有数231
11.3.1两个读取内存信息函数231
11.3.2开发Java程序内存看的见 231
11.3.3必须要介绍的虚拟机的参数&-Xmx&232
11.4内存控制效率优化的启示234
11.4.1启示1:String和StringBuffer的不同之处 235
11.4.2启示2:用&-Xmx&参数来提高内存可控制量237
11.4.3启示3:二维数组比一维数组占用更多内存空间237
11.4.4启示4:用HashMap提高内存查询速度239
11.4.5启示5:用&arrayCopy()&提高数组截取速度241
11.5内存垃圾回收问题243
11.5.1什么是内存垃圾,哪些内存符合垃圾的标准 244
11.5.2JVM垃圾回收的相关知识246
11.6点评&功力&247
第12章产品和项目是程序员永恒的主题247
12.1什么是项目,什么是产品247
12.1.1&产品&的定义247
12.1.2&项目&的定义248
12.1.3&产品&和&项目&的区别248
12.2软件产品开发是&艺术&249
12.2.1软件产品开发需要灵感249
12.2.2程序作品是你的一个传世的艺术作品250
12.2.3软件产品开发需要&前瞻性&251
12.3软件项目开发是&军事行动&253
12.3.1开发者就是这个程序的&三军统帅&253
12.3.2&项目&开发需要&运筹帷幄&253
12.3.3项目控制,一艘船的故事 254
12.3.4点评&军事行动&255
第13章非技术知识对工作的辅助 256
13.1辅助1:&英语&不需要专业,因为它只是工具257
----------------------- 页面 12-----------------------
13.1.1英语与编程序无关257
13.1.2用英语可以看一些英文文档257
13.1.3掌握基本的工作交流时的英语词汇 257
13.2辅助2:&Google&不是万能的,但不会用万万不能261
13.2.1在网页标题中搜索关键字:intitle261
13.2.2在特定站点中搜索关键字:site261
13.2.3在url链接中搜索关键字:inurl262
13.2.4精确匹配搜索:双引号262
13.2.5搜索结果中不希望含某特定查询词:减号263
13.3辅助3:程序员的常用文档写作264
13.3.1程序员在软件开发过程中需要提交的文档264
13.3.2程序员在日常工作中需要提交的文档265
13.4点评&非技术&265
第14章结束语 266
第15章本书简介267
第16章相关人士对本书的赠言268
----------------------- 页面 13-----------------------
&&& 第1章知己知彼,百战不殆
&&& 从你决定迈出校门进入社会的那一刻起,你就进入了一个战场,这个战场虽然没有硝烟
弥漫,没有炮火纷飞,但却绝不亚于任何一个真正的战场。你要在这个战场上去搏杀,去竞
争,利用各种可以利用的手段去赢取战斗。在这个战场上,没有人会因为你的弱小而给予同
情,也没有人会因为你是一个新手而手下留情,在这里你会感受到在学校里从来没有感受过
的&残酷&,你将深深的体会到一句话,那就是&优胜劣汰&。
&&& 我们能在这个战场上获胜的法宝之一就是&知己知彼,百战不殆&。我们如果能够在战斗
前对双方的情况了如指掌,那么,取得胜利将会成为必然。
&&& 知己:要对自身的情况了解,要找准自己的定位。这个定位是自己对自己充分了解的情
况下进行的思考,对于准备迈向程序员职业的战士们来说,进行这个定位是绝对必要的。
&&& 知彼:要对未来工作岗位的一切做到尽可能的清楚,这就需要对你的对手有非常清楚的
&&& 1.1问题1:这个职业赚钱吗?赚多少钱
&&& Java程序员这个职业赚钱吗?能赚多少钱?
&&& 我们刚刚进入本书的正题就拿出一个俗不可耐&钱&字来和大家大谈特谈,未免不雅。但
是,我还是要在一开始就要说这个问题,因为这是很多朋友关心的问题,为什么不先说?
&&& 有很多即将进入这个行业的年轻朋友都很想问这个问题。
&&& 认真的面对这个问题,我们的回答是:
&&& 先不要急着问能赚多少钱,先要想想你为别人能提供什么服务。
任何一个职业都很赚钱!而且,都可以赚很多钱,想拿高薪不一定非要做程序员。我不是在
这里卖关子,这是真理,&三百六十行,行行出状元&。
&&& 那么这时,有些朋友听到了我说的这些话也许会很失望,其实也不要失望,这个职业有
让你赚到高薪的机会,只是,赚高薪是在什么时候,或者是在程序员的哪个所属层级。
&&& 我们来了解一下程序员的修炼三层境界,了解一下这个内容会比较容易抓住本书中的内
&&& 1.1.1 修炼第一层境界:剑指四方,试问天下谁与争锋
&&& 修炼第一层境界的程序员,对Java开发技术尽数掌握,开发工具掌握的也较为娴熟。
可以将第二层次程序员交给的任务完成的很出色,可以按要求独立完成类,接口和算法的开
发。注重技巧,对具体的编程语言非常熟悉。
----------------------- 页面 14-----------------------
&&& 能力之所及,皆无不用其极,认为所有开发知识,越是看起来深奥的越值得去研究,希
望在自己开发的所有项目中,能用上的技术全用上,目的只有一个,就是尽可能多的获得实
践机会。总想四处试刀,看看手里的刀到底快不快。满口都在谈,什么框架是最优秀的,C#
和Java的优劣,满脑子想着如何将一个程序编写的更复杂。热衷于探讨技术问题,甚至有
可能因为一个开发观点而和别人争论的面红耳赤。
&&& 在编码中,经常可以看到他们会这样写程序代码:
&&&&&&&&&& if (a&0)
&&&&&&&&&& a++;
&&&&&&&&&& else
&&&&&&&&&& b++;
&&& 他们非常想证明自己掌握技术的娴熟程度,没错,他知道这个知识,在这里可以省略大
&&& 这类程序员大有&剑指四方,试问天下谁与争锋&的气势,工作具有活力,常常因为一个
技术细节加班到深夜,大多属于拼命三郎型。如果项目不能让他们学到他们想要的东西,他
们会放弃这些项目,去投靠别的公司,跳槽对于他们来说很平常。
&&& 第一层境界特征:
&&& 第一层境界特征:
&&& 第第一一层层境境界界特特征征::
&&& 工作时间:
&&& 工作时间:
&&& 工工作作时时间间::三年内
&&& 工作任务:
&&& 工作任务:
&&& 工工作作任任务务::按要求编写类和接口的具体实现代码
&&& 工作内容:
&&& 工作内容:
&&& 工工作作内内容容::编写具体的代码
&&& 开发目标:
&&& 开发目标:
&&& 开开发发目目标标::无所不能
&&& 开发特点:
&&& 开发特点:
&&& 开开发发特特点点::注重技巧,对具体的编程语言非常熟悉
&&& 工作职位:
&&& 工作职位:
&&& 工工作作职职位位::初级程序员,程序员,软件工程师
&&& 参考薪金:
&&& 参考薪金:
&&& 参参考考薪薪金金::¥2000-¥6000(仅供参考)
&&& 1.1.2 修炼第二层境界:世界如此之大,要学的东西很多
&&& 修炼第二层境界的程序员,他们往往是从事了Java开发好几年了,从第一层境界进阶
上来的好手,即,没有被优胜劣汰掉的那批人。之所以说&没有被优胜劣汰&这么&残酷&的用
词,并非危言耸听,因为,一般修炼第一层境界是非常艰苦的,没有坚强的意志,没有强健
的体魄,完全不可能进阶到第二层境界,也就是说,要头脑始终保持清醒,抱有坚定的信念,
同时,你的身体也要非常好,才能过关。
----------------------- 页面 15-----------------------
&&& 我们经常看到,在这一关掉队的人们,由于志向偏离,或者吃不了苦,或者对困难估计
不足,甚至是身体原因放弃软件开发职业。这里之所以强调&身体&,也是因为,第一关是如
此的残酷,其实并没有人要求你加班加点,只是你的一腔热血使然。
&&& 所以,我们说在第二层境界中是&没有被优胜劣汰&的那批好手。
&&& 他们已经经历了若干个开发产品或项目,已经可以利用自己的知识去带领第一层次的程
序员开发项目,可以说是一个很有经验的开发者,对在上一个层次阶段没有完全理解的技术
知识已经相当的清楚。可以自由的运用开发技术,并分的清楚什么技术用在什么地方。
&&& 最让他们头痛的是项目的&工期&和&Bug&,根本无暇顾及什么技术实践的问题。他们往
往利用自己最擅长的架构方法去开发和设计整个程序的技术架构。
&&& 在编码中,经常可以看到他们这样编写程序代码:
&&&&&&&&&& if (a&0){
&&&&&&&&&& a++;
&&&&&&&&&& }
&&&&&&&&&& else{
&&&&&&&&&& b++;
&&&&&&&&&& }
&&& 他们老老实实的加上了&{}&大括号,因为他们知道,这些细节造成的Bug有可能让他们
花去数天时间去调试,而这个省去的大括号,根本不会给系统带来任何优化。
&&& 他们知道的越多,越觉得世界是那么的广阔,不禁叹息&世界如此之大,要学的东西很
多&,对Java开发技术方面的探求知识,大多是在产品的架构层面,更愿意去研究架构设计
方面的知识,比如,他们很清楚什么时候使用EJB,什么时候该设计什么样的一个接口。
&&& 他们逐步感到,Java技术已经不能满足他们工作成功率的需求,他们不得不去花时间
去研究项目管理的方法,对总体的技术关注点也从Java的具体开发技术,逐步的向和Java
无关的其他信息技术方向转移,比如,网络应用层协议,其他平台语言,甚至Linux内核裁
剪等问题逐步纳入他们的视野。
&&& 后来他们会发现,他们想进入修炼的第三层境界的阻碍,恰恰是他们较高的技术水平。
&&& 第二层境界特征:
&&& 第二层境界特征:
&&& 第第二二层层境境界界特特征征::
&&& 工作时间:
&&& 工作时间:
&&& 工工作作时时间间::工作三年以上,或直到退休
&&& 工作任务:
&&& 工作任务:
&&& 工工作作任任务务::按开发要求编写并指导第一层次程序员开发
----------------------- 页面 16-----------------------
&&& 工作内容:
&&& 工作内容:
&&& 工工作作内内容容::带领开发团队,设计架构,并编写关键程序,保证项目工期,对某开发项目
的质量负责
&&& 开发目标:
&&& 开发目标:
&&& 开开发发目目标标::不求有功但求无过,质量效率胜于一切,合理的技术用在合理的地方
&&& 开发特点:
&&& 开发特点:
&&& 开开发发特特点点::注重方法,不关注编程语言细节
&&& 工作职位:
&&& 工作职位:
&&& 工工作作职职位位::高级软件工程师、开发经理、系统架构师、项目经理等
&&& 参考薪金:
&&& 参考薪金:
&&& 参参考考薪薪金金::¥6000-¥15000(仅供参考)
&&& 1.1.3 修炼第三层境界:最深即最浅,最浅即最深,不过如此
&&& 修炼第三层境界的程序员,他们通常是在第二层境界&突破自我&之后进阶上来的有智慧
的人,所谓&突破自我&就是打破自己而脱掉原有的蝉壳,破壳而出获得新生的过程。
&&& 在修炼的第二层境界已经将技术水平练就的如火纯清,甚至个别技术可以用&登封造极&
来形容,有自己的一套&绝活&,可以说,靠这些本事在业界应该说是过着&衣食无忧&的生活。
&&& 他们逐渐发现,技术永远是技术,原来一直认为最深的技术恰恰是最简单的,而原来最
简单的那些技术恰恰是最值得去研究的,其实那些所谓的&登封造极&对于他们来说,仅仅是
利用他们所掌握的&原理级&技术,将&应用级&技术进行不同的排列组合而已。
&&& 任何&应用级&技术在他们眼里,没有任何区别,他们看着那些被业界炒作的&如火如荼&
的技术,像什么,EJB啊,开发框架啊,或者对于开发语言,什么Java啊,Vb啊,C啊,
或者其他什么语言,基本上是很&淡然&,既不觉得如何好,也不觉得如何不好,只会淡淡的
说一句&不过如此&。
&&& 所以,他们要突破,他们要进阶,面对他们的是更加广阔的空间,然而,他们会逐渐发
现,他们进阶的桎梏恰恰就是原来自己的&优势&,较高的技术水平,使他们更难&抛弃&或&
&&& 突破自己的方法就是从技术中跳出来,利用&应用级&技术的不同排列组合去创造,去创
新,这些创新要紧密的结合市场,要紧密结合应用业务。
&&& 他们不仅仅要具备很好的技术知识水平,还要具备更敏锐的产品洞察力,和更灵敏的市
场嗅觉,并能够将这些能力充分的发挥并输出技术与市场都响当当的创意。
&&& 最终他们成功了,达到了程序员修炼的第三层境界,他们已经突破了原有程序员的传统
概念,达到了在业界&横行无阻,任意驰骋&的能力,这就是程序员修炼的最高境界。
&&& 第三层境界特征:
&&& 第三层境界特征:
&&& 第第三三层层境境界界特特征征::
&&& 工作时间:
&&& 工作时间:
&&& 工工作作时时间间::工作六年以上(经常跳槽的不算)
----------------------- 页面 17-----------------------
&&& 工作任务:
&&& 工作任务:
&&& 工工作作任任务务::&应用级&技术的不同排列组合,以市场为导向去创新与创造
&&& 工作内容:
&&& 工作内容:
&&& 工工作作内内容容::面对市场背靠技术开发团队,指导开发的市场着眼点,指导市场的获利方式
&&& 工作目标:
&&& 工作目标:
&&& 工工作作目目标标::盈利
&&& 工作职位:
&&& 工作职位:
&&& 工工作作职职位位::部门经理、研发副总、CTO、解决方案专家、业务专家、产品经理、高级产
&&& 参考薪金:
&&& 参考薪金:
&&& 参参考考薪薪金金::¥15000以上(仅供参考)
&&& 1.1.4 点评&修炼三层境界&
&&& 王国维在《人间词话》中对人生三境有如下阐述,&古今之成大事业、大学问者,必经
过三种之境界。'昨夜西风凋碧树,独上高楼,望尽天涯路',此第一境也。'衣带渐宽终不
悔,为伊消得人憔悴',此第二境也。'众里寻他千百度,蓦然回首,那人却在,灯火阑珊处
',此第三境也。&
&&& 又有人说人生境界如陶渊明《桃花源记》中所写的&初极狭,才通人。复行数十步,豁
&&& 程序员的发展路径,就是程序员人生路径,从最初的&看山是山,看水是水&,到后来见
的多了悟到&看山非山,看水非水&,没想到最终发现&看山还是山,看水还是水&。
&&& 1.1.5 回答这个问题
&&& 言归此问,&这个职业赚钱吗?赚多少钱?&,我想我已经回答了这个问题,世界上没有
天上掉下来的馅饼,也不会掉下一个林妹妹。
&&& 任何事业,均需如下才可成功:第一要立志,第二要思考,第三要奋斗。
&&& 1.2问题2:大学毕业生找不到职业入口
&&& 大学应届毕业生,现在找工作是如此之难,本书不回避这个问题。目前的情况与笔者当
年毕业时的情况有天壤之别。这个问题说起来是一个大话题,关系到&社会&、&经济&、&文
化&、&教育&等诸多领域,并非一言以蔽之的事情,对于国内教育体制与社会用人需求脱节
的问题,大家也已心知肚明。
&&& 本书也没有奢望能够在本节将其讲的很清楚,只希望,能够结合本行业的具体情况给出
一个理由,以及给处于此阶段的同学们一个解决办法而已。
&&& 话说到,&大学应届毕业生,现在找工作是如此之难&这一问题,从本行业出发,不负责
任的人,无非会给出一个似是而非的解释&缺少工作经验&。
----------------------- 页面 18-----------------------
&&& 乍听起来,好像是很有道理,但仔细一想,简直是&废话&。
&&& 应届毕业生哪里来的工作经验呢?
&&& 如果,按此逻辑,凡是毕业生通通在待业,因为,始终没有工作过,哪里来的工作经验,
所以永远找不到工作啦。
&&& 认真的面对这个问题,我们的回答是:
&&& 缺少应聘该职位所必需的技术或者能力。
&&& 为什么这么说,要知道,并不是只有应届毕业生找工作难,有&工作经验&但&缺少应聘
该职位所必需的技术和能力&的人找工作同样难!
&&& 所以,要想解决这个问题,作为我们广大应届毕业生同学,必须要弄清楚&应聘该职位
所必需的技术和能力&都是什么。
&&& 即,工作经验都是什么经验。
&&& 1.2.1 工作经验都是什么经验
&&& 我们刚才已经说了,所谓的工作经验就是&应聘该职位所必需的技术和能力&,那么这个
技术和能力又具体指的是什么呢?
&&& 我们只从行业出发,来剖析这个工作经验,他是包含两个方面的问题,即&技术&和&能
&&& 1.2.1.1 首先说说&必备技术&
&&& 这时有些同学可能会说,&我已经会很多程序的开发技术啦,Java、C#、VB,都会呀,
这些技术难道还不够吗?&
&&& 我可以毫不迟疑的告诉你,&不够!&。
&&& 我们再回过头来看一下,我们在&前言&中提到的那个应聘简历:
&&& 主要擅长于计算机的维护、应用以及开发:
&&& 软件方面:现以通过国家软考中心软件设计师资格考试;
&&& 主要熟悉的IDE环境:VC++,C++Builder,VB;
&&& 主要使用的数据库接口:ADO;
&&& 主要使用的数据原:Access,SQLServer,擅长使用SQL语言;
&&& 主要使用图形接口:OPENGL,对DirectX接口也有一定了解;
----------------------- 页面 19-----------------------
&&& 其它语言:Java(J2EE、J2ME);
&&& 网络方面:熟悉ASP,PHP,JavaStript,以及网络构架设计、施工、调试,对安全知
识也有相当的了解;
&&& 系统维护方面:有三年的计算机维护经验,熟悉系统工作原理;
&&& 其它:熟悉CAD、Photoshop等几乎所有常用软件的使用,UNIX系统的应用;
&&& 这个简历中,几乎将目前信息系统开发的所有技术都列出来了,生怕用人单位会因为自
己的技术不全面而不给他面试机会。
&&& 而结果是,仅仅有一个公司让他去面试了。
&&& 我们这里所说的技术,并非指的是&广&,而指的是&精&。
&&& 倘若这位同学真的搞定了那些技术,我想,每项技术能达到用人单位的要求,都至少需
要1年时间,那么,在他的简历中提到的技术大家可以数一数,至少有10种,简单一算,全
部掌握需要多长时间呢?
&&& 回答:10年!
&&& 那么,我请问,这位应届毕业生同学,哪项技术可以单独拿出来工作呢?
&&& 有经验的主管们,一眼便知,此君为&应届&。
&&& 因此,我们广大同学应该在所掌握技术的深度和精度入手,那才是用人单位最需要的。
&&& 1.2.1.2 再说说&必备能力&
&&& 说到能力,我们的很多应届毕业的同学们都愿意给自己的评价是&我的学习能力很强!&
或者是&具有良好的学习意识&等等。
&&& 请看这是某君简历中的自我评价:
&&& 本人性格开朗,做事认真,富有开拓精神,不怕挫折,具有良好的团队意识!具有良好
的身体和心理素质,有较强的学习意识和自学能力。作为IT行业的一员,我愿意花费更多
的时间,不怕困难,努力提高自己的专业水平!
&&& 他的这段话看起来似乎还不错,如果看这个自我评价的是他的班主任,一定会感到很欣
慰--真是一个勤奋好学的好学生!
&&& 然而,仔细看来,他这段话的重点是&自身学习能力和学习意识&,以及&自我提高的强
烈愿望&,他很显然很想让用人单位知道他在校的学习成绩是多么的优秀,或者生怕用人单
位觉得他在校期间学习并不优秀,总之,他千方百计的要突出自己的学习能力。
----------------------- 页面 20-----------------------
&&& 说到这里,肯定有些同学会很不服气,会说&突出学习能力强和自我提高的强烈愿望,
这不正是说明他或她是一个好学生,有什么不对吗?&
&&& 当然不对啦,如果我作为用人单位,我请问你,&你学习能力强,自我提高的愿望那么
强烈,和我们公司有什么关系&,很显然你工作的第一愿望还是提高自己的技术水平,换句
话说,你一定是对这份工作心里没底,希望借用&学习能力强&来告诉用人单位&我现在虽然
什么都不会,但是我学习能力很强,很快我会学会的&。
&&& 我在公司中经常听到的一段对话是:
&&& A君:&&。
&&& 主管:&你到这里的目的是学习?还是工作?如果你的目的是学习的话,你应该给我学
费,而不是管我要工资。&
&&& 说这话确实有点严厉,但是,这恰恰体现出了用人单位对人才能力方面的需求,这个需
求就是,&创造价值&的能力,而不是你&自我提高和学习&的能力。
1.2.1.3 结论,工作经验是什么经验?
&&& 工作经验是:具备职位所需技术的精度和深度,最好是对那个技术非常精熟,具有为公
司服务的意识,有为公司创造价值的能力,至少有为公司节约成本的能力。
&&& 通过以上分析,了解了什么是用人单位的招聘真实意图,这样,我们就不难写出符合用
人单位需求心理的简历了,同时也就知道了自己的努力方向。
&&& 供求关系一旦吻合的时候唯一出现的现象就是&频繁的接到面试通知&。
&&& 接下来,我们就要面对两件事&面试&和&笔试&。
&&& 1.2.2 他们为什么面试的时候这么问?
&&& 面试是一个&简单&而又&复杂&的事情,正因为它具有&简单&和&复杂&的双重性质,才使
我们对这个问题不敢掉以轻心。介绍如何面试,有时候甚至可以写一本书,而有时候,你什
么都不准备却可以面试成功。
&&& 因为,面试的成功与否完全取决于主考官,因此,这门学问的主要科目就是研究主考官
的招聘心理。
&&& 我们研究好主考官的招聘心理,自然就可以做到&知己知彼&了。
&&& 本小节只是说说面试的&心理战&,而想真正的能够对答如流,需要的是&真功夫&,要想
具备&真功夫&还是需要真正的技术水平作为前提的,本小节的内容只是给那些已经具备相应
技术水平的应聘者提供一定的应聘技巧而已,以避免没有把自己的&真功夫&完全展示出来从
----------------------- 页面 21-----------------------
而丧失工作机会。
&&& 面试前对自己的心理暗示:
&&& 面试并不是考试,只是和未来的同事聊聊天。
&&& &心理战&对象,可能出现的主考官如下几类:
&&& 人物1,人力资源部主管(HR)
&&& 人物2,你未来的主管
&&& 人物3,你未来主管的主管
&&& 我们分别来分析遇到不同类型的主考官的不同情况。
&&& 1.2.2.1 人物1:人力资源部主管(HR)
&&& &人物1&的出现往往是进行该职位的初审,给出一个概观定论,如果合格将会提交给&
人物2&。&人物1&他们所要进行的是对人的心理和基本技能方面的一个判断。
&&& 不过,也有一些公司,首次面试仍然是由业务主管来进行,然后再将初审合格的人交给
人力部门来复试,如果,是这种情况,你应该就算90%入职成功了,因为,这个复试往往是
走个形式,看看此人有没有被主管忽略的大问题,如果没有,基本就差不多了。
&&& 那么,我们仅仅以第一种情况为例,看看&人物1&大多提出的是哪些问题。
1.2.2.1.1 常见提问1:请你自我介绍一下
&&& 这个问题,是人力部主考官必问的问题,这个问题的提问并不是真的想了解你的个人情
况,因为,你的情况基本上在简历上都写着呢。他提出这个问题的主要目的是来考察你的语
言表达能力,和你在表达过程中的一些细节表现。
&&& 所以,我们应该怎么回答呢?
&&& 看看如下对话:
&&& HR:&请你自我介绍一下&
A君:&您看简历吧,基本上我都写在简历上了。&
&&& HR:&请你自我介绍一下&
B君:&我叫XXX,年龄24,性别男,籍贯&&&
&&& HR:&请你自我介绍一下&
C君:&这话从何说起呢?话说10年前&&&
----------------------- 页面 22-----------------------
&&& 首先,不要认为主考官没有认真的看你的简历,没有看你的简历就让你来面试,是在浪
费他自己的时间,所以绝对是首先认为简历比较合适,才约你来的。
&&& 第二,自我介绍并不是让你重复一下你简历上的所有内容,那些内容简历上都有,主考
官主要是想听听你如何表达和语言的逻辑能力。
&&& 第三,这个表达不要滔滔不绝,要有张有弛,有收有放,主要将自己的想说的优势部分
分别道来,能够通过你的介绍让人感觉到你的&亲和力&为佳。
&&& &语言表达能力&并非我们日常所说的&能侃&或者&口才&,这是片面的理解,在面试过程
中,我们要展现的&语言表达能力&是指,&语言亲和力&,能够让人感受到你的&沟通&能力。
&&& 回答范例:
&&& 您好!我来自XXX大学,是应届毕业生,所学专业是计算机应用技术,我在校期间参加
多项课余工作,参与了多个应用系统的开发与设计,熟练掌握Java开发工具和应用系统的
各种开发方法。在学习与工作期间,总结与实践了各种技术实现手段,有了一些小的积累。
&&& 近期已经毕业,看到您公司的招聘信息,感觉自己的技术与能力非常合适,就投递了简
历。希望能过了您这关,呵呵&&(注:最后的微笑最好不要太牵强,目的是缓和气氛)
&&& 大家看到了,这个回答范例的自我介绍非常简练,但是,什么也没有落下。
&&& 既实事求是的说了自己是应届毕业生,又说明了自己虽然是应届毕业生,但是参加了很
多的课余工作,并且具有实际的项目开发经验,而且有了一些小的积累。
&&& 既说了自己的对这份工作和自己能力之间的考量,又表达了自己对主考官的期望。
&&& 意思表达时不卑不亢,言简意赅,让人听起来就感觉很舒服。
&&& 这时候你的目的就达到了,展现出自己的&语言表达能力&和&语言亲和力&,同时又能够
让人感受到你的&沟通&能力。
&&& 1.2.2.1.2 常见提问2:你最大的优点是什么?
&&& 这个问题如果是HR问,则最好回答了。
&&& 回答这个问题的关键是&围绕自己的技术特长&展开话题,为什么这样?
&&& 因为,往往HR都不懂技术,围绕技术说自己的特长很容易给他说晕(当然,个别懂技
术的HR除外)。这里要注意的是,在说技术问题的时候,不要让HR感觉自己什么都不懂,
要注意说话的节奏,不要太快,不要太骄傲。
----------------------- 页面 23-----------------------
&&& 1.2.2.1.3 常见提问3:你最大的缺点是什么?
&&& 这个问题是HR的杀手锏,可以说这是HR的狠招,这个问题最难回答,一般应聘者都本
着&扬长避短&的心态去面试,冷不防冒出这么一个问题,还真是挺棘手的。
&&& 需要清楚HR问这个问题的目的,其目的仍然不是要真的需要知道你的缺点是什么,还
是看看你的表达能力,尤其是需要考察应聘者面对危机的时候的处理能力。
&&& 所以,我们不要用下列方式作答:
&&& 说出自己的真实缺点,尤其是在前面谈话中没有暴露出来的缺点
&&& 认为说说某些大众化的缺点即可,认为说一两个无妨
&&& 说自己没有缺点,强调自己比较完美
&&& 总之,HR心里想的是:需要了解他面前的这个人在面对困难的时候,是如何处理问题
的,从处理危机的方法来判断此人的处理事情的灵活性。当然,如果此人自己暴露出自己的
缺点当然更好,省得需要去想办法问更多的问题去发现了。
&&& 所以,在回答这个问题的时候,要看起来&真诚&、&坦白&,同时,说出来的并非自己的
缺点,而是最好在别人看来是优点的那些方面。
&&& 这个问题问的概率很大,通常如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、
工作效率低,肯定不会录用你。HR喜欢求职者从自己的优点说起,中间加一些小缺点,最
后再把问题转回到优点上,目的还是突出自己优点的部分。
&&& HR喜欢聪明的求职者。
&&& 这一点比较难掌握,我们也给出范例:
&&& 回答范例:
&&& 呵呵,这个问题好难回答啊!我想想&&(亲和力表现,也缓解了自己的紧张情绪)
&&& 我的缺点是,比较执着,比如在技术方面比较爱钻研,有的时候会为一个技术问题加班
到深夜。还有就是,工作比较按部就班,总是按照主管的要求完成任务。另外的缺点是,总
在自己的工作范围内有创新意识,并没有扩展给其他同事。这些问题我想我可以进入公司以
后以最短的时间来解决,我的学习能力很强,我相信可以很快融入公司的企业文化,进入工
&&& 嗯&&,我想就这些吧。
&&& 这个回答范例开头第一句话就让人觉得很自然,因为这个求职者所说的话恰恰表达了一
----------------------- 页面 24-----------------------
般人听到这个问题后的心理状态,还有你一定会有一个思考的时间,因为,谁也不会立刻说
出自己的缺点。
&&& 后面说出的几个缺点都是一环套一环的,说了自己&比较执着&,但又说自己其实是&比
较爱钻研&,说自己总是&按部就班&,但又补充了其实那是&按照主管的要求完成任务&,这
时候,如果用人单位觉得,此人是不是没有&创新思维&的时候,马上就补充道&在自己的范
围内有创新意识&,至于&没有扩展给其他同事&这件事,其实无关紧要,干脆就卖给HR吧。
&&& 以上回答确实卖弄了些&技巧&,相信HR也一定能看的出来,但是,即使看出来了也无
妨,HR也会心领神会,知道你是一个比较善于沟通并且善于表达的人。
&&& 1.2.2.2 人物2:你未来的主管
&&& 当见到未来主管的时候,往往是应聘者已经过了HR那一关,或者应聘者已经过了笔试
的那一关,因此见到这位人物意味着距离成功已经向前进了一步。
&&& &人物2&的面试也有他的目的,他是和你在日常工作中接触最多的人,作为你的直接上
司,他需要在工作中经常给你分配任务,他需要对他的主管负责,因此,他招聘的这个人选
必须是可以帮助他完成他整个Team的目标的人。
&&& 往往那个吸引你来面试的&招聘启示&就是这个人物所撰写的,因此,其实在你和他见面
以前,早已经通过&招聘启示&和他有过交往了。因此,从&招聘启示&中就可以初显这位主管
&&& 注意,主管同志并不是人事领域的高手,不会用各种语言技巧去发掘你身上的缺点或者
优点,往往问题都是实打实的,或者比较一针见血的,而且,更偏重于日常工作。
&&& 那么,我们下面和他过过招。
&&& 1.2.2.2.1 常见提问1:请你自我介绍一下
&&& 这个问题,HR也问过了,到他那里有可能还会问,主管问这个问题和HR虽然问的问题
一致,但是,其目的并不是完全相同的。
&&& 他不仅仅想考察一下你的表达能力,同时还想考察一下你思路的清晰程度。
&&& 我们在回答他的问题前,一定要想清楚一件事:他是该技术领域的高手,就是我们&程
序员修炼三境界&中描述的&第二层境界&的那个人物,如果还想更清楚的了解这个人物,可
以去重新看看前面的那个章节。
&&& 这个自我介绍最好说的较为简洁,不要过分炫耀自己的技术如何如何强,免得引起这位
主管的兴趣,引起他的技术兴趣没有什么好处,只会带来更多的技术问题的发问。
----------------------- 页面 25-----------------------
&&& 1.2.2.2.2 常见提问2:你最引以为自豪的项目是什么?
&&& 他问这个问题的意图是想考察你的成长路径和编程习惯,因为,最让你自豪的项目往往
是你成长最快的项目,那个成长最快的项目往往会给你今后的编程习惯留下很多痕迹。
&&& 所以,通过你对那个引以为豪的项目的描述,有经验的他会很快锁定你技术成长中的缺
陷和闪光点,从而判断是否能够&为我所用&。
&&& 你最好拿出一个自己最擅长技术的那个项目进行介绍,这个项目最好能够比较贴近招聘
要求的那些指标。如果,没有做过什么有规模的正规项目,你就拿些自己非常擅长或者有创
意的开发作品来说。这样做的好处是,他听完你的介绍后,会接下来进行提问,他所有发问,
你都成竹在胸了。
&&& 切忌拿一个别人的项目,或者自己参与很少的项目来介绍,如果这样的话,一旦他深入
的询问这个项目的问题,很可能你会所答非所问,反而造成更严重的影响。你大可以和他大
谈特谈你在那个项目中获得的经验,那会引起此君的共鸣,有可能的话,说出一些你自己的
小技巧,他会很高兴。
&&& 1.2.2.3 人物3:主管的主管
&&& 遇到&主管的主管&的时,往往已经是复试,这说明基本上已经是最后一关了。但要注意,
这个最后一关是非常关键的一&关&。因为,往往如果你未来的主管在公司中某个专业够权威
的话,他的主管一般不会管招聘的事情。因此,你看到这位&老大&的原因,多半是你未来的
那位主管的专业地位还没有&稳定&。
&&& 1.2.2.3.1 最后的&搏杀&
&&& 过程大概是这样的,一般会将两个或三个人提交给&老大&,让&老大&定夺,去选择其中
的一个人,因此,这个阶段是一个最后的&搏杀&关键阶段。
&&& 1.2.2.3.2 &老大&关注的问题:成本+人员素质
&&& 所以,我们在和&老大&过招的时候,一定要注意自己的言行,切忌不要穿&奇装异服&,
或者男士留有个性的头发或胡子,总之一定要让人看起来特别的&平常&,虽然不是&西装革
履&但也要&衣冠整洁&。
&&& 因为,老板们最不喜欢&个性&员工,而最喜欢的是&优秀&的普通员工。
&&& 1.2.3 程序员的笔试
&&& 前面我们了解了和不同角色的人物见面的面试技巧,下面再说说程序员们更加频繁遇到
的一个考核方式&笔试&。
----------------------- 页面 26-----------------------
&&& &笔试&对于初级程序员应聘者来说是一个关键一关,也是刷掉的可能性最大的一关,一
次面试中大部分程序员都会由于&笔试&没有过而无缘进入下一个阶段,只有少数程序员得到
与主考官见面的机会。
&&& 作为即将应聘初级程序员的我们,更应该做好技术的准备工作,这部分工作恐怕要花费
比较多的时间去准备。
&&& 如何准备?
&&& 还是那句话至少应该读完本书,因为除了&技巧&之外,&技能&更重要。
&&& 1.2.3.1 笔试目的
&& (1) 为防止没有实际开发经验和开发技能的人来面试,可以通过&笔试&过滤掉一批人;
&&& (2)考察掌握知识的扎实程度,及面对问题的思考方式。
&&& 1.2.3.2 笔试误区,这些情况在笔试时应避免
&&& (1)有一道题不会,就放弃了整个笔试
&&& 也许你认为这道题很难,其他竞争对手也会觉得很难。
&&& (2)没有看清题匆忙作答
&&& 这不是入学考试,如果没有人给你计时间,你不用那么匆忙,正常速度作答即可。
&&& (3)不能完整作答的,干脆就空白
&&& 这和我们在学校考试不一样,如果你不能回答完整,最好也写上思路,或者写上想和主
考官说的话,有的时候他也会给你机会的呦。
&&& (4)不清楚的一些概念性的问题,用其他同样不太清楚的概念&生搬硬套&
&&& 有些概念本来就不太清楚,就别拿另一个你不清楚的问题往上&套&啦,这样做,往往让
主考官哭笑不得,一下暴露原来这些概念都不清楚。
&&& (5)笔试没有60分及格线这么一说
&&& 应聘职位的&笔试&和我们在学校的&考试&完全不同,不存在&及格&与&不及格&的问题,
也许你某一个道题回答的很精彩,但是总分并不是很理想也会被录用。
&&& 1.2.3.3 笔试技巧
&&& 我挑了几道笔试题,曾经给入职程序员出过的几个测试题,大家看看应该怎么作答,我
们再看看需要注意什么,题目如下:
&&& 1.2.3.3.1 例题1:请说出这个程序的目的是什么?返回结果是什么?
----------------------- 页面 27-----------------------
public Station(URL urla){
String a=&&,b=&&;
InputStream ins = urla.openStream();
BufferedReader&&&&&&&&& bReader&&&&&& =&&&&& new&&&&&& BufferedReader(new
InputStreamReader(ins));
String info = bReader.readLine();
info=bReader.readLine();
while(info!=null){
a=info.substring(0,info.indexOf(&@&));
b=info.substring(info.indexOf(&@&)+1,info.length());
if (i==1){
this.X1=Integer.parseInt(a);
this.Y1=Integer.parseInt(b);
if (i==2){
this.X2=Integer.parseInt(a);
this.Y2=Integer.parseInt(b);
if (i==3){
this.X3=Integer.parseInt(a);
this.Y3=Integer.parseInt(b);
if (i==4){
this.X4=Integer.parseInt(a);
this.Y4=Integer.parseInt(b);
info=bReader.readLine();
catch(MalformedURLException e){
System.out.println(e);
----------------------- 页面 28-----------------------
&&&&&&& catch(IOException e){
&&&&&&& System.out.println(e);
&&& 该题解释:
&&& 第二问,返回值是什么?
&&& 总有人直接回答,说&没有返回值&,这说明没有弄明白构造函数的声明,如果是普通函
数没有返回值的话,应该用&void&而不是没有写任何东西。
&&& 第一问,这个程序的目的是什么?
&&& 这个程序乍一看确实不太明白,其实,这正是在考察应聘者的想象力和理解能力,这个
程序一看就应该知道这是一个构造函数,这个构造函数里有四对变量分别是&X&和&Y&作为开
头的,让人直接联想到坐标,另外这个构造函数的名字是Station,说明这个类的名字是
Station,因此,可以想见,这个确实是这个Station的四个点的坐标,是用http协议到一
个Web上去取得一个字符串,再去解出这个字符串中的每一个数字,赋值给相应的属性。
&&& 某君的比较精彩回答:
&&& 该函数是一个构造函数,他的目的是构造一个Station类,根据他的名字和属性判断,
这个类有可能是描述一个物体的位置信息,这个信息可以解出四个变量分别赋值给不同的属
性。疑问,感觉用substring和indexOf的方法解析出数据比较麻烦,为什么本程序不用
String的split方法呢?那会更省事点。另外这个程序是采用URL类的openStream()方法
得到远端某一个网页上的数据,那网页可能是一个JSP,可以直接从数据库中取得数据,这
个方法,省去了一个自建的Server程序,这种用法我是第一次看到,感觉学习到了一个新
的应用方法的知识。
&&& 1.2.3.3.2 例题2:请写一段html,完成下列表格的样子。注意:是单线边框
&&& A&&&&&&&&&&&&&& B&&&&&&&&&&&&&& C
&&& D&&&&&&&&&&&&&& E&&&&&&&&&&&&&& F
----------------------- 页面 29-----------------------
&&& 该题解释:
&&& 陷阱一:这道题初看起来很简单,似乎就是在考一个简单的&
&标记,于是有很多人都直接画出了一个table,至于单线边框的问题,他们总是用
&border=&1&&来描述table。
&&& 这样的话,画出来的图一定是这样的如图11所示。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图11
&&& 还是一个双线表格,并没有像上图一样的单线边框。
&&& 陷阱二:本题表格中的文字是大小写不同的,有的用的是小写,有的用的是大写,一定
要按照要求回答问题,这主要考察的是按照要求完成任务的能力。
&&& 正确答案:
&&&&&&&&&&&&&&&&&&& b&&&&&& C
&&&&&&&&&&& A
&&&&&&&&&&& D&&&&&& e&&&&&& F
如果你做过网页中的表格,一定知道应该用这个方法获得单线边框的表格,因为这是一个典
型的单线表格设计方法。当然,有的人用CSS来回答这个问题,也可以算对,只是方法比较
----------------------- 页面 30-----------------------
1.2.3.3.3 例题3:一个算法题
再给大家一道据说是难倒很多人的题,这道题曾经有50人接受过提问,但是,只有3个人
答对,请大家试试如何回答。
要求:有两个数组一个N个元素,另一个M个元素,这两个数组中有些元素是相同的,希
望通过编写一段程序将两个数组中的相同元素找出来,请用最少的循环次数完成需求,请问
需要用什么方法?
一般程序员马上会想到类似如下的程序:
for(intj=1;jfor(inti=1;i&&}}
那么,这个方法的循环次数是多少呢?
答:M*N个。
但是,要注意这个题的要求是,最少的循环次数完成需求,这时候只要想想一共有几种方法
完成这个任务即可,然后从中选择一个最快的就行了。
正确的答案是,用哈希表的方法,这个方法的循环次数是M+N,一个是将M装入哈希表的
循环,一个是将N逐个放倒M哈希表中去查询的次数。
这道题有两个陷阱,第一个,&算法题&,一般有些程序员只要听到&算法&这个词,马上晕了,
从而影响合理的思考。第二个陷阱是&最少&,用最少的循环次数的方法,而不是普通的,但
就是这么两个陷阱使很多应聘程序员落马。
&&& 1.2.3.3.4 例题总结
&&& 大家看看,上面的笔试题其实从技术方面来说都不难,但是陷阱比较多,而且,需要你
能够有想象力,与出题者形成互动。从这几个例题可以看出,招聘单位最需要的人是实践能
力强的人,因此,我们要从这个方面多下功夫,这些功夫获取途径仍然是加强日常的积累,
本书的后面章节中也会涉及更多的类似经验,读者可以循序阅读。
----------------------- 页面 31-----------------------
&&& 1.2.4 回答这个问题
&&& 言归此问,&大学毕业生找不到职业入口&,为什么找不到职业入口?
&&& 我们的回答是--没有搞清楚什么是职业的入口!
&&& 何谓&入口&?
&&& &入口&就是找到自己如何面对用人单位的需求找到自己的突破点,而这个&入口&有代表
一种自身完善的方向和方法,当你符合用人单位的需求时,自然就找到了进入职业的途径。
&&& 1.3问题3:跨行业真的这么难吗?
&&& 我遇到有很多在别的行业或职业发展的朋友,通过自己的努力实现了程序员的梦。在很
多朋友看来,跨行业的发展是非常难的事情,然而,这个跨行业真的那么难吗?
&&& 我在本节中仍然要强调的是,&三百六十行,行行出状元&这句&陈芝麻,烂谷子&的话,
如果想成功,任何行业都可以发展。如果你现在还不是程序员,甚至是现在只是一个从事其
他工作的人,但是你真心的热爱&软件开发&这个职业,并希望&软件开发&将成为你毕生奋斗
的一个伟大事业,那么你可以阅读本书内容,如果不是,那么把本书放回书架,打消&跨行
业&这个念头吧。
&&& 进入软件开发领域需要的是:
&&& 真心的热爱,并且有为之奋斗毕生的心愿。
&&& 1.3.1 跨行业最难的是什么
&&& 跨行业发展的困难之处在于&你是否愿意放弃&。
&&& 我曾经看到过原来从事很多别的职业的朋友转到程序开发中来,有学财务的、学商业管
理的、学建筑工程的,还有原来从事技术支持的,做网管的,以及做系统集成的,其中我看
到跨度最大的是一位&厨师&加入到程序开发中来,这恐怕是跨度最大的了。
&&& 虽然我们看到了很多人成功跨越了行业,但是,这个过程确实是很痛苦的,因为,他们
必须学会放弃原有的已经从事一段时间的工作,甚至暂时没有收入来源,仅仅凭借着的是一
颗热忱的心,和一种孜孜不倦的学习精神去支撑着自己。
&&& 跨行业最难的就是,在最初先是&不务正业&,然后发展到&在家待业&,跨行业成功了倒
还好说,一旦失败会落一个&好高骛远&的名声从而&身败名裂&。
&&& 这说的有些夸张,但实际上确实要放弃很多。
&&& 想跨行业发展?让我们找到入口!
----------------------- 页面 32-----------------------
&&& 1.3.2 跨行业的入口--原来从事行业的业务知识
&&& 跨行业的入口,就是你原来从事的行业的业务知识!
&&& 找到你原来职业和程序员职业相通的点,找到事业的发展路径才是关键。前期从事的职
业经历,有很多业务知识是从学校门出来就搞开发工作的所不具备的,因此,跨行业的入口
就是你前期从事职业的知识,这些知识可以是你在软件开发行业中迅速成长。
&&& 例如这些情况:
&&& 学财务的--搞财务软件将得心应手,因为你的财务方面的知识恰恰是帮助你的法宝。
&&& 学商业管理的--商业管理知识帮助你理解ERP、SCM、BOSS等系统的原理。
&&& 从事技术支持的、做网管、以及做系统集成的--更方面的了解用户的某些方面的开发需
&&& 至于作&厨师&的那位,如果开发餐饮行业方面的软件你一定非常熟悉。
&&& 1.3.3 农民造出了飞机,为什么他还是农民
&&& 我们在不久前看到这样一则新闻:《张斗三:会造飞机的中国农民》
&&& 新闻中这样说的:
&&& 普通农民造飞机本身就是一件新鲜事,一件大难事,张斗三平日的职业是广州的一家建
筑公司的项目经理,说白了就是一个建筑队的包工头儿。整天与他打交道的不是盖高楼的钢
筋与水泥,就是修路、架桥。至于他自己的文化水平,小学三年级,仅限于此。因为儿时家
里穷,为了讨生活谋生,13岁的他就背井离乡出门打工,开始了他做劳工砸石头的人生之路。
再说,造飞机真不是一件容易的事,它涉及到一大堆的专业理论,物理,数学等等知识都得
会,这事可真不是一般的人可以做的。但张斗三愣是凭自己的执着做到了。厂地,他选自家
天台。飞机设计,他全凭自己脑瓜儿里冒灵感。至于这工具嘛,老张也有高招,这不他把家
用的工具,全都派上了阵,叮叮当当的敲打起来了&&
&&& 日,张斗三制造出了自己的第一架飞机&斗强三号&。
&&& 乍看起来,这是一个非常令人振奋的消息,&我们国家的农民就是厉害&,但仔细想想我
们却发现这则新闻中隐藏这一点点的&悲哀&,那就是&造出飞机也还是农民&的&悲哀&。
&&& 这看起来是&张斗三&的个人&悲哀&,但其实这是我们整个社会的一个问题--&出身&。
----------------------- 页面 33-----------------------
&&& 因为,&张斗三&出生时是一个&农民&,所以,他即使是做建筑工程的&项目经理&他也是
&农民&,即使是把飞机制造上天他还是&农民&,即使最后将其称为&科学家&也要冠以&农民
科学家&的称谓。
&&& 虽然,在这个事情的背后,存在媒体炒作的需要,但这是我们国内社会面临的一个现实
问题,科技进步的投入重点始终是在&科班&出身的科学家身上。同时也反映出,我们的&民
间科学家&在作跨行业研究工作时面临的窘境。
&&& 这一社会现象对于我们跨行业的广大&非科班出身&的求职者有什么启示呢?
&&& 这是很值得我们去思考的一个问题。
&&& 1.3.4 回答这个问题
&&& 言归此问,&跨行业真的那么难吗?&
&&& 跨行业发展和&科班&出身的人相比之下,当然会面临一定的困难,这些困难,有的来自
于自身,有的来自于家庭,有的来自于社会。你能否看淡这些困难并坚持自己的目标?这是
成功的关键,一旦突破自我以后,你会发现:被你认为应该放弃的,你原来的另一个行业的
经验,在新的事业中成为你的优势。
&&& 这里我们用一句话来结尾:鹰击长空万里阔,壮心上下勇求索。
&&& 1.4秘诀:经营自己的优势
&&& 问了那么多个问题,其实秘诀只有一个那就是&经营自我&!
&&& 前面说的&大学生入职问题&和&跨行业入职问题&,不管你现在身处于哪种情况,你都要
面对同一个问题--&销售自己&。
&&& 有几个名词前面一直在提到,如&战场&和&供求&等,这些名词都无疑表露出在这个社会
中的现实性,在入职这个问题上我们觉得他更像是一个&市场&。我们每一个人都在经营一个
&小店&,这个&小店&中销售的不是别的东西,销售的就是你自己。
&&& 1.4.1 善于发掘和积累自己的优势
&&& 经营的故事:
&&& 世界商业报道:
&&& 麦当劳,可谓人所尽知。可又有谁知道,在当时有一家快餐公司和比麦当劳同时起步。
&&& 麦当劳很傻,接管餐厅只做快餐,其他的统统外包,钱都让别人赚去了。另一家快餐公
----------------------- 页面 34-----------------------
司呢,则很精明,想肥水不流外人田,什么钱都不想让别人赚,做面包要用到面粉,就自己
包了块地种植大麦;要用到牛奶,就自己养了几头奶牛,生产线急剧扩大。
&&& 若干年后,麦当劳成了世界头号快餐公司,分店遍布全世界。而另一家快餐店则不见踪
影。后来,人们在荷兰的一个小农场里找到了他,他早已不开快餐公司了,就养着几头奶牛。
&&& 一个企业的成功,首先要弄清楚自己是干什么的,自己的核心是什么。如果不弄清楚这
一点,盲目跟风,见什么赚钱就上什么项目,最终必将一事无成。如果,你想把自己成功的
销售出去,也要像经营一个公司一样,从自己的优势和特长出发,弄清楚自己为企业提供什
么方面的服务,自己的核心竞争力是什么。
&&& 俗话说&一招鲜,吃遍天&,依靠一技之长,走遍天下。而这个&一招鲜&不可能是学校培
养出来的,如果学校能够培养出来&一招鲜&,那么他就不是&优势&了,因为大家都会。
&&& 真正的&一招鲜&是自我发掘和积累的过程,并依靠勤奋得来的,要用敏锐的眼光发掘&
市场&,依靠自身积累切入某些市场领域,形成自己的一套&一招鲜&。
&&& 在技术积累的过程中,要&有的放矢&,不能眉毛胡子一把抓。程序员要做到&低头做事,
抬头看路&,所谓看准&市场&,就是抬头看路的过程,看准路在何方后,并坚实的迈好向这
个路前进的每一步,这就是我们程序员们要进行的优势积累过程。
&&& 在开发业界,存在很多名词和知识点,这些知识点不需要各个都去研究,有些东西只要
知道他们的大概原理即可,对于我们程序员,切忌&什么都会,什么都不精&,要做到&一门
灵&,要掌握一个知识就要深入的挖掘它,最终成为自己的特长。
&&& 1.4.2 善于展示与利用自己的优势
&&& 通过技术积累将自己的优势和特长逐步沉淀,同时,我们还需要学会去展示与利用自己
的优势,去争取机会。
&&& 曾经有这样一句话&机会只光顾有准备的人&,我们技术优势的发掘和积累就是在时刻&
准备&。但是,有时候&机会&不是那么容易自己找到你的,还需要每个人去展示优势去吸引
&&& 在简历中要突出自己的优势,展示自己&精深&的特长。
&&& 我们看看这个简历,这个简历是截取的一段内容,看看他的简历有什么问题:
----------------------- 页面 35-----------------------
&&& 1.4.2.1 首先,我们看一下他的&自我评价&:
&&& &本人是一个工作认真负责、为人诚恳、积极主动、适应能力强、善于团队工作的人;
思维严谨、乐于学习新的技术知识、适合做技术类的工作。&
&&& 这个&自我评价&,你是否觉得似曾相识?
&&& 没错,估计在学校每学期写自我评价的时候,都是这样糊弄老师的。
&&& 要知道,这个简历是给你未来老板看的,如果你是在经营自己,你这份简历就是你的&
产品简介&,要给你的&客户&看,来让&客户&决定是否要花钱购买你。
&&& 这个&自我评价&非常的平淡无奇,过于&大众化&,他的&优势&根本没有任何体现,这样
的&产品简介&根本不会引起&客户&更多的兴趣,肯定没有人&买&。
&&& 如果,我是你的一个比较挑剔的&客户&,针对这个&自我评价&,面试的时候会问你这些
----------------------- 页面 36-----------------------
&&& 自我评价1&认真负责&:
&&& 认真负责的是怎么界定的,什么叫认真负责,认真负责到什么程度?
&&& 自我评价2&善于团队工作&:
&&& 善于团队工作指的是什么?团队是一个什么样的团队?你跟团队是如何配合的?你怎
么那么肯定你善于团队工作呢?
&&& 自我评价3&思维严谨&:
&&& 什么是思维严谨?如何体现出思维严谨?
&&& 很显然,这个&自我评价&比较不负责任,用一些比较&高、大、全&的语言来涵盖&自我
评价&。需要告诉你,你未来的老板不像你的老师那么好糊弄的,要拿出&真本事&人家才会
买你的帐。
&&& 1.4.2.2 我们再看看他的专业技能:
&&& &熟练掌握Java、JSP、Servlet、C/C++、HTML/JavaScript;熟悉JBuilder开发工具、
能够基于JSP、Servlet进行Web的应用开发;熟悉J2EE规范、了解MVC架构、XML;熟
悉Weblogic、Tomcat等应用服务器的配置、开发;熟练掌握关系数据库Oracle、SQL
Server2000等;熟悉软件测试的流程与方法。&
&&& 这个&专业技能&更是平淡无奇了,几乎所有Java程序员都会这些技能,没有任何特点,
而且我们发现他这个&专业技能&中出现最多的是&熟悉&,要注意&熟悉&和&精通&可是两个概
念,&熟悉&只能说明你知道这个技术,&熟悉&这个技术和真正拿它来开发更是不能同日而语
&&& 那么这意味着,他的这个&专业技能&在明明白白的告诉未来的老板:&我所有概念都'
熟悉',就是没有具体开发过!&。
&&& 如果,咱们换位思考一下,你是这个公司的老板,你愿意要这个员工吗?
&&& 这样的简历中有没有你的影子呢?
&&& 如果有,那么应该避免这些问题的出现,重新审视自己的特长,努力完善吧。
&&& 1.5点评&经营自我&
&&& 你是精品店?还是杂货店?不管是什么商店,都需要用心去经营,你认真对待你的顾客,
你的顾客也会给你相应的回
----------------------- 页面 37-----------------------
&&& 人生就是这样:
&&& 把自己交给市场,用心去经营。
&&& 第2章软件开发职业的误区
&&& 我们上一章了解了应聘公司和面试过程,对程序员这个职业有了一个初步的认识,为即
将进入应聘公司我们心里打下了底,使我们在应聘前更有信心了。
&&& 那么,在本章中要说另一个话题,这是在软件开发职业领域里经常出现的对软件开发职
业的误解,这些误解有的时候会成为新程序员的&思想加锁&。所以,有必要在本章中对这些
误区予以说明,让我们的程序员们&轻装前进&。
&&& 2.1误区1:软件开发职业是青春饭
&&& 我们听得最多的&误解&莫过于&软件开发职业是青春饭&这句话了,这样的说法在人们中
间很流行。
&&& 这种说法意思是说,只能在&年轻&的时候从事软件开发工作,当然这个&年轻&也给出了
一个具体的年龄,就是&30岁&以前,&30岁&以后就不能搞开发工作了,肯定转行做其他工作
&&& 这种说法的&理论依据&是,做软件开发非常的&用脑子&,而且都是代码的工作,只有&
年轻人&才能有这个精力去投入软件的开发工作中去,年龄大了就干不了啦。
&&& 很显然,这个&误解&理论来自于&外行&人,但是,这个&外行理论&却时不常的成为&新
程序员&前进的障碍。原因就是,&新程序员&们看不到职业的发展方向,搞不清楚自己的发
&&& 2.1.1 不必为30岁以后烦恼
&&& 我们在前面章节和大家说过&程序员修炼三境界&,关于软件开发职业是不是青春饭的问
题,我们在那个章节中,从程序员的发展路径中我们基本上可以比较清晰的看到了答案。
----------------------- 页面 38-----------------------
&&& 这个路径告诉我们,&初级程序员,程序员,软件工程师&并不是软件开发职业的唯一表
现形式,这仅仅是职业的初级形式,大约在三年内完成进阶任务。这个&误解&估计主要来自
于对&软件开发职业&的理解,认为&软件开发职业&仅仅是指&初级程序员,程序员,软件工
程师&,所以,都是年轻人在做这个职位。
&&& 我们要充分理解程序员未来的&光明性&和&曲折性&,程序员职业发展的&曲折性&也会表
现为一定的&活跃性&,即,部分人会在进阶过程中&掉队&,虽然程序员工作三年可以进阶为
&开发经理&,但是,这个过程是&曲折的&并不是一夜之间完成的。
2.1.2 30岁以后照样可以编程序
&&& 不管你在30岁以后是否已经进阶为&开发经理&还是继续做&程序员&,一样都可以做编程
序的工作。认为在30岁以后应该专门做管理工作的观点同样是错误的。30岁以后,虽然做初
级程序员的可能性不大了,但是,核心编码工作,尤其是难度较大的那部分编码工作,还是
较多涉及的。
&&& 2.1.3 50多岁的程序员多的是
&&& 据美国调查企业Evansdata公司发表的调查报告显示:
&&& 从事软件软件开发的程序员中女性比例逐渐减少,现在仅占9%,大部分开发程序员都是
36-50的男性,平均年收入在5.5万美元以上。Evansdata公司的调查报告搜集了全球1.4万
名软件开发程序员回答信息。
----------------------- 页面 39-----------------------
&&& 这种情况之所以没有在中国出现,其主要原因是中国的信息技术起步较晚,在中国信息
技术大面积普及的时间大约是1990年以后,那个时候的年轻人,现在也只不过是30多岁,至
&&& 在国内找到50多岁的程序员有点难,主要是中国软件开发行业的起步比较晚。但也不是
不可能,我就认识这么一位前辈,他目前是一家小公司的老板,他的公司有程序员,但据我
所知,个别的程序他也会自己去调试调试,他的这个精神是我等后辈应该学习的。
&&& 2.1.4 点评&青春饭&
&&& 软件开发职业不仅不是&青春饭&,而且这个职业会让你永葆青春呦!呵呵。
&&& 青春饭:
&&& 职业本身并没有对年龄的限制,如果你愿意可以一直干下去。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 【责任
&&& 2.2误区2:做软件开发必须要加班熬夜的工作
&&& 一个外行老板:
&&& 有一个朋友在一个国际知名的公司工作,这家公司在北京的中国公司是被一个国内电子
商务公司控股的企业。
&&& 最近这家公司进行了人事调整,原来的外资管理层被中资管理层取代。
&&& 新来的中资管理人员是原来在其他行业的管理者,对IT行业并不是内行,他们上任以
来提倡了多个工作作风,其中一项就是,软件技术人员工作必须是早9点上班到晚9点下班。
&&& 公司的管理制度所标识的&8小时&工作制度形同虚设,当然,你也可以晚6点离开公司,
但是,很快会收到点名批评的邮件。
&&& 这是一个外行老板去领导内行的笑话,很明显,这位CEO的想法是,&做软件技术的怎
么能不加班?不熬夜呢?&
&&& 他的这个想法恰恰是进入了一个职业的误区:&做软件开发必须要加班熬夜的工作&。
2.2.1 程序员们熬夜工作的借口
&&& 对软件开发职业的这个误解并非&空穴来风&,因为,我们确实看到很多的程序员在没有
----------------------- 页面 40-----------------------
硬性规定的公司中加班熬夜的编程序。
&&& 正是这一个现象,旁观者们当然会很自然的联想到&程序员们的工作需要这样&的假设。
作为程序员,&加班&是有的,但是这个&现象&本身是具有&偶然&性的,而不能成为一种&常
&&& 程序员们总能找到熬夜工作的借口,我们来看看都有哪些。
&&& 2.2.1.1 代码一气呵成,一定要写完而后快
&&& 想一口气编完程序,是大部分程序员们自发加班的主要驱动力。比如,小张在开发一个
图形显示组件的过程中,该组件程序已经接近收尾,一定要写完看到想要的效果才肯罢休。
&&& 这个加班的动力来自于程序员自身,这种工作的积极性来自于程序员发自内心的对其工
作的热爱,是一腔热血使然。这个现象对程序员是有帮助的,对整个项目组也是有帮助的,
并应该鼓励,只不过不要成为&常态&。
&&& 2.2.1.2 明天要做一个命题演示,一定要调试好程序
&&& 明天急着给客户做一个命题的程序演示,还差一点没有搞定,急得抓耳挠腮,这时候,
还不加加班?大客户跑掉了,这个责任可承担不起。所以,一定是搞定了才肯回家,明天轻
装上阵,顺利完成演示工作。
&&& 2.2.1.3 安静的工作环境
&&& 我们还听到程序员们抱怨&没有安静的工作环境&,一般两个方面:
&&& 其一,程序员这一天工作中,不仅仅需要编写程序,还要花费时间阅读并回复邮件,接
电话处理各种问题的询问,协助HR面试,甚至审阅产品使用手册,等等,根本没有办法踏
实下来一气呵成写完代码。
&&& 其二,来自于周围环境,如果程序员运气比较差,正好和商务部门或客服部门做邻居,
那还真是存在这个问题,因为那里的电话与谈话声此起彼伏。
&&& 面对这两个问题,应该有各自的解决方案:
&&& 第一种情况,应该安排好自己的工作时间表,尽量将自己的时间合理的分配。
&&& 第二种情况,申请调换座位或心静如水、充耳不闻。
&&& 2.2.1.4 项目进度紧张,需要尽快完成任务
&&& &项目进度紧张&经常成为&加班&的借口,一方面是项目经理要求程序员加班的借口,另
一方面是部分工作拖沓的程序员的加班借口。
&&& 之所以这么说,是因为造成&项目进度紧张&的直接责任应该归咎于&项目经理&,而不是
----------------------- 页面 41-----------------------
&程序员&。项目的进度应该由&项目经理&进行合理的安排与调配,&程序员&所需要做的是按
照项目进度要求完成自己编码工作,如果编码工作是按照既定计划完成的,那么造成项目进
度的紧张自然就是项目管理的问题。
&&& 不过还有另一个现象,&项目经理&安排的时间得当,某些程序员工作拖延,在没有完成
既定任务的情况下,工作时间在做其它事情,反过头来造成项目进度紧张而&加班&。
&&& 所以,我们说凡是出现这个原因加班的情况,这一定是一个&警钟&,那就是,&项目出
现了问题&,因此,这个加班现象就一定要避免了。
&&& 项目进度紧张而加班:
&&& 是项目或者你自身出现问题的信号。
&&& 2.2.2 常态加班的危害
&&& 偶然的加班是不会造成影响的,甚至有可能激发程序员的工作热情。但是当加班成为常
态,则会给工作造成很大危害。
&&& 2.2.2.1 危害1:项目进度不升反降
&&& 加班成为常态以后,尤其是老板要求其工作必须超过12小时的时候,你会发现程序员将
私人事情安排进工作时间。要不程序员该什么时候处理自己的私人事情?
&&& 2.2.2.2 危害2:工作积极性被严重磋商
&&& 本来加班是一种工作积极的表现,尤其是对于由于&代码一气呵成&原因而加班的程序员
来说,更是为项目为公司努力工作的表现。然而,当被公司要求加班而不是自发加班的时候,
这部分程序员的积极性可以说是完全被磋商。
&&& 2.2.2.3 危害3:程序员身体造成危害
&&& 8小时的工作时间是一个比较科学和合理的,如果一味的去拼命的使用身体,必将使身
体受到损害,势必会造成如:工作没有精神,记忆力差,反应不敏捷,等现象,这些现象本
身给项目造成的损害是更加致命的。
&&& 常态的加班危害巨大,有经验的项目经理或者睿智的管理者,是不会允许这个现象发生
的,哪里出的问题从哪里找原因,千万不能通过增加工作时间来弥补事情的真实漏洞。
&&& 作为刚刚入行的程序员,也要清楚的认识到这些危害,不要陷入&加班熬夜&的工作误区。
&&& 2.2.3 控制好工作的一日时间表才是关键
----------------------- 页面 42-----------------------
&&& 前面提到程序员这一天工作中,不仅仅需要编写程序,还要花费时间阅读并回复邮件,
接电话处理各种问题的询问,协助HR面试,甚至审阅产品使用手册,等等,根本没有办法
踏实下来一气呵成写完代码,无法白天安心编码的问题。
&&& 我们程序员应该给自己定一个&一日时间表&,这个一日时间表可以更合理的安排时间,
把主要精力放倒最重要的事情上去。
&&& 比如,下面这个时间表可供参考:
&&& 接满一杯热水,打开电脑,整理思路,阅读并回复昨晚下班后收到的邮件--0.5小时
&&& 专心软件开发工作--2.5小时
&&& 午餐休息--45分钟
&&& 阅读并回复邮件--15分钟
&&& 专心软件开发工作--4小时
&&& 处理其他事务如接电话等--1小时
&&& 阅读并回复邮件--10分钟
&&& 在一早来到公司到午餐前这2.5小时是一天中工作效率最高的时间段,应该在这个时间
段中完全投入到开发工作,这段时间头脑清醒,思路敏捷,应该尽量避免去做其他事情,你
会发现,这个时间的开发进度会事半功倍。
&&& 然后午餐,午餐回来后稍事休息,快到1点的时候,可以处理一下邮件。
&&& 之后,进入下午的开发时间,这个时间段效率最高的部分也是2.5小时,尽量投入全部
精力在2.5小时以内开发编码。
&&& 电话等其他事务,会穿插于下午的工作时间中,尽量压缩在1个小时以内。
&&& 最后在下班前,阅读并回复邮件。
&&& 大家看,这样安排工作时间,是否就不会被繁复的其他工作搞得手忙脚乱了?用效率最
高的时间去处理开发任务,用接近休息或者接近下班的时间去处理邮件,这样你还需要加班
&&& 反之,如果整天被开发之外的事情搞得团团转,一行代码都没有写,这样的话,不加班
都不行了。
&&& 时间策略:
&&& 好钢用在刀刃上。
----------------------- 页面 43-----------------------
&&& 2.2.4 &偏执与狂热&不等于加班加点
&&& 作为程序员如果想成功是需要&偏执与狂热&力量的,这部分&狂热&的力量促使着程序员
永远在关注着最新技术的前沿,关注着最新产品的实现方法。
&&& 英特尔公司总裁&安迪&格罗夫&说&只有偏执狂才能成功&,抱定一个信念一直不屑的努
力,最终走向成功的彼岸。对于程序员来说,这个&狂热与偏执&是一个持续努力的过程,首
先成为软件开发技术的&发烧友&,结合国际与国内的技术形式给自己定位。
&&& 这个过程是艰辛的,但是不等于对&工作量&无限堆叠,不等于通过延长工作时间来达到
其目标,这个过
&&& 狂热与偏执:
&&& 强调思考的重要性,而不是延长工作时间。
&&& 2.2.5 程序员的大脑与第二大脑
&&& 以下是一则新闻:
&&& 据科学家最新研究成果表明,在生命体的活动中,除大脑外,还有一个第二大脑。科学
家研究确定,在人体中还有一个&组织机构&,即神经细胞综合体。在专门的物质--神经传感
器的帮助下,该综合体能独立于大脑工作并进行信号交换,它甚至能像大脑一样参加学习等
智力活动。
&&& 看到这则新闻,我想在这里武断的假设与猜测一下,那个第二大脑是否就是支配我们梦
的编剧呢?
&&& 我和一些程序员聊天时,发现大家都有一个非常奇特的现象,就是如果你前一天晚上带
着一个难以解决的程序逻辑问题去睡觉,在第二天早晨半睡半醒间,猛地想一想昨晚的那个
问题,你会惊人的发现,你很快找到了那个问题的答案。
&&& 难道我们的第一大脑是在我们醒着时候活动,而我们的第二大脑是在我们睡着的时候开
&&& 如果,我的这个假设不成立,那么&在人梦里和我说话的那个人是哪个大脑支配的呢?&
反正不是我的第一大脑,因为,我在梦里无法预测到那人要怎么说以及怎么做!
&&& 好了,打住,快要跑题了,我们不是在写科幻小说,这些人脑问题,还是留给医学和科
学专家去分析吧,我们作为软件开发者在这个问题上,只有猜测的权利,没有结论的权利。
&&& 如果,姑且认为我的想法是对的,那么&&
----------------------- 页面 44-----------------------
&&& 提问:为什么半睡半醒之间总能想出困难的软件开发问题的解决办法?
&&& 回答:因为,在那个刹那,两个大脑都醒着!
&&& 在写作本书的过程中,我做了一个调查,访问了多个程序员,在问及他们是否出现过&
记忆力暂时断路&问题时,

我要回帖

更多关于 程序员写博客的地方 的文章

 

随机推荐