我是一名学习软件开发的学生,我觉得总的来说,编程是一个太宽泛的学科,无法尝试了解一切。为了精通,您必须决定将学习和理解的重点放在哪些领域。某些技能可以相互协同,例如数据驱动的 Web 开发和 SQL 经验。然而,世界上所有的win32 API经验可能并不直接适用于linux开发。这让我相信,作为一名初级程序员,我应该在对软件开发的基本原理有了大致了解后,开始决定我想专攻什么领域。

这确实是一个由多部分组成的问题:

  1. 计算机编程和软件开发有哪些常见的专业?
  2. 这些专业中哪些具有更长期的价值,既可以作为其他专业的基础,也可以作为适销对路的技能?
  3. 哪些技能组合是互补的?
  4. 是否有任何专业领域阻碍了您发展其他专业领域的能力。
有帮助吗?

解决方案

Ben,几乎所有经验丰富的程序员仍然是编程专业的学生。当你是一名开发人员时,你永远不会停止学习任何东西。但如果你真的开始了你的职业生涯,那么你应该最不担心专业化的问题。您期望能够在该领域长期存在的所有 API、框架和技能都不会实现。技术似乎发生了很大的变化,你应该具有足够的多才多艺和灵活性来学习任何东西。您在一个平台/API/框架上获得的知识不会消失。您可以将这些技能应用到下一个最伟大的平台/API/框架。

话虽这么说,你应该停止担心未来,专注于基础知识。数据结构、算法分析和设计、编译器设计、操作系统设计是您需要的最基本的东西。此外,您应该愿意在职业生涯中的任何时候回去阅读这些领域的书籍。这就是所需要的全部。祝你好运。

抱歉,如果我听起来像个大屁股顾问;但这就是我的想法。:-)

其他提示

不是直接拒绝你的前提,但我实际上认为成为一名通才在编程中是一个很好的职位。您肯定会在特定领域发展专业知识,但这可能是个人兴趣或工作需要的产物。随着时间的推移,你能够跨语言和问题领域转移的东西是成为优秀程序员的核心。

我认为更重要的问题是:您对哪些专业领域最感兴趣?

一旦了解了,就开始在该领域学习!

我认为最伟大的技能就是适应时代,因为如果你的雇主能够看到你的这种潜力,那么他们会明智地紧紧抓住你。

也就是说,我建议您深入研究您喜欢的领域。 学习是由热情驱动的.

由于我目前的工作是一家互联网提供商,我发现网络知识特别有用。但有一天我想玩 3D 图形(不一定是游戏)。

从一种环境开始,尽可能深入,win32、.net、Java、Objective C...任何。

深入了解 X 的工作原理非常重要……这样,如果您愿意,您可以将相同的概念翻译成其他语言或平台/环境。

“是否有任何专业领域阻碍您发展其他专业领域的能力。”有点,但我认为没有永久的。

由于我自己比较新手(不到 4 年),所以我的思维方式是真正的 OOP。我很少跳出.NET,所以在接触嵌入式代码时我在一份工作中遇到了困难。嵌入式程序员担心对象创建和继承的性能损失。我必须了解环境,严重的内存不足和缓慢的时钟时间,它们是从哪里来的。那是成长的时期,我度过了一段更好的时光,因为我非常了解自己的领域。

我想说,如果你选择专注于市场和金钱的东西,你可能会很快精疲力竭。如果你确实开始专注于选择你喜欢的东西。我喜欢 GUI 编程,讨厌服务器端的东西,我的朋友恰恰相反,但我们都热爱我们的工作。如果他必须做我的工作,而我必须做他的工作,我们都会因为无聊而发疯。

作为一名学生,我建议忘记你正在编程的内容,而专注于软件过程本身。了解如何分析问题并提出正确的问题;尽可能学习每一种设计模式 全部应用 真正理解和欣赏面向对象的设计;编写测试,然后只编写所需的代码以使测试通过。我认为真正学习的最好方法就是尽可能多地编码 - 语言和领域并不重要,浏览 来源锻造鲜肉 任何听起来有趣的项目并参与其中。重要的是了解软件工程的基础知识。

是的,这包括 C.或汇编器。这是很好地了解计算机如何工作以及高级代码实际在做什么的最简单方法。

最后,永远不要停止学习 - 面向服务的架构、控制反转、特定于领域的语言、业务流程管理都显示出巨大的好处,因此了解它们很重要 - 但当您完成学习并加入劳动力队伍时,知道下一件大事会是什么吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top