9

我的“全职”开发之路——作为分析师使用 VBA 和 Excel、Access,然后是 C#。一旦我发现我对编码而不是商业充满热情,我就上了大学。

我用 C# 编写大部分代码,但作为一名 ASP.NET 开发人员,我也使用 HTML、JavaScript、SQL 等编写代码。. 普通嫌疑犯。

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

我最近花了一些时间学习 LINQ,但想知道接下来我应该学习什么?.NET Framework 或新的语言技术?

4

9 回答 9

6

如果你想成为最好的人之一,你需要专攻。如果您在许多技能上都变得非常出色,那么您可能永远不会真正成为出色的技能。我知道,因为我自己走这条路,发现有时很难找到工作。毕竟,当有人擅长他们需要的特定事物时,谁会想要一个精通多种语言的人。如果一家公司使用 C# 开发,那么谁会想要一个既擅长 C#,又擅长 C、Visual Basic、Perl 和 Cobol 的人,而他们真正想要的只是他们能负担得起的最好的 C# 开发人员。

毕竟,你只会被聘用一项,也许是两项技能。很少有工作适合擅长 10 或 15 项技能的人。

如果您正在寻找一项新技能,那么也许可以查看工作委员会并找到特别需要哪些技能,但请注意,今年的月份可能甚至明年都不会出现,这将使所有学习技能的努力都是徒劳和浪费的。

我想说的是:

  1. 做一件事,把它做好。这可能包括支持技能(C#、ASP.Net、SQL、LINQ 等)。
  2. 如果你想选择别的东西,那就选择互补的东西。
  3. 可能最重要的是,选择你会喜欢的东西。也许 Ruby on Rails 是本月当前的风格,但如果您不喜欢这样做,那就不要这样做。真的,这不值得。在临终前,你永远不会希望自己在不喜欢的事情上工作得更多。

您可以考虑的另一个方向可能不是特定的开发技能,而是寻找其他东西,可能是诸如人员管理之类的软技能,更好的业务理解,甚至寻找文学技能之类的东西来帮助提高您的沟通技巧。所有这些都将有助于让你做更多你想做的事情,并减少你真正不喜欢的事情,从而帮助你的工作更愉快。

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

于 2008-08-22T21:13:22.213 回答
2

是的,我越是接触软件,我开始发现自己越来越少关注语言,而更多地关注设计......

是的,我们需要了解一些框架位,但大多数时候(不是全部)您可以在需要时查找它们。

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

这就是公司真正付出的代价......“建造它,他们就会来”等等......

于 2008-08-22T20:30:30.070 回答
1

随着您继续在 ASP.Net、C# 等方面获得更多经验 - 去看看比赛并看看它是否激发了关于如何在您正在做的事情中做得更好的想法总是好的。看看 Rails 或 Django 之类的东西可能会改变您对设计或构建应用程序的看法。

于 2008-08-22T20:34:37.063 回答
1

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

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

于 2008-08-22T20:37:35.823 回答
1

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

史蒂夫克鲁格的“别让我思考”是一本好书。 雅各布尼尔森也总是有有趣的东西。

于 2008-08-22T20:38:19.817 回答
1

你知道的语言越多,你就越有市场。看看更流行的(市场而非粉丝群)语言是什么,然后添加一些尚未大量使用的尖端技术,并通过一般编程技能进行完善。

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

  • 以 Java 为起点
  • 对于 .Net 添加 .Net MVC(你有 LINQ 或者也可以在这里)

语言无关技能:

  • 设计模式(包括 MVC)
  • 领域驱动设计
  • 测试驱动设计
于 2008-08-22T20:53:18.157 回答
1

以下是我的建议:

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

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

3) 确定你最喜欢链的哪些部分:前端工作(HTML、CSS、Javascript)、中间件(业务逻辑部分的 C#)或后端(带有存储过程、索引、触发器的 MS-SQL ,以及所有这些东西)。如果这就是全部,那么请尽量留在进行 Web 开发的团队规模较小的地方,否则可能会要求您做出选择。

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

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

于 2008-10-24T18:30:17.460 回答
0

@Michael DSL=领域特定语言

至于你应该学什么,那就看你对什么感兴趣了。

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

想学习完全不同的东西吗?试试PrologLISP,看看你能用它们做什么。

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

您有多种方法来提高您的技能,并且每种方法都有与之相关的职业道路。(好吧,也许不是 Prolog,但它很有趣!)

于 2008-08-22T20:51:40.847 回答
-1

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

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

或者写一个DSL?

还是手机的应用程序?

于 2008-08-22T20:31:17.820 回答