编程到底难在哪里
今天的文章来自pyjphilippica的投稿。他曾在多个大厂工作,有着丰富的社会经验。 在这篇文章中,将由他给大家带来,他对于编程的一些理解。希望能对小伙伴们有所帮助。 虽然我不是大牛,但从初中开始接触编程时间也挺长了,也积累了一些关于编程的想法。 不同的人对编程难的理解是不同的,因为编程本身的维度是不一样的,但最根本的,难在复杂性的控制,而不是一个个独立的概念.。 一、初级编程困难普通的像office上写个vba,此时需要的只是永远不会变的业务逻辑,并且这种代码一般都是一个人写的行以内。 因此你不需要软件工程的知识,时间长了甚至也许会有编程很简单的错觉。 这种编程的难是在于逻辑。 逻辑的难再上升一点便是算法,数据结构,这时候你会学到时空复杂度,学会用三种方法证明快排的时间复杂度,知道了现代计算机在面对非P类问题的无力,知道图灵机对于undecidable的问题的局限性,知道了用泵引理证明标准正则表达式永远也找不到匹配的括号。 这时候你觉得很难,难在发现计算机其实干不了很多事。 二、中级编程困难接下来你或许回去刷各路oj,面对题目,第一步难在问题的抽象和建模上,第二步难在抽象出中正确模型后算法的选择上.也许一个非常像贪心的题结果是网络流,也许一个非常像DP的题,结果是最短路,矩阵快速幂...... 抽像出模型后,根据实际问题的各种条件选出最优方案,例如这种形式的dp可以单调栈,斜率,平行四边形优化,选择在线or离线算法?稀疏图还是稠密图? 这时候你会觉得很难,难在最基础的算法。 三、高级编程困难接下来你会细分到具体的领域,此时的难就难在领域知识。 这也是见仁见智.图形学各种立体角的积分也许对你很难,数学系转过来的小张也许就觉得公式比代码来得亲切。 当然你也可以不管的,将系统看成一个黑盒,无脑调用现成的api,你不必 |
转载请注明地址:http://www.awaluaa.com/awlacy/4967.html
- 上一篇文章: 澳大利亚到底错在哪里
- 下一篇文章: 十二生肖的痣长在哪里,富贵命