我应该学习啥来提高我的技能? [关闭]

Posted

技术标签:

【中文标题】我应该学习啥来提高我的技能? [关闭]【英文标题】:What should I learn to increase my skills? [closed]我应该学习什么来提高我的技能? [关闭] 【发布时间】:2010-09-06 14:35:02 【问题描述】:

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

我的大部分代码都是用 C# 编写的,但作为一名 ASP.NET 开发人员,我也使用 htmljavascript、SQL 等编写代码。 .通常的嫌疑人。

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

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

【问题讨论】:

【参考方案1】:

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

毕竟,你只会因为一项,也许是两项技能而受雇。很少有工作适合擅长 10 或 15 项技能的人。

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

我想说的是:

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

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

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

【讨论】:

虽然我同意你应该专注于一种特定的语言,但我仍然认为,如果你精通 C 和 C++ 等低级语言,它将使你成为更高级语言的更好程序员,比如C# 或 Java...所以我仍然认为您至少应该尝试学习其他语言。除此之外,并不是每一种语言都适合每一种特定的工作,所以知道的越多,你就越能申请特定的任务……这反过来会提高你的工作效率,当然雇主也喜欢这样。 我同意专业化很重要,但我并不完全同意你的看法。我曾在一家分析公司的数据采集小组工作,我们小组拥有适用于所有移动平台(仅 3 种语言和 4 个运行时环境)以及 C#、C++、Java 和 JavaScript 项目的 SDK。任何具有真正良好基础的开发人员都应该能够很快地精通任何语言/运行时。我仍然认为您应该专注于软件,但对软件的深刻理解比例如熟悉 .NET 更有价值。我仍然会鼓励人们学习多种语言。【参考方案2】:

是的,我对软件的了解越多,我开始发现自己对语言的关注越少,而对设计的关注越多。..

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

Steve Krug 的“Don't Make Me Think”是一本好书。 Jakob Nielsen 也总是有有趣的东西。

【讨论】:

【参考方案6】:

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

根据您的技能,我会推荐(就语言而言):

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

语言无关技能:

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

【讨论】:

【参考方案7】:

以下是我的建议:

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

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

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

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

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

【讨论】:

【参考方案8】:

@迈克尔 DSL=Domain Specific Language

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

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

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

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

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

【讨论】:

【参考方案9】:

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

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

还是写一个 DSL?

还是手机应用?

【讨论】:

交换堆栈有什么意义?不管是哪一个?

以上是关于我应该学习啥来提高我的技能? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我可以做些啥来提高 Lua 程序的性能?

我正在运行一个 REST API 服务器,但我不太确定基础架构。另外,我可以做些啥来基准测试和提高速度?

Java程序员2021年应该学习的11项技能

为什么学习开源可以提高程序员的编程技能?

我应该使用哪个 PHP 操作码缓存器来提高性能? [关闭]

编程心灵鸡汤-程序员除了技术的提高,软实力也很重要24条建议