我应该学习什么来提高我的技能?

时间:2008-08-22 20:25:46

标签: c# .net

我的“全职”开发人员的道路是使用VBA与Excel,Access,再到C#的分析师。一旦我发现我对编码而不是生意有兴趣,我就去大学做兼职。

我在C#中编写了大部分编码,但作为一名ASP.NET开发人员,我也用HTML,JavaScript,SQL等编写。 。通常的嫌疑人。

我喜欢继续前进找到将我提升到下一个级别,下一份工作,当然还有更多钱的优势。最重要的是,我只想学习新的东西并挑战我。

我最近花了很多时间学习LINQ,但是想知道接下来我应该学什么? .NET Framework上的东西还是新的语言技术?

10 个答案:

答案 0 :(得分:6)

如果你想成为最需要专业化的人之一。如果你在许多技能方面变得非常出色,那么你可能永远不会变得非常出色。我知道,因为我自己采取了这条路线,并且发现很难找到工作。毕竟,当有人擅长他们需要的特定事物时,谁想要能够使用多种语言的人。如果一个公司在C#中开发,那么谁会想要一个对C#好的人,但又擅长C,Visual Basic,Perl和Cobol,当他们真正想要的是他们能够负担得起的最好的C#开发人员时。 p>

毕竟,你只会被雇用一个,也许两个你的技能。对于10或15种技能都很好的人来说,工作很少。

如果你正在寻找一项新技能,那么可以查看工作板并找出特别需要的技能,但要注意今年的月份可能不会出现在今年的情况,这将使所有这些努力学习技能徒劳无益。

我要说的是:

  1. 做一件事,做得好。这可能包括支持技能(C#,ASP.Net,SQL,LINQ等)。
  2. 如果你想选择别的东西,那就选择一些互补的东西。
  3. 可能最重要的是,选择你会喜欢的东西。也许Ruby on Rails是本月的当前风格,但如果你不喜欢这样做,那就不要这样做了。真的,这不值得。在你的死亡床上,你永远不会希望你在你不喜欢的事情上工作得更多。
  4. 你可以看到的另一个方向可能不是特定的开发技能,而是寻找其他东西,也许是软技能,如人员管理,更好的商业理解,甚至寻找类似文学技能的东西,以帮助提高你的沟通技巧。所有这些都有助于你做你想做的事情,减少你真正不喜欢的东西,从而有助于让你的工作更有乐趣。

    为这里的胡扯道歉。希望你还醒着:)

答案 1 :(得分:2)

是的,我进入软件的次数越多,我开始认为自己更少关注语言,而更多关注设计......

是的,我们需要有一些框架位,但大部分时间(大多数不是全部)你可以在需要时查看它们。

但是一个好的设计头?这需要多年的经验才能使其正常运作..

这就是公司真正付出的代价......“建立并且他们会来”以及所有......

答案 2 :(得分:1)

随着您继续在ASP.Net,C#等方面获得更多经验 - 去看看比赛总是好的,看看它是否会激发你如何在你正在做的事情上做得更好的想法。看看像Rails或Django这样的东西可能会改变你设计或构建应用程序的方式。

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

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

Steve Krug的“不要让我思考”是一本很好的书。 Jakob Nielsen总是有趣的东西。

答案 5 :(得分:1)

您知道的语言越多,您就越有市场。看一下比较流行的(市场的,不是粉丝群)语言是什么,然后添加一些尚未广泛使用的尖端技术,通过一般编程技巧完善。

凭借你的技能,我建议(就语言而言):

  • Java作为起点
  • .Net MVC中添加了.Net MVC(你有LINQ或者也会在这里)

语言无关技能:

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

答案 6 :(得分:1)

以下是我的建议:

1)设计模式 - 这些模式非常简洁,在某些情况下非常有用。

2)AJAX - 假设你还没有完成其中的一些工作,从我看来,这是Web开发的一个有趣部分。

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

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

5)确定您是否支持开发过程的一部分:分析师,设计师,程序员,测试人员,调试人员?所有人都可以在不同程度上接近代码,IMO。

答案 7 :(得分:0)

查看OOAD& UML也许......

噢噢!而且DDD - 肯定。

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

答案 8 :(得分:0)

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

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

还是写一个DSL?

还是手机的应用程序?

答案 9 :(得分:0)

@ Michael DSL = Domain Specific Language

至于你应该学什么,这取决于你感兴趣的东西。

您是否希望在保持相同媒介(以网络为中心的应用程序)的同时挑战自己?我建议学习Apache和LAMP(Linux,Apache,MySQL,PHP)架构,并挑战自己构建一个Web应用程序,您可以使用ASP .NET轻松构建它。

想要学到完全不同的东西吗?试试PrologLISP,看看你能用这些做些什么。

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

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