现在,我使用asp.net和C#。我在Java中也做得不错。我正在计划自己的职业,以至于有一天我会与语言无关。我需要学习什么?
首先,OOP范式是关于类设计的。还有其他吗?
现在,我使用asp.net和C#。我在Java中也做得不错。我正在计划自己的职业,以至于有一天我会与语言无关。我需要学习什么?
首先,OOP范式是关于类设计的。还有其他吗?
Answers:
要与语言无关,您需要具有所有常见样式和类型的语言的经验。
也:
一些打字风格:
一些不同的运行时样式:
低级内容:
最重要的是,我需要一些并发编程和事件驱动的经验。您可能还应该确保对各种领域有所了解,例如Web编程(客户端和服务器),富客户端开发/桌面,游戏。您可能还想了解嵌入式编程或专用硬件(例如游戏机),并且移动开发正变得越来越重要。
当您学习这些范例时,请避免仅学习语法并以旧样式编写。我已经看到许多C#开发人员将JavaScript当作静态类型来编写。不要这样做,尝试学习语言范式并接受它们。
如果您完成所有这些操作,那么语言之间的差异将在很大程度上成为语法上的差异,因此切换将成为学习一些新语法的相当简单的练习。
尽管现代编程几乎总是依赖于框架,但不要忘了,因此熟悉所学每种语言的通用和流行框架也至关重要。没有.net,了解C#无关紧要。
我认为您不会成为真正的语言不可知论者。我发现我以当前的语言(目前为C#)“思考”。
但是,话虽如此,我认为您可以通过尝试使用伪代码而不是特定的语言来思考,并以这种格式写下来,从而将设计与代码分开。这可以帮助您专注于设计和体系结构决策,而不是当前语言的实现。正如Simon指出的那样,这样做的缺点是最终使用的语言和框架将不可避免地影响设计。因此,随着设计的发展,它将越来越与语言和框架联系在一起。
阅读您的问题和一些答案可以给人的印象是,您将“语言不可知论”等同于“了解地球上的每个范式”。
我不确定是了解每种存在的范式还是了解多种语言,跨越几种范式和语言类型使您“与语言无关”。
这就像在说所有宗教信仰使自己在宗教上不可知。
我认为与语言无关的人应该是完全不知道如何使用任何语言进行编程的人,或者根本不在乎要求他/她使用哪种语言进行编程的人。
就是说,有人说,一个真正的程序员可以使用任何一种语言进行编程,只要可以访问该语言的文档。
如果那是“不可知论的语言”的意思,那么几乎所有有经验的程序员都可以使用他/她被迫使用的任何语言进行编程,并且有权访问语言文档。
也许您想成为“语言多神论者”。
我本人能胜任几种语言范例,但我更喜欢OOP。所以我想我不是不可知论者。
如果有选择的余地,您几乎找不到不喜欢某种范例或语言的人。
不只是语言,Java本身还有许多不同的模式,您可能需要花费数年时间才能学习所有这些语言。您可以学习:
还有一百件事我想念的-仅在Java中。
如果您花费数年时间来学习广度(学习每种语言),您将很难获得有效地运用其中任何一种语言的深度。
我并不是说学习新语言永远都是问题,您应该积极地这样做!我尝试根据我能学到的东西(我还没有完成的事情)来选择我的下一份工作,但是我不经常选择一种随机的语言来学习它-上次我尝试在Scala上学习时有点谦虚...