我的博客主要关注软件开发的各个方面,关注程序员的生活,工作和发展,分享自己的所思,所学,所行的一些体会。
另外,我也想通过我的文章改变一些程序员人生观和价值观 ,改变思考问题的方式。如果你喜欢,能享受到其中的乐趣,你就能干的长远。反之,你可能埋没了你在经商,营销,销售,艺术等等其它方面的天赋。我相信每个人都有自己的天分,程序员就是一个职业。如果你做不好一个程序员也不要自卑,说明你有成为总经理,科学家,国家主X席和总理,联合国秘书长的机会。
Ok,现在你打算做一个程序员了,那我的文章会帮助你,找到你自己的路,坚定你的信心。
切记,喜欢这行是第一位的。
第二, 做一个值得信赖的人。 值得信赖,赢得老板和同事的信任,这个不是程序员的基本要求,应该是职业人的基本要求 。做什么是都要一板一眼,稳扎稳打。答应做的事,要板上钉钉一样。这样你的领导和同事才能把工作任务给你。越信任你,就会给你越重的任务,你就得到了越大的锻炼。这时候,钱都是次要的。你干得多,得到了锻炼,如果老板不认可你,你可以有充足的资本做自己的选择。做一个公司机器里最可靠的零件,这也是我这几年的一个体会。
第三,对自己做的事情要负责。 不要一出问题,就互相推诿,推卸责任。负责任是成熟的表现,也是职业人的基本要求。如果你对自己做的事情不负责,那谁来负责?担任给你薪水责任的公司又怎么对你负责?
第四,要有质量意识。 写垃圾代码,没测试的代码是你的耻辱,要坚持“XX出品,必属精品”的原则。质量是一个公司的生命,同样质量也是你作为程序员的生命。如果你不重视它,你离被炒鱿鱼和被这个行业所抛弃就不远了。如果你说工期紧,没有给你创造高质量代码的空间。我说,这是一个借口,质量本来就是一个连续变量。这时,你要尽自己的最大所能,保证自己代码的质量。 对自己要严格要求,不管外界的环境是怎么样的。
第五,学习,思考,并持续的改进。 今天做不好,要想想以后怎么做的更好。这次出来一个bug,要想想以后如何来避免。这次代码写的不够灵活,扩展性差,要想想下次如何写的够灵活。如果你不知道如何改进,你就要学习,要google,看看别人是怎么做的。如果你能坚持这一点,即使你不做程序员,去搬砖,挖沙,打麻将,不敢说顶尖,优秀肯定没问题。
对这个,不想啰嗦太多了。如果你没想通,自己花点时间把我这几句话玩味玩味,我可是掏心窝子了。
How to be a professional programmer
=========================================================
如何成为一名专业的程序员,我从我的角度列了一下专业程序员的实践。
《Practices of Professional Programmer》
程序员首先要有规范编码意识,这些我觉得在学校里培养出来最好。我是在工作后,做一个项目之后体会到的,下面是我整理的Java编码规范,这篇文章后面有PDF版可以下载。
《Java编码规范及实践》
关于合格程序员要具备的能力,请看我的这篇文章。
《你是合格的程序员吗?—合格程序员应该具备的12种能力》
关于程序员如何思维,参考如下文章:
《为别人着想就是为自己着想——王永庆卖米有感》
《零基准思考,哲学家==精神病==2 * 我》
《像外行一样思考,像专家一样实践》
《快手还是慢手——问题解决及构想力》new
《程序员的结构化思维方法——一个思维脑图模板》new
《MECE(Mutually Exclusive Collectively Exhaustive)》
《程序员如何提高抽象能力》
关于程序员如何成长,参考如下文章:
《如何从小工到专家——Dreyfus模型应用》
关于程序员如何表达和交流,参考以下文章:
《一图胜千言——软件开发中形象思维和图的运用》
《做一个积极的参与者》
Agile
=========================================================
《敏捷迷雾背后的本质》
《象征对于团队的意义》
《沟通是个大问题——协作化软件开发》
《软件开发中的简单法则》
《提高沟通效率——连续式沟通》
《看《Prison Break》有感——看板,信息可视化与沟通方式》
Legacy System
=========================================================
遗留系统维护思考——如何理解软件系统
Quality
=========================================================
关于软件质量属性的思考:
《可扩展性(Extensibility)——构建灵活系统的思考》
《可维护性(maintainability)——回到现场》
《可理解性(Understandability)——一个扩展视角》
《可预见性(Prodictability)——设计之美》
《如何提高代码质量》
Patterns
=========================================================
自己总结的一些模式,汗了。
《Code Review Patterns》
《团队分析与设计(TeamAnalysisDesignPattern)》
《极限会议模式(ExtremeMeeting)》
《影响分析模式(InfluenceAnalysisPattern)》
《全局目标导向模式(GlobalTargetOrientedPattern)》
《通讯录模式(AddressListPattern)》
Design Patterns:
-----------------------------------------------------------------------------------------------------------------------------------
我的快餐店拉面模式系列,4年前写的了,在拿出来献丑了,对初学者有一些帮助。之所以写这个,是因为四年前,每天下班都到同一个兰州拉面馆吃拉面,怀念那时候的日子啊。
《Double Dispatch(双分派)》
《设计模式开篇——一些原则》
《设计模式-简单工厂模式(SimpleFactory-C#)》
《设计模式-工厂模式(手工作坊到工业化的转变 c#实现)》
《设计模式-抽象工厂模式》
《设计模式-建造模式(一碗牛肉面的制造过程)》
《设计模式-原型模式(Prototype)- 面馆里的菜单》
我的设计模式快速参考系列,常用的10几个模式,比较简单,都是示意性代码。从我的编码规范 中抽出来的。
《设计模式快速参考-简单工厂模式》
《设计模式快速参考-工厂方法模式》
《设计模式快速参考-单例模式》
《设计模式快速参考-适配器模式》
《设计模式快速参考-组合模式》
《设计模式快速参考-外观模式》
《设计模式快速参考-代理模式》
《设计模式快速参考-命令模式》
《设计模式快速参考-观察者模式》
《设计模式快速参考-策略模式》
《设计模式快速参考-模板方法模式》
《设计模式快速参考-参观者模式》
Thinking
=========================================================
《What about software design?》
《他强任他强,清风拂山岗——信息爆炸时代的迷茫》
《足球与软件开发》
《挤挤总会有的——今天你挤了没?》
《有人的地方就有江湖》
Presentations
=========================================================
我的技术演讲:
《解决问题,创造力和知识管理》
《测试驱动开发及代码重构》
《敏捷软件开发-概要篇》
《设计模式、框架及其实践【PPT】》
Writing
=========================================================
《夜半哄儿睡觉记》
《剃胡子随想诗一首》
《跨海大桥诗一首》
MISC
=========================================================
一个基于JExcel的报表小框架:
《一个基于JExcelAPI的轻量级报表框架》
我的论文:
《Agile Java Report Develop Framework based JExcel》
软件项目解决方案模板:
《软件项目解决方案模板》
PHP实现网站的模拟登录:
《我的第一个PHP程序——实现网站的模拟登录》
这篇文章我会持续更新,陆续把自己几年的家底都折腾出来,折腾空了为止。
如果看了这些文字,还对你的程序员生涯迷茫,不知道如何发展,如何学习,看什么书,可以给我发站内信。我不能保证每封信都能回,但我会尽我最大的努力帮助你。