引子· 武侠梦

大家好,我是一名程序员,小时候呢,非常喜欢金庸武侠。

记得吴启华版《倚天屠龙记》中,少年张无忌无意进入光明顶秘密石室,机缘巧合之下,习得已故教主阳顶天留下的《乾坤大挪移》心法。由于自身《九阳神功》加持,天下武学,融会贯通,俯首可得,张无忌因此在最短的时间内,学到了第七层。每次看到这里,总是激动不已,要是我有这么好的机缘该多好啊!

可惜,现实是残酷的,武侠梦做的再好,还是无法避免码农的命运!

作为入坑多年的Java程序员,见过很多如秋天的落叶一般凋零的老开发,也碰到了不少的新鸟,翅膀都没长齐全,摔的又重且惨。天可怜见,实在不忍那些涉世未深的新手们,‘误入歧途’,‘走火入魔’。古有大理段氏,最高武学六脉神剑,变化无常,灵动飘逸。遂撰写此文,供彼参阅,“武学修为”短期之内可速成一二,持久修炼者者更甚(嘿嘿)。

第一剑· 少商剑:思想认知

拿这几年的工作经验来讲,正确的思想认知太重要了。其中,我认为很重要的一点就是,你一定要早早的懂得:工作很重要!工作态度更重要!

此话怎讲?再明白不过的一个道理就是,作为一个成年人,任何一份工作,不仅能提供一定量的经济报酬,维持你正常的体面生活,还有可能实现自己的人生价值与目标。

人是有惰性的,不光体现在身体上,还有思想中。一定要时长告诫自己,这份工作来之不易,绝对不能过了三五天好日子,就懒散放松。借用华为任正非的话来说,那就是,年轻人要持续不懈的努力!我可以补充的是,人任何时候,都应如此,殊不知老骥伏枥,尚志在千里。

另外一点就是工作态度,好的工作态度体现在方方面面,比如与人交往,沟通协调,主动驱动,主动学习,对待代码认真负责等等。日本经营之圣稻盛和夫说过,工作就是最好的修行。工作是万病的良药,是解决一切问题最重要的良药;只要认真工作,就能够治愈各种各样的病痛。我深以为然,并且时长有这样的体会。有时候当自己投入进去的时候,抬头发现周围没有一个人,那种来自心底的因投入而获得的巨大充实感,久久不能散去,它极大的刺激了我的精神,直至三两天还有盈余。更妙的是,越是这种充实的精神,越能有效的带动工作,从而进入一个良性循环。这样做起事儿来,精神焕发,越做越喜欢。反过来,工作态度随意,懒散成性,动不动犯小错误,诸事不顺,谁见谁烦。

第二剑· 商阳剑:知识体系

阳顶天修炼乾坤大挪移至死也不过4层,杨逍一层,为什么张无忌能速成7层?因为他提前修炼了《九阳神功》。心中的武学体系已成,天下武学,俯拾可得。作为开发也是如此啊,Java基础知识体系,你掌握了多少?对于一个新手,最基本的IO,多线程,集合等等是不是信手拈来?其实多数人的聪明程度都差不多,但为什么别人学的比你快,比你好?那是因为他内功甚好,见多识广,基础扎实。所以我想,只要你稍微用点心,多留意下简单的,基础的东西,愿意动脑子,也能成为别人羡慕的聪明人。

比如,刚进入职场,还不大懂编辑器,快捷键记不住,代码写法笨重,那简单啊,把常用的快捷键写在纸条上,就放在办工作上自己容易看到的地方,一遍不会,就来十遍,直至心到手到为止;编程不够灵巧,多观摩学习大佬的思路,同样是集合遍历,你是怎么做的,别人是怎么做的,单独拿出来比较比较,取其之长,补己之短。假以时日,将别人的东西拿为己用,你就是下一个大佬了。学习就是这么简单,观摩 + 复用 ,实现快速成长。我刚到这里的时候,代码有些生硬,看到同事写的代码,很飘逸,说不上多么高大上,但是很多小细节,或者看似不经意的地方,却能封装的很好,给人一种如沐春风的感觉,读起来特别顺。于是我刻意将这些注释掉,自己来顺着业务去实现同样的功能,一次理解的不深,就写三次,直到能达到同样的结果,并且内心暗示自己,这就是我写的,我就是这么写的,长此以往,进步其实是显而易见的,这时再回过头去看,说不定你会发现以前写的代码,真的很垃圾。这就叫立竿见影。时间长了,你的知识体系也会逐渐丰富起来。

第三剑· 中冲剑:重剑无锋,大巧不工

《神雕侠侣》中,独孤求败在剑冢中写道,第三把武器,重剑无锋,大巧不工。四十岁前恃之横行天下。什么意思呢,其实我理解的就是绝对实力。重剑无锋,即是偏锋,剑走偏锋,没有绝对的实力,是站不住脚的。所以,作为新手,你得有这么个意识:我要变强!我一定要变强!我要有绝对的实力,既能承担上级分派的重任,也能不轻易被人小瞧了去。需知,工作中,奇淫技巧是持久不了的。只有绝对的实力与真本事才可于高手之间立足。

想要积累自己的绝对实力,方法太多了。作为新手,快速吸收项目中的好东西,像结队编程,让别人指点自己的代码,或者自己试着去看看别人的代码,两相比较,高下立判。知道高下,自然就会明白该怎么学了。还有代码质量检查,平时多看看一些有针对性的书籍,比如权威性的《阿里巴巴代码规范》,作为行业标杆,从业守则,没有读过只能表示太可惜了,从权威中,我们学到的一定是经得起考验的,学到了就用上,在实际的编码过程中,去套用,变量命名,方法定义,注释格式等等,我有没有做到和权威一致,这样训练下来,了然于胸。去指导别人的时候,才能信手拈来,如同己出。

子曰,三人行,必有我师。我认为还不够,工作中,要什么脸?凡是比我强的,比我厉害的,都要分析别人强在何处,厉害在哪里?我可以从中学到什么?如何吸取,为我所用?长此以往,你的实力在不断的提高,与你打交道的人越来越厉害,你学到的也越来越多,能不厉害么?以一打十都是小意思。记得领导曾说过自己干活一个人抵得过二三十人,起初我是不那么相信的,但是通过接触和分析,我坚信这是必然的。一个人的强大,其力量是惊人的,爆发的。小到撑起一个团队,大到拯救整个国家。

所以啊,抱着这样的认识,逐步培养积累自己的绝对实力,你迟早会成为被别人仰望的人。

第四剑· 关冲剑:沟通协作

之所以把沟通协作放在第四剑,还是本着务实的意思。既有心法在胸,又有重剑傍手,如果你是个愣头青,鬼都不愿意搭理你。对于新手而言,工作上还是比较看重沟通协作的能力的。众所周知啊,单兵作战的模式早已被时代抛弃,只有团队协作才能取得更大的战果。一个优秀的研发团队,必然是有经验丰富的产品,高效敏捷的研发,全面细致的测试和灵活成熟的交付,因为现代节奏下的昂贵的时间成本不允许你去承担更多的角色,甚至你能按照要求在规定的角色里高质量的完成工作就不错了。这种定位下,个人的能力是基础,如何和团队保持一致的节奏,保持良好的沟通协调,显得尤为重要。

曾今有个同事,个人能力很强,作为项目中的核心开发且效率比较高,但越到项目中后期,情况就越明显:测试反应和他沟通问题很费力,原因是表达力不够,简单的东西讲不明白;产品反应其主动性太差,被动的接受需求,开发缺少灵活性;同事觉得不好打交道,代码进度,整体流程什么的基本没有共同交流与信息同步;结果老板看到的是,一整个流程链不得不为这个核心开发的欠沟通能力买单,反复开会,交流对接,最终导致项目逾期。其后果可想而知,本人被劝退。

我相信每个人都想成为强者、厉害的人。但是在现代模式下的开发节奏中,新手们一定要注意锻炼自己的口头表达能力,主动沟通能力。闷头闷脑是不行的,既要坐得住,还要动的了,团队开发,早已不是一个人能顶一片天的时候了。

第五剑· 少冲剑:向上管理

相信对于大多数新手来说,畏惧领导是极其普遍的,更不用说频繁的沟通交流了,领导真的那么可怕么?其实并不是。

领导也是人呐,有喜怒哀乐。所谓领导,只是一种正常人际互动的产物。我想作为新手的你,应该首先搞明白一个概念,你真正害怕的是领导么,还是“害怕领导”这件事儿。又或者,你在逃避和远离领导,远离和逃避势必造成你与领导之间彼此的不了解,而彼此的不了解又会为沟通的开启形成新的障碍。于是越害怕,越退缩;越退缩,越难以建立直面领导的勇气。久而久之,便陷入一种恶性循环中。

鼓足勇气直面领导无疑是十分重要的,但要做到这一点还远远不够。不能邯郸学步,刷存在感,要注意节奏,把握领导的节拍。这一块的修炼空间实在是太大了,凭我这几年的经验,如果说自己什么都不太懂的话,简单的做法就是跟着领导的节奏走。我们来管理领导,把情况摸清楚了,想在前面,做在前面,实现向上管理。

毫无疑问,一定程度的忠诚和绝对的实力,是你实现向上管理的重要法门。所谓忠于人,勤于事,没有哪个领导希望自己的下属反复无常,花言巧语。我相信在逐步掌握前面的几项技能后,你已经具备一定的条件去“驾驭”你的领导,所以后面你得学会get到他的点,利用自己的忠心和能力,赢得领导的信任!我相信没有哪个傻子不知道,这是种双赢的做法。鉴于此法偏理论,重实际。个人经验有限,不再赘言。

第六剑· 少泽剑:吾生有涯,而知也无涯

庄子曰:“吾生也有涯,而知也无涯。以有涯随无涯,殆已。这句话,大家应该知道一点,但是我想说的其实是这句话的后半部分。

对于浩如烟海的知识而言,人生实在是太短暂了。往小了讲,单单是Java开发,我们要学的东西就太多了,各个知识分支里面,又有很多实际的,理论的数不胜数,分支中,又有横向的,纵向的,如果盲目的去追求知识的丰富,何时学到头?所以庄子说,用有限的生命,去探求无限的知识,是极其危险的。皓首穷经也罢,呕心沥血也好,作为普通人,没有这个必要。

曾几何时,我也想迷茫过,这么多东西,真不知道从何学起,刚定下心来学习多线程,又碰到集合的问题,转头去搞集合,又碰到文件读写的问题,把自己的搞得精疲力竭,焦头烂额,耗费不少心神。说白了,其实也涉及一点方法论的东西,学知识,必然是要讲究方法的。一味的去探求无穷无尽的理论,很容易走向偏执。这里要提醒新手们的就是,多动手,重实际。一切学习,建立在当下的实际中。比如我近期的工作是和大量的多线程相关,那你就提前准备,边学边做,边做边总结,反思,从实践中管理自己的所得,锁定成果,并有效吸收,这样下来才是结合实际,印象极其深刻,同时也便于转化为自己的知识体系。反过来讲,太多的人自以为聪明,好大喜功,浅尝辄止,学了一点皮毛就小富即安,甚至是丢了西瓜捡到芝麻。好的理论和知识,一定是经过实践总结出来的 ,甚至你可以从实践中进一步去优化理论和知识。所以啊,要自己多动手,重视实践,千万不要学那屠龙之技。

六剑至此,行文差不多也要结束了。其实上面很多都是边摸索边总结出来的,我自然不敢妄自菲薄,更多的是吸取前辈高手的经验,站在他们的肩膀上,将其转化自己的东西。作为新手,诸多能力,说白了,还是靠自己的一个觉悟。觉悟到了,多修炼,功到自然成。共勉。

程序员新手速成之六脉神剑相关推荐

  1. 程序员新手 0年份等级 指导(一) 开发人员IT架构总览

    程序员新手 0年份等级 指导(一) 开发人员IT架构总览 程序员新手 0年份等级 指导(一) 开发人员相关IT架构总览之职能分解 开发人员IT架构总览 一.职能分解 软件项目的主要组成大体上按照一个项 ...

  2. 网络游戏程序员新手入门 [转]

    网络游戏程序员新手入门 [转] 原文地址: http://job.17173.com/content/2008-12-15/20081215172107441,1.shtml 游戏开发流程和部分分工 ...

  3. 每日一皮:程序员新手尝试新框架的时候

    往期推荐 每日一皮:在同一个项目上工作2年的样子... 每日一皮:当我突然有一个很棒的调试想法... 每日一皮:努力寻找Bug的程序员 每日一皮:曾经的你是不是也这般天真? 每日一皮:当你开始研究一个 ...

  4. Java程序员新手老手都离不开八大开发工具

    现在有很多库.实用工具和程序任Java开发人员选择.每个工具都有其优点,但其中有一些因它的知名度.多功能性和有效性从众多选项中脱颖而出. 以下这8个工具,从代码构建到错误挤压,覆盖Java开发的全域. ...

  5. 程序员新手上路第一步

       1.个人介绍    Hello,各位未来的技术大牛.我是浙江某普本的大一学生,刚刚开始c语言的学习.第一次写博客,主要分享一些入门知识.我希望能够在这里一步步分享记录我学习和成长的过程,后续也会 ...

  6. Java程序员新手老手都离不开的八大…

    以下这8个工具,从代码构建到错误挤压,覆盖Java开发的全域.学习这些工具可以帮助你改善代码质量,成为一个更高效的Java开发人员.Java这个大世界中正在不断涌现新的工具.实用程序和库.如果你的首选 ...

  7. 程序员新手第一个python web开发框架

    接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...

  8. 程序员新手写实际业务代码思维混乱的一些建议

    很多新手系统全套学完就业班之后,其实能力还是不错的,对常用的技术栈也都会理解,也能看得懂别人的代码.模块.架构等,但是我发现有些新手一遇到业务就非常的茫然,好像一下子就不知道怎么去写了 1.对业务的理 ...

  9. 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!

    程序员要精通一门语言,还是要掌握多门语言? 对于这个问题,公说公有理,婆说婆有理. 技术更新太快,精通一门编程语言已经实属不易,又怎么好意思说精通多门语言呢? 不过呢,当你精通一门语言同时,涉猎一下其 ...

最新文章

  1. nginx 配置文件解释及优化安全
  2. 稠密仿射变换 cvWarpAffine
  3. 虚拟成像技术_苹果AR头显细节全曝光!微美全息(WIMI.US)光场技术构建AI影像...
  4. 【Python爬虫】知识点简单总结
  5. ios 与web服务器传值_中高级iOS大厂面试宝典,拿到offer率80%,金三银四将是你的新起点...
  6. 计算机网络拓扑分层,计算机网络和工程实践教程讲座主讲内容网络拓扑和分层体系结构.ppt...
  7. gg修改器修改数值没有用怎么办_GG修改器修改完成然而被修改数值还是不变。?...
  8. CS相关书籍的书评[转载]
  9. hourglass网络详解+pytorch代码
  10. Cauchy distribution
  11. 人工智能专业就业方向有哪些?
  12. 解读 Centralized Feature Pyramid for Object Detection
  13. VDD,DVDD,AVDD,VCC,AFVDD,DOVDD,IOVDD
  14. nf_conntrack_in(kernel4.14)
  15. 刘二第九节,多分类问题
  16. 我的世界服务器截图文件在哪个文件夹,迷你世界W7截图保存在哪个文件夹 | 手游网游页游攻略大全...
  17. RoboMaster 机甲大师 学生端服务器搭建
  18. 最好玩的计算机游戏排行,电脑十大耐玩单机游戏-pc上最好玩的单机游戏-pc好玩的单机游戏排行_侠游戏网...
  19. 基于python的文件传输程序_GitHub - orange0cat/python-ft: 基于socket的文件传输程序,能传输整个文件夹...
  20. 软考专辑——信息化知识

热门文章

  1. c# 去掉Datatable空白行
  2. 【GDOI2006】比武大会
  3. 搜狗浏览器杨洪涛:开放平台应用不求面广 先求质精
  4. 根据图片url下载图片
  5. kali 日常应用安装
  6. hadoop2.x下Yarn详解
  7. android自动帧率原理,Android 帧率计算及优化
  8. StrongSwan学习
  9. 私网IP地址的范围,B类地址:172.16.0.0 ~172.31.255.255 C类地址:192.168.0.0~192.168.255.255
  10. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource.的解决方法