我对毕业生的期望 之 有思路_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 我对毕业生的期望 之 有思路

我对毕业生的期望 之 有思路

 2013/7/30 13:09:57    程序员俱乐部  我要评论(0)
  • 摘要:我对毕业生的期望之唯快不破对毕业生的三个期望,第二样是“遇到问题要有思路”。说得更直白一点,脑子要清楚,不能一团浆糊。毕业生进了项目,大家最怕看到的不是这位同学有多少知识不知道不停地问问题——这样的同学都算优秀的了。最怕的是往那儿一坐两眼一抹黑,不知道该干嘛。给讲一段代码,就大概可以照着这段代码抄一抄;稍微遇到个不一样的问题,或者出个异常,立马就手足无措。Java出问题不会搞,HTML出问题也不会搞,数据库出问题还是不会搞。这可急死了带队的老同事
  • 标签:毕业 思路 毕业生
class="topic_img" alt=""/>

我对毕业生的期望之唯快不破

  对毕业生的三个期望 ,第二样是“遇到问题要有思路”。说得更直白一点,脑子要清楚,不能一团浆糊。

  毕业生进了项目,大家最怕看到的不是这位同学有多少知识不知道不停地问问题——这样的同学都算优秀的了。最怕的是往那儿一坐两眼一抹黑,不知道该干嘛。给讲一段代码,就大概可以照着这段代码抄一抄;稍微遇到个不一样的问题,或者出个异常,立马就手足无措。Java 出问题不会搞,HTML 出问题也不会搞,数据库出问题还是不会搞。这可急死了带队的老同事:漫天都是不会的,从哪儿教起呢?

  有些同学说,我不是想不明白,是根本不知道往哪儿想,因为我以前根本没做过类似的东西。这都是借口!经验丰富了肯定有助于你把事情想明白,但是经验不丰富不是想不明白的借口,因为思考本身是有方法的。而且我们做 IT 的人,总是面对未知比较多——某件事情一旦变成已知,你就写程序把它自动化了,不用再想它了。掌握思考的方法,你才能探索未知。所以思考方法实在比知识和技能更重要。

  要把脑子弄得清楚一点,第一条是要学会看事实。我最怕听毕业生说“我觉得……”。网页上的图显示不出来了,“我觉得是 JSON 出问题了”,然后就去看生成 JSON 的代码。嘿,等等,你一没知识二没经验,你凭什么觉得?首先要学会看事实,先别动任何代码,尽可能多地把事实列出来:浏览器发了什么请求,得到了什么应答,JavaScript 有没有报错,render 了什么 HTML,全都列出来。当然你也可以猜是哪儿有问题,但是一定要把假设、猜想和事实分开。要是脑瓜儿太小记不下,就拿个笔来记:我看到哪些事实,我假设哪些条件,我做了什么猜想。信不信,很多时候你写到这里,就已经知道问题怎么解决了。

  事实、假设、猜想,你只能相信事实。事实都列出来了,问题还不清楚,怎么办?这就引出第二条:学会设计实验。我们的理科教育有一件很失败:做了N多实验,却没有教人怎么设计实验,只是照着实验步骤一步步做下来,结果还是不知道什么现象证明什么道理。你得学会设计实验来验证你的假设和猜想,把假设和猜想变成事实,或者扔掉它。实验要简单明了,一次实验只验证一个猜想:如果猜想正确,应该得到什么结果;如果猜想错误,应该得到什么结果。最简单的实验是什么?面前有一大段代码,你觉得是后半段出错了,就到正中间去插一句输出语句,如果输出的结果就已经不对,就说明你的猜想错了,事实是前半段有错,你就获得更多的事实了。

  学会看事实,学会设计实验,你还得用逻辑来分析事实。说起来“逻辑”好像很学术,其实只要记住三件事就可以应付绝大多数情况:第一,必要条件,就是没有它一定不行,有了它也不一定行;第二,充分条件,就是有了它一定行,没有它未必不行;第三,排除法,就是去掉不可能的,答案一定在剩下的部分。本来程序跑得好好的,你写了半小时代码,就运行不起来了,你就得去看刚写的那几行出了什么错,这叫排除法。找到一个错是不是就万事大吉?不一定,因为这个错只是程序出错的充分条件不是必要条件,还可能有别的错呢。所以我总是要求毕业生小步前进频繁提交,就是为了排除的时候轻松一点。

  前面一篇我说毕业生首先要把键盘练快,有人就说了,难道键盘快就一定能成为优秀程序员吗?软件的精髓在于设计!——对照我说的这几点来看,第一句话,没分清必要条件和充分条件;第二句话,跟毕业生说就是不了解大多数毕业生的真实情况,假设、猜想毕业生都已经练好了基本功现在需要追求“精髓”,没有验证假设和猜想,脱离了事实。看看,我说这几条,看似简单,仍然是需要时时练习才能得心应手的。同学们,加油啊。

发表评论
用户名: 匿名