1. 学生时代
程序员以前都是学生,我们从学生时代快结束时讲起。
本科毕业论文答辩时的一个笑话。有女同学翩翩然说,"各位评委老师……"提问和点评的时候,我作为"评委"的第一句话就是,"对不起,这不是选秀节目,我们也不是评委老师。"
坐在下面的那些老师 (与非你莫属不同,不是坐在上面),我们一般称为答辩委员会成员,作为论文答辩(或项目投标、讨论) ,他们与选秀的评委任务不同。答辩委员会成员,一般不太在意轰动笑果什么的,所以常问一些一再重复的问题,对谁都问,有时就被称为套话。
这句套话非常之重要,以至于答辩委员会成员经常要求答辩者跳过综述 (你看了哪些资料,你的工作在学科中的地位,你的工作如何重要等等),而要求直接讲--
"你的工作是什么?"
当年我本科毕业论文的时候也被问过。我卡卡卡卡讲了半天,我用的这个语言有前途啊,我从事的这个领域也有前途啊,布拉布拉。是的,我用的语言是HTML,领域是计算机网络,当时连ASP好像还没出来,可见我选择了多么富有远见的方向。但是,答辩委员会老师忍了半天,就是如今的刘校长问我,"你的工作是什么?"
我然后就卡壳了。我选择的语言很牛,我选择的方向很牛,又怎么样,那些都是别人做的,跟我又有什么关系呢?
我当时说,我看了这么厚的一本书,英文的,全看完了。然后才理解了啥啥。老师们非常和蔼地没理我。
很多年以后,我明白,作为程序员,你学会了什么并不重要,所花费的时间也不算作你的工作。在这个世界上,除了你的父母,没有人再会因为你学会什么而高兴,他们只会因为你用学会的东西做出贡献而高兴。
那么,你的工作,你的贡献是什么。
2. 最近的一个实例
某处前两天网站建设会议,我作为技术人员出席,发言的时候只提了一条与技术有关的建议,其余那些条都是表达网站建设与技术人员关系不大,更多的是美工和广义上的政治。
唯一与技术相关的那条建议是去除网页上的百度统计,原因是加上它以后网页载入速度有明显地下降。
最初我不知道里面有百度统计,还问过ZHUMAO,你们那个点个网页,怎么载入的时候会这么慢。会上,作者同学指出了百度统计的优点:1.能统计出哪个链接点击的人多,有多么多,比例如何;2.能用热力图展示哪个位置被用户点击多少下,点击多的地方就更红一些,点击少的地方就更绿一些。
我为什么认为应该去掉百度统计呢?这个东西固然是好,但是它影响性能,更重要的是,它不是你做的。那个热力图真的形象,漂亮,强有力,但是那是百度的工作啊,不是你的工作。你的网站架在自己的机器上,容易获得 w3c log,方便统计出这些数据。如果你用w3c log 统计呢,这就是你的工作了。而且,你同时也避免了不必要地向第三方泄漏网站访问数据。
你的岗位存在的意义,是选择合适的工具,而不是强有力的工具,去完成任务。我为什么说"你的岗位"的意义,而不说"你的意义"呢?这可以从一道面试HR乐意问的问题看出来。HR可能问,"你对薪酬要求如何啊"。一种合理的回答是,"薪水的多少取决于这个岗位对公司可能的贡献,而不是我的能力。"
克拉克还是超人呢,报社也没有多付他一分钱。
所以,你的岗位期待你选择合适的工具。
3. 什么是不合适的工具
合适的工具是什么,是个太大的话题,以后再聊吧,我们不妨先看看什么是不合适的工具。
特强大的,众所周知牛的,干啥都行的,这些基本是不合适的。另一种不合适的,是本科同学们愿意在答辩的时候说的一句,"我为什么选择JAVA?因为我们就会这个,这课是周老师讲的,他……""就会这个",可不是一个好理由。
同时,也不能逮着啥有名气正流行,就认为它会是好的解决方案。例1,项目课程里一位同学,打算做俄罗斯方块,或者贪吃蛇。她认为,这一定需要用多线程来解决。为什么呢?因为你看,方块在起, 同时,还能响应用户的键盘消息。例2,还是项目课程,另一位同学做扑克牌游戏,觉着需要用access数据库存扑克牌的当前次序和排序什么的。
这些是"过于"强有力,不适合做这种小游戏的工具。用大炮打蚊子不对的原因之一,是需要携带这么沉的东西,并非"没有必要","没有必要"这种措辞给同学们一个错觉,似乎这样也是可以的,只是"并非必要"。不是这样,应该明确指出,用大炮是"错误的"。
红白机 (任天堂)时代,CPU都那个水平,里面也没跑操作系统,多线程之类的是肯定没有的。同时响应这一需求,如果我们还没有学到那些知识的话,我们也可以猜到,一定有更轻量级的工具可以实现。这个轻量级的工具,就是循环,在每次循环里读按键,如果不是命令,那么重画方块,在新的位置,这样方块就动了。
windows操作系统自带纸牌游戏,从windows 95时代,而且那个时候操作系统里面肯定不自带access。存序号排序这种事,用链表或数组都容易解决。
有同学可能会说,那我用这个项目顺便练练多线程或数据库不行么?我们应该用项目练习项目能力,多线程和数据库应该单独练习,或者找适合它们的项目练习。
合适的工具,就是不多不少正适合这个项目的工具。如果它强大到了干啥都行,那么如果不是它的子集刚好适合你,那它绝不是你的那盘菜,因为它一定复杂到难以把握。基于同一原理,穷矮挫不该考虑白富美。
3. 什么是不合适的使用工具的方法
试想,表演结束,你走回舞台,聚光灯下,下面掌声雷动。你几次谢幕,全场观众起立挽留。
答辩委员会不适时地又出现了。它们还会在你以后的人生中数度出现,投标的时候,经理质询你的工作进度啥的。
答辩委员会里某个亮脑门问,"你的工作是什么?"
"啊呀",你说,"这个简单。你们看到这有个钮么,它的名字叫做开关。按一下……"
音乐声响起,你继续解释,"这个设备叫做录音机。"
如果你的工作只是选了这台录音机,你就只是行政人员。行政人员是不需要专业技能的,当他们犯了这方面错误的时候也不会受到指责。
有同学说,我知道录音机的存在,这算不算工作。算呐,当然算。只是你认为这样的工作值多少钱呢?满世界的人都可以告诉你的经理,免费的或几乎免费的。如果你比别人早几年知道录音机,可能会好些,至少好日子可以过到录音机满天飞。
设想另一个场景。还是舞台上,让你再表演的时候,你用自己的手指敲击键盘,那就完全不一样了。当年杉菜同学 (out了?)就凭这一手震住了高富帅他妈。想想吧,如果杉同学从衣兜里掏出个mp3接上外放,那会是什么情景。
亲自表演意味着两件事。1.你受过长时间的训练,这些训练不可替代,除非替代你的人也受到同样或接近长时间的训练;2.你当前真的正在表演,这一工作时间不可替代。
这就是程序员的价值所在。这也是所有工程师的价值所在。我们选择一种工具,然后使用它。
讨论观点的时候,大哥以前有个路子,他转引别人的论点,或者说都在这本书里,你自己回去看吧。如果不是导师指导学生,在面对答辩委员会的时候,这一招是万万不好使的。如果不你能清楚论述别人的那些观点,并阐述它们与你的观点及当前问题的联系,是不行的。仅仅说,"子又曰了",只有在高考作文里才有用。
马利同学前两天转引道,"某位哲学家说过,谁谁谁又说了,在中文里,都可以翻译为 I think。"当年俺们一位外教说过,写作文不要写"I think",因为大家只关心你的观点,而不是你的态度,你think不think,who care。
你能用来说服自己的,是信仰,能用来说服别人的,才是道理。工程师的工作不是让别人跟随自己的信仰,而是为别人创造价值。
如果你借助工具,完成当前项目的目标,你是在使用工具。如果你选择 (或者被选择)了工具,按了两下鼠标任务就完成了,你不是在使用工具,而是成为了工具--而且并非你的上级的工具,而是是工具的工具。
最后再讲个工具的工具的笑话,网上看来的,不一定是真事。说中国有个教授到了韩国。韩国人问了诸多问题,类似你们有钢铁么,有飞机么,有泡菜么,所有问题都集中于质疑我国的生产力和生活水平。中国教授答:中国和韩国一样,什么都有,只是没有美军。
前车之鉴。使用工具的时候,我们该想想,我们自己的价值在哪里,什么是我们的工作。
--------------------
博客会手工同步到以下地址:
[http://giftdotyoung.blogspot.com]
[http://blog.csdn.net/younggift]
[http://www.renren.com/268966623/profile#pblog]
分享到:
相关推荐
描述中提到的“精灵输入法”是其中的一款,它作为程序员专用的输入法,可能具备以上所述的所有特性。例如,它可能有强大的代码提示功能,能识别各种编程语言,并且有丰富的预设代码片段,使得程序员在编写代码时可以...
这样的技能组合可以让你在项目中扮演更多的角色,从而增加自己的价值。 ### 7. 主动学习新知识 遇到不懂的东西时,不要害怕主动去学习。互联网上有大量的资源可以帮助你快速掌握新知识。主动学习是一种非常重要的...
这款软件的核心价值在于它提供了便捷的方式,让程序员能够整理、分类、检索他们在开发过程中的小窍门、代码片段、问题解决方案等,从而提升工作效率和代码质量。 作为一款程序员的辅助工具,它可能包含以下功能: ...
程序员,作为现代社会中的技术专家,他们的工作往往集中在编程、算法、系统设计等领域,但了解历史,特别是中国的二十四史,对于他们来说有着非同寻常的意义。 首先,我们要明白,二十四史是中国历史上的重要文献,...
同时,积极参与社区交流,了解行业动态,将使你在求职路上更加自信和从容。 总的来说,这份“程序员求职大礼包”是一个综合性的学习资源,涵盖了笔试准备、技术提升、社区互动等多个方面。对于每一个致力于进入IT...
书中强调了C++语言作为程序员核心能力之一的重要性,并可能包含了一系列的实战题目和案例分析,帮助求职者在面试中展示出自己扎实的编程基础和出色的解决问题的能力。 由于提供的文件内容中有一部分是经过OCR扫描后...
标题中的“程序员以后的出路”是指程序员在职业生涯中可能的发展路径和策略,这不仅关乎技术提升,也涉及职业规划和转换。描述中提到,当程序员面临困惑时,有两个主要选择:一是成为工作环境中最优秀的人,二是通过...
这些壁纸不仅能够装饰你的电脑桌面,还能够作为一个持续提醒,鼓励你在面对复杂代码、bug修复或项目压力时保持冷静与专注。 在IT行业中,程序员扮演着至关重要的角色,他们通过编写代码构建了我们今天所依赖的数字...
在IT行业中,程序员们以其独特的创意和编程技巧来表达情感,"程序员代码表白-爱你一辈子.zip"就是一个典型的例子。这个压缩包文件包含了程序员们用代码来传递爱意的方式,让我们一起深入探究其中蕴含的IT知识。 ...
其次,描述中的“从这本书中,你可以看到作为一个程序员,你未来的方向”意指文章不仅讲述了一个程序员的成长故事,还试图为读者提供一个参考,帮助他们了解程序员的职业生涯可能面临的各种情况,以及如何更好地为...
JAVA作为一门广泛应用于企业级应用开发的编程语言,其程序员在企业中的角色至关重要。自我评估不仅是个人职业发展的必要步骤,也是企业人力资源管理的重要环节。通过自我评估,JAVA程序员可以: - **明确个人定位**...
在信息技术(IT)领域,作为程序员,职业规划和发展路径的选择尤为重要。随着技术日新月异的变化和个人能力的不断提升,每位程序员都会面临多重选择。本文旨在从不同的角度探讨程序员可以选择的职业路径,并深入分析每...
在IT行业中,程序员作为技术的核心力量,其职业发展路径多样且具有广阔的空间。本文将根据给定的部分内容,详细阐述程序员可能的发展方向及其相关知识点。 #### 一、技术专家路线 对于喜欢深入研究技术细节、热衷...
作为一名程序员,工作经验的价值在于不断积累和提升个人技能。在面试过程中,面试官通常会通过一些基础问题来评估应聘者的编程功底,例如询问冒泡排序等基础算法。这并不是为了测试候选人是否知道这个特定的算法,...
作为程序员,你需要明确自己的兴趣领域,是喜欢前端的用户体验设计,还是后端的数据处理,或者是人工智能和机器学习的探索?理解自己的兴趣和优势,有助于你在职业生涯中找到最适合自己的角色。 接着,职业规划的...
作为一本专门针对程序员的专业读物,它涵盖了从技术学习、职业规划到团队协作、项目管理等多个方面,旨在帮助程序员解决成长过程中的困惑,提升个人能力,并促进其在IT行业的持续发展。 首先,书中可能会探讨技术...
3. **探索精神**:对于新技术的好奇心和探索精神是非常重要的,它们将推动你在职业生涯中不断前进。 4. **职业规划**:明确自己的职业目标,并为之不懈努力。不要仅仅为了薪水而选择这个职业,而应该是出于对编程...
因此,程序员往往把软件的价值看做自己的价值,例如一个软件卖了 5 万元,程序员就会把自己的劳动价值估算在 5 万元以上;如果这个软件有 100 个潜在的市场,那么程序员就会把这个价值升值到 5×100=500 万以上。 ...
例如,用户可能给出特定的需求边界,作为程序员,我们需要利用数据结构(如B+树、哈希表)和算法来满足这些需求。数学能力还涉及到系统分析,要求我们具备边界意识、细分思想、系统化思维和逆向思维,这些都是工程...