
What areas of specialization within programming would you recommend to a beginner我是一名学习软件开发的学生,我觉得编程一般来说太过广泛,无法尝试了解所有内容。要精通,你必须决定哪些领域要集中你的学习和理解。某些技能组合相互协作,如数据驱动的Web开发和SQL体验。但是,世界上所有的win32 API体验可能都不会直接适用于linux开发。这让我相信,作为一名初级程序员,在对软件开发的基本原理有一般了解之后,我应该开始决定我想要专攻的地方。 这是一个多部分的问题: Ben,几乎所有经验丰富的程序员仍然是编程学生。当您是开发人员时,您永远不会停止学习任何东西但如果你真的开始你的职业生涯那么你应该最不担心专业化的事情。您期望的所有API,框架和技能都不会让您在现场长期存在。技术似乎发生了很大变化,你应该多才多艺,灵活到足以学习任何东西。您在一个平台/ api / framework上获得的知识不会消失。您可以将技能应用于下一个最佳平台/ api /框架。 话虽如此,你应该不再担心未来,并专注于基础知识。 DataStructures,算法分析和设计,编译器设计,操作系统设计是您需要的最基本的东西。此外,您应该愿意在职业生涯的任何时候回去阅读这些领域的书籍。这一切都是必需的。祝好运。 对不起,如果我听起来像一个大屁股顾问;但那就是我的想法。 :-) 不是直接拒绝你的前提,但我实际上认为成为一名多面手是一个很好的编程职位。您肯定会在特定领域发展专业知识,但它可能是个人兴趣或工作需要的产物。随着时间的推移,您能够跨语言和问题域传输的东西是优秀程序员的核心。 我认为所有人的最大技能都是适应时代,因为如果你的雇主能够在你身上看到这种潜力,那么坚持下去就是明智之举。 那就是说,我会建议你潜入你会喜欢的地方。学习是由热情驱动的。 由于我现在聘用的是互联网提供商,我发现网络知识特别有用。但总有一天我想玩3D图形(不一定是游戏)。 我认为更重要的问题是:您最感兴趣的是哪些专业领域? 一旦你知道,开始在那个领域学习! 作为一名学生,我建议忘记你正在编程的内容,并专注于软件过程本身。了解如何分析问题并提出正确的问题;学习所有可以实现的设计模式,并将它们全部应用于实现对面向设计的真正理解和欣赏;编写测试,然后根据需要编写代码,以便通过测试。我认为真正学习的最好方法是尽可能多地编写代码 - 语言和域名并不重要,浏览sourceforge和freshmeat以获得任何有趣的项目并参与其中。重要的是要了解软件工程的基础知识。 是的,这包括C.或汇编。这是了解计算机工作原理以及高级代码实际执行情况的最简单方法。 最后,永远不要停止学习 - 面向服务的体系结构,控制反转,特定领域语言,业务流程管理都显示出巨大的好处,因此它们很重要 - 但是当你完成学习并加入劳动力队伍时知道下一件大事会是什么? 在一个环境中尽可能深入,win32,.net,Java,Objective C ......无论如何。 重要的是要深入理解X的工作原理......如果您愿意,可以将相同的概念翻译成其他语言或平台/环境。 "是否有任何专业领域阻碍了你开发其他专业领域的能力。"我认为,有点永久,但没有永久性。 由于我自己比较绿(不到4年),所以我来自一个真正的OOP心态。我很少跳出.NET,因此在接触嵌入式代码时,我在一份工作上遇到了困难。嵌入式程序员担心对象创建和继承性能损失。我不得不学习环境,严重低内存和慢时钟,他们来自。那些时候成长,我有更好的时间,因为我非常了解我的地区。 我会说,如果你选择一些专注于市场营销和金钱的东西,你可能会很快消失。如果你开始专注于挑选你喜欢的东西。我喜欢GUI编程和讨厌服务器端的东西,我的伙伴是相反的,但我们都喜欢我们的工作。如果他不得不做我的工作,我就是他的工作,我们都会因无聊而疯狂。 |