我应该学习什么以提高自己的技能?

时间:2020-03-05 18:42:14  来源:igfitidea点击:

我作为一名"全职"开发人员的道路表示为分析师,他将VBA与Excel,Access和C#一起使用。当我发现自己对编码而非商业充满热情时,我就去上大学。

我使用C#进行大多数编码,但是作为ASP.NET开发人员,我也用HTML,JavaScript,SQL等编写。 。普通嫌疑犯。

我喜欢不断前进,寻找将使我升到下一个水平,下一份工作,当然还有更多钱的优势。最重要的是,我只想学习新东西并挑战我。

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

解决方案

回答

看看OOAD和UML可能...

哦!和DDD肯定。

(是的,我只需要添加强制性的Wikipedia链接!这是我第一次这样做,现在感觉很脏!)

回答

是的,随着我对软件的了解越来越多,我开始发现自己对语言的关注减少了,而对设计的关注却更多。

是的,我们需要掌握一些框架知识,但是大多数时候(大多数不是全部),我们可以在需要时随时查询。

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

这就是公司真正付出的代价。"建造它,他们就会来"以及所有这些……

回答

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

或者像haskell这样的功能语言呢?

还是写DSL?

或者手机上的应用程序?

回答

随着我们继续在ASP.Net,C#等方面获得更多的经验,最好去参加比赛,看看是否能激发出我们如何在做的事情上做得更好的想法。看一下Rails或者Django之类的东西可能会改变我们设计或者构建应用程序的方式。

回答

如果我们现在精通所使用的语言和技术,则可以开始花费更多时间专注于设计,解决方案体系结构和系统集成。 "更大的图景"将使我们与同时代人区分开。

查阅一些Martin Fowler的书,例如"企业应用程序体系结构模式"或者Eric Evans的"域驱动设计"。

回答

如果我们尚未了解有关可用性(最佳做法,测试等)的信息,请联系。

史蒂夫·克鲁格(Steve Krug)的《别让我思考》是一本好书。雅各布·尼尔森(Jakob Nielsen)总是有很多有趣的东西。

回答

@ Michael DSL =域特定语言

至于我们应该学习什么,这取决于我们感兴趣的内容。

我们是否希望在使用同一媒体(以Web为中心的应用程序)的同时挑战自己?我建议我们学习Apache和LAMP(Linux,Apache,MySQL,PHP)体系结构,并挑战自己来构建一个Web应用程序,我们可以很容易地使用它使用ASP .NET来构建它。

是否想学习完全不同的东西?尝试Prolog或者LISP,看看我们可以使用这些东西做什么。

也许我们想进入嵌入式软件?学习C语言开始。

我们有多种提高技能的方法,每种方法都有自己的职业道路。 (嗯,也许不是Prolog,但这很有趣!)

回答

我们知道的语言越多,市场就越大。查看并查看更流行的(市场,而不是支持者)语言,然后添加一些尚未被广泛使用的尖端技术,并通过一般的编程技巧进行完善。

根据技能,我建议(就语言而言):

  • 以Java为起点
  • 对于.Net,请添加.Net MVC(我们具有LINQ,或者也可以在此处)

语言不可知技能:

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

回答

如果我们想成为最好的人之一,则需要专门研究。如果我们在很多技能上都变得非常优秀,那么我们可能永远都不会真正成为一个优秀的。我知道,因为我本人也走这条路,有时很难找到工作。毕竟,当某人在他们需要的特定事物上表现出色时,谁想要一个能够使用多种语言的人。如果一家公司在Cthen成立,而又想在C方面做得很好但又在C,Visual Basic,Perl和Cobol方面也很出色,那么他们真正想要的就是他们所能负担的最好的Cdeveloper。

毕竟,我们只会受雇于其中一项技能,也许只有两项技能。熟练掌握10或者15种技能的人很少有工作。

如果我们正在寻找一种新技能,那么可以查看一下工作板,找到特别需要的技能,但是要知道,今年月份的风味可能甚至不在明年出现,这将使所有这些学习技能的努力都是徒劳和浪费的。

我要说的是:

  • 做一件事,并做好。这可能包括支持技能(C#,ASP.Net,SQL,LINQ等)。
  • 如果我们想选择其他东西,那么请选择互补的东西。
  • 可能最重要的是,选择我们会喜欢的东西。也许Ruby on Rails是本月的当前风格,但是如果我们不喜欢这样做,那就不要这样做。真的,这不值得。在死床上,我们永远都不会希望自己在不喜欢的事情上做更多的工作。

我们可以查看的另一个方向可能不是特定的开发技能,而是寻找其他东西,例如人事管理等软技能,更好的业务理解,甚至是文学技能,以帮助提高沟通技能。所有这些都将做自己想做的事情,并减少我们真正不喜欢的工作,从而使工作更愉快。

很抱歉在这里胡扯。希望你还清醒:)

回答

这是我的建议:

1)设计模式在某些情况下,它们确实很整洁并且非常有用。

2)AJAX假设我们还没有完成某些工作,那么从我的角度来看,它是Web开发中有趣的一部分。

3)确定我们最喜欢链的哪一部分:前端工作(HTML,CSS,Javascript),中间件(Cfor业务逻辑部分)或者后端(MS-SQL,其中包含存储过程,索引,触发器,以及所有这些东西)。如果所有内容全部包含在内,请尝试将其留在进行Web开发的团队很小的地方,否则可能会要求我们选择。

4)算法设计和分析我们知道各种排序算法吗?我们是否知道创建算法的各种技术,例如贪婪,递归,除法和征服,动态编程,使用自定义数据类型(例如,heapsort中的heap等)。这可能是新的,很酷的。

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