我是一名有2年经验的程序员,我在4个地方工作,我真的认为自己是一个自信,流利的开发人员.
我的大多数同事都有CS学位,我觉得没有任何区别!然而,为了跟上这些人的同一个流程,我研究了C(从初学者到专业人员读取C语言),使用C语言的DataStructures,以及使用C++的OOP.
我对指针,内存管理有一个合理的理解,我也参加了一个奖学金,其中C,DataStructures和C++是其中的一部分.
我想要指出,我对C和C++的熟悉程度并不超过阅读某些页面,并执行一些演示; 我没有使用过C或C++的任何项目.
最近我的一个朋友建议我广泛学习C和C++,然后转到OpenGL并学习图形编程.他说,通过学习这些主题我可能获得的见解将在我作为程序员的整个生命中真正帮助我.
PS:我是一名全职开发人员,主要从事使用C#的ASP.NET应用程序.
建议?
为了实际进步:
从实际意义上讲,选择一种适合您想要使用的域的语言.
对于大多数编程空间,没有必要学习C或C++.如果不用这些语言编写一行代码,您就可以成为一名非常称职的程序员.
但是,如果您不熟悉现在所处的确切领域,则可以学习C或C++,以便找到较低级别的编程工作.
帮助您成为更好的程序员:
您可以从学习多种语言中学到很多东西.因此,以这种方式拓宽视野总是好的.
如果你想要更多使用其他语言的经验,并且尚未尝试过,我建议学习一种函数式编程语言,如Scheme,Lisp或Haskell.
首先,拥有学位与了解C++无关.我认识几个从CS毕业但没有写过超过50行C/C++的人.CS不是关于编程(在同一意义上,手术不是关于刀),它肯定不是关于个别语言.CS学位要求你在前往其他地方的途中用几种不同的语言捅鼻子.CS教授基础概念,理解编译器,操作系统,运行代码的硬件,算法和数据结构以及许多其他引人入胜的主题.但它并没有教授编程.CS毕业生的编程经验几乎是偶然的.这是他在飞行中选择的东西,或者是因为个人对编程的兴趣.
其次,让我们明白,在不了解C++的情况下,很有可能拥有成功的编程生涯.事实上,我希望大多数程序员属于这一类.所以你当然不需要学习C++.
这留下了学习C++的两个可能原因:
#2很简单.如果你想转换到C++是主导语言的领域,那么学习它显然是个好主意.你提到了图形编程作为一个例子,如果你想以此为生,学习C++可能是个好主意.(但是,我不认为这对于"作为程序员在整个过程中有用的见解"并不是一个特别好的建议.还有其它更普遍适用的领域.学习图形编程会教你图形编程,而不是很多其他.)
这留下了#1,这更有趣.只要知道C++,你会成为一名更好的程序员吗?也许,但不像有些人想的那么多.C++可能会教你几个有用的东西,但似乎也有一些迷信:它是低级的并且有指针,所以通过学习C++,你将获得启发.
如果你想了解幕后的内容,那么C或C++肯定会有所帮助,但你可以删除中间人并直接学习编译器.这会给你一个更好的主意.补充说明了一些关于CPU如何工作的基本信息,以及一些关于操作系统的信息,并且你已经比C++更好地学习了所有底层的东西.
但是,我认为有些东西值得从C++中获取,没有特别的顺序:
(其中有几个可能让你对C#感到绝望,尽管采用了许多出色的功能,但仍然遗漏了一些C++程序员看起来非常明显的事情)
我不知道你是否应该学习C++.有充分的理由说明为什么这样做可能会让你成为一个更好的程序员,但话又说回来,还有很多其他你可以花时间去做的东西也会让你成为一个更好的程序员.这是你的选择.:)
经验是最好的老师.
虽然您可以阅读有关内存管理,数据结构(及其实现),算法等内容的信息,但在您有机会将其付诸实践之前,您将无法获得它.虽然我不知道是否真的有必要使用C或C++来学习这些东西,但我会付出一些努力来实际编写一些管理自己内存并实现一些常见数据结构的代码.我想你会学到一些能帮助你更好地理解代码的东西; 要知道幕后发生了什么事,可以这么说.我还建议阅读计算机组织和操作系统,计算机安全性和布尔逻辑.另一方面,我从来没有真正发现需要进行任何OpenGL编程,尽管我曾经做过一些X Windows的东西.
| 归档时间: |
|
| 查看次数: |
3552 次 |
| 最近记录: |