我的编程技能

自我评价一下自己的编程技能,也说一下自己的评价标准。 顺带也评价一下计算机相关其他技能。

评价标准

我对一门编程语言、技能的评价标准如下。以后有更新再完善。

满分十分的话:

  • 十分: 这门编程语言是自己开发的,对语言的所有特性了如指掌。也包括编译器或者解释器的完全掌握。
  • 八分: 对该语言的使用掌握达到信手拈来的程度,基本不查手册,即使查询也能很快查到。对该语言的 标准库也有80%以上的掌握,即使有需要查询的地方也能很快查到。
  • 六分: 熟练使用该语言,一般编程使用都不用查手册。但是对于该语言的特性并不完全掌握,也很少使用, 使用的时候需要查手册。一般来说特性掌握低于70%。标准库也只掌握常用的部分,其他部分需要现用现查。
  • 四分: 学习过该语言大部分语法,但是该语言本身很少使用,写代码时特性和库的使用都需要现查现用。 虽然很少使用,但是至少用该语言写过完整有意义的程序(500行以上)。
  • 两分: 大致学习过该语言的语法,写过单纯的语法测试代码,对于标准库不了解,处于学习目的掌握但是还 缺少实战,也没有写过完整的程序。
  • 一分: 没有完整学习过语法,只是对比理解了一下,写过简单代码进行语法测试。

技能掌握

以下时我对我的编程技能的评估:

  • C: 九分。就差没有掌握编译器了。对C的几乎所有特性、标准库、编译链接加载 均掌握 (库的部分细节可能有遗忘)。
  • C++: 八分。到C++11,语法特性还有约10%需要现查现用,标准库感觉有40%需要现查,细节太多。
  • Makefile: 八分。不得不说,这个用的时间实在太长了,多个项目里面都时我编写维护,对这个已经非常熟悉了。
  • Ruby:六分。自学会使用就爱不释手的语言,但是一些特殊用法、语法还是很少研究,标准库也只用常用的几个。而且 脚本语言的标准库内容太多,扩展库更是数不胜数。
  • Python:五分。 主要是用Ruby之后就用的少了,库的掌握更差一些。python也有很多黑科技语法没有研究过,平时也用的少。
  • Perl:五分,或者四分。2013-2015年用的很多,感觉当时已经把perl用到极致了(对我而言),基于perl的面向对象 技术也用了个遍,就是都比较蹩脚。
  • CMake:三分,到不了四。再有些项目、开源代码里面用到,后来学习了一下。现在我的代码也有一部分就用CMake写了。 简单的代码管理CMake还是方便,如果编译涉及代码生成 或者 其他自定义过程的时候,就不如Makefile好用了。
  • Bash/Csh:三分。自己的电脑都是bash的,公司环境时csh的,结果两种都常用。这些写简单脚本还行,复杂一点就不如直接上Ruby了。
  • Scala/Chisel: 四分。搞设计大赛学的,并且完成了完整有意义的项目。Scala语法是真的高级,有更高层次的抽象语法。
  • Verilog/SV: 四分。完整学过,用来参加过设计大赛。 SystemVerilog有过一两年的使用经验。
  • Swift:两分。 自学过,写过简单iOS app,但是久了忘得差不多了。
  • Java:两分。 考虑到它和C++的相似性,给四分都可以。但是Java实在是用的少。
  • PHP:一分。 搞wiki、个人网页 的时候学过,没有完整学习,且忘得差不多了。