编程究竟难在哪?
66个回答
展开全部
一、初级编程困难
普通的像office上写个vba,此时需要的只是永远不会变的业务逻辑,并且这种代码一般都是一个人写的1000行以内。
因此你不需要软件工程的知识,时间长了甚至也许会有编程很简单的错觉。
这种编程的难是在于逻辑。
逻辑的难再上升一点便是算法,数据结构,这时候你会学到时空复杂度,学会用三种方法证明快排的时间复杂度,知道了现代计算机在面对非P类问题的无力,知道图灵机对于undecidable的问题的局限性,知道了用泵引理证明标准正则表达式永远也找不到匹配的括号。
这时候你觉得很难,难在发现计算机其实干不了很多事。
二、中级编程困难
接下来你或许回去刷各路oj,面对题目,第一步难在问题的抽象和建模上,第二步难在抽象出中正确模型后算法的选择上.也许一个非常像贪心的题结果是网络流,也许一个非常像DP的题,结果是最短路,矩阵快速幂......
抽像出模型后,根据实际问题的各种条件选出最优方案,例如这种形式的dp可以单调栈,斜率,平行四边形优化,选择在线or离线算法?稀疏图还是稠密图?
这时候你会觉得很难,难在最基础的算法。
三、高级编程困难
接下来你会细分到具体的领域,此时的难就难在领域知识。
这也是见仁见智.图形学各种立体角的积分也许对你很难,数学系转过来的小张也许就觉得公式比代码来得亲切。
当然你也可以不管的,将系统看成一个黑盒,无脑调用现成的api,你不必关注神经网络是如何backpropagation的。
tensorflow,caffe等成熟的库已经把所有东西封装的很好了,你不必关注C++ RTTI的特性是如何实现的。
现实生活中存在着大量这样的"程序员",当发生问题时,梯度消失?爆炸?
即使没有太难的专业知识只是业务逻辑,也会疑惑为啥我把循环展开速度会快那么多(gcc O2默认不进行循环展开优化)?
普通的像office上写个vba,此时需要的只是永远不会变的业务逻辑,并且这种代码一般都是一个人写的1000行以内。
因此你不需要软件工程的知识,时间长了甚至也许会有编程很简单的错觉。
这种编程的难是在于逻辑。
逻辑的难再上升一点便是算法,数据结构,这时候你会学到时空复杂度,学会用三种方法证明快排的时间复杂度,知道了现代计算机在面对非P类问题的无力,知道图灵机对于undecidable的问题的局限性,知道了用泵引理证明标准正则表达式永远也找不到匹配的括号。
这时候你觉得很难,难在发现计算机其实干不了很多事。
二、中级编程困难
接下来你或许回去刷各路oj,面对题目,第一步难在问题的抽象和建模上,第二步难在抽象出中正确模型后算法的选择上.也许一个非常像贪心的题结果是网络流,也许一个非常像DP的题,结果是最短路,矩阵快速幂......
抽像出模型后,根据实际问题的各种条件选出最优方案,例如这种形式的dp可以单调栈,斜率,平行四边形优化,选择在线or离线算法?稀疏图还是稠密图?
这时候你会觉得很难,难在最基础的算法。
三、高级编程困难
接下来你会细分到具体的领域,此时的难就难在领域知识。
这也是见仁见智.图形学各种立体角的积分也许对你很难,数学系转过来的小张也许就觉得公式比代码来得亲切。
当然你也可以不管的,将系统看成一个黑盒,无脑调用现成的api,你不必关注神经网络是如何backpropagation的。
tensorflow,caffe等成熟的库已经把所有东西封装的很好了,你不必关注C++ RTTI的特性是如何实现的。
现实生活中存在着大量这样的"程序员",当发生问题时,梯度消失?爆炸?
即使没有太难的专业知识只是业务逻辑,也会疑惑为啥我把循环展开速度会快那么多(gcc O2默认不进行循环展开优化)?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编程难的不是它那些算法,而是你的耐心。没有耐心是很难学好的,没有耐心你也专研不了。就好像我们班的一些人,一看到一大堆代码就烦了,就不想学了,这点耐心都没有,怎么学好。所以主要是有耐心,你有了耐心,就算你再笨,你也能学得会。还有就是不要学很多的编程语言,编程都是一样的,你学会了一门,以后你要是想转另一门,只要学它的语法就可以了。还有不要总想着一步登天,我们班的一些人,就连C#的基础都还没掌握,就想着如何如何做项目了,还有就是你要对它有兴趣,没兴趣是学不好的。用到的知识很多,你不可能全部都能学会的,只能看看你学的是那个方向,好像游戏编程,就要学到很多的算法,还有用到物理知识。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编程难度主要在以下几个方面:
1、编程语言的学习、理解和运用
2、程序设计算法的实现
3、程序语言框架的配置和使用
4、程序开发过程中多系统的通讯
5、程序开发与需求的满足
1、编程语言的学习、理解和运用
2、程序设计算法的实现
3、程序语言框架的配置和使用
4、程序开发过程中多系统的通讯
5、程序开发与需求的满足
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编程,有以下几方面难点:
首先,算法。
这是编程的核心。
而且,这是编程最难的部分。
好的算法,事半功倍,运行准确高效。不好的算法,事倍功半,经常出毛病。
其次,架构。
软件,或者说软件系统的架构,至关重要。
合理的架构,系统运行顺畅。不合理的架构,系统运行不流畅而且经常会出问题。
最后,人机界面。
软件的运行,最终是需要人来操控的。
好的界面,一目了然,操作简单方便。不好的界面,看着不舒服,操作起来很困难,还经常容易误操作。
以上就是编程的难点所在。
首先,算法。
这是编程的核心。
而且,这是编程最难的部分。
好的算法,事半功倍,运行准确高效。不好的算法,事倍功半,经常出毛病。
其次,架构。
软件,或者说软件系统的架构,至关重要。
合理的架构,系统运行顺畅。不合理的架构,系统运行不流畅而且经常会出问题。
最后,人机界面。
软件的运行,最终是需要人来操控的。
好的界面,一目了然,操作简单方便。不好的界面,看着不舒服,操作起来很困难,还经常容易误操作。
以上就是编程的难点所在。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编程难在程序员解决问题,程序员需要对问题进行透彻的分析,理清其涉及的所有细节,预测可能发生的所有意外与非意外的情况,列出解决方案的所有步骤,以及对解决方案进行尽量全面的测试。而这些正是我认为编程难的地方。任何一点遗漏都会成为bug,轻则导致挨骂,重则导致经济损失甚至危害安全。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询