索引怎么变北京?

都朝阳都朝阳最佳答案最佳答案

今天偶然发现一个有趣的提问,于是特意写了这个答案。 这个问题其实有些无解....或者说很难有令人满意的答案 因为问题的本质是“如何评价一种语言的好坏” 而这种问题本来就难以回答(否则Java和C#也不会这么像了) 但这里可以讨论一下哪种语言更适合什么场景之类的问题。

先给出结论:对于编程语言的选择,考虑的因素无非两个:一个是所涉及的技术是否成熟;另一个就是所选择的语言本身是否能够很好地表达这些问题。(当然还有成本等问题,但在这里不是关键因素) 对于第一个因素,往往是需要大量实践后才能积累经验。而对于第二种因素则可以利用已有的知识体系来进行评估。

在一般情况下我们都会建议先选择技术成熟的语言来作为入门语言。因为这样做可以大大降低尝试新技术的成本,而把代价尽可能减小到最低程度。但如果要深入地研究一门语言,则很可能面临这种语言的许多细节都需要重新学习的情况! 这是一种两难的选择,但往往能同时兼顾这两种因素。 比如在学习Java的时候,往往会先学到Java的语法、基本的数据类型等这类较为“通用”的知识。而在对这些基础知识掌握后,就可以开始进行实际的项目练习。在项目练习中往往会接触到各种设计模式、各种复杂的数据结构以及各种性能优化的方法,而这些知识则是需要在具体的应用场景中边学边练才能逐步掌握的。

通过这种方式,可以在熟悉语言的基本用法的同时也能学习到该语言比较“高级”的知识。 在学习C#时也是如此,先在基础的ASP.NET MVC框架下学习C#的基础知识和常用类库的使用方法,然后过渡到WPF、WinForms等较复杂的框架,然后在具体的框架下学习相关的设计模式、数据结构和算法等“高级”知识点。

所以,如果在学习一种新的语言的过程中,能够遇到大量的类似“如何用X语言完成Y任务”这样的问题的话,那么说明该语言已经比较接近于完成某个具体任务的工具了。这时候再结合相关技术的发展状况做出选择,往往就能达到理想的结果。 如果面对众多的新技能不知所措,可以先回顾一下自己以前学到的相关知识,看看是否有能用得上且已经完成标准化工作的新技术,先用老技术实现并完成相关项目的实战训练,在积累了一定基础后再过渡到新技术上。

我来回答
请发表正能量的言论,文明评论!