新手程序猿有必要深入学习 C 语言吗?

2015-11-19 14:36:22 +08:00
 yesiamloki

本人大一

8127 次点击
所在节点    程序员
92 条回复
wshcdr
2015-11-19 14:39:27 +08:00
现在没必要了吧
meloncrashed
2015-11-19 14:44:43 +08:00
应该不用,我也在自学。新人大概了解就行了,迅速用程序实现功能比较重要。因为新人更需要激励与成就感。可能学到一定程度再看 c 会有所感悟。
meloncrashed
2015-11-19 14:45:11 +08:00
新人搞 python 好
skydiver
2015-11-19 14:45:33 +08:00
C 语言这么简单都懒得学……还是别当程序员了
mechanician
2015-11-19 14:47:15 +08:00
大一时就是因为学 C 语言时很有兴趣很有动力,才打算转行当码农的,不过还是拿 pithon 入门好些吧
mechanician
2015-11-19 14:47:26 +08:00
python = =
yesiamloki
2015-11-19 14:50:34 +08:00
@skydiver 并不是懒 只是想确定一个值得花精力的方向 QAQ
deving
2015-11-19 14:53:05 +08:00
看你想干什么吧.现在总之不该带着偏见去学就对了,那种带着"c 是宇宙最快的高级语言","学了 c 可以鄙视一切其他语言"的心态总是不好的,虽然有了这种偏见会让你在学 c 无聊的时候带来一丝莫名的优越感
pseudo
2015-11-19 14:53:20 +08:00
如果仅仅是要学会 for , if-else ,基本 OOP 之类的话,很多语言起步都差不多
pseudo
2015-11-19 14:54:47 +08:00
想要表达的是很多语言都可以作为起步,因为学好一套语言的语法规则再去学别的就很快了
g00001
2015-11-19 15:03:23 +08:00
嘿嘿, C 语言还可以这样玩( aardio 代码 )

code = /**
#include <windows.h>
__declspec(dllexport) int Msgbox( HWND hwnd )
{
struct { const char * message;int id; } argument = {
.message = "测试消息来自 C 语言",
.id = GetCurrentThreadId()
};

SendMessage(
hwnd,0xACCE/*_WM_THREAD_CALLBACK*/,
"onMessageChange( { string message;int id } )",
&argument
);
return 0;
}
**/

import tcc;
vm = tcc();
vm.addLib( "user32", "kernel32", "gdi32" )
vm.output( "/bin.dll", code )

import win.ui;
var winform = ..win.form({})
winform.messageOnly();
winform.onMessageChange = function(param){
winform.msgbox("调用:" + param.message );
win.quitMessage();
}

var dll = raw.loadDll( "/bin.dll",, "cdecl" );
dll.Msgbox( winform.hwnd );
win.loopMessage()
wdhwg001
2015-11-19 15:04:59 +08:00
TL;DR 有,而且推荐学 C ,再学 C++,再学 MFC 背熟,再学 WTL 和 QT 。
我最后悔的事情就是 C 没学好,还养了一身 IDE 依赖症,以至于现在根本做不到用 VC6 写一个简单的桌面程序,大多数时候只能用批处理、 Electron 甚至是易语言和 autoit 糊弄一下…
hienchu
2015-11-19 15:07:19 +08:00
大一还是踏踏实实把基础学好吧,操作系统,算法数据结构,这些东西懂了,语言只是一个实践的工具而已。
cheng007
2015-11-19 15:09:32 +08:00
@wdhwg001 都什么年代了还学 MFC ,有这时间,学什么不好啊
wdhwg001
2015-11-19 15:11:37 +08:00
@cheng007 有计算器的人会恨一辈子自己不擅长口算和竖式的,我同理。
DiamondY
2015-11-19 15:18:39 +08:00
这得看 LZ 要走什么方向了,要往底层或者嵌入式方向走,学 C 可以说是必要的,众所周知 Linux 是用 C 写的;如果往网络方向的话,学 C 就变得没那么必要了;如果是应用方面的话,那么就一半一半吧,学 C 并不十分必要。
还是搞搞计算机基础,看看计算机发展历程,然后确定方向和想做的事情,再定语言吧。
jackisnotspirate
2015-11-19 15:19:32 +08:00
没必要哈哈
wdhwg001
2015-11-19 15:20:52 +08:00
@cheng007 启动速度、执行效率和程序体积都是 MFC 和 WTL 优越的资本,连 C#都比不上。
所以…并不是“什么年代”的问题,同样也不是“好不好找工作”的问题,而是“这就是该学的”,就像一定要学好高数一样…
顺便我一直在恶补的还有反汇编和逆向,以及驱动相关…同样是基于这个理由。
jzfr
2015-11-19 15:34:24 +08:00
@wdhwg001 你一会说 MFC 是口算,一会说 MFC 是高数,请问你倒底分不分得清什么是高数什么是口算?

即然你自己 VC6 用不好、自己都在恶补基础知识,那么你怎么就知道 MFC 是别人应该必须去学的呢? “这就是该学的” - 这种绝对权威不容质疑的语气似乎不该出自一个新人之口,人家用 PHP 用 Python 都可能用到 C 语言,但还就真用不到 MFC 。照你这种逻辑,你还得去恶补机器码才行。
codingpp
2015-11-19 15:39:05 +08:00
别的都看了,就看 php

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/237321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX