打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
分享 | 如何提高编程技巧?

来自:互联网侦察

作者:channingbreeze

这是一个很有意思的问题,首先要理解什么是技巧。

什么是技巧

我举一个数学中的例子,比如:

a=(a+b)/2+(a-b)/2

b=(a+b)/2-(a-b)/2

这就是数学技巧。

你可能会问,这什么鬼?是的,技巧如果脱离了特定问题,那么它就没有意义。

所以没有哪本课本或者哪篇文档会专门讲技巧,也没有哪个老师会专门教技巧。技巧只有自己在实践中领悟,才能学会。

比如你碰到一道数学三角函数证明题,

sin(a)+sin(b)=2sin((a+b)/2)cos((a-b)/2)

完全不会吧?

看下答案:

变换,

sin(a)=sin((a+b)/2+(a-b)/2)

然后展开,

sin(a)=sin((a+b)/2)cos((a-b)/2)+cos((a+b)/2)sin((a-b)/2)

同样,sin(b)也是先变换,后展开,

sin(b)=sin((a+b)/2-(a-b)/2)=sin((a+b)/2)cos((a-b)/2)-cos((a+b/2)sin((a-b)/2)

最后,两边相加就行了。

那么这道题一开始到底是哪里不会呢?是三角函数不会展开?还是两个等式两边相加想不到?

都不是,恰恰是第一步的技巧变换想不到,能想到这个变换的话,后面的过程就是顺理成章的事情。

这就是技巧的应用。

编程技巧

在编程领域也有类似的技巧。

比如我们在写二分查找的时候,有一步是找到左边界和右边界的中间,很多人会这样写

mid=(low+high)/2

但是如果数据量大,low+high可能溢出,导致程序出错,如果写成

mid=(high-low)/2+low

就不会有这个问题。

这其实就是一个编程技巧,我刚毕业那会儿,曾经在一次面试中手写二分查找用到了这个技巧,被面试官指出并加以赞许。

所以同样是二分查找,这个细节的技巧处理,就让你在茫茫人海中脱颖而出。

类似的技巧还有很多,比如哨兵,比如设计模式等等。

其实在学校学设计模式也是很有感触,很多模式当时看懂了,但是因为没有实践或者没有场景,很快就会忘光。

设计模式也是一种技巧,技巧这种东西,你如果不理解它怎么运用,光记是记不住的,即使记住了也没啥用,很快就会忘。

怎么提高编程技巧

提高编程技巧没有捷径,就是平时多练习,多实践,但是要注意,实践的时候,要留意那些技巧,特意去体会,然后拿来为自己所用,这才能学会一个技巧。

很多人刷leetcode,刷完之后,编程水平并没有很大提高,为什么呢?

比如同样是一个二维数组的四方向搜索,你可能写了四个if去判断,没问题,能过。但是其他人可能是定义了一个方向数组,然后把搜索逻辑统一了,一个if都不用,代码即简洁又不易出错。

这其实就是技巧,你如果不去注意,可能一辈子都学不到。

你刷了300道题,都过了,但是你用的可能并不是最好的算法,写的也不是最简洁的代码,所以时间花出去了,收益却不高。

学编程还是要重视一些常用的技巧,很多时候,这就是你不加班的秘密武器。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
如何通过阅读其他人的代码提高自己的编程技巧
谈谈面向对象编程的几个问题
PLC编程的基本规则和技巧,一般老师傅都不愿意教的PLC编程技能!
PLC编程技巧以及在电机控制中的具体应用,简单例子清楚告诉你!
UG编程——成型螺纹刀编程技巧,学会你的不会
C/C++必看书籍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服