C# 我应该学习什么来提高我的技能?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/23391/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What should I learn to increase my skills?
提问by David Basarab
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 或新语言技术上的某些内容?
采纳答案by Xetius
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:
我想说的是:
- do one thing, and do it well. This may include supporting skills (C#, ASP.Net, SQL, LINQ etc).
- If you want to choose something else, then choose something complementary.
- 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.
- 做一件事,并且把它做好。这可能包括支持技能(C#、ASP.Net、SQL、LINQ 等)。
- 如果你想选择别的东西,那就选择互补的东西。
- 可能最重要的是,选择你会喜欢的东西。也许 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 :)
为这里的胡说八道道歉。希望你还醒着:)
回答by Rob Cooper
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 ( mostnot 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...
这就是公司真正支付的费用......“建造它,他们就会来”等等......
回答by Johnno Nolan
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?
或者你的手机的应用程序?
回答by RyanBrady
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 之类的东西可能会改变你对设计或构建应用程序的看法。
回答by Ian Nelson
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 的“领域驱动设计”。
回答by upheaval
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 Nielsenalways has interesting stuff as well.
史蒂夫克鲁格的“不要让我思考”是一本很好的书。 Jakob Nielsen 也总是有有趣的东西。
回答by Marc Reside
@ 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.
您是否希望在保持相同媒介(以 Web 为中心的应用程序)的同时挑战自己?我建议学习 Apache 和 LAMP(Linux、Apache、MySQL、PHP)架构,并挑战自己构建一个 Web 应用程序,您可以使用它轻松地使用 ASP .NET 构建。
Want to learn something completely different? Try Prologor LISPand 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,但它很有趣!)
回答by Carlton Jenke
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
- For .Net add in the .Net MVC (you have LINQ or that would be here also)
- Java 作为起点
- 对于 .Net 在 .Net MVC 中添加(你有 LINQ 或者那也会在这里)
Language agnostic skills:
语言不可知的技能:
- Design Patterns (includes the MVC)
- Domain Driven Design
- Test Driven Design
- 设计模式(包括 MVC)
- 领域驱动设计
- 测试驱动设计
回答by JB King
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。