美文网首页JAVA逆风奔跑首页投稿(暂停使用,暂停投稿)
21天成为高级程序员,你需要养成这7个习惯

21天成为高级程序员,你需要养成这7个习惯

作者: 老韩大叔 | 来源:发表于2017-03-22 20:07 被阅读4572次

    初入编程时的我,作为新手,一直很迷茫,从未有方向。

    总觉得高级程序员,像天空中的星星高高在上。不知道自己通过怎样的姿势,才可以到达。

    直到有一天我阅读了《程序员修炼之道:从小工到专家》,里边的这几条至今受用,以下是我的分享,供也在迷茫期的你参考。如果受用,请把他们记在心里,贴在桌子上。

    1.要有负责心

    在我们的每日工作中,有一半以上时间是在解决各种Bug。高级程序员在面对这些Bug时会从多个维度思考,Bug出现的时间、系统环境、硬件版本以及软件版本等等。接着修复问题,严格自测,上线后观察,一直会跟进到底,把影响降低到最小。

    他们会主动承担责任,为结果负责。面对各种问题时,不是第一时间为自己找借口,不是互相推脱,互相指责。而是,想尽一切办法解决问题,即使解决不了,也会给出最优选择。

    责任心在程序员的职业生涯中,具有最重要的指导意义,也是成为高级程序员必须具备的素质。

    2.掌握代码调试技巧

    众所周知,在移动互联网时代,基于市场和需求的变化,项目周期的变化也会很快。有时一个月的工作计划,会缩短到2个星期。面对巨大的项目压力,程序员的代码质量会有所下降。

    这时调试技巧就尤为重要。一行代码的输入输出要清楚,一个函数的输入输出要明确而具体。高级程序员会在函数的开始和结束输出Log,把所有的参数和返回值打印到日志系统,便于追踪。在解决问题的过程中,使用开发工具一行一行进行调试,实时观看参数的变化。

    高级程序员清楚的知道他写的每一行代码在项目中的作用和意义。

    3.不要重复造“轮子”

    我们对代码的记忆最多只有2天,如果代码没有注释说明,也许第二天一早就会忘记它的具体意义。30天之前写的代码相信没几个人会记得。

    重复是怎样发生的呢?
    -1.程序员们没有意识到他们在重复。
    -2.程序员们偷懒,他们重复,因为那样似乎更容易。
    -3.同一个团队的几个人重复同样的信息。

    新需求持续进行迭代,需求的变化导致代码需要重新修改。这时的程序员也未必是当初那个程序员,导致隐藏的问题产生,产品到用户手上随时可能会爆发问题。

    高级程序员会尽力避免开发重复的代码,组装成公共组件库是最好的选择。

    4.尽量使你的程序解耦

    全球首位计算机博士David Wheeler曾经说过这样一句话,“计算机科学领域的任何问题都可以通过增加一个中间层来解决”。这句话诠释了解耦的重要性。网络七层协议的设计,软件开发的设计中,数据层、服务层和应用层,无不参考这位伟大计算机博士的思想。

    生活中随处可见这样的例子。共享单车的出现,就是对我们出行的解耦合。你要做的就是在你需要的时候去使用,不需要了解更多的细节,出现问题了也不需要你去维修,只管用就好。

    高级程序员开发的代码,既屏蔽细节,又提高了灵活性。

    5.适当的进行重构

    重构是改善现有代码的设计。在给外部提供接口不变的前提下,随着时间的推移,在内部重写、重做和重新架构代码。

    什么时间做最好?做的太早,看不出有做的必要性。做的晚,耗费大量的时间周期,会影响当前的项目。

    初期的系统架构设计以简单、易用为主。在创业公司3、5个人一个小队,开始了一个项目。在人力资源匮乏的条件下,首要任务是先把系统搭建起来,短期实现基础版。后期随着需求的增加,系统变得庞大。早期的架构明显有些弊端,不能跟随项目进行发展。这时候重构就势在必行了。

    高级程序员清楚在什么时间点进行重构。在不影响外部系统的情况,重新开发,提供更稳定的服务。

    6.积累自己的代码库

    如果你做了多年的软件开发,没有积累自己的代码库,没有做好笔记。面对新的项目,所有代码重写一遍。无疑了浪费了很多时间。网络上也可以下载到相关代码,但随手的一个小功能,如果在自己的代码仓库里积累好。也省去了搜索的时间。

    高级程序员会积累自己的代码仓库

    7.实践、实践、再实践

    有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。
    高级程序员会不停的实践,总结,再实践。

    如果觉得有用,请看这本书。


    21天成为高级程序员,你需要养成这7个习惯

    21天成为高级程序员,就看这一本

    文:风万里(点击关注)
    三五岁程序员、兼职HR、产品运营,一个正能量大叔。分享HR那些事、如何成为高级程序员。愿你我都可以成为更好的自己。

    相关文章

      网友评论

      • MisterT:发现自己不会写代码,就是在搬砖
        老韩大叔:@RamMin 实践 总结
      • e4e753c4378b:请问你怎么看培训班出来的学生?😂
        e4e753c4378b: @NSK 😂好的,谢大神赐教。
        老韩大叔:@NSK 基础和细节
      • 男孩老去:好迷茫,进的公司才三个星期,我就接触了js,安卓,PHP,然而这些我都没学过,现在不知道专心哪门语言了
        老韩大叔:@堆栈 不同的语言有不同的方向,要与时俱进啊。大方向很重要
        男孩老去: @风万里 不匹配,我学的c#,来公司就没用到过
        老韩大叔:@堆栈 你个人的爱好和公司的项目方向匹配么,另外每种语言是不同的方向
      • 张照博:码农--初级程序员--中级程序员--高级程序员--大咖--Hacker(此处并非指哪些精通网络病毒以及社会工程学的cracker) 21天精通系列
      • 1edc7c146291:买了一年多一直都没看过,不过知道这是一本好书。
        老韩大叔:@梦碎心亦累 加油:smile:
        1edc7c146291:@风万里 打算4月份开始看
        老韩大叔:@梦碎心亦累 翻来看看呀:stuck_out_tongue_winking_eye:
      • 遮住眼睛的草纸:21天够呛吧:sweat:
        老韩大叔:@东海岸鸽子王 :joy:
        遮住眼睛的草纸:@风万里 那你这标题得改改:smile:
        老韩大叔:@东海岸鸽子王 改变思维习惯:joy:
      • 安择:21天很诱人!
        安择:@风万里 嗯,我努力!
        老韩大叔:@想乐见毅 习惯养成。
      • 李斯维:6.>积累自己的代码库
        这个格式少了个空格
        老韩大叔:@545a3c856c5f 👌🏻,现在就改
      • 688909df3794:学某个计算机语言就跟学一门外语一样,多花时间去看看,写写。不过做程序员不是只会某一门语言就够了。
        老韩大叔:@Graysongs 全栈么:smile:
        688909df3794:@graysongs_benso 对的
        graysongs_benso:程序员还需要会计算机原理、软件设计、沟通技巧等等
      • b4d56682bece:有电子版的吗?表示想看一下这本书
        老韩大叔:@S_you 百度是最好的老师:joy:
      • 酒楼三少:无意间看到,精彩绝伦。:relaxed:
        老韩大叔:@酒楼三少 有用就好
      • markRao:别扯淡了,还二十一天成高级程序猿😂
        老韩大叔:@萬物并作吾以觀復 养成思维习惯:smile:
      • 409e7f4a15d8:干巴呆~~~~~~~~~~~
        老韩大叔:@灿烂千阳i元 加油↖(^ω^)↗
      • 一年三班马同学:PHP路过
        老韩大叔:@鬼谷子灬 Python路过
        老韩大叔:@鬼谷子灬 :joy:
      • 八怪不姓丑:写的不错。作为一个菜鸟,有时候解决一个bug费很大劲,虽然事后会抽时间总结写写博客,方便以后再遇到还得百度。但是觉得总结的很烂,估计只有我自己能看懂
        老韩大叔:@八怪不姓丑 把思路梳理清楚,1 2 3 4到底哪个生效了?为什么生效?为什么不是先想到?
        八怪不姓丑:@风万里 多谢指导。解决bug的时候会有很多思路去解决,到最后可能只是一条很简单的方法。总结的时候总感觉缺少点什么
        老韩大叔:@八怪不姓丑 建议总结思路,bug归档分类
      • 墨白歌者:21天成为高级程序员。。。。标题党?
      • 无戒:好
        老韩大叔:@无戒 谢谢老师:smile:
      • 不悔将来:哎呦,不错哦,可以多交流交流哦
        老韩大叔:@wojiaohuangyu :smile:有没发出来
        黄禹:确实需要有自己的工具库:smiley:
        老韩大叔:@不悔将来 嗯嗯,欢迎多多交流。
      • 432a7b65a14f:Android小菜一枚
        老韩大叔:@接力买 Android我也做过:joy:
      • 7465c292d920:想请问一下有没有关于html和css的比较好的书推荐呢?市面上书太多根本挑不过来!
        7465c292d920: @风万里 好的,谢谢!
        老韩大叔:@AKCheng 基础学习可以先不用买书,先到W3School学习些基础。基本语法学会后,是阅读实战类的?还是了解更详细语法类的?看你的选择。
      • 宅小阳:小白一枚,该怎么着手去做
        宅小阳:@风万里 是啊
        老韩大叔:@林三少 想学编程呀?
      • F孤:功夫不负苦心人,加油!:grin:
      • ouyangan:21精通系列
        老韩大叔:@欧阳an 聪明:smile:
      • 凯撒牛:其实没有必要记得代码如何写,基本只要有思路了 你知道他放在那里,就会找到代码了。(懒加载),不过说的还是很中肯,我也正开始学既然望不到大牛们的思维方式,还是一步步脚踏实地的好。工具库确实很锻炼思维,我先这里入手了
        老韩大叔:@凯撒牛 欢迎多多交流:smile:
      • 乜咩耶耶:javaWeb方向,小菜一枚,毕业快一年,工作一年半了,想去学习,但没有头绪怎么办?:sob: 感觉什么都欠缺,我知道作为一个入门一两年的,有这种想法很不好:pensive:
        老韩大叔:@乜咩耶耶 两个方向供你参考:1.深入学习javaweb相关框架等 2.学习一门后台语言Python等。横向或纵向发展。
      • 日照书香人家:思想值得借鉴
        老韩大叔:@深沉的海 思考,思考,再思考。:blush:
      • hmg:厉害
        老韩大叔:@huminggui 你也可以:smile:,总结思考。
      • Emma在路上:是给自己的项目做招聘吧?兼职hr
        老韩大叔:@Emma在路上 嗯,基本全职在做了。
      • panda潘达:年轻着呢
        😀
        老韩大叔: @panda潘达 😄
      • 木亖:小白,如何入手
        老韩大叔:@Strlve 有基础木有?
        Strlve: @风万里 小白菜,求指导。入门。
        老韩大叔:@木晨舟 想学编程呀?
      • 风动天下:感谢大哥分享,太实用了,我自己写的代码经常过几天就看不懂了
        老韩大叔:@风动天下 有用就好:smile:

      本文标题:21天成为高级程序员,你需要养成这7个习惯

      本文链接:https://www.haomeiwen.com/subject/bbjwnttx.html