您的位置:首页 > 职场人生

程序员的修炼-从优秀到卓越札记:编程之道1

2015-05-12 11:37 204 查看
前言:早上看了CSDN上一篇大三学生写的博客,让我觉得自己万分的惭愧,就如同被狠狠地扇了一个耳光。说实话,我很讨厌自己,讨厌自己身上的那些缺点。当然不能因为自己很烂,就彻底的自暴自弃,我还是需要鼓起勇气,多学习一些知识终究会有好处。

切记一根筋

看完这个小节,都有点怀疑自己到底还能不能在软件这个行业上有所成就。这里还需要把作者给出的内容重复一遍。



问:“若要做好编程,必须要积累很多年经验才行吗?”

比尔盖茨说道:“不是的,我觉得在编程的3-4年后,你是不是一名优秀的程序员就决定了。”

我真的觉得自己就是一名不会编程的人,虽然我已经从事软件开发4年了,这还要抛弃大学的学习生涯。如果按照这个观点继续下去,我觉得我恐怕要放弃编程了,然而我无论可走,我只有在软件开发这个行业中才能生存,我没有其他的技能。我必须给自己一点自信,毕竟我的工作还是受到了重视和尊重,我的确不够优秀,但我至少比很多人要强,我并不会被淘汰。

成为更加优秀的程序员的方法是抛开编程。

多培养自己对编程周边事情的热情,让自己喜欢的范围扩大,进而在编程技能之外的地方也取得进展突破,这会帮助你成为更优秀的程序员。记得《代码大全》中写到软件构建的过程中需要用到隐喻,而隐喻就需要你能够更好的懂得生活。

我最近在极客头条上发表了一篇程序员们,你们在读哪些书?说说书名+收获,很多很多同仁所读的书都不会仅限于软件编程的书,他们在读《富国论》、《时间简史》、《解忧杂货店》等等,我觉得这就是一个优秀的程序员应该去读的书。

破窗理论

这个观点,Jeff其实发表过与其类似的博客,诸如《处理坏苹果》。这其实都表达了一个内容,就是:代码中如果存在瑕疵、错误,那么就要着力修改,不要放任小的错误不管,这终究会带来灾难。

关于“破窗理论”,如果你不知道的话,请了解一下吧,这其实和做人有一样的道理,“勿以善小而不为,勿以恶小而为之”,这是刘玄德的遗诏中一句话。

人的能力会与日俱增,那么当你看到你以前写的烂代码后,如果你有精力修改,那么就修改掉它。如果你正在负责的项目中也有,那么就花时间改善掉,不然整个项目会随之烂掉。

要么热爱,要么离开

这个观点其实也可以应用到其他领域,所谓“干一行,爱一行”,如果你选择的行业,你不够热爱它,那么离开它就是唯一的抉择。迫于社会压力,处在软件行业顶峰的人,诸如刘强东、马云,他们如明星般光彩照人,而处于低端的人,像我一样,苦苦的为明天而挣扎。

很多时候,我也在怀疑我自己是否适合做这个行业,但是我思前想后总结到,我离开这个行业,真的无论可走,与其这样说,还不如说我深深的爱着这片土地。

简单之美

这个观点也很普通,乔布斯也说“致繁归于致简”,几乎所有人都不喜欢繁文缛节,我们都崇尚于简约大方。观点表达起来都很容易,但是能够强制执行简单的做法却少之又少。

keep simple:保持简单,当在向我们的项目中添加功能时,尽量先在脑中过一过这个概念,保持当前添加进去的模块足够的独立,足够的简单,不去影响到已经存在的代码。


不要妄自推测:有很多人喜欢在写一个功能的时候,瞻前顾后,认为自己应该想得足够的充分,以致于本来很简单的功能最后繁杂沉重。举个例子,假如我们现在要为NBA的一场比赛记录分数,你可能想,万一哪天某一个超级英雄爆发个人得分单场超过1000分,那么我们的记分器就要做好充分的考虑,这就属于妄自推测,很明显,单场比赛总得分一个球队超过200分就不得了了。


自己动手:我记得,我曾发表过一篇名为《mysql:论证select count(*)和select count(1)的区别》的文章,是因为我的同事说怎么怎么样,结果经过我的论证发现和其说的观点有很大的冲突。自己动手,丰衣足食。

乐于删代码

我一直很厌烦别人把已经没有用处的代码留在项目中,即使那段代码曾经做过贡献,我觉得也应该尽早的删除掉,我甚至认为,不必说出任何理由。

// 保证金和出金的冻结资金是累加的,对于结算程序来说,当日结算时需要减去上一日的结算后的占用资金
      // 重要:从银行清算结果看,银行在处理冻结资金时,冻结资金为当前账户所有的保证金+出金冻结资金
//   BankDailyPreSettlement preRecord = this.bankDailyPreSettlementMapper.getPreday(record.getUid());
//   if (preRecord != null) {
// record.setOccupyMoney(record.getOccupyMoney().subtract(preRecord.getOccupyMoney()));
//   }


看看我曾经这样干过,但是经过今天看Jeff的观点,我觉得我赶紧把这段内容给删除掉,并且连根拔起,删除掉这段内容,并且删除掉相关废弃的代码。

你是程序员这块料吗

的确对于我自身而言,在学习编程的过程中,我在以下这些内容上遇到了障碍。


赋值和序列

递归

并发



这些阻碍足够让我觉得自己压根就不是块程序员的料,直到现在,这些内容让我惶惶不可终日。

然而,我该退却吗?答案显然是不,无论怎样,我觉得只要我还在努力,我就会在编程这方面取得成就。

int a = 10;
  int b = 20;

  a = b;

  System.out.println(a);//20
  System.out.println(b);//20


这个测试题,显然我又运行了一次,才来保证自己内心确认自己的观点是正确的。

我想说,我认为自己不适合编程,但是我依然坚信我能够在这个行业上取得一些成就,因为我还在努力。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: