是不是常听人说“编程很难,学会需很长时间”?真相究竟如何呢?
[你是不是也常常听人说“编程很难,需要很长时间才能学会”?但真相究竟如何呢?今天,就让我这个资深的iOS开发工程师,结合自身的经历,来分享一下我的看法吧!]
记得我刚开始学习编程时,心中满是疑惑和迷茫。那时的我,对编程一无所知,只是听说它很神奇,能创造出各种各样的软件应用。于是,我带着一颗好奇的心,踏入了编程的大门。
我的编程之路是从C语言开始的。那时,我每天沉浸在代码的海洋中,不断地敲打着键盘,试图理解那些看似复杂的语法和逻辑。起初,我遇到了很多困难,每次编写代码都会出现各种错误,让我感到非常沮丧。但是,我并没有放弃,而是选择坚持下去。我不断地查阅书籍、上网搜索资料,向身边的朋友请教,慢慢地,我开始掌握了C语言的基本语法和逻辑。
掌握了C语言之后,我又开始学习C++。相对于C语言,C++更加复杂,但也更加强大。我再次投入到学习中,通过不断地实践和总结,逐渐掌握了C++的核心概念和编程技巧。在这个过程中,我也开始参与一些简单的项目实践,通过实践来检验自己的学习成果。
随后,我进入了iOS开发领域,开始学习Objective-C。Objective-C是iOS开发的主要编程语言,它的学习难度相对较大,但我也并没有退缩。我利用之前学习C和C++的经验,逐渐掌握了Objective-C的语法和特性。同时,我也开始参与一些实际的iOS项目开发,通过实践来提升自己的能力。
从C语言到C++再到Objective-C,我的编程学习之路总共花了5个月的时间。虽然时间不长,但在这5个月里,我付出了大量的时间和精力,也收获了很多的成长和进步。通过不断地学习和实践,我逐渐掌握了编程的核心技能,也开始能够独立完成一些简单的项目。
回顾我的编程之路,我发现学习编程的时间并不是最重要的,更重要的是你的学习态度和方法。只要你愿意付出时间和努力,找到适合自己的学习方法和节奏,就一定能够掌握编程技能。
当然,每个人的学习经历都是不同的。有些人可能天赋异禀,很快就能掌握编程技能;而有些人可能需要花费更多的时间和精力。但无论如何,我们都应该保持积极的心态和耐心,持之以恒地学习下去。
最后,我想说:编程并不是一件遥不可及的事情。它就像一座山丘,虽然陡峭,但只要我们愿意攀登,就一定能够到达山顶。不要被别人的论调所影响,相信自己,勇敢地迈出学习的第一步吧!
那么,你现在还觉得编程难学吗?或者你有哪些学习编程的经验和心得想要分享呢?快来评论区留言吧!让我们一起交流、学习、进步!
海南码上去学:为什么说C++是全世界最难的语言?
大家可能听说过这样一句话:C++是全世界最难的编程语言。
知乎上流传着一段C++经典语录:
也有人说C++学着学着就放弃了,这是真的吗?为什么会这么说呢?它难在哪里?有什么特点呢?今天海南码上去学带着大家一起来探讨这个问题。
首先,“C++是全世界最难的编程语言”这句话对还是不对呢?
对此我的回答是:
在高级语言里C++确实有一定的难度,但并不能说明它就是世界上最难的编程语言,如果你用汇编去写代码说不定会更难,更何况C++的难度也并不是不能攻克的。
为了了解它的难度,我们下面将C++与C语言和Java语言进行一个对比。
C语言:语法相对简单纯粹,其中的基本数据类型、数组、运算符、函数、结构体、指针等概念在很多语言里都有基本语法。其中难度较大的就是指针了,因为它的变化比较多,相对较麻烦,其难点就在于它可以直接操纵内存,导致很容易出现bug,但它的语法支点要纯粹一些。
Java语言:纯粹的面向对象的语言(这是一种编程思想,后面我们会讲),运行在虚拟机上,不用考虑内存。
C++语言:语法细节繁多,需要掌握STL(标准模板库),需要自己管理内存,编程范式比较多。
01、桌面开发语法细节繁多
C++的基础语法不仅将C语言中的语法知识点全部集成过来,还有:
(1)C++不仅有指针,还有引用;(2)C++不仅有struct,还有class,并对struct功能做提升;(3)四种强转;(4)函数重载;(5)默认参数;(6)内联函数;(7)异常处理;(8)命名空间等…..
C++比C语言多了很多很多比较细小的语法知识点,所以会造成大家“C++学起来比较麻烦”的感觉,但这只是一些语法特性,掌握了一定的学习方法之后就可以熟练运用C++。
从另一个角度而言,语法细节越多,提供的功能越多,那么可以解决的问题也就越多,这也证明了C++的灵活性与实用性。
02、桌面开发标准模板库STL
C++里面有一个库,简称STL,叫做标准模板库。这个标准模板库里面有六大组件:容器、迭代器、算法、适配器、函数对象、空间配置器。
我们不仅要学会这六大组件的基本使用,还要去读源码。因为基本使用只代表会用,一旦出现了问题、出现了bug你是无法解决的,但是如果你读懂了源码,看懂别人是怎么实现的,那基本就能解决这些问题。
源码也跟我们上文提到的Linux内核驱动开发一样属于要修炼的内功。一些接触过很多语言比如C语言、Python、Java的同学往往只停留于表面,想要真正运用到这门语言的特性就必须要去读源码。
我们可以通过读源码看到高手是怎样写代码的,同时从别人的代码中得到一些启示并运用到自己的代码中去,最终提升自己的代码功底。
03、编程范式比较多
常规的四大编程范式有面向过程编程、面向对象编程、泛型编程、函数式编程,但除此之外,C++实际上还有更多编程范式。
其中面向对象编程,我们前面说过C++是一种面向对象的语言,而面向对象的语言会有对应的四大基本特征:抽象、封装、继承、多态。其中的几个难点有:
(1)拷贝构造函数、赋值运算符函数的原理与实现比较麻烦,细节非常多。
(2)多继承、菱形继承、虚拟继承比较麻烦。
(3)多态的原理、使用、内存布局形式。
04、需要自己管理内存
如果大家之前完全没有接触过C++或编程语言的话,那么可能对于内存的概念不太理解,简单来说就是你去写一段代码,这个代码写完之后的这些数据是要放到我们的内存里面去的,就跟你出远门要搭乘相对的交通工具一样,这个内存对写代码的人而言就是一种非常重要的“交通工具”。
C++要求对内存进行人工的管理,虽然带来了不少麻烦和困难,但人工管理也有人工管理的好处。如果全部都是由机器做的,程序员不能掌控,就无法将自己的能力体现出来也不等你进行更好的管理,不仅丧失了自由度还丧失了可能性。
除了以上我们提到的有关于C++的难点之外,它从2011年以后开始每三年会更新一次标准:C++11、14、17、20、23(后面的数字代表11年、14年、17年),每次的标准更新都会带来很多的语法特性。
但实际上我们单纯的去写一部分C++代码的时候可能用不到这么多特性,当你真正要使用这些特性的时候再去学习也是可以的。
不过正是因为C++具有一定程度的难度,一旦学好之后我们的内功能进一步修炼得比较深厚,我们的自由度会更高,写出来的东西也会更优秀,那么在这个社会上、在这个行业中你就能够屹立不倒,这也是我们推荐有能力的同学去学习C++的原因之一。
以上就是本次分享的全部内容,想学习更多编程技巧,欢迎持续关注海南码上去学!
唐尚珺上课一周有感:感叹线代难C语言更难 看来换专业悬了
唐尚珺进入华南师范大学一个月了,他也开始正式上课,前几天他表示线性代数很难,今天又说C语言对他来说是一场大挑战。再联想到华南师范对换专业的要求,唐尚珺的师范梦或许已经提前破灭。
唐尚珺今天中午发视频吐槽了一下学习C语言的难度,他说了三句话。
1:我这头发恐怕不保了,之前很多35岁的网友羡慕他没有脱发 ,现在学这门课让他开始焦虑。
2:这确实是费脑筋的课程,可以看出唐尚珺面对C语言没有头绪。
3:他称真正的考验来了,C语言这门课可能对唐尚珺来说难度最大,毕竟以前完全没有接触。
唐尚珺从去年开始一直强调自己想学师范类专业,但是2023年滑档,2024年又被非师范类专业信息工程录取,录取后他表态要换专业。换专业有几个条件。
1:大一结束后,才能申请换专业。
2:平均学分绩点3.5分以上 ,也就是说平均每科都要在85分以上。这个专业大一有高数 线性代数 物理 电路 各种实验 模拟电路机械制图 C语言等课程,对于35岁的他来说考85分以上真的很难。
3:全部课程都要及格,不能重修,也就是说大一期间所有课程都要过关,目前他已经提到线性代数和C语言很难。
华南师范大学是师范类专业名额有限 ,唐尚珺几乎不可成功,现在能不挂科顺利毕业就是成功。
唐尚珺已经35岁了,记忆力与思维能力肯定不如其他学生,而他的天赋也比不上一次考上华南师范的学生。
视频中唐尚珺为了能学好C语言,干了三件事令人钦佩
1:买电脑,他直播时表示为了更好的学习C语言,所以他买了一台笔记本。有了笔记本他可以更好的去学习。
2:除了课堂上,唐尚珺在宿舍里利用课余时间努力的学习C语言,一边学一边做笔记。
3:拍视频告诉网友自己的难处,评论区有不少网友给他提出建议,估计会对他学习有帮助。今天晚上他会再次开直播,估计会有高手传递经验。
唐尚珺用行动表明他会尽量最大努力去学习,至于结果可能不那么重要。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。