对于大学生来说,PYTHON和C语言到底应不应该学?哪个更有价值?

262 阅读4分钟

我不清楚你说的工科具体指代什么专业,就我个人的经验来说,我觉得如果你是计算机软件或者电子本科相关专业的,Python和C中两者挑一的话,那我认为非C无疑。如果是大专或者其他专业的话,那我认为应该先学习Python。

1. C是操作系统等本科基石科目的前置条件

科班的之所以挑C,原因之一是你很多跟着的基石科目都需要你有C的基础,其实就算不是很多,单单就操作系统设计与实现这一科,就足够让你选择C来进行学习了。

据我所了解,如今教学类操作系统,基本上都是*lix类的操作系统,比如我们以前学习的《操作系统设计与实现》用的是minix,其他基本上就是早期版本的linux,核心代码除了少部分用汇编编写,其他都是c语言写的。操作系统相关讨论我在另外一个回答中写过,这里就不赘述了:

也许有人说学习操作系统不一定需要看源代码啊,甚至说学习编码不一定需要懂操作系统设计与实现吧。其实这个我也并不发对,如果是软件应用类的专业,比如一些大专计算机软件相关课程,因为整个大学期间只有3年,估计是没有足够的时间讲解操作系统是怎么实现,所以一般不会做此要求。

但是如果是本科相关专业的,一般应该都会有这要求,毕竟本科学的更多是该专业的理论基础,至于今后你能走多远多深,就看你毕业后在社会中的锻炼了,反正内功心法都在那了。

2. C可以让你对专业知识理解更深刻

科班建议挑选C语言的另外一个原因,除了因为它是学习操作系统、单片机、嵌入式编程的前置条件,另外一个原因,我觉得应该是它会让你对相关专业知识有更深刻的理解。

毕竟,Python相对于C是一个更高级的语言。相信很多写Python或者JS等多年的童鞋,其实不一定知道进程和线程是怎么回事,也不知道内存释放和分配是怎么回事,什么是堆栈、如此之类的。

当然,懂了这些并不代表你就能高人一等。但是,至少,能给你增加科班出身的自豪感吧,相比那些去了参加个培训班就觉得自己无所不能的人来说。毕竟,我们知其然的同时,还知其所以然了。

3. Python相比C跟高级,更容易学习,且容易让人产生成就感,适合专科或者自学

非科班或者大专相关专业,我的建议是是先学习Python,但今后也应该学习下C或者C++。

先学习Python,是因为这是个高级语言,你不需要一些底层的如堆栈内存分配之类的知识,只要你愿意沉下心来花点时间进去就能学会。

编程最让程序猿开心的事情是什么?我觉得其中之一就是成就感。成就感从哪里来?很大一个来源就是快速出活。你用c语言捣鼓半天的东西,可能用Python就几行代码就搞定了。

有了成就感,才能让你有足够的动力继续往这个领域前行。你如果是靠自学,进来就想啃下C语言,那我估计你多半会折戟而归。很多人都是因为坚持不下去,迟迟看不到成果,学了半年写不出任何有成就感的东西,你看隔壁那个谁学个Python几天就写了个爬虫!

所以说,Python和C两者应该学哪个,我认为要分不同的情况而定,本科科班的,应该先学C,而专科,或者半路出家自学的应该先学Python,但是,最终我觉得应该是殊途同归,你终将会因为工作要求或者其他原因,多半会两者都会用上的。

同时,再次声明,这里并没有踩非科班出身的童鞋的意思,其实很多非科班出身的童鞋都成了我们这个行业的翘楚和大神,