基本条件:
1)能解决技术问题
2)能承担技术责任
3)能融入技术团队
升级条件:
1)能提供技术方案 – “要解决客户需求问题”
2)能承担项目责任 – “技术你的能力,项目是你的责任”
3)能带领技术团队 – “不要一个人玩,要学会带着大家一起玩”
高级条件:
1)能指出技术方向 – “要超越企业内部需求,要超越客户外部需求”
2)能承担商业责任 – “ 尽管不是CEO,商业失败也会上门要债”
3)能打造并领导技术团队 – “不是个人,不是大锅饭,要的是团队”
基本条件:
1)能解决技术问题
2)能承担技术责任
3)能融入技术团队
升级条件:
1)能提供技术方案 – “要解决客户需求问题”
2)能承担项目责任 – “技术你的能力,项目是你的责任”
3)能带领技术团队 – “不要一个人玩,要学会带着大家一起玩”
高级条件:
1)能指出技术方向 – “要超越企业内部需求,要超越客户外部需求”
2)能承担商业责任 – “ 尽管不是CEO,商业失败也会上门要债”
3)能打造并领导技术团队 – “不是个人,不是大锅饭,要的是团队”
作为程序员,要取得非凡成就需要记住的15件事。
1、走一条不一样的路
在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。
2、了解自己的公司
以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。
不同公司的运营模式差异极大。如果你理解企业的运营模式,那你就不一样了!在这家公司中(或者对客户而言),你是参与业务运营的资产,你的工作能直接产生效益!
3、与最优秀的人为伍
很早以前,我喜欢打篮球,被分配到一个水平比较高的队里。一开始适应的确很困难,但环境的压力越大(重大比赛),我的长进也就越明显。
每个领域其实都一样:你周围人的水平(以及对你的期望)越高,你就会变得越优秀。
4、制造差异
每年学习一门新编程语言。为什么不呢?不断尝试新事物,你关注的技术种类越多,脚下的路就越宽广,你的职业生涯就会日新月异。不知道几年后Java的趋势如何?那就学习Clojure。学Ruby还是Python?这两种语言都可以试试啊。然后你才能知道哪种语言更适合某个特定的项目。看,掌握的语言多了,才能在需要的时候信手拈来吧。
5、畏惧,是最大的敌人
还是直接从书中摘一句吧:“在畏惧中做出的职业规划,很可能会让自己后半辈子就一直被‘圈禁’在小隔断里,永远不会有创造明天辉煌的时刻。没错,那样是安全,但有意思吗?”
6、要成为多面手
如果你掌握了所在领域的知识,那你只能是一名专业人士。用PHP编程?花点时间设置一台Apache服务器,让PHP和MySQL都跑起来。一直在用jQuery?试试Prototype。你懂了吧。
7、一个字:做
别指望别人过来教你该怎么做,出去,自己学着去做!
8、找一位好老师
找一位好老师可以让你在学习技术的时候有的放矢。作者给我们讲述了别人是怎么指导他学习的(顺便说一句,作者在这本书里讲了很多个人经历的小故事,他居然从一位演奏家转行来做软件开发!):“好好研究一下目录服务,熟悉一种UNIX变体,然后再掌握一门脚本语言。”
请记住这句禅宗谚语:“循路觅宗师,形影不相离,师知吾亦知,吾乃成宗师。”
9、主动教会别人
教会别人是一种最好的学习方式。写一篇博客能帮你搞清楚一个问题。为此,你必须先掌握很多材料,同时还要有条有理地讲给别人听(写作技能)。如书中所言:“要想知道自己是不是真的明白,你就讲给别人听听。”
10、实践,实践,再实践(训练)
只有进行大量实践(花大量的时间)才能掌握某种技术。看的很多,写的很少,遇到问题,改一改,又去读代码,……(这样下去是不行的)。
要特别警惕拖延症。其实,往往只要有了开头就好办了。
自我加压,效果会更好。我曾在一篇博客中提到帕金森定律:紧张的时限可以让你提高工作效率。为什么不把这个定律用到学习上呢,比如说在y时间内学会x?
11、从小处入手
每天都取得一项小成果,每天都要坚持做(写在博客上?)。这样一来,你只能让自己比昨天更进步,而不能说自己比上星期进步了一点。
12、享受过程
关注当下,而不是目标,享受那些在追逐未来目标的途中可能无暇顾及的小胜利。人总要生活在当下。我享受编程的过程,就像享受编程的结果一样。
13、不要丧失危机感
越是成功,就越容易犯重大错误。永远不要忘了危机感,特别是要认识到你今天所知道的,到了明天可能就会一文不值。过去的荣耀不能保你永远无虞。
据书中所说,你最好是要让自己能够“通用”,而不要对哪种技术或哪个公司产生依赖。你所掌握的某些技能,甚至你的工作,到了明天都可能会变得毫无价值。因此要不断提高/丰富/扩展自己的技能。
14、推销自己
为某个项目贡献自己的一份力量,写一篇博客,共享自己的源代码,成为对某个社区有用的人。
当然,做这些事可能需要激情,要看你的爱好,但这些事也会间接地推广你的工作成果,证明你的实力,提高你的知名度。
15、关注市场
书中还提到了“预警极客”,也就是那些始终引领技术发展的人。这些人说过的话往往带有预见性,他们提到事物也许过几天就会成为头条新闻。关注这些人,常看他们的Twitter和博客。
如果你还不清楚PHP是什么,可以留意下那些你天天使用的web应用,例如Facebook、Wordpress都是用PHP构建起来的。
学习一门新语言可能会是一件很艰巨的任务,最好的办法就是借鉴前辈的经验已达到事半功倍,下面就是为PHP新手们准备的一些经验餐(笔者也还是新手)。
如果你是个PHP开发者,无论是新手还是高手,笔者都希望你能在此讨论下自己对PHP的想法或者技巧。
1. 从OOP开始
Naramore是SourceForge员工以及PHPWomen.org的创办人。对于初学者,她建议在学PHP之前先了解清楚OOP(Object-Oriented Programming)即面向对象编程思想。
“如果你来自非高科技行业,很有必要花一些时间去学习软件开发的基础流程。例如面向对象程序设计、测试驱动开发、版本控制、调试、设计模式等。”
“如果你已经尝试过了但无法解决问题,不要害怕开口问人。很多PHP社区的气氛都是非常友好的,并且提供了大量初学者可用得上的资源,这些都你 来说都会大有帮助的。找一个适合自己的稳定的社区,一个本地用户组或一个开源项目社区,或者是一个freenode上的相关IRC聊天频道。”
2. 随时Google
Casey创立了一个软件商店,并且在unconference流程方面做了很多研究。
他的建议是在PHP社区找到自己的位置以及遵循“发问前先Google一下”。
“马上找到一个用户组加入,全世界有很多聪明的人聚集一起聊天、开拓思路、互相帮助的PHP群。”
“记住,在提问之前先尝试在google上搜索。没人喜欢懒惰的人。”
3. 加入开源项目
Leonard 在运营一家爱尔兰软件公司echolibre,同时还是CloudSplit(一个云计算分析服务)的联合创始人。和他的很多同龄人一样,他建议应该积极尝试加入开源项目,即使你是个新手。
“通过参加开源项目你有机会看到那些源代码,并可以向资深的前辈学习。”
“帮助开源项目团队做一些事,例如寻找和记录重复性的bug这样的耗时任务,他们会对你心存感激。当我们想要雇用开发人员时,如果他曾经参与过OSS项目,我们会更多地考虑他对公司的潜在贡献。”
4. 想了就做
Lornajane 他在网上的身份Mitchell更为出名,是一个PHP顾问、开发者、作家和演说家。
她给出了一句简短的建议:想了就做。
“PHP是一种非常易懂、可以进行快速开发的语言。想知道一件事是否可行的最佳方法就是去做这件事。”
“任何人都可以用PHP编程。低门槛意味着会有很多糟糕的PHP作品。但很多糟糕的PHP作品却是非常有用的,即使它看起来并不漂亮。我个人认为如果你能用PHP解决问题,就大胆去实行,即便做出来的东西可能并不完美。”
5. 避免编码倦怠
Cornutt 运营PHPDeveloper.org和Joind.in,他从1998年开始一直在使用PHP。他给PHP初学者的建议是千万不要产生编码疲劳和倦怠。
“我认为新手PHP开发人员很容易陷入一种不堪重负的境地…初学者往往是对语言有兴趣,但总是被一种“能运行即可”的心态误导,以至事倍功半。”
“试图找到一位导师来引导你进行这些初步的学习步骤。当你真正去同他人沟通时,会发现世界很多不同的东西。IRC是一个很好的选择,但找一个牛人做老师肯定是最佳选择。”
“PHP开发也是一种需要磨练的技能,没人可以在一夜之间变成一名高手。”
6. 选择一个好用的编码器
Turner 从1996年开始一直在做web相关工作和参加开源项目。他运营PHPKitchen.com,最近还杀入Seedcamp决赛。
他给了新手PHP开发人员一个非常好的建议,可以节省时间,写出更好的代码,并帮助维持你对编码的兴趣。
“阅读经验丰富的开发者的代码,你总会发现一些更好、更简洁的方式算法。不要重新发明轮子,使用库可以避免自己编写重复的代码。”
“确保你的代码是人类可读的,如果你的代码6个月后连你自己也看不懂了,你让合作的其他开发者如何去看?”
“尽量简化接口,写简单的代码难度更大,不过,良好的重构会为维护节省大量的时间和头痛。”
“最后,了解一些杰出的程序员以及他们如何多年保持对编程艺术的热情。”
7. 了解测试驱动开发、封装和代码控制
Herbert 从1999年一直玩PHP至今,他对Gentoo Linux作出很大的贡献。
对于PHP初学者,他说“学习测试驱动开发和封装。一旦你熟悉它,你代码会写的更快,而且继承你代码的人肯定会感谢你”。
“学会代码控制,这是必经之路。”
他还表示,PHP一个最大的优势是有大量的在线免费文档,不用像学其他某些语言一样,跑到街上的书店去买教程。
8. 了解安全问题
Maclean 是来自苏格兰的PHP和Python开发者。
他说:“正因为PHP易用性强,所以有很多人都在使用,但我们必须想想那些初学者在用它做些什么。没必要什么都从头开始写起,适当地选择使用框架是个很好的开始。”
“另外要做的是了解有关安全的问题。PHP曾经在安全性上臭名远扬,就是因为易用性带来的副作用。我们必须学会避开这些问题。“
转载
五流程序员比技术和工具
五流程序员关心的是用什么工具可以产生什么结果,追逐他听过最新、最好、最时髦的技术,沉浸于一些小的练习,却很少走出象牙塔和客户或市场进行真正的沟通,甚至完成大型的真实案例。
四流程序员比整合和管理
四流程序员比前者更关心在什么地方使用什么,他的心里放着集成各种技术的地图,而不偏向单一工具或技术,他在乎运作一场战役的风险,还有资金成本的考量,包含开发时间、维护难易、用户培训或是市场推广……
三流程序员比创意和设计
三流程序员不仅要求把事情“做完”,同时要求自己把事情“做好”,他的作品里充满着感动和生命,即使好几年以后重新来过,你依然会觉得那些创意和设计,突破了时空限制,只能模仿无法取代。
二流程序员比沟通和性格
二流程序员跳脱工具,比人际沟通,他知道怎样和老板沟通,怎样和同事沟通,也知道怎样和客户沟通他有一个成熟并且稳定的性格,让任何人跟他在一起做事都有安全感,并且感到快乐。
一流程序员比态度和方法
一流程序员比的是学习态度和方法,包括对自我控制的能力,也就是纪律,我们不看他做出来什么事,而是看他准备怎么去做,包含解决问题需要的时间,还有学习新事物的方法。
只要他掌握了适合他自己的学习态度和方法,那么他可以从任何叶刻开始新的学习,并且展现最好的结果,至于现在会不会,懂不懂都不重要,因为只要他想要他就随时可以要,也能要得到。
超级程序员比思想和素质
程序只是语言的表述,而语言则是思想的泽炼。
超级程序员不仅改变我们的行为,也企图改变我们的思想。你不需要从超级程序员的代码判断他的素质,而是从他写的字、他说的话去感受他、因为没有那个思想到不了那个境界。