关于编程

"创造发展剑招的过程,有守、破、离三阶段。
最初学剑时固须顺从老师所教,把它熟练体会,变成自己的东西,
以后突破老师的教导原则,招式心法,
而如有新的心得,则离开师傅,创成新招。 ”
----宫本武藏 《五轮书》


最早在《敏捷软件开发》里,(不是Martin大叔那本《敏捷:原则模式实践》),Alistair Cockburn引用了源自日本守-破-离的概念,来描述学习编程技艺以及敏捷实践所必须经过的三个步骤,而该项理念在日本是用來指導研究茶道與武道等學問時的順序,愚以为他也是可以指导任何一本技艺的学习的。

具体到学习软件开发中
守:
就是新手入门最简单就是照着书上敲代码看结果,熟悉整个编程环境,各种概念

我推荐初学者籍由任何一本类似《VC++编程百例》开始,而不是去阅读《C++primer》这样的神书来入门,因为我相信学习应该是乐趣驱动的,敲打键盘并且立刻看到有东西出现是有创造乐趣的事情,因为大多数推荐《C++primer》或者《代码大全》给初学者去看的人,大概都太兴奋于该书是如何之好而忘记了当初他是怎么互拼乱凑,狂喜的搞出他的第一个可运行程序的。


破:
破就是读源码,改代码,尝试修改,结合自己的回馈理解第一个阶段所学。

把那些上面学到的例子上面的代码改一下,看一下结果,或者两个程序结合在一起看一下是什么样….,体会那种神奇感觉,那些说写程序很苦逼的人多半都没有写过程序。


离:
这个时候可以尝试开始全新构建自己的代码了

推荐的实践是在自己的工作生活当中发现痛点,用自己所有学习的例子和网上找来的例子拼凑帮助自己实现解决痛点的程序,不管实现得漂亮不漂亮:),漂亮不漂亮都是后面才具有的能力看到的。
个人是当年在运营商机房工作,曾有每天很多固定的且机械的设备维护命令要敲,最后我代码实现完毕就可以把原来每天2个小时的工作变成10分钟,这个快感让我彻底爱上的编写程序

循环往复:
当然,必然出现的是,在开发程序的过程中,会发现自已经运行起来的代码中存在诸多不爽之处,比如要到处机械复制代码,或者老是改动的时候只改了一个地方其他地方就忘了其他地方,或者Bug出现了,发现牵扯代码太多,调试起来很痛苦,改了这个bug,另外一个新的bug又冒出来了,这个就是新的痛点,需要学习新的技巧,这个时候开始阅读别人的源代码,看看别人是怎么解决这些个问题的,阅读好的源代码,看解构类,语言理念类的书籍,比如《C++Primer》,《Effective C++》《设计模式》,《代码大全》《重构》,并把这些规则技巧应用到自己的代码里面去解决哪些问题同,时这又是一轮守破离的开始......抱歉,没有回答关于“迅速”的问题,我个人猜想,速度是一个结果不是目标,兴趣即天分,有兴趣自然会快。

总结:
解决问题获得成就,是激励自己学习的不二法门,,程序是一件处理程序员,客户,机器之间关系的技艺,不可避免的你会发现有新的痛点,你要学习新的技巧去解决,

  • 发现“客户”需求变化之痛并为之振奋的人,发展成了需求分析师,产品经理,或者干脆成为了创业者
  • 发现“机器”难以驾驭但任然有兴趣为之努力的人,成为了资深程序员或者技术架构师
  • 发现“程序员”合作或者部门合作中存在某种神秘技巧的人,学习技巧,成为了项目经理或者敏捷砖家
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值