目前大一软工专业,学校课程开的是 c++(用的谭浩强的 c++程序设计第四版这本教材),自己在同时学 c ,打算只是先跟着 c primer plus 这本书学一遍。但有个同学(他之前打过 c++的竞赛)建议我不要同时学这两门语言,说比较相似,容易混淆。
我对原先的计划产生了一些动摇,所以来寻求各位的建议。
1
willoong 2023-10-14 21:30:28 +08:00 via Android 1
先学 C ,培养编程思维。最后你也未必需要学 C++。
|
2
nightwitch 2023-10-14 21:30:40 +08:00
cpp 是 c89 的超集,会 cpp 自然等于会 c..至少说 c 的语法部分不可能成为障碍
|
3
ETiV 2023-10-14 21:39:38 +08:00
超集( superset )+1
主要你的课程是 C++,考试考的也都是 C++,如果你学的不好,试卷上 C++ 的术语都看不懂怎么考试…😂 你时间真多的话,不如学个 PHP 、Golang 、Rust 什么的、别的语言 |
5
tyzandhr 2023-10-14 21:54:02 +08:00 via Android
看来你同学竞赛成绩不怎么样。他应该会劝你放弃 C ,一门心思学 cpp
|
9
icy37785 2023-10-14 22:03:32 +08:00 via iPhone
说实话,主要是因为你才大一,所以会想很多,后面会发现,如果只是为了考试 c++不用怎么学就够应付考试了,学自己感兴趣的 c 就行了,如果对 c++也感兴趣,那么就会发现学了 c++之后 c 几乎不用学。如果不是为了兴趣,而是为了未来的发展,会发现直接都不学,自学 java ,golang 或者 rust 对未来从业更有帮助,你未来的工作大概率用不上 c 或者 c++。
|
10
zzzkkk 2023-10-14 22:07:30 +08:00 via Android
@icy37785
c++高频交易 美国 30 万刀至 70 万刀一年 学什么 java go 农民工 |
11
areyoucrazytom 2023-10-14 22:15:03 +08:00
国内学 rust 找不到班上, 别听楼上瞎喷.
|
12
willoong 2023-10-14 22:22:02 +08:00 via Android 2
@areyoucrazytom 这两年学啥都不好找工作
|
13
cmdOptionKana 2023-10-14 22:27:01 +08:00
你自己学起来感觉没问题就行,虽然一般会有干扰,但兴趣也很重要,也许你两个一起学的时候感觉非常有趣,越学越精神,如果你只学一个可能会觉得很无聊,泄了一口气就再也提不起兴趣了,那反而更坏。
|
14
FanyFull 2023-10-14 22:30:14 +08:00 via Android
合适,非常合适,其实 C++ 你现在学了估计也是大部分时候用的 C 的语法。如果你想对整个大学阶段有一个大概的概念,可以看下我今年六月份给大一现在是大二的同学作的分享: https://fanlumaster.github.io/2023/06/14/personal-sharing/
|
15
ysc3839 2023-10-14 22:54:16 +08:00 via Android
个人觉得没必要,知道两者的区别即可。分别学感觉浪费时间。另外不建议看谭浩强的书。
|
16
icyalala 2023-10-14 23:15:49 +08:00 1
二三楼是怎么回事。。首先要明确 C++ 不是 C 的超集,两者编程习惯也有很多不同。
如果你主要在学习 C++,那就先尽量只学这一个。等相对熟练后再去看看 C/C++ 的差异,更容易理解。 |
17
vah970 OP @ysc3839 这两者我都是打算学的,现在只是考虑先学 c++或者同时学的问题。
学了 c 之后可以学底层点的东西,操作系统之类的,还能玩下单片机;学了 c++后可以学图形学,这些都是想学的 关于谭浩强的问题,学校用的他的书,没办法😔,我应该还会看些别的书和教程的 |
18
gitrebase 2023-10-14 23:22:59 +08:00
按照我对国内高校的了解,如果仅针对于「同时学 C 和 C++ 会不会对考试造成影响」,个人认为「不会」
因为一般来说,国内大一的 C++ 考核内容中 80% ~ 95% 都是和 C 语言语法一模一样的,C 和 C++ 很多不一样的东西你的老师可能都不知道,即使知道也不会怎么教你们,因为这只是一个入门课,老师只带你了解编程语言并且教会你如何写一个能运行的 program ,C 和 C++ 的高阶语法与工程细节都是课下自己去看书去钻研的 说极端点,你就是只学 C ,然后在考前刷一刷往年的试题题库,完完全全用 C 语言去实现大题要求的 C++ 程序都行,只要你 C 学得还可以,拿满分都是有希望的(可以简单的理解为 C++ 的语法包含了 C 的语法,虽然这句话有点瑕疵,但意思到了就行) |
19
vah970 OP @icyalala 目前 c 比 c++学的多
因为国庆放假,课被冲掉一些,c++到现在只上了一节课 |
20
ysc3839 2023-10-14 23:28:37 +08:00 via Android
@vah970 个人认为学 C++同时了解 C 与 C++的区别,实际写 C 项目时并没有什么问题。
|
21
z1645444 2023-10-14 23:31:22 +08:00
如果 CPP 或者 C 就是你的母语,我也比较认可先选一门(顺着学校正在教的 CPP ),再去学另一门( C )的思路。如果之前已经有其他比较现代的语言作为母语,都学不太影响👉
|
22
smallboy19991231 2023-10-14 23:36:36 +08:00 via Android
首先看 C++程序设计原理与实践! C++之父推荐
|
23
vah970 OP @z1645444 有些 Python 基础
高中信息课教的 Python ,暑假里又跟着 cs61a 学了下(虽然还没学完) |
24
weidaizi 2023-10-15 00:03:17 +08:00 6
我想每个人学的时候都只会走一条路线,无法直接对比同时学和先后学哪个更好,属于小马过河了;不过条条大路通罗马,只要对技术有兴趣,定下目标,持续推进,最后应该能殊途同归,融会贯通吧
至于有网友说到不如学其他语言,或者学什么工资高之类的,请直接忽略这些说法;连后天(毕竟明天周天不开盘)股市涨跌都很难预测,怎么能确定等楼主四年后毕业时啥语言工资高,好找工作?语言只是工具而已,就像拿勺子喝汤,用锤子锤钉子一样,不同的场景用不同的工具这是很自然的道理,而编程语言也是一样 如果只学一门语言,很容易就加入这个语言相关的讨论环境中,每个语言都有自己的狂热分字,初学者更容易由于缺乏经验盲目陷入这个语言的井中,坐进观天,得出某某语言更牛逼的结论(现代的说法是信息茧房),比如下面就是我遇到过的一些趣事 * 很早之前看过杂志的一篇文章,叫"学好 .net ,让你可以早下班" * 十几年前,做游戏的同事表示:"国内用 Java 的人应该不是很多吧,估计也就写写网站后端会用到吧,后端用 c++ 很方便呀" (他们 MMORPG 从引擎到客户端,再到后端全是 c++,最多再加一点 lua) * 前几年互联网行业的朋友对我说: "什么?现在还有人用 c/c++,疯了吧!后端 Java, 前端 js 一把梭不就好了吗" * golang 大火的那几年,铺天盖地的说要全面替代 Java * 去年有人发邮件用 Rust 教 Linus 做人,最后如愿被喷(参考: https://lkml.org/lkml/2022/9/19/1105) 我直接在工作中使用过 c++, lua, c#, java, go, python, 平时自己还爱用 c 写一些小玩意,就我的体验来说,每个语言都会有一些独特的东西,学习只后也能促进你对其余语言的认识,明白各个语言优劣势 而且你才大一,你有大把的时间可以尝试不同的东西,打下基础,多实践,等到大三下学期再决定未来是面向工资编程,还是更愿意为了兴趣而选择某个语言也不迟! ------ 最后要说,其实更有趣的事情是:学好数学,学好数学,学好数学! : ) |
25
agagega 2023-10-15 01:16:08 +08:00
反正你们学校教的 C++(从教材推断)多半也是一股 C 味(我记得当年谭浩强的 Cpp 书对模板一个字都没提),所以学完也只会对 C++的语法有个基本印象。建议从这个基础上再深化一下 C 的细节( C 的语法本身没什么好说的,主要是一些惯用法和诸如内存对齐等和具体平台深深关联的内容),然后再去理解现代 C++(因为前面那些东西对 C++也适用),否则连很多地方为什么要这么设计都弄不清楚
|
26
Yvette 2023-10-15 05:02:32 +08:00
另外,一般会建议看 C++ Primer 而不是 C++ Primer Plus
https://www.reddit.com/r/cpp/comments/13g6s1/which_c_primer_book_is_better/c73qwk3/ |
27
vvhy 2023-10-15 09:38:16 +08:00 via Android
c primer plus 这本可不是经典教材,别弄混了
|
28
vah970 OP @vvhy 你说的 c++ primer plus 还是 c primer plus
感觉网上推荐 c primer plus 的还是挺多的 |
29
mightybruce 2023-10-15 10:33:31 +08:00
C++ 和 C 是两个不同的语言,不要以为学了 C, 就懂 C++或者学了 C++ 就懂 C, 两者有交集。
科班建议还是一定要学好 C++, C 写好要求功底更高, 基础设施一部分代码都是 C C++ 偏应用和中间件开发,打好基础,选择一个 C++ 特定的领域发展就好。 Java 现在都是搬砖的, 走基础设施路线,虽然开始艰难,至少你以后不会出现吃不到饭的问题, C++ 代码仓库很多都 20 多年还在维护,其他有些语言过个几年连吃饭都成问题。 |
30
leimao 2023-10-15 11:13:53 +08:00
不合适
|
32
zxCoder 2023-10-15 11:28:17 +08:00
C++ 开发最大的问题是没有统一的风格,你可能在这个领域很厉害,但是在另一个领域,另一个仓库的 C++ 代码你可以看都看不懂
|
33
wtsamuel 2023-10-15 11:43:21 +08:00
你的课程是 c++,就学 c++
最主要学的是编程思维,而不是语言。尤其是 c++和 java 为代表的主流,以对象为编程,还有 c 和 go 可以实现的另类对象编程。以及如何设计一个项目,如何模块化等等。 每个语言特性你可以在后续项目中慢慢学习。如果针对之后找工作,那就死记硬背语言特性,应付过去就行。 |
34
ZztGqk 2023-10-15 12:21:56 +08:00 via iPhone
这两者对于有些东西的实现理念不一样,我觉得你可以不用太纠结于学哪一门,其实都可以,然后去了解一下常用的编程方法,比如 OOP 还有函数式编程在二者上的实现,然后选择你喜欢的思维模式就行了。另外 C++ 推荐 C++ Primer 不带 Plus 。
|
35
thinkershare 2023-10-15 12:39:00 +08:00
先学 C 语言,然后直接去学习 Rust/Golang ,抛弃 C++.
|
36
thinkershare 2023-10-15 12:45:06 +08:00
每次使用 C++我都感觉自己在被编程语言使用,而不是我在使用编程语言,对这个什么乱步八糟模式都支持的语言实在没有任何好感。不同人/不同团队写出来的代码有时候完全是不同的风格,如果你喜欢 All in One 那就直接上 C++也行。如果你喜欢自己彻底掌握一个工具后再使用它,建议尽早离开,这个语言实在太难掌握透彻了。如果只是使用 C-with Class 的 C++那会好一点。
|
37
impl 2023-10-15 13:55:23 +08:00
看你想做什么
嵌入式开发 -> C 服务器端开发 -> C++ |
38
Austin2035 2023-10-15 16:42:35 +08:00
都 2023 年了,还有人说 C 艹是 C 的超集。。。。
|
39
bao3 2023-10-15 16:46:06 +08:00
我是直接 C++ 学完后 C 语言自动就算入门了,Java 也算入门了,属于自动解锁。但如果是学 C ,那可能思维切换上还是会有一点区别
|
40
cnbatch 2023-10-15 16:59:27 +08:00
对于学校教学来说,即使抛开谭浩强那种误人子弟的教材,他们教的都只是基础中的基础,不会教太多内容。
C 语言一般都是 C89 打转,顶天了也就 C99 。像 C11 、C23 虽然新增的东西并不多,但各学校基本上提都不提。 C++一般都是 C++98 打转,把 C++当成 C 超集来教。所以不用指望他们(指学校和教职员工)能触碰到 Morden C++。 就算有教职员工真的能理解新版 C 、新版 C++,考试时照样还是旧教材的旧内容。 ( PS:我个人反感 C++98 及之前的 C++,当初入门就自动劝退了) 在这种前提下,当然可以同时学。 只不过,考完试之后就应该抛弃他们教过的内容(主要是一团麻乱的谭浩强教材),重新拥抱正常习惯。 正常商业、工业领域,要是有谁敢写谭浩强式 C/C++,等着被内部制裁吧。 |
41
jackmod 2023-10-15 17:27:06 +08:00
阅读 C++ Primer 打底,保证不会被谭书带偏。考完试之后应抛尽抛错误知识。
顺便 C 语言也可以 OOP ,比如 linux 内核。不过这就是以后的事情了,现在还是优先培养正确的编程思路。 |
42
kirory 2023-10-15 22:12:49 +08:00
学 Ru! 不对,C 的内容很少,你只要学习少量的内容就能掌握大部分,所以你不需要太大代价就能学完,但你在学书的时候最好跳过各种库函数和相关的部分工具 。
|
43
ivvei 2023-10-15 23:57:04 +08:00
不合适。
|
44
araraloren 2023-10-16 09:02:23 +08:00
Don't fall for c++, it's unworthy.
|
45
seeyourface 2023-10-16 10:17:50 +08:00
@ETiV JAVA 怎么你了🙂
|
46
snylonue 2023-10-16 13:01:05 +08:00
你们的考试是什么形式的
|
47
scorpion91 2023-10-16 15:34:53 +08:00
只推荐 c++和 python
|
49
gdgoldlion 2023-10-30 20:56:08 +08:00
没听说过可以这么学
一般先 c 大概三四周就能入门 再 c++大概三四个月 普通人就是这个速度 |
50
vah970 OP @scorpion91 上机考试的,选择题和代码填空题
|