程序员的职业素养
程序员是可以当作一生的职业。但首先,你需要热爱编程,而不是把它作为完成其他人生目标的工具。
既然计划投入数十年的人生,那么一定会不断的反思自己在哪些方面的努力是更有效率的。换句话说,现在的你,和十年前的自己到底有哪些不同,十年后又怎样超越现在的自己?
我的职业生涯还远远没有过半,深深感觉沉淀不足。总会有新的理解迭代到旧有的想法上。这次应邀来用简短的文字探讨这个深刻的话题,只能尽力来表达一些现阶段的浅薄之见。
程序员的职业素养,我认为,一个程序员,无论他在哪个子领域工作,都需要在三个方面提高自己。
首先,保持对未知领域的好奇心,尽力开阔视野。
如果你只精通一门编程语言,那么就赶快去学习另一门,最好和之前的那门语言亲缘关系越远越好。这可以让你从不同的视角去看待过去的问题。
如果你只专注于一个领域,那么深入研究一下其它领域会有很大的帮助。大多数人都喜欢在自己熟悉的知识结构下解决问题,因为全新的东西总有学习门槛,你需要去了解很多基础知识才能开始实际的工作。在大脑里把相关信息组织起来轻松调配,和借助外部资料是很不一样的。后者要经历一个相当痛苦的过程。但是,一旦你习惯经常学习,可以逐步掌握一套自己的方法减轻这种痛苦。大多数人实际会遇到的领域有限,看似没有价值的知识,学习起来更为困难。要做到这点,需要保持单纯的好奇心。
其次,把握各个层次上的细节。
尽可能向人解释清楚系统每个层面的运行。硬件如何调度机器指令;数据在硬盘、内存、缓存、CPU 间的流向;代码如何被编译链接,代码经历了何种过程被加载到内存,JIT 怎样加速字节码的运行;操作系统怎样管理线程、处理 IO ;软件用到的第三方模块和工具如何在处理数据;在网络环境中,数据流的通讯协议;你的代码中每个模块逐个层次中的相互关系……
对细节掌握的越多,思路会越清晰。在每个层次上,你会看到不同层次的设备对上一层业务逻辑的抽象方式,直到最终你直接面对的业务。对业务的抽象能力,不仅仅来至于你对业务的熟悉程度。这种能力是随同细节把握能力同时俱备的。了解的越多,就越能知道你经手工作的合理性。
第三,对代码的直觉。
优秀的程序员能很快的发现性能热点、找到系统崩溃的原因、找出不合理的代码…… 准确的估算能力非常重要,快速心算出每个模块的开销和输入的数据量之间的关系;在写下每行代码时能够判断其对性能的影响、以简洁去挑战各个层次模块间的耦合复杂度。
培养这种能力,以我个人浅见,除了不停不断的编写代码,别无良方。在写代码的同时,时刻保持着思考,对坏味道的地方零容忍。只要在最早的时刻动手,任何推倒重来的代价都不会太大;而放任它们在那里只会让局面演变到不可收拾。
保持自己总有代码可写,不断的去发掘自己新的兴趣点,拓展新领域。单纯一些,编程本身就是一件有趣的脑力活动,而不必仅仅为了解决一些问题而写程序。
注:本文首发于时代光华资讯中心频道,欢迎转载,转载请注明出处,违者必究!
相关推荐:
职业素养 管理课程
阳光心态与情绪管理
领导力要怎样铸造
- 1白领3招走出工作低潮期
- 2不够感性,那你别当领导
- 3挥一挥衣袖,优雅辞职7原则
- 4领导力能力如何提升?
- 51个优秀的领导者所必须具备的成功领导力
- 6领导感召力:得人心者得天下!
- 7国企执行力如何打造
- 8两个角度看职场压力管理
- 9这些职业素养可助你事业有成
- 10职场抑郁症:怎么治好“心的感冒”?
- 11绿建发展需要加强人才培养,提升职业素质
- 12成为好老板,请当好“四个专家,两个专员”
- 13看领导艺术如何应用
- 14职场的活循环与死循环
- 15企业中层领导应有的能力:执行力为基
- 16做专家型的领导
- 17选择职业老板就选择了孤独
- 18民营企业如何提高执行力
- 19行动学习--2013年浙江省HR精英俱乐部沙龙第六十九期
- 20如何发现卓越领导力的领导者特质?
- 21共聚一堂 畅谈HR经理人发展蓝图-浙江省HR精英俱乐部第十五期活动
- 22怎样在短时间内使自己得到领导力提升
- 23职业经理人职业化素养建设
- 24对于领导而言 面色好才是真的好
- 25四个思维让你脱颖而出
- 26职业规划要遵循哪些原则
- 27提升事业力的十项技能
- 28为什么执行力差?
- 29沟通八法消“牢骚”
- 30职业生涯中的10项职场障碍

