做客51CTO专家技术门诊,回答网友提问——选摘(2)

技术门诊(原专家门诊)是51CTO社区品牌栏目,每周邀请一位客座专家,为广大技术网友解答疑问。从热门技术到前沿知识,从技术答疑到职业规划——每期一个主题,站在最新最热的技术前沿为广大网友及程序设计爱好者引航!
2009年8月27日至9月3日,我作为总第128期特约专家做客51CTO技术门诊,以“从C/C++学习谈编程能力的培养与提高”为主题,同广大网友进行了广泛的交流和深入的探讨。
互动主页:
http://doctor.51cto.com/develop-140.html

下面选摘一些网友提问及作答如下:

1、C学得还算凑和,可是C++就有点儿头痛了!基础书讲得那些还看得懂,可是遇到实际问题就不知道该怎么办了?特别是可视化的编程,不知道专家有没有什么建议?谢谢啦!

呵呵,我前几个星期还跟朋友讨论起C++的复杂性问题呢。无法否认,C++确实比较复杂。它所涉及的内容非常之多,而且总是有新的东西被写入标准。我在本期提供的资料介绍了一些学习C++的建议,你可以参考一下。学习一门语言和掌握处理解决实际问题的能力并没有绝对联系,学习任何语言都势必要面对如何编写实际程序的问题。我个人觉得找几本好书,从头到尾系统的学习是很有必要的,现在网络很发达,很多人都不再依靠书本了,可能更多的倾向于上网找资料,但问题就是网上的资料极其零散,很不系统。之后感觉自己可能更像个打游击的,或者是杂牌军,知识不牢靠,不连贯,不系统,要想有所精进就更谈不上了。另外,当然,看了书之后,还有实际做些东西,从最小的需求开始做,编些有实际意义的东西,实践会帮你迅速成长。

-----
2、专家好
我刚起步学VC++ 感觉基础的教程不是很难能理解,但是真正编写起程序,感觉很不适应~
能给我们刚学编程的人员提些少走弯路的建议吧
谢谢左飞专家~

刚刚起步的可塑性是很强的,最怕就是走出路,误时又费力。很多初学者都曾经问过我类似的问题,就感觉有个玄关没办法突破。我的建议首先是基础要扎实,这样在解决实际问题时即使是你没碰到过的疑难问题,你也知道去哪找工具。这点并不难做到,但是很多人往往表现得很轻浮,觉得自己基础已经可以了。但扎实的先决条件就是“系统”,我经常强调这个问题,所谓系统就是指知识体系上的完整,当然是对某一领域上的完整。有个宏观的认识,思想才能更上一层楼。如果基础已经打好了,剩下的就是实践了,一定有点追求,做点实际项目,否则如果只是在一些演示Demo上转永远都提不高。这些问题在我的博客文章http://baimafujinji.blog.51cto.com,阅读:浅谈编程能力的培养与提高系列(1、2、3),相信会对你有所帮助。限于篇幅,这里就不再展开说了。

-----
3、左专家:
您好:
我是一名即将毕业的通信专业的研究生,本科的时候学过C语言。但也就是有一点点的了解,学的不好,更谈不上感兴趣。到了研究生阶段,基本上就没碰过C语言了。就用过MATLAB编了一点图像处理的程序。但是招聘单位似乎对编程能力或多或少都会有些要求,而且像我们这种专业出身的,开始的时候肯定也是做技术这一块的。所以针对就业这一点,我想请问下:如何在短时间内将自己的编程能力达到一定的水平呢?如果有可能的话,也希望你能给我一些就业方面的建议。万分感谢!

如果是学通信的,当然首先应该是去运营商啦(就那三家嘛),不过我个人经验是,当然我不太了解你的实际情况,一般那三家运营商都是央企啦,都有点爱面子啊,所以要看你的学校牛不牛了,这个很有关系的。如果你更想去技术厂家,首选当然是外企了,我推荐的是爱立信、诺基亚、思科。一般好像他们只招研究生的,所以你基本条件已经符合了。接下来,学通信的去中兴华为也不错啊。然后其他的做通信的厂家,国内仍然有很多可选的,比如普罗、烽火、东信等等。当然如果是做研发,确实对编程能力有要求。如果你只会用Matlab恐怕不行啊。C和C++绝对是首选,有些领域可能还需要汇编。为了找到好工作而突击下C/C++其实不难的,我建议你找本书系统得学一下,比你在网上胡乱搜资料打游击肯定强得多。关键就是知识体系要完成,要系统,融会起来就好了。当然如果超出找工作这个层面,要想实际提高编程能力的话,那除了实践就真的别无他法啦。希望我的建议能够对你有所帮助吧,如果言语有失偏颇,还望见谅。

-----
4、C在涉及网络编程的时候,作用大不大?

网络编程是一个很宽泛的协议,我不是很清楚你指的是哪方面。理论上来说C可以用来写任何程序,当然C++也可以。一些底层的网络协议用C来写的情况很多的,另外有名的“飞鸽传书”软件就是用C++写的。但是这些应用都很底层,如果要写一些比如浏览器这样的上层的东西,不建议用C来写,会比较麻烦。
-----

5、我现在学LINUX的  想写脚本  C 和 C++ 哪个好学点

通常来说,C和C++在Linux下一般是写应用程序用的,并不适合用来写脚本。Linux下的脚本语言是非常多的,例如:Bash(Linux的shell自带的脚本),Perl(老牌Linux脚本,不过Perl的代码不易于维护),Python(这语言目前很火,发明者现在在Google),Ruby,PHP也可以作为脚本语言用。另外还有许多别的语言。此外,Linux有一个特别的机制,在一个文本文件中,在第一行写"#! /bin/sh" 就可以调用#!后面的脚本解释器来翻译后面的代码,从而输出结果。
因此,理论上来说,一般解释性语言都可以用这种方式在Linux下当脚本用。但是C和C++都是非解释性的,实在不适合用来写脚本,呵呵。或许你得选择其他语言了。


----------------------------------------------------

如果你想同我交流,欢迎点击链接http://student.csdn.net/invite.php?u=113322&c=a139a65a1494291d和我成为好友!

你可能感兴趣的:(做客51CTO专家技术门诊,回答网友提问——选摘(2))