1
BeautifulSoap 172 天前 via Android
虽然但是,一个没什么特定需求驱动的人,初学真不应该学 c ,c 艹
|
2
0o0O0o0O0o 172 天前 via iPhone
该学第二三四五六七八门语言了
|
3
crysislinux 172 天前 via Android
搞这些见效慢,可以买块板子搞嵌入式,lvgl gui 一写,感觉立马就来了。
|
4
Canglin OP @BeautifulSoap #1 单位有相关需求,大概就是类似 flink 数据抽取方面的,目前一直都是用的第三方公司的,我也想学习一下,可能以后会抛弃第三方公司
|
5
Canglin OP @0o0O0o0O0o #2 会点 Java 跟 Python
|
6
enchilada2020 172 天前 via Android
@BeautifulSoap 初学从 C 入门是科班路线嘛 后面跟着的必然是计算机组成原理跟操作系统 没啥问题
|
7
Canglin OP @crysislinux #3 从业方向不是这些
|
8
Canglin OP @enchilada2020 #6 已经上班了,只是想跟一下单位的步伐
|
9
smallboy19991231 172 天前
做完 C 程序設計語言的習題你就有工作水平了,只是語言方面
|
10
enchilada2020 172 天前 via Android
打扰了 原来不是学生 那讲究生产力想见效快的话建议直接 Python 就行了 C 不适合你
|
11
smallboy19991231 172 天前
“目前已经看完了 C primer plus”
如果你只是看完還不夠,習題很重要,C 語言搭配的計算機底層知識也需要再學; 最好 C 程序設計語言+深入理解計算機系統 兩本書一起搭配看看 |
12
Canglin OP @enchilada2020 #10 主要是目前工作内容涉及实时计算这一块,python 不太适合
|
13
Canglin OP @smallboy19991231 #9 如果想学习高级知识呢,例如多线程与网络之类的
|
14
javak 172 天前
1. 咋会啥都做不了,写个命令行小工具肯定是可以的三。
2. 下一本看「 UNIX 高级环境编程」和 「 UNIX 网络编程」 |
15
GeruzoniAnsasu 172 天前 1
@Canglin
首先 C 语言的标准库内容很少,很底层。 网络、多线程、数据库、GUI 全都跟标准库八竿子打不着一块 然后 C 生态的必读进阶书是 APUE (Advanced Programming in the UNIX Environment) 这本书介绍了 *nix 编程接口的方法面面,可以认为是《 windows 核心编程》的 *nix 对标 —— 里面所有的程序都是 C 语言写的。 但就算你啃完了这本书,你离 C 语言生态还是很远,因为 C 真正的应用场景是各种历史悠久的库和框架,比如 libevent/libev/libuv, YACC/Bison, GTK…… 以及诸如 Nginx 插件这种非常特定的领域。就算是嵌入式,但凡有点封装的也一定都有 C++的接口,C 的意义就是当你需要非常原始的机制 start from scratch 的时候不至于要写一大堆汇编 |
16
Canglin OP @GeruzoniAnsasu #15 学习了,我一直认为 C 的处境跟 Java 或者 Python 一样,只不过更贴近底层,没想到这么底层
|
17
masterclock 172 天前
类似 flink... 的情况下,为什么会学 C ?一点关联都没有
实时计算是什么意思? |
18
Canglin OP @masterclock #17 字面意思,就是实时计算业务
|
19
cabing 172 天前
flink 搭个环境,找本书跑下,简单使用感觉还是挺容易的。。
没有必要 c 吧。 |
20
yfang 172 天前
除了嵌入式和操作系统底层和高性能场合外
最好不要用 C 语言写什么 最佳路径就是做项目 |
21
henix 172 天前 3
C 语言本身内容较少,而且抽象层次很低,属于“系统编程语言”,也就导致,网络、IO 、GUI 这些功能在其他编程语言中可能已经抽象到标准库中了,但 C 语言标准库不包含这些,要用的话应该学习操作系统提供的 API 。不同的操作系统提供的 API 是不同的,需要分别去学,或者使用一些别人封装好的跨平台库。
Linux 推荐 Linux/UNIX 系统编程手册 https://book.douban.com/subject/25809330/ Windows 推荐 Windows 系统编程 https://book.douban.com/subject/5323432/ 关于库的底层实现的 程序员的自我修养 https://book.douban.com/subject/3652388/ 看了这些你能理解一些网络库的底层实现原理了,当然实际应用中可能更多会使用别人的开源库。比如 libuv 、mysql 的 C 接口、GTK 等等,那就去看具体的库的文档。 |
22
BeautifulSoap 172 天前 via Android
@enchilada2020 并不一定,哪怕是科班线路,也不一定要从 C 入门。我觉得 C 更应该被视为有一定编程基础和对计算机结构基础有了解之后的进阶知识。一上来就 C 只会打击学习热情
比如麻省理工 CS 就是最早用 Python |
23
dayeye2006199 171 天前 1
|
25
monkeyNik 171 天前
系统、网络相关的去看:《 UNIX 环境高级编程》和《 UNIX 网络编程》
算法:就算法导论吧 数据库:直接看对应数据库的 C API GUI:不太清楚了,去参考一下其他贴吧 顺便自荐一下 C 轮子开源项目: https://github.com/Water-Melon/Melon |
26
araraloren 171 天前
@Canglin You should choose a language base on your business. I don't think you should learn C just because the third-party tools are written in C.
|
27
smallboy19991231 171 天前
@Canglin 深入那本書最後三章就是系統和網路編程和併發編程入門足夠了
|
28
sjkdsfkkfd 171 天前
《 UNIX 环境高级编程》 +1
《 Object-Oriented Programming With ANSI-C 》,这本可以看看,毕竟大项目即使是 c 语言也还是会有很多面向对象的设计的 然后你之后工作搞啥你就看看相关的开源项目 |
29
424778940 171 天前
不同意楼上某些观点
嵌入式领域, 针对单片机来讲, 很多就算封装过的也是 c 库, cpp 的并不多 c 是很底层的语言, 跟文件/网络之类的东西可以做但现在都不会用 c 来写一般, 除非是特定环境需求 对于 c 语言我的建议是所有语法相关的东西看完就可以了, 针对*inx/win 的 api 没有什么折腾的必要 楼主做"实时计算"方向具体是什么平台和需求呢? 我所接触到的更多的是 rtos 之类的场景, 比如 freertos 或者 zephyr 之类的, 这类是 c 强需求的场景 如果只是希望提升一般分时系统下的程序性能, 用 c 实现不一定是最优解 |
30
Canglin OP @424778940 谢谢你,你很专业,但是我不够专业,你说的我没一个接触过,是金融行业,看来我可以学完 C 直接转 CPP/JAVA/Python 了
|
31
ysc3839 171 天前 via Android
我的建议是别只学 C ,应该学 C++,实际写项目也更推荐 C++
|
33
LuckyPocketWatch 171 天前
C primer plus 这本书讲的是基本的语法,看完了确实啥都写不了,我知道两条深入的路径
一条是嵌入式,公司有小组专门做这个,但我不了解,只听他们整天说“烧板子,烧程序”,我每次听见都以为他们要放火。。 另一条 unix/linux 系统级别开发,相关可以从《 UNIX 环境高级编程》和《 UNIX 网络编程》卷一和卷二看起,这个是 unix/linux 的接口以及开发,不过这个书的难度不是一般的大。。。。比如《 UNIX 环境高级编程》最后的大示例就是将你开发一款数据库。。。请谨慎入行 |