编程到底难在哪里?

编程之所以被认为是一项困难的工作,主要有以下几个方面的原因:

1. 抽象思维难度:编程需要进行抽象地、逻辑化地思考,将现实问题转换为程序语言。初学者需要适应这种思维方式,将复杂的问题进行分析、拆解和组合。这种抽象思维往往需要较高的逻辑思考和创造性。

2. 语法和语义不直观:编程语言具有严谨、规范的语法和语义,代码的正确性需要精确地符合语法规则。这些规则对于初学者来说并不直观,需要不断进行练习和实践。一些细节问题容易出现错误,需要进行谨慎的处理。

3. 常见问题文档不直观:在编程过程中,可能会遇到各种各样的错误和问题,这些问题的文档表述和解决方法并不总是直观和容易理解,需要对编程语言的知识和问题具有深入的了解才能准确地解决问题。

4. 实践环境不稳定:编程过程中需要使用各种开发工具、编辑器、编译器和调试器等,这些工具难免会出现bug、闪退、卡顿等问题,对初学者来说增加了困难。此外,不同的工具也有不同的特点和操作方式需要适应。

总的来说,编程需要科学的思维方式和技术水平,初学者需要进行有规律的练习和不断自我完善。尤其是要注重基础知识的积累和理解,才能够逐步提高编程水平。




谢谢邀请!

作为一名IT行业的从业者,同时也是一名教育工作者,我来回答一下这个问题。

首先,编程可以分为三个阶段,第一个阶段是对于编程语言自身语法的理解,这个部分虽然也具有一定的难度,但是大部分人,即使没有任何编程基础,经过一个系统的学习过程,都能够掌握。

第二个阶段是通过编程语言来完成各种逻辑操作,这个部分正是编程的难点所在,此时需要掌握各种算法和数据结构。实际上,编程问题说到底就是数学问题,但是并不是数学基础好的人,就一定能够顺利掌握编程,这中间还需要一个转换的过程,关键就在于算法设计能力的培养,这个过程比较考验程序员的逻辑思维能力和抽象能力。

第三个阶段是通过编程来完成各种资源的整合和操作,这个部分也是编程的一个难点,此时对于程序员的知识结构有较多的要求,涉及到操作系统、计算机网络、数据库等计算机基础知识。随着当前云计算和大数据的发展,目前云计算平台和大数据平台对于程序编写的影响越来越大,因为程序员需要借助于这些平台来完成资源整合。相对于算法设计来说,虽然这部分的难度也比较大,但是经过一个系统的学习过程,程序员的资源整合能力也会越来越强,这部分难点是完全可以通过努力来解决的。

对于很多初学编程的人来说,学习最大的难点在于如何建立自己的编程思想,而要想建立自己的编程思想,可以从编程过程和编程方法两个方面入手。虽然不同的编程语言有不同的编程过程,但是说到底就是一个抽象问题,而要想提高自身的抽象能力,多做实验是非常有效的方法。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!




作为基层程序猿多年,总结一下编程的难点:

1、初学者。编程是用计算机语言和计算机交流,你输入什么,你期望计算机理解之后,输出你需要的结果。所以这个过程可以概括为“输入–计算–输出”。学习一门计算机语言,说难不难,说易也不太容易,为什么呢?如果你是编程的初学者,你要上手一门语言,是非常困难的(天才除外);但如果你是精通一两门语言,再去学其他语言,可以说一个星期就能熟悉。所以,对大部分初学者来说,编程语言是难点。

2、编程思想。这个是我第一家公司的部门老大常给我灌输的重中之重:一定要有编程思想。跳过初学者这一关,假设你可以对任何语言顺手拈来、即插即用,那么,你水平就一定很高了吗?其实不然,这只能说明你学习能力上一层楼了,但并不说明你就多么厉害。比如,你熟悉设计模式吗?设计系统的时候有没考虑扩展性?是否考虑到性能问题……如果整天只做crud,不去关注以上问题的话,瓶颈是很难突破的。那么编程思想何来?就要平时多阅读这类的书籍和文章,比如设计模式,比如高并发系统设计相关知识等。除此以外,还要多思考,为什么这样设计,所谓学而不思则罔,思而不学则殆!

3、沟通能力。好了,即使你掌握多种语言,又可以把系统设计要得很溜了,但是如果你是个不会说话的哑巴,你就无法表达出自己的思想,无法向老板展现你的才能,那么你的职业生涯会受到很多限制。我自认为本人的沟通能力是弱项,自己也在不断努力改善这点。现在每次参加讨论的时候都会积极发言,表达自己的观点,除此之外还报了一些口才课,来提升自己的表达能力。

好了,以上总结了三点本人以为编程的难点,如有不当之处,欢迎批评斧正!




编程的难主要是下面几方面:

1、软件开发是脑力劳动,而一个人的脑力是固定大小的,比如超过100万行代码之后,基本上无法再增加理解能力了。

2、软件开发是从一个无到有的过程。因此无法判断最后做出来的结果是否就是我们需要的。导致反复地修改,这个修改的过程,可能是一个无底洞。

3、现代的软件都是团队合作开发,导致配合问题难以解决。因为每个人都有自己的想法和经历,导致代码不能相互理解。

4、最后软件开发都是有时限性,时间压力之下,无法做到完美无缺,因此技术债越来越多。




编程难,还是不难?每个人都会有自己的看法。但有一些观念或者经验,是值得借鉴的,如带着课题去学习;听网课;从宏观到微观等等方法,都值得借鉴。



带着课题去学习,效率最高。

一个人什么时候学习效率最高?当然是有一个很急迫、很重大的任务交给你完成时,效率最高,能最大限度激发你的能动性。

1992年之前,编程语言只会BASIC,FORTRAN77,宏汇编,dbase等。但在92年5月份,参与了一个85攻关项目,指定要用C语言做开发。



接到任务后,找到一个有TC开发经验的工程师,先把TC系统软件在我们的笔记本上安装好。然后,他给我们演示了TC的编绎、编辑、调试、开发配置等等操作,我们也一一照做了。紧接着,就是一个简单的带图形的编辑软件的大致做法,如,几大类库函数介绍,如io、图形、文件操作、字符串操作、数学库、内存管理等;库函数的调用方法;对VGA、分辨率模式的设置;定时中断、串口中断等用法。最后,给我们推荐了一套共三本的C语言编程语法、库函数用法的书。当天,我们自已做了一个显示”hello world!”的著名程序,做为c语言开发的开端。两周后,我做了一个能够编辑64KB字符的编辑程序,可以存储、打开文件,可以用malloc,free动态管理内存,可以用鼠标选择按钮,可以进行两个电脑的串口通讯.....总之,学的非常快。



相反,我的一些同学,毕业后,买C语言的书看,四~五年后,依然一知半解。为什么?没有相关c语言的开发项目,根本记不住。

从宏观到微观,先框架,后细节,采用逆向学习的方法。

VC++在上世纪九十年代后期逐渐被国内软件开发者所接受,但当时的资料很少,能借鉴的,就是微软MS的最有名的MSDN。这套软件当时花了两万多RMB,650MB的光盘,共三张。还买了windows编程,VC++编程,美国人编的中文译本。

第一步,主要学windows的工作机制,如消息Message传递机制、线程及进程、内存管理机制、IO访问方法等等,从宏观上,认识了windows,认识了它与MS DOS的异同点。



第二步,VC++的框架构一造。单页面、多页面、属性页、资源文件、MFC类的层次结构、类的生成及调用等

第三步,再次分解细化,如:资源文件中,文本、编辑、按钮、单选多选、组合框、进度条等的应用;字符串CString类、文件类、CDC、数学函数等等的应用。


按照这三步,大结构、大框架,逐步细化到一般的编程、编绎找错、执行程序。

很多人学习,总是按步就班,在语法细节上花大力气学习,却不想先搞安装VC,做一个学习平台,去实际编程,测试、学习语法,去逆问学习。

曾经有个学生,整天纠结i++与++i到底区别在那,老是在说

i++;

if(i==1)

++i;

if(i==1)

到底有什么区别。我给他说没区别,他愣是不相信。

最后,我告诉他,用在

for(i=0;i<MAX;i++)及for(i=0;i<MAX;++i)时,才有区别,他才恍然大悟。

还有&,*在函数、变量中的用法,有的人也是永远糊涂。

写法、用法是固定的,编程实践一次,永远记住了;看书听讲,过几天就忘了。



总结:编程,看似简单,实则是一个系统的科学,涉及到计算机、操作系统、各种系统开发环境等等基础科目,这些在学校一定要掌握好。有了基础,具体到JAVA,C,C++,PYTHON的编程,应以项目为主导,按照工作中的具体项目,进行深入学习,这样不仅效率高,而且记忆深刻。

展开阅读全文

页面更新:2024-05-25

标签:难点   直观   程序员   抽象   初学者   语法   过程   能力   语言   思想   操作   文件   方法   财经   系统   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top