我在第一份工作中开始使用C ++编程。我是CS学生,我学习Java编程。你有什么建议告诉我注意,这样我的新工作就不会给你带来麻烦?
您是否有任何建议或参考将不胜感激。
(例如:我知道C ++比Java更容易出现内存问题)
非常感谢!
答案 0 :(得分:6)
也许你已经知道这一点,但是人们习惯于Java和学习C ++的一个常见错误是:
除非必须(并且您可能 必须),否则请勿使用new
。在大多数情况下,如果要创建对象,只需在“堆栈”中创建它,如ClassType obj;
。
答案 1 :(得分:3)
两件事:
答案 2 :(得分:1)
对我来说,Java和C ++之间最大的区别就是指针,所以我会试着指点一下。只是我的观点。
答案 3 :(得分:1)
没有两种方法。你会成为一个威胁,直到你有足够的C ++陷阱来讨厌这种语言。我建议尝试编写函数而不是类。很多人认为OOP很棒,但实际上大多数用户希望你的代码能够“做”某些东西,而不是“成为”某些东西。无论如何,祝你好运。 : - )
答案 4 :(得分:0)
绝对是Chance所说的。内存管理在C ++中是显式的。我在大学里有一本名为Deitel C ++的优秀教科书。这是一本C ++圣经。
我还会学习标准模板库和Boost。
答案 5 :(得分:0)
This可能会给你一些想法。
一些重要的摘录:
研究人员(Bloom(1985),Bryan& Harter(1899),Hayes(1989),Simmon& Chase(1973))已经证明,在各种领域中开发专业知识大约需要十年时间,包括国际象棋比赛,音乐创作,电报操作,绘画,钢琴演奏,游泳,网球以及神经心理学和拓扑学研究。关键是审慎的做法:不仅仅是一次又一次地做,而是用一项超出你现有能力的任务来挑战自己,尝试它,分析你在执行它时的表现,并纠正任何错误。然后重复一遍然后重复一遍。
以下是该怎么做:
对编程感兴趣,并做一些因为它很有趣。使 确保它保持足够的乐趣,以便你愿意 投入十年/一万小时。
程序。最好的学习方式是边做边学。说得好 从技术上讲,“个人的最高表现水平 在给定的域中不能自动获得作为的函数 扩展经验,但可以提高性能水平 即使是经验丰富的经验丰富的人也是如此 努力改善。“(第366页)和”最有效的学习 需要一个具有适当难度级别的明确定义的任务 特定的个人,信息反馈和机会 重复和纠正错误。“(第20-21页)这本书 实践中的认知:每天的心灵,数学和文化 生活是这个观点的有趣参考。
与其他程序员交谈;阅读其他程序。这是更多 比任何书籍或培训课程都重要。
如果你愿意,可以在大学学习四年(或者在大学毕业 学校)。这将使您可以访问一些需要的作业 凭证,它会让你更深入地了解 领域,但如果你不喜欢上学,你可以(有一些奉献精神) 在自己或工作中获得类似的经验。无论如何,预订 单靠学习是不够的。 “计算机科学教育不能 让任何人成为专家程序员,而不仅仅是学习画笔和 颜料可以让某人成为专家画家“埃里克雷蒙德说, The New Hacker's Dictionary的作者。我最好的程序员之一 曾经雇用的只有高中学位;他制作了很多 伟大的软件,拥有自己的新闻组,并且库存充足 购买自己的夜总会的选择。
与其他程序员一起完成项目。成为最好的程序员 一些项目;在其他一些人身上是最糟糕的。当你是最好的,你 测试你领导项目的能力,并激励他人 与你的愿景。当你最糟糕的时候,你会学到什么是主人 做,你知道他们不喜欢做什么(因为他们让你 为他们做。)
在其他程序员之后开展项目工作。理解一个程序 别人写的。了解理解和修复它需要做些什么 当原来的程序员不在身边的时候。想想怎么做 设计您的程序,使维护者更容易 他们在你之后。
学习至少六种编程语言。包括一个 一种支持类抽象的语言(如Java或C ++) 它支持功能抽象(如Lisp或ML) 支持语法抽象(如Lisp),支持 声明性规范(如Prolog或C ++模板),一个 支持协同程序(如Icon或Scheme),以及支持协同程序 平行主义(如西沙尔)。
请记住,“计算机科学”中有一台“计算机”。知识 很长一段时间,你的计算机执行一个指令,取一个单词 从内存(有和没有缓存未命中),读取连续的单词 从磁盘,并寻求到磁盘上的新位置。 (这里的答案。)
参与语言标准化工作。它可能是 ANSI C ++委员会,或者它可能决定你的本地编码 样式将有2或4个空格缩进级别。无论哪种方式,你 了解其他人喜欢什么语言,他们有多深 感觉如此,甚至可能会有一些关于为什么会这样的感觉。
有充分的理智去做语言标准化工作 尽可能快。