多样化编程知识

时间:2009-12-09 10:33:16

标签: language-agnostic

我参加了课程,学习,甚至自己开发了一些,但到目前为止,我只使用过Microsoft技术,直到现在我都没有遇到任何问题。 我最近在一家微软黄金合作伙伴公司找到了一份工作,用于C#,VB.net和asp.net的开发。

我想了解如何实现多样化,学习Microsoft以外的技术。没有必要找到另一份工作,我认为我的工作只适合我当前的兴趣。我认为通过自己学习其他语言,框架,数据库......我可能会成为一个更好的程序员整体而且(也许)在最后我们都有更多的工作机会选择,选择我将要工作的用。

我应该从什么开始?我应该怎么做?

8 个答案:

答案 0 :(得分:4)

如果您对C#和VB感到满意,请学习使用不同范例的语言。通常的嫌疑人是Ruby,Erlang,Haskell,Lisp。所有这些都适用于Windows和其他平台。您可能必须习惯使用不同的工具与它们进行交互,但这不一定是件坏事。

答案 1 :(得分:4)

冒着听起来陈腐的风险,为什么不在便宜的台式机上安装一些Linux版本呢?仅仅设置Linux机器的行为就是教育性的。

一旦找到了解决方法,就可以执行一些shell脚本并安装Web服务器之类的东西。这应该会让你忙一阵子。一旦你通过它,玩一些动态语言,如perl,ruby,python,PHP等。

答案 2 :(得分:3)

如果您对其他语言感兴趣,请选择一个,然后离开。听起来你有足够的经验可以使用另一种语言。

如果您正在研究一种新的桌面开发语言,那么我建议使用JavaPython,这两种方法都可以让您轻松使用C#和VB.NET体验。

如果您正在研究网络编程,请转到PHP

  • 浏览一些来源 例子,看看有什么能吸引你的 眼睛是最有趣的。
  • 拿起一本关于那种语言的书。

答案 3 :(得分:2)

理想情况下,人们应该知道每个主要“范例”中的至少一个例子:

  • 装配(现在是一种垂死的艺术,而不是那么有用)
  • plain C
  • C的OO变体之一(C ++,目标C)
  • Java或C#(它们非常相似,可能不需要同时学习)
  • 像Ruby或Perl这样的脚本语言
  • Javascript(最好通过Crockford's book
  • 一种非纯函数式语言,例如Scheme(PLT Scheme是一个很好的学习环境)
  • 像Haskell或OCAML这样的纯函数语言
  • Erlang(有点属于自己的一类)
  • 数学/统计语言,如R或J(APL-successor)

答案 4 :(得分:1)

微软的技术开始并不坏。我的建议是:

确保您获得有关编程基础和所用技术的完整知识。你知道的基础知识越多,你对最新潮流的独立性就越大:

  • 阅读“Windows Internals”以了解您正在使用的操作系统。在此过程中,您将更好地了解其他操作系统。

  • 玩弄其他语言。了解静态类型语言和风管类型语言,函数式编程语言,迭代编程语言之间的差异。

  • 尽可能学习您使用的语言。成为John Skeet!

换句话说,不要先侧身移动。深入挖掘,更好地理解你的工作。

答案 5 :(得分:0)

http://sf.net上的开源程序相关联将是一个不错的主意。这样你甚至可以学习新平台并生成一些合法的代码。您还可以看一些好的编码实践。最后但并非最不重要的一些回馈软件社区

答案 6 :(得分:0)

也许想一个在日常生活中会对你有用的项目,看看你是否可以用合适的语言来开发它。这样你就有了一个目标,在项目结束时你会有一些有用的东西。

或者,为什么不尝试学习不直接编程相关的东西,项目管理可能会用于未来的角色,或者做一些关于技术历史的阅读。

这些不会在您的简历中添加任何新语言,但它们可能会为您的思维添加一些不同的方面,这些方面可能会使您成为更全面的潜在员工。

答案 7 :(得分:0)

我认为有两个主要方向:

  • 特定技术。根据您想要扩展自己的方式,新语言(如果您还没有编写脚本,可能是函数编程)或新技术(例如,UI编程或低级网络编程,取决于您的避风港)来选择这些已经完成了,或者是新的操作系统(如果你是Windows用户,那就是Linux)。
  • 或者,查看更高级别的问题,例如设计方法和团队组织。阅读布鲁克斯的“神话人月”和“贝克的极端编程”等书籍。考虑如何处理一个人可以解决的更大的问题。阅读(Rational)统一过程,UML。探索修订控制系统,测试技术,不仅仅是单元测试,还有其他风味。想想如果你是领导者,你将如何组织一个团队。如何细分任务,如何管理沟通?