LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: zqpytrjb

【疑惑】这里究竟有几个会C语言的人?

[复制链接]
发表于 2005-5-2 23:34:27 | 显示全部楼层
而且,我还没见过哪个人对语言很精通却对程序的架构设计和数据结构设计很差的。
回复 支持 反对

使用道具 举报

发表于 2005-5-3 08:46:44 | 显示全部楼层
我还没见过有谁使用一种开发工具达到精通的程度,顶多也只是熟悉罢了。可是通常的招聘总自以为是的要求“精通”二字,更可悲的是求职者也常常以为自己为然。
回复 支持 反对

使用道具 举报

发表于 2005-5-3 09:25:43 | 显示全部楼层
Post by lanche
我还没见过有谁使用一种开发工具达到精通的程度,顶多也只是熟悉罢了。可是通常的招聘总自以为是的要求“精通”二字,更可悲的是求职者也常常以为自己为然。


的确是太少了!因为很多人觉得语言本身不重要所以都不重视。
回复 支持 反对

使用道具 举报

发表于 2005-5-3 09:54:13 | 显示全部楼层
谢谢你推荐几本书。
我只看过 the c programming language,自然水平差
前些天想编一个用 gtk 的程序,一直没做好。

我不是不想学,是无门道。
我现在吉林大学,不是计算机专业。
以前上 c 语言课时,问老师有什么书水平比较高,他不知道。
可能在我们专业,我的程序水平还是最好呢,别人根本不会,只能考什么计算机二级,三级什么的。

希望楼主能多多推荐好书给新手,多多讲自己的经验给我们。
回复 支持 反对

使用道具 举报

发表于 2005-5-3 13:16:58 | 显示全部楼层
Post by Tetris
呵呵,如果不详细了解语言的每一个边边角角,可能成为优秀的程序员?我从来都不信。当然程序的结构与框架,还有算法的设计同样很重要,任何一方面的知识的缺乏都不可能成为优秀程序员。
如果你认真的研究C语言,会发现原来它的内涵以你想象的要深很多,一些小技巧会让你的程序提高很多的性能。当然,话又说回来算法设计得不好,程序结构和可扩展性不好那什么都是白搭。


一些小技巧会让你的程序提高很多的性能。

程序最重要的是可读性与可维护性 还有可扩展性 除非你对系统的要求性能非常重要

但是 就是在实时系统中 设计时优先考虑的还是 可维护性 然后才是性能  只有极少数需要完全的性能考虑



例如 我在开发中喜欢使用宏 如可变宏等  但是其它人不知道可变宏的写出来的程序一样可以跟我的一样
无论是功能还是性能方面  所以 他可以不知道可变宏或是其它宏的特殊用法 - 这是c里面的内容
同样可以写出有扩展性的程序


最后  我想知道对语言的精通是什么样子的  给个定义  是只是语法还是包括编译原理 还是包括开发工具

在我们公司  架构师更多的是掌握整个系统的构造 然后是掌握多种技术原理 - 注意是技术  而不是语言 如加密原理 smpp 或是其它技术 - 他们更多的重视非语言方面的内容 然后把这些内容应用到系统的设计中

同样 他们的价值也在于能够设计大系统 知道应用各种知识到系统的设计中
而不是应用语言的各种技巧到系统的设计中
这不是只精通语言的人就可以做到的

架构师再下一级 是高级程序员 公司对他们的标准是程序bug量少 然后是可维护性与可扩展性
- 做软件是经常需要改的  而且如果一个模块如果后面需要增加功能的话
在这级  更多人重视的是设计模式 如回调 ,或是层次化的接口定义 模块化的设计等
也没有说很看重语言

然后  公司面试新人时 一般是看重要掌握的技能 如tcp/ip原理 怎样写一个tcp/ip程序
如果对于有工作经验的人 会问以前的工作经验 及在这个项目中担任的角色 及自己系统的设计思路与系统框架怎样 中间有什么困难及什么克服 - 看你的设计能力与表达思维能力
语言只是笔试 第一轮时 -
一般是双链表问题  链表只需要知道指针的功能就可以了  而指针 这个是最普通的知识

可见也不会把更多精力放在对你掌握语言的理解上


不过 公司有不同     各公司的情况不一样  上面只是写出我们公司的情况

如果要说有名公司 如中兴化为 他们考的也只是对这个领域知识的理解  如cdma技术等

没有几个会看重你语言的掌握程度的
回复 支持 反对

使用道具 举报

发表于 2005-5-3 18:45:12 | 显示全部楼层
你说的都没错, 我并没有否认可读性与可维护性 还有可扩展性的重要, 只是觉得对语言的精通也是一个优秀程序员必备的素质. 可能我对语言的理解比较宽泛, 除了语法和编译原理之外还包括代码风格, 接口设计这些方面. 我相信对应比较高层的应用, 更注重的是业务逻辑, 这一层的程序员甚至连数据结构都没有必要关心(有STL, 中间件), 但这并不能说明数据结构不重要. 我提倡精通语言, 是因为国内真正精通的人太少了, 大家都觉得够用就行, 结果写出来的代码难看的要命, 这样的代码是做不出优秀系统的.
我的研究方向和将来的工作都是搜索引擎, 涉及的的方面包括数据的组织和分布式架构的设计, 对时间和空间的要求都很高. 我的兴趣是操作系统, 也很注重效率. 所以我对代码质量比较讲究.
回复 支持 反对

使用道具 举报

发表于 2005-5-3 21:58:51 | 显示全部楼层
同时 如果对于语言理解的很清楚的话 你也可以考虑代替谭浩强写新的 c标准
谭的书真的好吗,它是标准吗?反正我是不敢苟同的。远的不说,昨天当我翻看k&R的时候(这本书是的描述是很准确的-这个是当然的,很简洁的-至少我看来是这样,所以有些内容并不是一下就明白的),对第四章的“宏替换”不理解(到现在我还没理解,我想以后会理解的),自然的,我就想参考手边的另一本传说中的《谭》,但是它依然再一次让我失望,谭对宏定义是这样解释的 :#define 标识符 字符串 (p187-189),
k&R : #define 名字 替换文本 ,两者之间的差别有多大,不用我这个菜鸟来说。
#define a b

main()
{
    printf(a);
}

直接导致这个程序不能编译,因为宏a是未定义的,如过按照《潭》的解释,输出就是 :b ,试想如果学c 语言用这本书的话,至少这一段,什么时候他才能明白过来,运气好碰上高人指点,运气不好呢?
回复 支持 反对

使用道具 举报

发表于 2005-5-4 00:06:54 | 显示全部楼层
我看了几眼谭的书,就扔了
然后捧起了k&r,并由此走上了Linux之路
回复 支持 反对

使用道具 举报

发表于 2005-5-4 08:45:44 | 显示全部楼层
会C的人很多的
只是你们哪里很少罢了
回复 支持 反对

使用道具 举报

发表于 2005-5-4 10:45:50 | 显示全部楼层
Post by zqpytrjb
我在的公司非常缺人,
缺到什么地步呢?
2个项目组16个人,有10个外包人员
去年我的主管有段时间整天忙着招聘
总跟我们感慨:“现在想招个会C语言的人真难!” :!!
招聘标准早都降到只要是会C的都要,可是还总招不到 :ask
主管面试时会问十个C语言相关的小问题,他说只要能答上一两个的就要
可是面试10个人也招不到一个
要知道那段时间来应聘的都是有过工作经验的社招人员,
不是面试学校的应届毕业生,面试应届生都基本不问他们技术问题,问了也白问

我还大概记得他10个问题中间简单的2个,不知道这里有多少人能答对?

1。定义一个宏用来表示一年中有多少秒(注意是16位CPU的环境下,不需要考虑闰年)
2。“static”关键字,在C语言中是什么含义?

别回去翻书,2分钟内能答对这2个问题的人,估计这里没有几个
这年头软件业全充满了浮躁

答不上来的人,向你推荐基本C语言的基础书,回头好好再学学C,别整天忙着灌水咯

《C程序设计语言》即《C Programming Language》
《C语言陷阱》即《C Traps and Pit falls》
《C专家编程》即《Expect C Programming》
《编程精粹》Microsoft 编写优质无错C 程序秘诀(没见到英文版,不知道叫什么名字)

读完了以上4本书,再会来说你会用C吧


第一个是不是这样:#define Y=365*24*60*60
第二个我可以肯定的回答:定义一个静态变量
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表