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

时间:2021-08-26 01:25:55

My path to a 'fulltime'- developer stated as a analyst using VBA with Excel, Access, and then onto C#. I went to college part time once I discovered I had a passion for coding not business.

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

I do about most of my coding in C#, but being an ASP.NET developer I also write in HTML, JavaScript, SQL etc. . . the usual suspects.

我在C#中编写了大部分编码,但作为ASP.NET开发人员,我还使用HTML,JavaScript,SQL等编写。 。普通嫌疑犯。

I like to keep moving forward find the edge that will get me to the next level, the next job, and of course more money. Most importantly I just want to learning something new and challenge me.

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

I have spent time recently learning LINQ, but was wondering what should I learn next? Something on the .NET Framework or a new language technology?

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

10 个解决方案

#1


6  

If you want to be one of the best you need to specialise. If you become very good in many skills then you may never become truly excellent in one. I know because I have taken this route myself and have found it difficult to get employment at times. After all, who wants someone who is capable at many languages when there is someone who excels at the specific thing they need. If a company develops in C# then who would want someone who is OK at C# but also is good at C, Visual Basic, Perl and Cobol, when all they really want is the best possible C# developer for the money they can afford.

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

After all, you will only ever be employed for one, maybe two of your skills. There are very few jobs for people who are good in 10 or 15 skills.

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

If you are looking to a new skill then maybe check out the job boards and find which skills are particularly in need, but be aware that what is the flavour of the month this year may not even be on the scene next year, which will make all of that effort to learn the skill futile and wasted.

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

What I would say is:

我要说的是:

  1. do one thing, and do it well. This may include supporting skills (C#, ASP.Net, SQL, LINQ etc).
  2. 做一件事,做得好。这可能包括支持技能(C#,ASP.Net,SQL,LINQ等)。

  3. If you want to choose something else, then choose something complementary.
  4. 如果你想选择别的东西,那就选择一些互补的东西。

  5. Possibly most importantly, choose something you will enjoy. Maybe Ruby on Rails is the current flavour of the month, but if you don't enjoy doing it, then don't do it. Really, it's not worth it. You will never wish, on your death bed, that you had worked more in something you didn't enjoy.
  6. 可能最重要的是,选择你会喜欢的东西。也许Ruby on Rails是本月的当前风格,但如果你不喜欢这样做,那么就不要这样做。真的,这不值得。在你的死亡床上,你永远不会希望你在你不喜欢的事情上工作得更多。

Another direction you could look at is maybe not for a particular development skill, but look for something else, maybe soft skills like people management, better business understanding or even look to something like literary skills to help improve your communications skills. All of these will help to allow you to do what you want to do more, and cut down on the stuff you really don't enjoy, thus helping to make your job more enjoyable.

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

Apologies for the waffling here. Hope you are still awake :)

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

#2


2  

Yeah, the more I get into software, I start to see myself focusing less on the language and more on the design..

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

Yeah there are framework bits we need to get our head around but most of the time ( most not all ) you can look those up as-and-when you need them..

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

But a good design head? That takes years of experience to start getting it working right..

但一个好的设计头?这需要多年的经验才能让它正常工作..

And that is what the companies really pay for.. "Build it and they will come" and all that...

这就是公司真正付出的代价......“建立它,它们会来”,所有......

#3


1  

As you continue to gain more experience in ASP.Net, C#, etc - it's always good to go check out the competition and see if it sparks ideas on how you can do things better in what you're doing. Taking a look at something like Rails or Django might change how you look at designing or building your apps.

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

#4


1  

If you're now proficient with the languages and technologies you use, then start spending more time focusing on the design, solution architecture, and systems integration. The "bigger picture" that will set you apart from your contemporaries.

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

Check out some Martin Fowler books like "Patterns of Enterprise Application Architecture", or Eric Evans' "Domain-Driven Design".

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

#5


1  

Maybe learn more about Usability (best practices, testing, etc.) if you haven't already done so.

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

Steve Krug's "Don't Make Me Think" is a good book to start with. Jakob Nielsen always has interesting stuff as well.

Steve Krug的“不要让我思考”是一本很好的书。雅各布尼尔森也总是有趣的东西。

#6


1  

The more languages you know, the more marketable you are. Look and see what the more popular (market for, not fan base) languages are, then add on some cutting edge tech that is not in much use yet, rounded out by general programming skill.

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

With your skill set I would recommend (as far as languages):

有了你的技能,我建议(就语言而言):

  • Java as a starting point
  • Java作为起点

  • For .Net add in the .Net MVC (you have LINQ or that would be here also)
  • 对于.Net添加.Net MVC(你有LINQ或者也会在这里)

Language agnostic skills:

语言无关技能:

  • Design Patterns (includes the MVC)
  • 设计模式(包括MVC)

  • Domain Driven Design
  • 领域驱动设计

  • Test Driven Design
  • 测试驱动设计

#7


1  

Here would be my suggestions:

这是我的建议:

1) Design Patterns - These are really neat as well as being very useful in some situations.

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

2) AJAX - Assuming you haven't already done some of this, it is an interesting part of Web Development from my view.

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

3) Determine which parts of the chain do you enjoy the most: Front-end work(HTML, CSS, Javascript), middleware(C# for business logic parts), or back-end(MS-SQL with stored procedures, indexes, triggers, and all that stuff). If it is all of it then try to stay where the team doing web development is small as otherwise you may be asked to choose.

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

4) Algorithm design and analysis - Do you know various sorting algorithms? Do you know various techniques to create an algorithm, e.g. greedy, recursion, divide and conquer, dynamic programming, using custom data types like heap in heapsort etc. This can be new and cool.

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

5) Determine if there is a part of the development process you favor: Analyst, designer, programmer, tester, debugger? All can have varying degrees of being near the code, IMO.

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

#8


0  

Check out OOAD & UML maybe...

查看OOAD和UML可能......

Ooo! And DDD - definitely.

噢噢噢!和DDD - 绝对。

(Yes, I just had to throw in the obligatory Wikipedia links! It is my first time doing so, and now I feel dirty!)

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

#9


0  

Why don't you swap stacks and look at the LAMP stack?

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

Or how about a functional language like haskell?

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

Or write a DSL?

还是写一个DSL?

Or an app for your phone?

或者手机的应用程序?

#10


0  

@ Michael DSL=Domain Specific Language

@ Michael DSL =领域特定语言

As for what you should learn, that depends on what you're interested in.

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

Are you looking to challenge yourself while staying in the same medium (web-centric applications)? I would suggest learning about Apache and the LAMP (Linux, Apache, MySQL, PHP) architecture and challenge yourself to build a web application that you could readily build with ASP .NET using it.

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

Want to learn something completely different? Try Prolog or LISP and see what you can do with those.

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

Maybe you'd like to get into embedded software? Learn C to start.

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

You have a wide variety of ways to improve your skills, and each one has career paths attached to them. (Well, maybe not Prolog, but it's fun!)

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

#1


6  

If you want to be one of the best you need to specialise. If you become very good in many skills then you may never become truly excellent in one. I know because I have taken this route myself and have found it difficult to get employment at times. After all, who wants someone who is capable at many languages when there is someone who excels at the specific thing they need. If a company develops in C# then who would want someone who is OK at C# but also is good at C, Visual Basic, Perl and Cobol, when all they really want is the best possible C# developer for the money they can afford.

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

After all, you will only ever be employed for one, maybe two of your skills. There are very few jobs for people who are good in 10 or 15 skills.

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

If you are looking to a new skill then maybe check out the job boards and find which skills are particularly in need, but be aware that what is the flavour of the month this year may not even be on the scene next year, which will make all of that effort to learn the skill futile and wasted.

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

What I would say is:

我要说的是:

  1. do one thing, and do it well. This may include supporting skills (C#, ASP.Net, SQL, LINQ etc).
  2. 做一件事,做得好。这可能包括支持技能(C#,ASP.Net,SQL,LINQ等)。

  3. If you want to choose something else, then choose something complementary.
  4. 如果你想选择别的东西,那就选择一些互补的东西。

  5. Possibly most importantly, choose something you will enjoy. Maybe Ruby on Rails is the current flavour of the month, but if you don't enjoy doing it, then don't do it. Really, it's not worth it. You will never wish, on your death bed, that you had worked more in something you didn't enjoy.
  6. 可能最重要的是,选择你会喜欢的东西。也许Ruby on Rails是本月的当前风格,但如果你不喜欢这样做,那么就不要这样做。真的,这不值得。在你的死亡床上,你永远不会希望你在你不喜欢的事情上工作得更多。

Another direction you could look at is maybe not for a particular development skill, but look for something else, maybe soft skills like people management, better business understanding or even look to something like literary skills to help improve your communications skills. All of these will help to allow you to do what you want to do more, and cut down on the stuff you really don't enjoy, thus helping to make your job more enjoyable.

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

Apologies for the waffling here. Hope you are still awake :)

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

#2


2  

Yeah, the more I get into software, I start to see myself focusing less on the language and more on the design..

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

Yeah there are framework bits we need to get our head around but most of the time ( most not all ) you can look those up as-and-when you need them..

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

But a good design head? That takes years of experience to start getting it working right..

但一个好的设计头?这需要多年的经验才能让它正常工作..

And that is what the companies really pay for.. "Build it and they will come" and all that...

这就是公司真正付出的代价......“建立它,它们会来”,所有......

#3


1  

As you continue to gain more experience in ASP.Net, C#, etc - it's always good to go check out the competition and see if it sparks ideas on how you can do things better in what you're doing. Taking a look at something like Rails or Django might change how you look at designing or building your apps.

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

#4


1  

If you're now proficient with the languages and technologies you use, then start spending more time focusing on the design, solution architecture, and systems integration. The "bigger picture" that will set you apart from your contemporaries.

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

Check out some Martin Fowler books like "Patterns of Enterprise Application Architecture", or Eric Evans' "Domain-Driven Design".

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

#5


1  

Maybe learn more about Usability (best practices, testing, etc.) if you haven't already done so.

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

Steve Krug's "Don't Make Me Think" is a good book to start with. Jakob Nielsen always has interesting stuff as well.

Steve Krug的“不要让我思考”是一本很好的书。雅各布尼尔森也总是有趣的东西。

#6


1  

The more languages you know, the more marketable you are. Look and see what the more popular (market for, not fan base) languages are, then add on some cutting edge tech that is not in much use yet, rounded out by general programming skill.

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

With your skill set I would recommend (as far as languages):

有了你的技能,我建议(就语言而言):

  • Java as a starting point
  • Java作为起点

  • For .Net add in the .Net MVC (you have LINQ or that would be here also)
  • 对于.Net添加.Net MVC(你有LINQ或者也会在这里)

Language agnostic skills:

语言无关技能:

  • Design Patterns (includes the MVC)
  • 设计模式(包括MVC)

  • Domain Driven Design
  • 领域驱动设计

  • Test Driven Design
  • 测试驱动设计

#7


1  

Here would be my suggestions:

这是我的建议:

1) Design Patterns - These are really neat as well as being very useful in some situations.

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

2) AJAX - Assuming you haven't already done some of this, it is an interesting part of Web Development from my view.

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

3) Determine which parts of the chain do you enjoy the most: Front-end work(HTML, CSS, Javascript), middleware(C# for business logic parts), or back-end(MS-SQL with stored procedures, indexes, triggers, and all that stuff). If it is all of it then try to stay where the team doing web development is small as otherwise you may be asked to choose.

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

4) Algorithm design and analysis - Do you know various sorting algorithms? Do you know various techniques to create an algorithm, e.g. greedy, recursion, divide and conquer, dynamic programming, using custom data types like heap in heapsort etc. This can be new and cool.

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

5) Determine if there is a part of the development process you favor: Analyst, designer, programmer, tester, debugger? All can have varying degrees of being near the code, IMO.

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

#8


0  

Check out OOAD & UML maybe...

查看OOAD和UML可能......

Ooo! And DDD - definitely.

噢噢噢!和DDD - 绝对。

(Yes, I just had to throw in the obligatory Wikipedia links! It is my first time doing so, and now I feel dirty!)

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

#9


0  

Why don't you swap stacks and look at the LAMP stack?

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

Or how about a functional language like haskell?

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

Or write a DSL?

还是写一个DSL?

Or an app for your phone?

或者手机的应用程序?

#10


0  

@ Michael DSL=Domain Specific Language

@ Michael DSL =领域特定语言

As for what you should learn, that depends on what you're interested in.

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

Are you looking to challenge yourself while staying in the same medium (web-centric applications)? I would suggest learning about Apache and the LAMP (Linux, Apache, MySQL, PHP) architecture and challenge yourself to build a web application that you could readily build with ASP .NET using it.

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

Want to learn something completely different? Try Prolog or LISP and see what you can do with those.

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

Maybe you'd like to get into embedded software? Learn C to start.

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

You have a wide variety of ways to improve your skills, and each one has career paths attached to them. (Well, maybe not Prolog, but it's fun!)

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