我们会向初学者推荐编程的哪些专业领域
我是一名学习软件开发的学生,总的来说,我觉得编程是一个太宽泛的学科,无法尝试了解所有知识。要精通,必须决定要重点学习和理解的领域。某些技能组合可以相互协作,例如数据驱动的Web开发和SQL经验。但是,世界上所有的win32 API经验可能都不直接适用于linux开发。这使我相信,作为一个入门的程序员,在对软件开发的基本原理有了一般的了解之后,我应该开始确定我想专门研究的领域。
确实,这是一个包含多个部分的问题:
- 计算机编程和软件开发中的常见专业是什么?
- 作为其他专业的基础和/或者适销对路的技能,这些专业中的哪一个具有更长期的价值?
- 哪些技能相辅相成?
- 是否有任何专业领域阻碍我们发展其他专业领域的能力。
解决方案
回答
不要直接拒绝前提,但实际上,我认为成为通才是编程中的好位置。我们肯定会在特定领域积累专业知识,但它可能是出于个人兴趣或者工作需要的产物。随着时间的流逝,我们能够跨语言和问题域转移的内容是成为优秀程序员的核心。
回答
我认为更重要的问题是:我们最感兴趣的专业领域是什么?
一旦知道,就可以开始在该领域学习!
回答
Ben,几乎所有经验丰富的程序员仍然是编程的学生。当我们是开发人员时,我们永远都不会停止学习任何东西。但是,如果我们真的是从事业开始,那么我们应该最不用担心专业化的事情。我们期望能够在现场长期存在的所有API,框架和技能都不会发生。技术似乎发生了很大变化,我们应该具有足够的多功能性和灵活性来学习任何东西。我们在一个平台/ api /框架上获得的知识不会消失。我们可以将技能应用到下一个最佳平台/ API /框架。
话虽这么说,我们应该不再担心未来,而应专注于基础知识。数据结构,算法分析和设计,编译器设计,操作系统设计是我们所需的最低限度的知识。而且,我们应该在职业生涯中的任何时候都愿意回去阅读那些领域的书籍。仅此而已。祝你好运。
对不起,如果我听起来像个大屁股顾问;但这就是我的想法。 :-)
回答
我认为所有人中最伟大的技能就是与时俱进,因为如果雇主看到了这种潜能,那么明智的做法就是紧紧抓住。
就是说,我建议我们潜入自己喜欢的区域。学习是由热情驱动的。
由于我目前的工作是与互联网提供商合作,因此我发现网络知识特别有用。但是总有一天我想玩3D图形(不一定是游戏)。
回答
尽可能深入地从一个环境开始,即Win32,.net,Java,Objective C ...等。
对X的工作原理有深刻的了解是很重要的……以便我们可以根据需要将相同的概念转换为其他语言或者平台/环境。
"是否有任何专业领域阻碍我们发展其他专业领域的能力。"有点,但我认为没有永久的。
因为我自己比较环保(不到4年),所以我来自真正的OOP心态。我很少跳出.NET,因此在接触嵌入式代码时,我很难完成一项工作。嵌入式程序员担心对象创建和继承的性能损失。我必须学习环境,它们来自何处,严重的内存不足和时钟速度慢。那是成长的时代,我在这里度过了美好的时光,因为我非常了解自己所在的地区。
我要说的是,如果我们选择一些专门针对市场和金钱的东西,我们可能很快就会筋疲力尽。如果我们开始专注于专业,请选择我们喜欢的东西。我喜欢GUI编程,讨厌服务器端的东西,我的朋友是相反的,但是我们俩都喜欢我们的工作。如果他必须和我一起完成我的工作,我们都会出于无聊而发疯。
回答
作为一名学生,我建议我们忘记我们正在编程的内容,而专注于软件过程本身。了解如何分析问题并提出正确的问题;学习我们可以使用的每种设计模式,并实际应用它们,以真正理解和欣赏面向对象的设计;编写测试,然后仅编写所需数量的代码以使测试通过。我认为,真正学习的最好方法是尽可能多地编写代码,而语言和领域并不重要,浏览sourceforge和freshmeat来查找任何有趣的项目并参与其中。重要的是了解软件工程的基础知识。
是的,这包括C.或者汇编程序。这是了解计算机的工作方式以及高级代码实际运行情况的最简单方法。
最后,永远都不要停止学习面向服务的体系结构,控制反转,特定领域的语言,业务流程管理,这些都显示出巨大的好处,因此必须意识到它们的重要性。下一件大事将会是?