Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C和Python我该先学什么?

C和Python我该先学什么?

原创
作者头像
我叫什么好
发布于 2021-12-29 06:49:51
发布于 2021-12-29 06:49:51
5080
举报
文章被收录于专栏:Python1.0Python1.0

个人认为这样考虑:

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出发当然就更简单。熟悉基本的用法之后就可以直接根据自己的想法去找库,然后设计,再慢慢把它实现就行了。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个C/C++自学转行者应该具备的素质
 之前我在关于C语言的部落里也发过了不少的学习技巧分享的文章,大家可能面熟过我,很多人喊我七哥。从高一开始就接触了C语言,然后学习C++,到win32和MFC,QT框架,到最后进阶Linux,如今也有大概10年了。关于这一块了解的还算透彻,今天聊一下如今在所有行业中,从二十世纪八十年一直到现在老牌语言C语言为什么在中国的市场上依旧这么人才紧缺。
诸葛青云
2018/09/22
8960
一个C/C++自学转行者应该具备的素质
世界上最难学的编程语言,C语言只排第三,第一你绝对想不到!
本次参与最难学编程语言排名的选手我从以上榜单中筛选了10位大家比较熟知的,他们分别是:Java、C、Python、C++、.NET、JavaScript、PHP、Objective-C、Go、R。
小林C语言
2019/06/19
7.6K1
世界上最难学的编程语言,C语言只排第三,第一你绝对想不到!
大牛给计算机专业学生的 7 个建议
---- layout: default title: 大牛给计算机专业学生的 7 个建议[转] category: [技术, C/C++] comments: true --- 七个建议 看到名字时候,只是好奇,看完之后,还是决定把文章转载一下了.不知道是不是因为其中的一个选择的缘故,我之前也徘徊了好久时间. 具体的内容 文章如下: 导读:由于Joel Spolsky的双重身份(昔日耶鲁大学计算机系学长,今日Fog Creek软件公司的CEO),所以听听他的建议,对于当今无数困扰于就业压力的中国高
@坤的
2018/06/04
6700
月薪数万的攻城狮带你了解到什么是C语言编程思想,原来这就是编程思想
什么是编程思想?答案可能很会复杂,但也可以很简单; 一句话来讲就是,用计算机来解决人们实际问题的思维方式,即编程思想; 编程就是为了解决实际中的问题,在思考如何编码的时候,把问题抽象到一定的高度去思考,更容易把握问题所在; 我们学习编程语言的最终目的,就是希望用计算机来解决我们的实际问题; 那么学习计算机该如何入手,也是很多初学者犯难的一个问题,特别是对与非计算机专业的人来说更是如此; 面对现实如此多的编程语言(比如:C,C++,JAVA,C# …)和 种类繁多的应用技术(比如: windows编程, li
企鹅号小编
2018/01/26
1.2K0
大牛给计算机专业学生的 7 个建议
现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。
互扯程序
2018/07/30
1.4K0
大牛给计算机专业学生的 7 个建议
游戏开发学习路线
游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指引,是可以事半功倍的。
全栈程序员站长
2022/08/03
2.6K0
游戏开发学习路线
python,java,c语言哪个好_小萌新
才发现语言的选择也就那一回事,我猜不少人刚入门的人依然被这个问题困扰着,所以决定认真分享一波我的经历。
全栈程序员站长
2022/11/01
8640
十年学会程序设计
这里分享一篇 Peter Norvig的 《十年学会程序设计》 (Peter Norvig  系Google研究院主任、美国计算机协会(ACM)资深会员(Fellow))。全文如下: 十年学会程序设计
张善友
2018/01/30
9490
【Python进入山东小学教材】吴恩达:孩子会识字后立马教她Python!
作者:文强 【新智元导读】已经没有什么能够阻挡Python了。根据最近火爆朋友圈的一则消息,Python已经进入山东省小学教材。Python这几年的火热,离不开人工智能和机器学习。根据国务院《新一代人工智能发展规划的通知》,可以想见人工智能教育往低幼渗透的例子只会越来越多。小学生学Python是培养编程兴趣和思维,为了你自己的百万年薪和发展前景,或许你才是最该学Python的人。 如果说2017年有一门最火“外语”,那一定是Python。现在,Python的这把火已经烧到了程序员的圈子外。 Python进入
新智元
2018/03/20
1.9K0
【Python进入山东小学教材】吴恩达:孩子会识字后立马教她Python!
这位非科班出身的读者好猛!(附C++复习路线)
之前答应大家,会邀请一些,刚参加完秋招的 offer 收割机,给大家分享一下,面试心得和复习路线。
公众号袁厨的算法小屋
2022/09/20
5640
这位非科班出身的读者好猛!(附C++复习路线)
怒肝1.3w+字给学姐讲明白计算机专业大学四年到底该学什么?
网上已经有挺多关于“计算机专业大学四年到底应该学什么?”相关的文章了。不过,既然学姐问了我这个问题,我还是想再从我的角度来给她回答一下。安排!
五分钟学算法
2020/10/30
8880
怒肝1.3w+字给学姐讲明白计算机专业大学四年到底该学什么?
如果我大一的时候能看到就好了。
这段时间刚好一些准大学生们也开始陆陆续续的收到录取通知书了,即将进入大学,步入新的人生阶段。
why技术
2023/08/23
3330
如果我大一的时候能看到就好了。
JAVA和C#,武当和少林之争!
关于JAVA和C#的比较,从C#的诞生之日开始就没有停止过。其实比较JAVA和C#,有点不是Apple-to-Apple的比较。我认为更确切的说法是JAVA和.NET的比较,而C#是.NET阵营里的得力干将,和VB.NET一起成为微软.NET战略的左右手。 JAVA和C#比较的文章网上的不计其数。其中我看到.NET总设计师之一,C#之父Anders Hejlsberg的一次采访录最为有份量,他从设计的高度和实现的技术细节上阐述了两种技术的主要异同点,比如.NET的Exception handling策略为
张善友
2018/01/30
2.7K1
世纪之战:Python和Java,到底学哪个更好?
尽管在刚开始开发AI时,有很多编程语言都可以满足你的需求,但没有一种编程语言是可以一站式解决AI编程的问题,因为在每一个项目中,不同的目标需要特定的方法。
Java技术栈
2020/05/19
9860
最难学的十大编程语言 Java排第三 它竟是第一名!
编程语言是开发者们代码工作的核心,也是许多开发者最爱讨论的话题。编程语言的选择对开发者和工具制造商都十分重要,前者需要保持最新和具备市场潜力的技能,后者则亟需确保他们能够提供最有用的 SDK。
老九君
2019/01/09
1.8K0
国外是怎么学习计算机的?
随着自己持续的创作,关注的粉丝也不断增长,这些增长的粉丝不仅有来自国内的朋友,还有不少在国外留学的同学。
轩辕之风
2022/12/20
1.2K0
国外是怎么学习计算机的?
OO——从不知到知道一点,从迷茫到豁然开朗 (迟来的我的2002到2007)
前两天写了一个 “使用了继承、多态还有工厂模式和反射,但是还是没有OO的感觉。  ”,看到了很多同学的回复,自己又反思了几次,终于有所感悟,写下来做个记录。 一、先说一下我学程序的经历。       我是97年在高一的计算机课程里第一次接触编程语言——QBasic。刚接触根本就是什么都不知道,菜到什么程度就不说了,但是对编程很感兴趣,高中三年也多少写了几行的代码吧,都是basic的,都是一行一行地,写函数都很少用。写程序呢也都是自己写着玩的。      由于对计算机感兴趣,又加上成绩也不怎么地,所以
用户1174620
2018/02/07
1.2K0
该学哪门语言?4种编程语言详细对比
Java、C、PHP、Python 的个人简历表 如果,你对各种编程语言还不太了解,那么本文分别介绍C、PHP、Java、Python四种语言的基本情况。 或许,会对你的入门和以后的方向产生一些帮助。 Programming 1:Java(爪哇) 受欢迎程度:10分 难度指数:6分 基本信息 出生日:1995.5.23 年龄:22岁 星座:双子座 爱好:喝咖啡 =_= 父亲:sun 继父:Oracle TIOBE排位(当前):1 国籍:美国 定义 Java是一门面向对象的编程语言。具有功能强大和简单易用
企鹅号小编
2018/02/02
2.1K0
该学哪门语言?4种编程语言详细对比
【编程指导】如何成为一名真正的程序员?
本人十几岁开始写程序,近十几年来都在教人写程序,还经营着一个可能随时倒闭的软件公司,主要的开发语言是C#。 首先,我不认为《算法导论》是所有程序员必须一开始就掌握和精通的内容。 我无意否认某些核心课程的重要性,但是我们必须看到——很多程序员并不懂程序员的三大浪漫——编译原理,图形学,操作系统,但这并不妨碍他们在日常工作中创造出各种有价值的软件。之所以这么讲,原因是:行业的门槛因技术的不断进步而降低 不是所有的程序员都需要系统而全面地学习才能胜任工作。 这些年来,编程语言、开发工具的迅速发展,我们可以用C#、
程序员互动联盟
2018/03/12
7650
【编程指导】如何成为一名真正的程序员?
python 和 java 到底该学哪个?
随着互联网的高速发展,越来越多的人选择加入到IT行业,而近年来,编程语言界也可以说是百花齐放……
全栈程序员站长
2022/09/08
4530
推荐阅读
相关推荐
一个C/C++自学转行者应该具备的素质
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文