2008-08-22 27 views
8

我的'全职'开发人员的路径指出,使用VBA与Excel,Access,然后到C#的分析师。一旦我发现自己对编码和商业没有兴趣,我就读兼职大学。我使用C#编写大部分代码,但作为ASP.NET开发人员,我也使用HTML,JavaScript,SQL等编写代码。 。普通嫌疑犯。增加技能我该学什么?

我喜欢不断前进,找到能让我更上一层楼,下一份工作,当然还有更多钱的优势。最重要的是我只想学习新东西并挑战我。

我花了很多时间学习LINQ,但想知道下一步该学什么? .NET框架上的东西还是一种新的语言技术?

回答

6

如果你想成为的你需要专注最好的一个。如果你在很多技能方面都非常出色,那么你可能永远不会变得非常出色。我知道,因为我自己走这条路,发现很难有时就业。毕竟,当有人擅长他们需要的特定事物时,谁会想要能够用多种语言工作的人。如果一家公司用C#开发,那么谁会希望有人能够在C#下工作,同时擅长C,Visual Basic,Perl和Cobol,他们真正想要的就是尽可能为C#开发人员提供他们可以负担得起的钱。

毕竟,你只会受雇于一个人,也许你的两个技能。对于拥有10或15个技能的人来说,就业机会非常有限。

如果你正在寻找新的技能,那么也许可以查看一下工作板,找出哪些技能特别需要,但要注意,今年这个月的味道可能不会在明年的现场。 ,这将使所有这些努力学习这种技巧徒劳无益和浪费。

我想说的是:

  1. 做一两件事,并把它做好。这可能包括支持技能(C#,ASP.Net,SQL,LINQ等)。
  2. 如果你想选择别的东西,然后选择一些补充。
  3. 可能最重要的是,选择你会喜欢的东西。也许Ruby on Rails是当前的月份风格,但如果你不喜欢这样做,那么不要这样做。真的,这不值得。你永远不会希望,在你的死亡床上,你在不喜欢的事情上工作得更多。

你可以看看另一个方向是也许不是一个特定的开发技巧,而是看别的东西,也许软技能,如人的管理,更好地对业务的理解,甚至看像文学技巧,以帮助提高你的沟通技能。所有这些都将有助于你做你想做的事,并减少你不喜欢的东西,从而帮助你的工作更加愉快。

在这里的华夫饼的道歉。希望你还醒着:)

+2

尽管我同意你应该专注于一种特定的语言,但我仍然认为,如果你熟悉C和C++等低级语言,它会使你成为C#或Java等更高级语言的更好的程序员......所以我仍然认为你至少应该尝试学习其他语言。除此之外,并非每种语言都适合每一项特定的工作,所以知识越多,您可以申请具体任务的次数就越多......这反过来会使您的工作效率更高,而且这种雇主也是如此。 – 2009-08-12 06:44:23

0

退房OOAD & UML也许......

噢噢噢!和DDD - 绝对。

(是的,我只是在强制性维基百科的链接扔!这是我第一次这样做了,现在我觉得脏!)

2

是啊,我进入软件越多,我开始看到我自己很少被关注的语言和更多的设计..

呀有框架位,我们需要围绕让我们的头,但大部分时间(不是全部),你可以看看那些为向上 - 和 - 当你需要它们时...

但是一个好的设计头?这需要多年的经验,开始得到正确的工作..

而这正是公司真正支付。“构建它,他们会来”和所有...

0

为什么不你交换堆栈并看看LAMP堆栈?

或者像haskell这样的函数式语言怎么样?

或者写一个DSL?

或为你的手机的应用程序?

+0

交换堆栈有什么意义?无论那是哪一个? – 2008-10-08 09:20:55

1

随着您在ASP.Net,C#等方面不断获得更多经验,您最好查看一下竞争情况,看看它是否能激发您如何在自己的工作中做得更好的想法。看看Rails或Django之类的东西可能会改变你在设计或构建应用程序时的看法。

1

如果您现在精通您使用的语言和技术,那么请花更多时间专注于设计,解决方案架构和系统集成。 “更大的图景”将使你与同时代的人分开。

查看一些Martin Fowler的书籍,如“企业应用程序架构模式”或Eric Evans的“领域驱动设计”。

1

也许您可以了解更多关于可用性(最佳实践,测试等)的信息,如果您尚未这样做的话。

史蒂夫克鲁格的“不要让我想”是一本很好的开始。 Jakob Nielsen总是有趣的东西。

0

@迈克尔的DSL = Domain Specific Language

至于你应该学习什么,这取决于你感兴趣的问题。

您是否想要挑战自己住在同一介质,同时(以网络为中心应用程序)?我建议学习Apache和LAMP(Linux,Apache,MySQL,PHP)体系结构,并挑战自己构建一个Web应用程序,您可以使用它随时使用ASP .NET构建它。

想学习完全不同的东西吗?试试PrologLISP,看看你可以用这些做什么。

也许你想进入嵌入式软件?学习C开始。

你有各种各样的方式来提高你的技能,每个人都有他们的职业道路。 (好吧,也许不是Prolog,但它很有趣!)

1

你知道的语言越多,你的市场化程度就越高。看看更流行(市场,而不是粉丝基础)的语言,然后添加一些尖端的技术,但还没有被广泛使用,通过一般的编程技巧。

随着你的技能我建议(只要语言):

  • Java作为一个起点
  • 对于.NET在.NET MVC添加(你有LINQ或会在这里也)

语言无关的技能:

  • 设计模式(包括MVC)
  • 领域驱动设计
  • 测试驱动设计
1

这里将是我的建议:

1)设计模式 - 这是很整洁,以及作为在某些情况下非常有用的。

2)AJAX - 假设你还没有做过这些,我认为这是Web开发中一个有趣的部分。

3)确定您最喜欢哪个链条部分:前端工作(HTML,CSS,Javascript),中间件(用于业务逻辑部分的C#)或后端(带存储过程的MS-SQL ,索引,触发器和所有这些东西)。如果它是全部,那么尽量留在网站开发团队很小的地方,否则你可能会被要求选择。

4)算法设计和分析 - 你知道各种排序算法吗?您是否知道创建算法的各种技术,例如贪婪,递归,分而治之,动态编程,在heapsort中使用像heap这样的自定义数据类型。这可能是新的和酷的。

5)确定是否有你喜欢的开发过程的一部分:分析师,设计师,程序员,测试员,调试员?所有的代码都可以有不同程度的变化,IMO。