关于编程语言的掌握层次大家是怎么定义的?

2017-04-22 09:17:37 +08:00
 leetao94

比如说,了解,熟悉,精通?达到什么层次算是熟悉或者算是精通?

5303 次点击
所在节点    问与答
49 条回复
libook
2017-04-22 10:21:44 +08:00
了解:花十五分钟去搜百科、官方文档和介绍文章,搞清楚这个语言是什么、发展历史、什么特性、适用于哪些情景、目前的火热程度。
入门:花一两天看官方入门教程,或者搜搜大牛写的入门教程,配好环境写一个包含输入输出、判断、循环等简单编程语法的程序。
掌握:花一周到两周的时间尝试使用一些高级特性,如网络通信、面向对象(如果是 OO 友好语言的话)、二进制操作、文件操作、至少一种数据库操作、常用库|包|模块|插件、简单的 UI (如果具备 UI 特性的话)。
熟练:做过项目。
精通:熟悉底层机制、性能优化、栈内技术选型、架构规划等。
misaka20038numbe
2017-04-22 10:43:05 +08:00
了解,看过入门书前几章。
熟悉,能实现需求。
精通,明白了这个语言是怎么实现出来的。
scnace
2017-04-22 10:45:10 +08:00
不要说精通 除非你把源码都看了一遍…
elvodn
2017-04-22 11:00:51 +08:00
初级: 看完教程->可以写一些简单逻辑;
中级: 阅读完语言规范,不会出现语言使用级别 BUG->可独立完成小型项目(10k-);
高级: 熟练掌握语言优缺点,精通官方库并了解常用第三方库->拥有使用该语言完成中型项目(50k+)的经验;
专家级: 熟读语言与官方库源代码,掌握大量第三方库的使用与优缺点->设计并主导以该语言为主的大型项目(100k+)的研发;
大师级: 对于这个语言已经没有什么未知之处了->参与语言的研发,提交语言提案;
宗师级: 大量提案被采纳->在语言研发项目组获得崇高地位;
禅师级: 您用有对该语言的最终解释权;
billlee
2017-04-22 11:30:27 +08:00
了解:知道基本语法,能使用,不出现语义使用上的 bug.
熟悉:知道全部语法、常用标准库的优缺点和适用场景,能写出符合该语言的风格习惯的代码。
精通:知道语言和常用标准库的实现机制,能在做 profiling 之前避开大部分性能问题。
phrack
2017-04-22 11:32:55 +08:00
完了,我简历上写的精通 python ,我得去改成熟悉。
leetao94
2017-04-22 11:34:16 +08:00
@phrack 哈哈~~
wayslog
2017-04-22 11:36:36 +08:00
@AngelCriss 帝球知名度明显不如轮子嘛。。。
Lispre
2017-04-22 11:39:19 +08:00
能用一门语言挣到大钱就是我对精通的唯一评价,也许你会觉得我这回答如同放屁,那我也没话多说。社会价值决定一切。
nealfeng
2017-04-22 11:46:50 +08:00
@Lispre 社会价值 不完全等于 挣到大钱

人类历史上和现在,那些为科学和技术发展做出贡献的,很多并没有挣到大钱
iyaozhen
2017-04-22 11:57:54 +08:00
反正来面试的写精通 Java 的都死的很惨。
面试官:“这小伙子牛逼呀,先从 jvm 开始问吧”
lmqdlr
2017-04-22 13:16:20 +08:00
踩坑>挖坑>填坑
di94sh
2017-04-22 13:29:21 +08:00
熟悉:可以查看帮助文档进行不熟悉部件使用,懂的大部分基础优化方法。对一套系统,比如 Linux 上的编程接口使用熟练,不长使用的可以查看文档,或者示例解决 。
精通:不懂,我正在往熟练道路上前行。。。
UnisandK
2017-04-22 13:43:32 +08:00
看 C 是 C
看 C 不是 C
看 C 还是 C
cankoor
2017-04-22 14:05:12 +08:00
我正在写一个 PHP 进阶教程,顺便自己加深 PHP 的了解。

据我的理解,初级应该是给你一个功能需求,你能够独立实现,但是不考虑代码质量和性能。这个阶段应该很容易达到,但是从初级到中级很多人就会很迷茫。

中级应该开始考虑代码质量以及性能,同时能够熟练运用标准库中的东西。在熟悉语言的同时要开始了解业界使用的开发工具和开发流程,比如包管理,代码测试,持续集成等。还要学习语言的各种扩展,掌握其中几种重要的扩展,比如 session 。同时要开始着手了解语言的底层,比如垃圾回收机制等。

高级应该了解语言的底层,熟悉语言是如何实现的。这时候应该不会拘束于语言之中,而是举一反三,在学习其他语言的时候都能够很快精通。这时候他们应该更加关注的是大规模的架构和性能吧。我没到这种阶段,所以我也不了解。

以我自身的体会,从初级到中级这个过程式非常漫长的。这里涉及到开发流程、开发工具和重要知识点提炼等,如果没有一个专业的前辈来引导的话,这个过程会很迷茫,而且很多时间浪费在该学习什么(寻找必要知识点)上面。

所以我在写这样一份进阶教程,但是由于自己能力有限,所以很多方面写的不好,到时候我应该会开源出来,希望广大站友一起协作完成这份教程 :).
conwey
2017-04-22 14:16:05 +08:00
这贴让我想到四大编程魔神
hepin1989
2017-04-22 14:29:18 +08:00
对于编程语言,我的建议是学习,不要只是学习语法,而是学习作者对于这个世界的问题域的思考,也就是范式。

建议您学习的语言:

Clojure Scala Elixir Erlang Java Golang

[《 Netty 实战》即将上市了]( https://www.v2ex.com/t/356574)
uuair
2017-04-22 15:01:00 +08:00
我觉得最高级就是随心所欲的写要写的东西吧。。。何必纠结这些过程呢,语言不就是一个东西么?就跟上床需要的那张床一样,只是工具而已。。
Antidictator
2017-04-22 16:04:26 +08:00
@conwey 魔道
shijingshijing
2017-04-22 17:51:08 +08:00
精通 --- 我觉得至少要了解到编译器级别,知道这一门语言的各种特性和语法,以及在汇编(机器)级别上的实现。

当然最上面应该还有个 founder 级别的,开宗立派的那个级别。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/356581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX