写给程序员的n+1条建议

前言

为什么叫n+1条建议呢?因为更多的是写给自己,同时分享给他人,而且不只是工作,还有生活上面的个人体会,会持续更新,哈哈哈哈哈~嗝

建议

  1. 不要抱怨加班
    互联网加班是常态,研究表明,人的大脑很少因为工作的繁忙而真正的感到疲倦,更多的是消极情绪,所以我们如果希望加班早点结束,应该让自己开心起来,真正的喜欢上加班正在做的事情,否则将是恶性循环。那么如何让自己喜欢上加班时候的重复劳动呢?《人性的弱点》这本书上说如果我们很讨厌一件事情,但是我们暗示自己很喜欢它,假装很喜欢它,可能慢慢的就真的喜欢上它了,就像你现在很难过,但是你强迫自己微笑起来,这个时候心情也会好很多,没错肢体上的改变也会影响情绪的改变,就像正在加班的你尝试着挺直腰板,面带微笑,没准一会就干完了自己认为需要一天才能完成的“重复劳动”。
    人都是这样的:如果看到比自己更不幸的人或事,就会感到豁然开朗,想想那些已经逝去的人,或者有的人在战争中失去双腿,被炸到毁容,他们都做错什么了么?所以我们现在拥有的每一次呼吸,看到的每一缕阳光,听到的每一个声音,都是多么幸福的事情,小小的加班又算得了什么呢?
    还有最重要的一点就是我们加班已经很惨了,如果不开心的话,身体会出问题,据说人也会变丑,那不是雪上加霜吗?可是如果面带微笑,积极面对,假装很喜欢这件事情,那对于我们这张帅脸来说不是锦上添花吗,哈哈哈。
    话说回来,我们应该关注下会不会因为我们上班的时候过分关注于自我提高、容易走神等,导致效率低下。当然,假如我今天尝试全神贯注的工作,把一分一秒时间充分利用,除了吃饭的几分钟,全部的时间都用在工作上,充分的提高工作效率。最后还是会像平时一样加班的很晚,并且这种状态持续很久,这时候确实应该考虑到底是不是领导任务分配、和“企业文化”的问题了,并且果断的做出相应的决策!
    在这里插入图片描述

  2. 时间往长的说,事情往快的做
    领导要求评估作业周期,不要给自己挖坑,傻傻的评估的时间很短,应该讲时间尽可能评估的长一点,但是真正做事的时候赶着往前面做,相对于自己评估的周期提前完成。而且如果评估的时间很短,影响的不仅是自己,会连带着影响到qa、运维、领导评估、产品上线、工程延期、公司未来、人均GDP、人类的发展,好吧不扯了。
    不要怕丢人,再厉害的大神也可能会有搞不定的事情,不要以为把时间说的很短就能突出自己很厉害,最后完不成才是真正的丢脸,万一事故很大,被炒了鱿鱼,甚至赔钱,呵呵。。。

  3. 不要因为一时工作的不顺利而想着离职
    互联网公司大都一样(加班餐、弹性工作),不要因为暂时的不快乐,发生冲突,甚至离职,因为只是换了一个坑(虽然我还没有换过坑,不过听前辈是这么说的)。
    试着调节自己的情绪,不要想着离职换了一份好工作之后再开心,换了一份更好的工作你就不是你了吗?你现在和换了更好的工作之后又什么本质的区别吗?你想换一份好工作不需要时间积累吗?人生有几个三年、五年,活在当下,过好每一天,其实你已经拥有一份很好的工作了,每天出门上班前,对着镜子里面的自己说:加油、开心。
    当然,如果不爽持续了很久,那。。。就没有办法了,有苦说不出,不要把自己的身体气坏了,还要看自己的取舍吧。

  4. 写文档,做笔记,备份代码
    写文档:对于工作中的业务,技术等一定要写文档记录下,可能我们认为这个东西短期内只会用这一次,但这始终是我们认为,永远想不到"上面"在想什么。而且同事也可能需要用到,节省了自己和他人的时间。所以一定要把自己的相关文档无私的记录在公司wiki上面。
    做笔记:这里包括列清单、工作记录、写博客,这里就不赘述了,虽然介绍的少,但是是最重要的,你懂的。对于我来说,清单,最近在用滴答清单,工作记录,最近在用Evernote,博客,一直在用csdn
    备份代码:强迫症的矫情请收一收,不要没事了清理桌面,删除代码、demo,指不定,过一两个月,人家谁谁谁又管你要呢,或者你自己突然很需要,这个时候你只能点燃了一根香烟,然后抽完了它,然后又写了一遍~

  5. 没事不要让电脑关机
    现在电脑一般不会特别卡,求求自己不要再强迫症了,下班前关闭电脑,提示微信正在运行,继续关闭?点击是,idea正在运行,继续关闭?点击是,谷歌浏览器已经打开了过个网页,继续关闭?点击是。。。五分钟之后终于关上了电脑。
    次日早晨,打开印象笔记、谷歌浏览器、iterm、企业微信、idea、工作文档、邮件,然后找到昨天没有解决的bug的位置,然后打开昨天查到的csdn上面的解决方案,然后去印象笔记里面找到自己记录的思路,再打开iterm,笨拙的输上ssh root@xxxx -pxxx ,连上了公司的服务器,然后然后开心的一笑,终于可以继续解决bug啦,看一下时间,现在试上午十点半。
    知道自己为啥老是加班了吗?知道自己为啥工作这么久了,还是那么点工资了吗?知道自己为啥没有女朋友了吗?
    当然这里补充下,也包括“没事不要关浏览器、idea”,有很多强迫症,我就是,总喜欢整齐一点,简洁一点,没事了关关这个,关关那么,可是之后用到的时候又找不到,真的很麻烦且浪费时间,不知道算是优点还是缺点,希望自己努力的改正这个“优点”吧。

  6. 学习在于深度,不在于广度
    大学课程各种语言都学了,毕业的时候好找工作吗? 为什么?培训班的学生人工智能、c++、c、c#、python、java、汇编、编译原理这些课程人家都学了吗?人家工资低吗?为什么?
    我们应该把自己的"饭碗"技术比作树干,其他的锦上添花的技术必做树枝和树叶。只有树干长好的基础上树叶才能茁壮的成长,路人评判一棵树的好坏,大多也应该是看这棵树的树干吧,当然杠精,我们不要犟了好吗,只有树干没有叶子不是好树,你说的是北极,适当的增加枝叶肯定肯定也是有好处的,就像学校门前的迎客松,为什么校长总是没事了就喜欢修剪一下它呢?他闲的,钱烧的,还不是为了让它长得更加茁壮,可爱的学生自然就会多起来了。
    在这里插入图片描述

  7. 有问题不要急着问大佬
    准确的说不到万不得已不要问大佬
    坐我旁边的是一位大神,每次一有问题就问他(有业务上的,也有技术上的),人家脾气好,那是人家脾气好,可是时间长了,大神也是会烦,大神日理万机,一个小时好几百,你耽误得起吗?没有人有义务教你,而且除了业务,大部分技术上的问题,可以通过百度解决。
    说实话,你有没有发现,你去问大神问题,然后大神说“你再好好看看”,过了两分钟,居然自己解决了,而且是通过查百度。
    自己解决出来的问题是自己的,大神解决的问题是大神的。

  8. 实在不会要赶紧问大佬
    这和上一点并不矛盾,因为这个事情还被我们开发的老大给说几句(ps:我们开发老大是一个技术超级nice的人,更是一个本身就超级nice的人,你品,你细品~),而且我也不是一次两次了,一直坚信自己之前是对的,有问题尽量自己解决,每个人都有自己要做的事情,能抠出来就自己抠出来,注意,这里说的不是鼻屎😝
    在这里插入图片描述
    有不会的问题是要自己扣一扣,但是有些东西不会就是不会,就像牛顿三大定律,你不去学能会吗?你不学自己能创造出牛顿三大定律吗?每个人不学就会那还要牛顿干嘛?所以我们如果想了很久,也查阅了很多资料都没有结果,那么必然是自己技术中遇到了瓶颈和拐点,该需要高人点播了。
    温习下老大的话:
    你要避免钻牛角尖,不然怎么成长?

  9. 提给qa的东西多测几遍
    旁边的大神每次也多次嘱咐我,你多测几遍再给她们,作为一个资深程序员这样教导我,一定是有理由的。
    而对于我来说,为了省事情草草了事,最后得到的是,测试小姐姐气的妆都快花了,大家都得返工,项目之前设定相关时间也需要调整,如果超过deadline,总要有人背锅的吧,那。。。
    qa的职责不是我们写完扔给人家测试,这是偏见,也是我之前一直有的错误的观念,甚至因为这个我还和小姐姐吵了起来,“我又不是qa,我全部都测了,那要你们干嘛”,这是我的原话,这里请原谅我少不更事,qa不是简单的验证功能性的(当然存在这种qa),qa更多是验证程序的健壮性、容错性,所以在我们这里应该保证程序最基本的功能性问题,减少代码的回溯,这样才能不影响产品的迅速迭代,不影响产品的推进。

  10. 弄清楚产品真正的意思,不要跨过产品跟售前直接交涉
    程序写的再溜也是要赚钱的,我们是要吃饭的呀。
    先不说产品设计的怎么样(我感觉我们的产品还是蛮厉害的,因为听说人家原来是一个蛮厉害的开发,感觉应该会体谅人一点吧),产品是开发和售前的一个枢纽,这里还需要排除前端把产品设计的概念理解错了这种情况,单单说我们自己,如果我们把产品理解错了,意味着最近这个开发周期白费了,意味着售前跟客户介绍的产品和真实情况不相符,意味着售前在欺骗用户,因为这这次POC gg了,好吧这个罪行就有点严重了。
    为什么不要跨过产品跟售前交涉?我认为产品除了是开发和售前的枢纽,还相当于一个领导的地位,管理着产品的走向,开发和售前跨过产品进行交涉,可能会偏离产品的走向,如果出了问题,应该谁来承担?谁承担的起?对于产品来说会产生“空白区”,导致后续对产品的设计不佳,对于整个工程来说,如果出现因为开发和售前直接交涉产生某些问题,会减慢产品的迭代,造成无法挽回的损失。

  11. 没事了起来上个厕所
    干我们这行的,哎,没啥其他不好的,就是背不好,颈椎不好,腰不好。
    平常运动的时间本来就不多,所以没事了起来上个厕所,起来走走,走得路上如果没人的可以适当的摇头晃脑、左右摇摆,也算是舒活舒活筋骨,而且说不定上个厕所,刚才的bug突然就有灵感了呢,哼哼~
    有条件的话报个健身房就更好了!

  12. 喝茶,喝大碗茶
    喝茶提神醒脑,延年益寿,还能戒烟,反正我已经很久不抽烟了。
    最主要的是能够落实上面一点,喝大碗茶,没事了起来上个厕所,哈哈。
    在这里插入图片描述

  13. 善于总结
    就像这篇文章,我花了两个小时,但是我相信在今后的工作中,我会少走弯路,事半功倍。

  14. 把目前做的产品当成自己产品,想想怎么把agent做好
    旁边的大神反复提醒我的,记录下,感谢!
    程序员不能单纯的做一个“技术工”,应该有自己的思想,即使不能把这些“思想”加进去,也不能让自己停止思考。
    不论是做什么产品,都当做自己。
    让自己发自内心的认为我能从这个产品中学习到很多东西,是系统的学习知识得不到的;
    让自己发自内心的认为这个产品是我做的,是我的亲儿子
    让自己发自内心的认为目前这个产品是自己成功路上必不可少的,就算很累,就算成果是公司的,但是我们自己得到的不是自己认为不平衡的所谓的金钱能够衡量的;
    让自己发自内心的认为我是在给自己干,我是在干自己的事业,其实想想也确实如此;
    让自己发自内心的热爱现在的产品。

  15. 任务交叉进行,不要等
    假如我需要安装一个weblogic,今天还有一个任务是写weblogic的相关agent,而写weblogic的agent代码,跟安装weblogic是毫不相关的两件事情,写agent只要能找到weblogic的核心jar包,看源码就可以了,安装weblogic只是为了验证,可是我潜意识里就喜欢等weblogic下载完了之后再去写agent。或者我需要用nginx搭建一个接口,跟着某个博客中教程一步一步做,正在下载nginx,这个时候完全可以接着看下面的步骤,熟悉一下呀,为什么一点要等nginx下载完了之后再往下看呢?tomcat正在运行着,先去浏览下美女图片,等加载好了再说,为什么不在这个过程中再检查下代码呢?
    很多人都喜欢在进行某一件需要等的事情的时候,就真的在那里等,然后自己这个时候给自己冠冕堂皇的接口去“放松”。
    其实我们应该交叉的进行任务,提高工作效率。

  16. Pay atention to your atention
    首先我们要热爱自己的工作,我在上面的第一点中曾经阐述过这一点,但是感觉这个观点应该单独成为一点。“《人性的弱点》这本书上说如果我们很讨厌一件事情,但是我们暗示自己很喜欢它,假装很喜欢它,可能慢慢的就真的喜欢上它了,就像你现在很难过,但是你强迫自己微笑起来,这个时候心情也会好很多,没错肢体上的改变也会影响情绪的改变,就像正在加班的你尝试着挺直腰板,面带微笑,没准一会就干完了自己认为需要一天才能完成的“重复劳动”。”,我们的一生,大部分时间是和工作打交道,如果不喜欢、不热爱自己的工作那不是在浪费生命吗?
    其实有时候加班也可能是因为自己的不专注,导致工作效率低下,没事了浏览下美女图片,看一看今日头条,关心国家大事那工作要什么时候才能完成?
    我认为真的需要锻炼自己的专注度,这不仅仅是在工作中。
    学生时代,真正学习好的都是上课集中注意力,边学就边记住了,下课一般也没有见到别人多么多么努力。而那些公交车上学习的,走路拿着书的,上厕所学习的,这些人往往成绩不是很理想,因为养成了散漫的习惯,这样一直重复下去,会什么事情都做不好。
    如何专注?Pay atention to your atention

  17. 工作中以解决每个小问题为目标
    我的另一篇文章中有说及时反馈的重要性,如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习?
    在工作中,以每一个问题为目标,每解决一个问题给自己及时反馈,不仅自我提升,还能涨工资,哈哈哈哈哈哈哈哈~嗝

  18. 时间分配,优先级排序
    给任务做好时间的分配和优先级的排序,干的时间长了,不能总是等着领导给活给一个做一个,可能会多个任务同时进行,这个时候一定要将近期的任务进行优先级排序,然后实施,不要最后一个任务也没有完成,这样就很尴尬。

  19. 不要在公司打游戏,或者可以找个小角落
    千万不要在公司打游戏,因为你自己不上进没关系,如果影响到了同事,让同事产生了某些情绪,领导心里可能会波涛汹涌~
    实在忍不住就找个小角落自己偷偷的玩~

  20. 代码问清楚,想清楚再开始写(包括性能)
    之前领导给了一个活,周末加了两天班,自己认为自己很努力,写的很起劲,周一才发现自己写的是错的,跟客户的真实场景相差甚远,而且马上要给qa提测,这。。。
    之前写一个模块的功能,写了半天逻辑一大堆,qa测了一堆bug,小姐姐也抱怨“Leesin水平不行呀,看看人家davis写的从来没有bug”,在davis的帮助下,也学习到很多的东西,在写代码前,一定把逻辑想清楚再写,这样看似写代码的时间少了,但是后期维护“返厂”的时间也少了,对于自己的提升是很大的。
    性能也是很重要的,每次写完代码有时间的话,自己测试下性能,没有时间的话也要考虑清楚,因为不考虑性能,被qa测试出来,后续又要调试很久,耽误了自己和他人的时间,浪费了公司的人力物力。

  21. 一个程序员的价值是解决问题的能力
    公司把你招过来不是让你提升自己,不是让你来学习的,是来干活的。
    程序员的等级是怎么划分的?不是你会多少东西,你会python、java、c++就是p7了?会考试会背东西就很厉害了?应付面试还是可以的,但是公司不需要这样的人,也不会有长远的发展,一定要在项目中积累经验,在项目中学习,很多前辈跟我这么说,我直到现在也是半信半疑,落实他们说的,但是也没有放弃自主的学习,可能是“不撞南墙不回头把”,但是我已经逐渐的改变自己的思想,努力说服自己从工作中确实能学到很多东西,花更多的时间在工作上,而不是自主学习,这样对于自己的成长也是有很大的帮助的。
    如果有哪位大牛发现我的想法错了,被领导的鸡汤灌傻了,请打醒我谢谢。

  22. 提升自己代码的美感,注意代码规范
    因为这个被领导骂了,自己写的只有自己看得懂, 可能过段时间自己也看不懂了,领导看还需要一行一行的跟,而已包括命名规范又像python,又像java,四不像,对于整个项目就像一个苍蝇坏了一锅汤

  23. 解决工作中问题的时候以问题为中心,不要总是去考虑边缘的东西
    就像工作中,解决问题的目的是要在docker中运行自己写的代码,还没运行起来呢,先去研究了半天docker,学习是业余时间学习的,而且学习了不一定用得到,不要在工作中去研究那些所谓自己感性去的东西,还是那句话,公司招你过来不是让你学习的。而应该目标很明确,我就是要运行自己写的代码,看看有没有什么问题,我就是要早点完成任务,好继续做下一个任务。

  24. 应不应该裸辞
    这里目前持有疑问的态度,我的观点是最好不要,因为压力很大,如果一段时间不上班能够保证自己生活的正常运转,且自己有十足的信心、充分的准备倒也可以一试,这仅仅是我自己的观点哈,我目前达不到这样的条件,所以我暂时选择不裸辞。

  25. 正确使用csdn
    允许我说句实话,csdn的页面不是很漂亮,但是是最大的,所以查东西还是蛮方便的,尤其是查完东西后,玩下拉,能看到很多类似问题的推荐,要善用这一点。
    在这里插入图片描述

  26. 每个周五晚上反省自己
    没错什么也不干,就是反省自己,也不是半个小时,是一晚上,千万不要认为浪费了一个晚上,其实是节约了周六、周日两天,而且工作一周,一定有所懈怠,想要给自己“放个假”。
    当然可以选择周五晚上给自己放个小假,看两个小时电影,但是一定在睡觉前一个小时或者半个小时进行自我反省。

  27. 不要做手机的奴隶
    虽然是程序员,但是也不能做手机的奴隶,不是不玩游戏就可以了,走了、吃饭玩手机,看似没有浪费时间,但是这会让走路变得很慢,吃饭变得很慢,实际吞噬了很多的时间,抛开理想,什么的不说,我们都这个年纪了,还有几年来玩手机?
    好吧大话我也会说,但是吃饭玩手机,我是真的忍不住,哈哈哈哈哈哈哈嗝~但是我有这个意愿去改变。
    对了走路玩手机是很危险的!!!

  28. 尽量早睡
    虽然是程序员,经常加班熬夜,但是如果可以请一定要早睡,晚睡的危害就不用我说了,千万不要因为刚刚加完班回来,就想着已经十二点了破罐子破摔,再看会手机吧,打一局王者吧,犒劳下自己,请放下手机,立即入睡,因为指不定明天上头条的是谁。

  29. 番茄工作法
    确实有效果,提升自己的专注能力。
    大脑懒懒散散的一天,还不如集中注意力的半天,甚至两小时,自己也开心。是的我们需要学会和自己的身体谈判,而不是强制。
    集中注意力的25分钟,换来5分钟放松的奖赏,使得自己形成专注的习惯,甚至条件反射。
    根据我的切身实践,番茄工作法,能够让你“更持久”,在办公椅上一坐一下午,说不定打着打着代码睡着了都,倒不如半小时起来一次转一转,呼吸呼吸新鲜空气,你会发现困意全无,思绪泉涌。

  30. 去客户现场的路上准备好,回到家里记录好
    一切以客户为中心,客户开心我们就开心,去客户现场解决问题,不要等到了再开始思考,在路上,甚至在公司,在家里的时候就提前把问题的解决方案以及几种可能想好,到了客户现场直接开干,不要让客户干等着~
    回到公司在公司的wiki上记录客户的问题,提升自己的同时,共同维护公司的知识库,于司于己都好。

  31. 尊重客户
    衣服得体,处理完问题,将自己在客户现场导致的脏乱等问题收拾好,给客户留下好的印象

  32. 该重写的时候,赶紧重写,及时止损
    不要怕麻烦,不要因为现在写了很多,就修修补补,这样只会拆西墙补东墙,问题越来越大,最后不可收拾了,才发现方向错了,还是要全部重头再来。
    就像一个性能问题,命名不应该用队列,用静态变量就可以,非要用queue,改到最后发现性能还是不行,只能乖乖的全部重写。

  33. 多听取别人的建议
    写一个功能的时候,自己和别人的意见产生了分歧,自己心中也觉得可能别人那种方式更好,但是人从来都不会承认自己的错误,而且碍于面子,还是按照自己的思路写,最后发现,还竹篮打水一场空。

  34. 感觉有问题的时候就是一定有问题
    每次写代码,都隐隐约约感觉这里会有问题,算了得过且过,如果没有这种可能,为什么你会有这种感觉,不要存在侥幸的心里,计算机是不会骗人的,人家只知道0和1。
    最后给qa测试的时候,才发现真的是有问题的。那真的是浪费自己和他人的时间,人力物力。

  35. 不是自己的分内之事不要乱说(客户现场)
    驻场开发,客户问产品上的事情,自己即使懂也尽量避免正面回答,除非客户说你不告诉我,我不买了。
    术业有专攻,本身我们对产品的理解和介绍能力,都有很大的不足,胡乱的说给客户,可能越抹越黑,最后本来很好的东西被自己搞砸了,最后项目黄了就惨了
    可以委婉的告诉他,这个我们后续会有专门的人员进行一次培训,请耐心等待等。

  36. 代码尽可能写成可配置型的,且动态生效的
    尽量考虑的多一点,将代码中可能出现问题的数字、时间、字符串等改成可配置的,且动态生效的,因为客户的是生产环境,每次修改代码都是需要重启服务的,那不是很恐怖?
    一次我去一个保密性比较强的客户那里,虽然是测试环境,但是每次修改代码都需要进行交换数据,然后客户比较忙,一天只能操作两个小时,虽然写死代码,问题不大,但是时间耗不起呀。
    而写成可配置的不仅可以大大提高容错性(客户的环境和我们本地的环境可能差别非常大),而且能够提高效率。
    如果客户的环境发生了严重的问题,非常生气,项目黄了,是一个“对不起,我刚毕业没有经验”能解决的吗?

  37. 写代码的时候就尽量把可能出现的问题全部考虑好
    写代码前或者写代码的过程中,将所有可能出现的问题尽可能提前想到,当然这可能需要经验来作为驱动。比如往文件夹写文件,这个文件夹的可用大小是否支持这个文件能够完全写完,比如客户的环境是非常特殊的,没有自家测试环境那么理想,所以尽可能不要把东西写死,如上一条,等等。
    包括在给qa提测之前,将测试用例自己最好都想到,避免提测–>改bug–>提测–>改bug提测–>改bug提测–>改bug,如此循环下去~,先不说对公司造成了什么损失,这是对自己生命的浪费。

  38. 过段时间看下自己总结的给自己的建议
    如题。

未完待续。。。

Java糖果罐
扫码关注
发布了508 篇原创文章 · 获赞 2198 · 访问量 185万+

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览