工作心得之三-技术
最近离职交接的差不多,前段时间的总结还差最后一篇,技术。
这里我不想讨论具体的细节,一方面,我算不上高手,另一方面也不是几百字能总结的了。仅仅总结自己的心得。
记得刚刚工作那会理直气壮的自称“精通”,那时无非是上网的面试题都做了一遍,面试时脸皮厚了一点,所以自我感觉还不错。不过现实工作中的实际问题确确实实的压着我,过了两年只能厚着脸皮说精通,现在想想勉强还算是“精通”吧。
对于“精通”的定义网上有很多说法,没个统一,我只说说我的看法。
先说说写代码,这是每个码农必备的技能。写代码我是划分为4层
1、能运行
2、能运行,简洁
3、能运行,简洁,高效
4、能运行,简洁,高效,易读
解释下:
1、第一阶段是按照要求能把程序完成,没有太多异常。不过这个阶段大多都是照猫画虎,模仿别人的程序来写。这时最明显的特点就是一个方法中完成N多逻辑,每个方法都很冗长。
2、第二阶段可以独立完成代码,不需要“过多”参考他人代码,有自己的编码风格,命名规范。相比第一阶段会省略很多不必要的语句。开始“背”一些设计模式,掌握基本算法。补充下,这里的简洁指单个文件。
3、第三阶段属于精通了,有针对性的调优代码,对于程序的逻辑控制,语法优劣都有明确的认识。对于设计模式有自己的理解,也掌握不少算法。
4、第四阶段算是老鸟,往往开始转为架构或者转为管理,基本功都已经扎实。他们写的代码特点是清晰明了,可以很明确的区分不同的包,不同的类,和不同的方法。这里的易读是对于一个完整的工程,不同包的命名,功能类的归属等等。
提升自身能力的方法有很多,我总结如下:
1、兴趣,如果误入这行,尽早转管理或者设计吧。
2、多读代码,现在开源的代码相当多,JDK本身代码就足够学习,这是最基本的方法。
3、设计模式,虽然对这点争议很多,但是不可否认,真正理解它的时候,会很有用。
4、读书,堪称经典的书籍有很多,认真的读两本就够了,一般来说没时间让你读个遍,另一方面,一本吃透了可以触类旁通。
5、相互印证,这是我一个朋友说的,他不是JAVA方向,是稍微偏门的语言,他的经验是多学学别的语法,可以相互比较。他现在会N多语言,有多精通说不清楚,不过他可以经常用某个语言的优势来解决问题。
6、要是身边有个高人,就事事缠着他吧,F2F永远是最有效的手段。
想来想去,能写的也就这么多,希望以后几年有更多的吧。
2 楼 SoCoolMan 2012-04-05 向第三层迈进 3 楼 w20110504 2012-04-06 如果是我,我会把“易读”作为第二阶段的智能 4 楼 CodeToMyLaw 2012-04-06 学习了 ! 5 楼 dicmo 2012-04-06 推荐两本书来读吧 6 楼 wupuyuan 2012-04-06 w20110504 写道如果是我,我会把“易读”作为第二阶段的智能
原来没说清楚,这里补充下,第二阶段也有“容易读懂”的概念,但是这时仅仅指单个文件,不是一个工程。对于单个文件来说,简洁可以概括。当然这个仅仅是我个人意见。 7 楼 wupuyuan 2012-04-06 dicmo 写道推荐两本书来读吧
初入IT行业,建议什么书也别看,多看看代码,博百家之长,以模仿来学习。
有一定基础后,一般一年左右吧,看看《java编程思想》,顺便看看相关知识,比如数据库,脚本语言。
两年左右可以开始看 《java虚拟机规范》 和 设计模式方面的文章。
后面建议看些编程通用的书籍,比如《编译原理》这些。
没指出书名的我都是在网上零散的看的。
这是我的建议。 8 楼 langyu 2012-04-06 璞渊兄,需不需要加入“稳定”这个标准呢? 9 楼 wupuyuan 2012-04-06 langyu 写道璞渊兄,需不需要加入“稳定”这个标准呢?
秀刚兄,稳定当然是需要的,不过我只是对个人写代码而言,就是给人第一感觉那种,“稳定”这个得经过压力检测才能下的定义,很多时候拿到手看不出稳定不稳定的。当然都是相对的,如果加入稳定的话我觉得第三层比较合适,你觉得呢? 10 楼 jacking124 2012-04-06 学习了!支持你 11 楼 netkiller.github.com 2012-04-13 能运行,简洁,高效,易读 --- 还是码农
12 楼 netkiller.github.com 2012-04-13 说到 架构师
我曾在一外企工作过,HR问题职业规划我说架构师,HR表情不对,哪国组织架构图给我看。
赫然写着:
XXXX 应该是“董事”一类的
------------------------
下一层是 CEO ,CFO, CTO, CIO, 还有 "架构师"
很
很有中国特色的组织架构。例如:架构师可以放在项目经理下面与TL同级别
也可以放在 与 PM 同级别, 但几乎没有跟CTO 同级别的。