本帖最后由 满天星的愿望 于 2012-4-18 15:38 编辑
漫画一:软件编程
漫画二:使用 LISP 语言的程序员眼里其他语言程序员的形象
漫画三:学校里的编程和真实项目里的编程
漫画四:程序员与劫匪
循序渐进学编程
软件开发者是一个日新月异的领域—–IT中的大师,今天的编程方式与明天的编程或许截然不同,技术在不断地革新,新语言、新平台的如雨后春笋般出现、更好的解决方案的冒出,因此我们需要跟得上节奏,我们没有选择,唯有努力提高自己。
下面的几点建议或许能帮助你成为一个优秀地开发者。
你是否听说过Kaizen这个词呢?简单地说就是“改良”的意思。当然它不仅仅是一个单词,同时代表着一种哲学,一个不断完善自我的理念。它需要客观的监督和改善。更多的细节可以从
这里了解。
当然下面的建议是没有先后顺序的。
0. 阅读代码:
经常认真阅读他人的代码。寻找大家公认的优秀软件作品,学习其背后的运作原理,领悟他人解决问题的方法,有时候你也会要到同样的问题,试着对比其技术和解决方案。
1. 编写代码:
在一个你还从未解决过的问题上多花点时间,尝试着培养自己的思考方法以及思维模式,你会因此而获得很多的乐趣。这样做并不难,而且它还是很好的问题反馈源。对于每个问题几乎任何时候都有不同的解决方法,学者用不同的方法解决问题,对比它们之间的优点和弊端,使用诸如模块化和系统集成的方式编程,那样写代码非常的简洁,清晰。
2. 跟上技术潮流:
在twitter和facebook、weibo等社交网络关注技术大牛,订阅你的RRS。及时了解新语言,对技术要有深入研究而不是仅仅停留在只会调用API的层面上。技术是要靠实力说话的,光忽悠没用,所以尽可能早的深入了解。
3. 从不同的角度思考问题:
没错,你就是一个开发者,但是你会把自己的作品当做普普通通的产品吗?商业价值怎么样?写出来的软件能给你带来什么样的价值?需要用到哪些资源?有比软件带来更多价值还重要的事情吗?软件所表达的思想在于什么?用户在使用过程中软件能扮演什么样的角色?这些问题看似很老套或者微不足道,其实不然,我们应该不断地去回答这些问题,开始不同角度思考问题。
4. 测试是开发者的工作:
未测试的代码就像一个未知的承诺,不去测试代码,编程技巧很难得到提高。作为用户你会因为一个得不到保证的承诺而把钱交给一个完全陌生的人吗?用测试单元做功能和集成测试,证明你的代码可以正确执行,使他人放心地使用。把代码放到GitHub资源库上去。记住:扩大代码测试覆盖范围,减少代码的复杂度、去除代码的坏味道,不断调整、提高。
5. 在社区和开发者交流
向他人学习,和他人探讨问题。通过阅读他人代码提高自己的水平,同时尽可能去帮助他人,用一种开放地思维接受和分析他人的解决方案以及思想。
6. 每天交付可使用的部分
学会把大项目分解成为更小的,变成可交付使用的部分。做里程碑、做测试证明、做进度规划。分析和总结是必不可少的,此刻就把它记录下来,注意前后的变化,长期的积累将使你更加自信,外人对你刮目相看,做一个快乐的程序员吧。
7. 忙里偷闲:
参加娱乐、体育活动、接触大自然。你的身体和大脑需要休息,经常站起来活动活动,切忌一直坐着盯着屏幕。
工作满意度评估程序员版
你是否对自己的工作感到满意?你觉得现在的职业发展还尽如人意吗?大约每隔6个月,我都会花些时间思考这些重要问题。当问及对职业是否满意,“是的,我喜欢我的工作”或者“我打算就在这里一直工作下去了”,类似这样的回答通常没有什么价值。那么,什么是程序员对工作感到满意的关键因素呢?怎样才能让黑客们对工作更加满意呢?
译注:hacker 黑客:黑客一词,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。黑客一词已被用于泛指那些专门利用电脑网络搞破坏或恶作剧的家伙。本文中的黑客取前一个含义。
首先,让我们将工作满意度进行细分,然后逐个讨论如何衡量这些方面。在这个迷你系列的下一篇文章中,我会讨论如何成为一名更有满足感的程序员。
团队协作
按照的Jeff Atwood说法,“你选择同他一起工作的人,通常就是能够评估工作满意度的最佳人选。”就我而言的确如此。回顾过去,当我最具热情工作愉快的时候,我是优秀团队中的一员,这个团队由黑客组成。我们在一起配合得很好。我们从彼此的身上获得灵感。知道彼此的长处和缺点,以及如何在淋漓尽致发挥强项的同时改进缺点。我们尊重彼此的经验、学识以及各自的偶像。正如你知道的……
想想曾和你一起工作过的最好的黑客。他们希望加入你的团队吗?如果不是,这就是个问题。如果那些黑客现在不想加入你的团队,你的团队也不会吸引其他顶尖黑客,你会因此感到郁闷。
好的团队由优秀的黑客组成,他们在一起协同工作。没有一个好的工作环境就不可能吸引顶尖人才。所以,如果工作环境在下面几个方面做得不好,就肯定吸引不到好的人才,也几乎
不可能打造出一支优秀的团队。这也就是为什么强势的开发团队在工作满意度评估中名列榜首。
项目质量
聪明人对一直不断地重复感到厌倦。黑客们也不例外。如果他们坚持用同一种语言编程,用同样枯燥的CRUD 界面,使用和初学编程时同样的算法,他们不会为此感到高兴。大多数开发者渴望学习新东西,并将它们应用到实际开发中。难题和带有挑战性的问题会让他们感到兴奋。
花些时间思考一下你最近学到的新技术,以及最近解决过的难题。这不仅会让你在技术方面感到满足,更会让你的职业发展更进一步。
工作和生活平衡
黑客通常会难以置信地长时间工作,只需要Cheetos(膨化食品)和Bawls苏打水就可以生存。这种死亡行军式的软件开发不会长久,最终的代价是精疲力尽并对工作感到厌恶。
看一下你花在工作上的时间,就会知道自己在工作和生活平衡方面做得如何。很多人在精疲力尽之前没有丝毫察觉,所以去和家人和朋友谈谈吧,让他们帮助你了解如何在工作与其他活动或责任之间找到平衡。
官僚和公司政治
一定程度的官僚和公司政治是不可避免的,但是好的管理者会在很大程度上帮你把这些屏蔽掉。我唯一没有受到这些困扰的时候恐怕就是在大学里,不是因为别的,而是那时我对很多事情都抱有偏见。大学里的官僚实际上更严重,但我除了做自己的事情之外其他一概不关心。那些与编程没有任何关系的事情,我只当作去交水费或是送垃圾。
总的来说,快乐知足的黑客们总是在朝着一个目标努力编程并不断进步。程序员是这样的一群人,他们不喜欢文山会海,不喜欢争论预算,也不喜欢在资源自足的情况被要求具有创造性或者漂亮地完成工作。如果项目经常停滞,因为不断变化或缺少需求而受阻,管理决策不到位或没有方向,黑客们会因此感到沮丧和不满。更糟糕的情况是,如果因为过度的官僚和政治让他们无事可作,他们会认为自己的技术无用武之地并且得不到重视。这不仅会让他们对官僚不满,而且对公司的认同和尊重程度也会降低。
认可和尊重
杰出和博学的专家们通常希望管理者在作出决定时认真考虑并咨询他们的意见。通常也应该如此。如果管理者不尊重技术人员的建议或者不询问他们的意见,结果执行决定的时候开发者们会对此不满并不予配合。
你有没有接手过棘手的项目?你的建议被提交讨论了吗?你的意见最终被采纳了吗?在重要里程碑完成时有收到祝贺吗?这些都能够衡量你在公司里受到的认可和尊重。你是否经常被迫去做一些你没有把握或者不赞同的事情?你是否经常受到能力不如你的人反对和排挤?(请注意——要确保对好的技术方案保持开放的心态)这些就是不满的信号。
薪水
这是工作满意度最好量好的因素之一。在网上简单搜索招聘板块,就能够查到在自己行业里类似工作的薪资水平。了解自己公司里其他人的薪资也是非常有价值的。很明显,如果你的薪资不如别人你会因此感到不满,反过来说如果你的薪资相当不错你应当感到满足。
通过逐条比对这些条件,我对自己的工作满意程度更加清楚了。这让我知道需要在哪些方面采取行动和提升。在未来的2个礼拜里,我会按照上述各条采取行动。
与此同时,那些因素在你看来是重要的呢?
3