C语言快学完了,但oj上的题大部分做不出来,都是在CSDN找的,是不是很不正常?有没有办法改?

Ocean_Song


C语言博大精深,说实话,不是几个月就能学好的。如果你是学生,c语言课程就一学期,每周一节课,更本都没有多少时间。要把C语言学好,要持续不断的学习,才能真正掌握这门语言。

1、在网上多下载一些视频教程,现在视频教程非常多,你就挑选两三套视频教程就可以了,要反复的看,同时,自己要和视频教程同步练习,不能只看视频,而不练习,我估计你只看视频教程,而不动手练习,看着看着就打瞌睡了。所以,一定要边看视频教程,边在电脑上动手敲代码。

2、学任何东西,要活学活用,你可以在网上找一些练习题,一些简单的算法题,自己想办法把代码写出来,运算。然后对着参考答案,看看有啥区别,要不断的吸收人家的代码风格,当然,是好的代码风格。

3、既然你学了C语言,那最好把这种能力作用到实际产品中。你可以买一个单片机开发板,可以在里面编写程序,单片机运行的程序也是C语言。你可以写数码管、触摸屏、电机等各种驱动程序,还有PID算法,这样绝对是活学活用。

总之,要想把C语言学活,那你的坚持不断的学习;同时,你需要勤于练习,要做的多动手,多思考,和实际电子产品结合写代码。我相信,你很快就能熟练掌握C语言。





电子哥的日常


至今还是有很多人觉得C语言依然是编程行业最基础的东西,毕竟现在很多上了年龄的人在当时大学阶段初级的入门编程语言就是用的C语言,在很多人心中都有个编程梦,有些甚至年过半百了还琢磨自己这辈子没有玩编程而遗憾,也有很多上了年纪的人拿起C语言的书籍一步步跟着网络上的教材进行学习,随着编程语言在国内的普及,编程语言的生态已经发生了很大的变化,特别是高级语言的普及化,倒是显得很多底层语言在编程领域的影响力在下降,但是其重要性还是在加强,就拿C语言来讲是很多编程语言的基础而存在,主流很多编程语言的底层实现就是利用的C语言或者汇编来完成,C语言在编程领域的角色在发生变化,在早期一个很简单的功能模块可能都需要C语言实现很长时间才能稳定,但在今天可能就是另外的一种模式存在了。

尽管很多人对于人工智能不屑一顾,但是从生产力的角度出发,自动化是一种大趋势未来大量的重复性的劳动必然被机器所取代,而打造这些机器的底层基础是离不开编程语言而存在,未来编程发展趋势演变成一种全民编程的存在,因为未来社会与智能化的机器已经紧紧捆绑在一起了,想要更方便的操控机器掌握一定的编程基础的人可能就会产生新的行业,如果有可能掌握一门编程对于适应未来的社会是存在好处的。

回到编程语言的学习过程,编程语言学习最佳的方式掌握一定理论基础上有项目实战,如果两种条件都是具备的情况下可能几个月就能找到编程的感觉,而大部分自学编程的人更多是在网络上找到自己觉得重要的视频学习起来,并且通过CSDN等途径进行知识性的拓展,在某种阶段也是小有收获的存在,但在大部分情况下还是处于迷茫的状态,这种属于典型的没有方向感的方式,要摆脱这种模式建议静下心来默默的梳理自己的思路,先从掌握基础的理论开始,这个阶段如果是自学阶段就要耐得住寂寞,虽然编程是讲究实践的技能但如果是没有理论的实践会错失很多知识体系构建的机会。最好的学习编程的方式就是在掌握一定理论的基础上再去实践能够取得意想不到的效果。

对于掌握编程的理论这个阶段对于大部分学习者来讲可能都能克服,最关键的实践对于绝大部分的自学者来讲就是一种极大的挑战,之所以存在挑战找不到匹配自己能力的实践机会,即使专门的培训机构也很难找到匹配的实践项目,这在编程属于混沌阶段一种思维在艰难认知的过程中,在这个过程中会夹杂着理论实践的层次甚至还有放弃的念头,这个阶段对于学习编程的人来讲时间长短不一样,每个真正的程序员都是从这个阶段走过来的,要顺利的度过这个阶段就要坚持做自己认为准确的事情,哪怕是不适合当时的阶段,转化成精神层面就是坚持让自己通过实践找到学些编程的感觉,如果可能的话还能够培养出兴趣出来。

就当前环境下学习编程的人,大部分人还是选择网络或者线下的培训,其实培训更多是在给人指明一种学习方向,或者再通俗点就是找一群一起学习的小伙伴大家互相监督,通过集体的力量来压抑自己散漫的天性,从而达到学习编程的目的,最终能够学好编程的最致命的关键点还是在于内心付出多少,是否从内心想要做好这件事情。


大学生编程指南


嗨,你好。很高兴看到并回答你的问题。如果认同回答,记得点赞和转发哦~老邢诚邀关注,一起探索技术之美,共同学习成长!

首先回答一下第1个问题:这种现象是正常的。

下面我说明一下并提出一些我认为可以提升的方法


01 从基础到OJ需要思维训练

楼主刚学完C语言,应该是对C语言的语法、C语言运行原理等基础知识有了一定了解,应该具有了一定程序逻辑思维,例如掌握了条件判断、循环、数组等知识。对C语言的指针有了基本认识。

但上述这些内容,还不足以刷OJ。

OJ的题分为基础逻辑题、数据结构及算法题。楼主必须在学完《数据结构与算法》这门课以后,才能基本上手OJ。同时,刷题还需要掌握一些技巧,训练自己的思维习惯。


02 提升建议

个人建议楼主可以从头开始刷leetcode。leetcode试题能够对答题者进行全方面的训练,并且现有互联网上有大量leetcode试题解析与视频,如果某道题没有思路,还能找到一些资料。

在刷leetocde时,要有这样一个基本的思考,就是善用数据结构能够帮助你找到快速解决办法。 其实数据结构与算法是不分家的,两者永远都是结合在一起学习和使用。

我以关系数据库为例说明一下:

关系数据库采用“表”进行存储数据,每张表中包含多个数据行。现在想从一张表中查找出某些符合条件的数据行,这其实就是“查找”算法。

再举一个日常案例

图书馆的案例:图书馆这么多书,是如何存放和方便读者查找的呢?

思考一下上面这个问题,你应该已经有想法和收获了。


以上内容,如果认同记得【点个赞】哦~


我是一名Java全栈开发工程师、系统架构师,从业15年。曾带领小团队完成多个数百万级项目。我正在写一些关于互联网行业及开发技术方面的文章,关注我,你一定会有所收获。

如果有项目开发、行业及求职方面的问题,都可以在评论区留言或私信我。(关注后私信我,向你免费分享行业级学习资料)


分享到:


相關文章: