编程究竟难在哪?

如题所述

1. 难在思路的构建

你学了很多语法,很多 API,但是当给你一个实际问题,让你通过编程实现,不是简单地罗列 API 即可完成,而是需要你对问题进行分析,理清解决问题的逻辑,然后再通过各种算法、数据结构和 API 等进行编程实现。

2. 做出来容易,做好难

当你解决了思路构建的难点,解决了一个问题,但是你是否使用的最好的方法,这就是所谓的做出来容易,做好难。

写的程序能够解决问题且没有 bug 是基本要求。这里的做好不是指功能正确,而是写的程序容易理解,能够很容易让其他接手的程序员(水平不差)看懂为什么这么写。

正确是现在怎么写不会挖坑害将来的人,现在怎么写能让别人1年后看你代码时候不可能理解错你现在的意图,现在怎么写能在别人将来犯错的时候提示他你错了。

编程是给未来的未知人讲故事,你无法知道将来这个人是谁,他都懂什么,他经历过什么,这个系统将来已经是什么样子了。我们需要在这种无知,缺乏信息的情况下做决定,从千万种把这件事做出来的方法里,选出你觉得最能把这个故事给讲好的那种方式,把故事写下来。

编程是一种沟通,用程序跨越时空之沟通则是一门属于程序员的特有的艺术 —— 阿莱克西斯
3. 规范性好,有良好的可扩展性

并且程序的可扩展性,规范性高,后期维护难度小。整体功能实现的过程中,各种情况考虑规范。



其实学习编程和学习其他内容一样,没有什么太大差别。心态放好,用对方法,你就能够学好。重要的是学知识的人是什么样子,而不是学的是什么。

在这给你一些学习编程的建议,希望对你有用。

1. 让编程成为一个习惯
想要培养一项技能的最好的办法,就是将他融入到我们的生活并成为我们的爱好。其实说白了,就是让这个爱好成为一个习惯,一天不去做这件事情,都会觉得少了什么。在不知不觉中,这个习惯会像滚雪球一样积累起来。

对我来说,养成这种习惯首先就是要对“拖延症”说不。比如,你想锻炼下自己的写作能力时,但是没有好看的本子,没有好的灵感,没有安静的环境....总之就是找各种理由一拖再拖,最后就不了了之了。

为自己设定一下,每周拿出几天,每天拿出几个小时,编程学习就这样慢慢步入正轨。

2. 将每天的学习过程拆分成小块
对待编程学习,我们没必要像健身狂人那样一口气做到筋疲力尽。与其直接编程2小时,我们完全可以先做40分钟、然后休息5分钟,整个过程重复4次。很明显。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-30
编程究竟难在哪:
首先,编程可以分为三个阶段,第一个阶段是对于编程语言自身语法的理解,这个部分虽然也具有一定的难度,但是大部分人,即使没有任何编程基础,经过一个系统的学习过程,都能够掌握。

第二个阶段是通过编程语言来完成各种逻辑操作,这个部分正是编程的难点所在,此时需要掌握各种算法和数据结构。实际上,编程问题说到底就是数学问题,但是并不是数学基础好的人,就一定能够顺利掌握编程,这中间还需要一个转换的过程,关键就在于算法设计能力的培养,这个过程比较考验程序员的逻辑思维能力和抽象能力。第三个阶段是通过编程来完成各种资源的整合和操作,这个部分也是编程的一个难点,此时对于程序员的知识结构有较多的要求,涉及到操作系统、计算机网络、数据库等计算机基础知识。
第2个回答  2020-12-30
编程的困难之处在于:

(1)思维模式的切换。你需要有技术思维。能够成功建模。这可能是大多数人,没有信心,或者不适合从事编程的原因之一。说到底,程序员就是在两种思维模型之间转换的人。一种是人类看到的感受到的外行人视角,一种是技术思维,即如何通过编程,来完成前者。

(2)语言上的难度,例如 C++ 语言本身。它包含了读写两方面的基本要求,达到你可以面对越来越复杂,越来越难于理解的代码,而不会感到困难和退缩的程度。很多人看到复杂的代码时,自信心就已经被击溃了。C++ 和 汇编,大概是目前难度最大的两门语言。汇编难度主要是代码可读性是最低的,代码量和跳转数量是最大的。

(3)超强的对耐心的挑战,编程中遇到的困难的挫败感极强,大部分人会对此感到崩溃。编程需要付出和投入极大精力和耐心,对人的能力是很大挑战,例如,无法完成任务,无法解决某个问题,无法找到问题所在。编程领域,有很多水平体现在稳定可靠性上,当你写出一个东西,实验是成功,然而在部署后实际运行时,总是出现隔三差五出现很难解释的问题的时候,说明你的水平有限。你的水平,和你的成果的可维护性,稳定性,可靠性是成正比的,而很多人可能会比较忽视这种“不够直观和直接,难以量化”的能力。它们需要程序员的责任心和经验的积累,比如说,多线程编程方面的经验等。
第3个回答  2020-12-30
难在耐心。

编程甚至对智商都没什么太大要求,对耐心与认真要求才是最大的。

实现一个简单的功能,就需要小心翼翼的操作每一个变量,设计每一个函数,设计每一个模块,耐心的写每一个测试,最后细心的debug认真检查程序运行的过程。而在学习编程的过程,也要耐心地读文档,读不懂倒回去再读或去寻求他人帮助。别人的代码一行一行的看,看不懂自己想办法跑一跑观察一下想办法搞懂。

现代人们习惯于快节奏的生活,做很多事缺耐心和毅力,心也不静。有很多人甚至连吃饭都没耐心,而编程这项活动却是世界上最需要耐心的事之一。所以很多人说难,是因为大多人没有耐心,没有极客精神。

极客精神就是耐心,对困难问题的耐心。面对难题非但不放弃,反而很兴奋。这些都是技术大牛的特质,也是我们常说的天才。

现代编程有了高级语言,其实已经简化了太多。我有时候没耐心了,就去想想几十年前,前人的打孔编程,插线编程。他们需要的耐心比我们现代要多几十倍,但他们把火箭送上了天。再想想自己有python,Go什么的,却没有什么大成就,就意识到了自己还要培养耐心。
第4个回答  2023-04-26
没有计算机基础也是可以学编程的,只是学的时候会有点难度的而言,当然,不管你学习什么知识都会有一定的难度,主要看你有没有相关的基础,个人的学习能力如何。不过,零基础的学员也不要担心,现在很多培训班都是针对0基础的学员设计的课程,都针对不同应用行业,不同语言做定向培训。所以,难不难也要因人而异。就拿国内从业比较广泛的Java开发工程师来讲,高中毕业生都可以做。既然高中生都能从事于Java开发,说明软件开发实际上并没有我们想的那么难,毕竟目前所学的软件技术并不是做科研。想要让软件开发变得简单,我们需选择一门容易上手的编程语言。从国内软件行业来看,目前Java的开发者数量还是相当庞大的,而且可从事的领域也比较广。当然,我并不是在这里劝你学习java,而是让自己选择适合的编程语言,并知道自己使用的编程语言能做什么,用在哪些地方。对于零基础想学java的人,千万不要害怕,不要觉得没基础就学得很吃力,学不会等等。刚开始零基础入门的学习进度是很慢的,不用着急,慢工才能出细活,说白了Java入门阶段也就是个熟练的过程花费的学习时间比较长。不可否认,大家在开始接受新事物的时候都会陷入困境的。学习是循序渐进的,零基础入门Java到底难不难,只有自己接触到课程才知道。当然,没接触之前学起来可能会觉得有点难,但是当你入门后你就会发现越来越有趣了,不光是学习java语言,其他语言也一样。记住,软件开发需要有一定的基础,但是并没有特别高的门槛,只要具备有一定的英文和数学基础(初高中水平就好了),就可以学软件开发,尤其是编程语言的使用,因此对于软件开发而言,只要能够长期坚持下去,并且多多从事实际项目的开发,就可以积累经验,达到一个比较高的水平,所以软件开发并不难学,只要坚持,就可以有所成就。至于零基础学java所用的时间,我以培训时间为标准,大学生一般的学习时间是5-6个月,高中生确在两年左右。