C和Python我该先学什么?

个人认为这样考虑:

1、如果想长线发展,走专业路线 --毫无疑问是C

两种语言其实本身都简单,注意我说的是语言本身简单,也就是说基本的语法、规范啥的其实都不难。但两个语言的“文化背景”不一样。

C虽然同为高级语言,C本身是面向通用编程的一门语言,它设计之初就是为专业程序员量身定做的。从用途上其实就能看出来,除了我们熟悉的应用程序以外,驱动、单片机等其实都可以用C来做。

因此在学C的时候,一开始就要懂得计算机的一些基本架构,比如那个经典的问题:int类型占几个字节。其实这就隐含了一些别的知识储备。简单来说就是你需要比较系统地理解计算机系统中的数据和运算究竟是怎么一回事。最最起码你得懂得你的程序是如何在内存中存、取数据,从而使得整个程序能够稳定运行的。

再说得简单一点,如果要从C往上走,那么知识和技能就要相对系统。

2、如果想短线发展,走应用路线-- 毫无疑问是 Python

Python在设计之初其实是为了科研人员使用的。不要太高看这个群体,科研人员绝大多数其实程序能力都不咋地。当然原因并不是说他们没这个能力,而是:(1) 他们9成的精力都要花在自己的研究上,没有太多时间来玩别的。(2)他们的关注点在于如何得到结果,对于许多数据处理、分析的过程本身其实并不太在乎。因为已经有数学家、理论科学家证明了,可以放心大胆用。(当然他们也有自己的一套完整的逻辑来验证自己的结果)。

因此,Python从一开始就是为了好用而设计的。那么这样就必须给编程人员减轻负担,它自己会帮你解决一大堆的问题。比如内存的管理(当然做得更深入过后其实也要考虑,但绝大多数时候并不需要)等。这样一来,Python的用户其实就可以把更多的精力放在如何实现自己的业务需求上,而不用考虑过多计算机程序本身的东西。

说到这就回到题主的描述上,如果是想满足现在的好奇心,继续用计算机程序去实现自己好玩的想法,完全可以从Python入手。这样可以节约你大量的时间,让你更快地实现自己的想法。

关于这两种方案各自的学习方法:

这个问题本人的回答就谨慎些,因为个人的经历不太一样(从VB基础、到C、到3年.NET,再到用MATLAB做研究,再到Python;系统学习过软件工程的课程,但又长期以业务为主去写程序)。

按C的路线

个人觉得可能会相对枯燥。因为从C开始,再到C++,这之后多少还是要看一些数据结构,这样才能比较愉快地去玩别的东西。所以这条线的路线个人认为必走的路是:

C --> C++(重点理解面向对象)--> 数据结构(最好补一点离散数学,不然太抽象不好理解)

选修:

算法分析(最好完整刷一遍题目)

编译原理、操作系统(了解性学习)

按Ptyhon的路线

必修

Python基础

选修:(这里就完全根据自己的需求来)

科学计算:Numpy( Scipy)

数据分析:Pandas

机器学习:Sklearn

深度学习: Pytorch(当然还有许多别的,个人更推荐这一个)

至于学习方法

首先,题主有VB的基础,其实已经具备基本的程序设计技能和一点伪面向对象的知识(VB本质上是伪面向对象的)。所以个人觉得太过于基础的东西直接浏览就行。重点放在不同的语法特征上

其次,学习的过程入门时以视频为主,熟悉一些过后可以加快视频的速度,以文档为主。因为一开始学习其实主要是一个适应的过程,但慢慢熟悉了基本的语法和规范之后,许多东西也就是概念上听一听就明白了。不用过细,其实很浪费时间。

在基本上熟悉了语言本身之后,就看自己的需求了。

如果从C出发,要做应用的话可能得用到C++的MFC一类的东西了。如果做WEB的话直接用C其实不太推荐,因为多数时候是用C来做逻辑和运算,UI和基本框架其实一般还是用别的语言来搭,比如PHP就经常这样玩,也就是用PHP做框架,一些复杂的运算的时候用C。

如果从Python出发当然就更简单。熟悉基本的用法之后就可以直接根据自己的想法去找库,然后设计,再慢慢把它实现就行了。

这里最后强调一点的是,个人认为程序到最后其实都是需求导向。这里的需求在公司的话就是客户的需求,老板的需求。而对于自己学习其实就是自己的想法,把自己当成用户,然后针对自己的需求去拆解任务,最终实现。想必题主应该也是想要成为能够独立开发的程序员(水平),那么在学习的过程中,让自己一个一个项目地完整地完成其实也非常重要。因为这样既能让自己在意识上不断提高,而不只是单纯地熟练技能,也能让自己不断地积累,随着自己的对业务理解的加深和技能的成熟,这些一个个的小项目都能积累起来,最终为自己服好务。

你可能感兴趣的