❶ 程序员遇到很难的技术问题是怎样的感觉
昨天刚领一个线上P0级重大事故,持续时间1小时,影响范围全站 !准确的时间点是下午17点开始,具体问题定位且听我下文细细道来。
先说感觉,那感觉真是太刺激了,本来下午五点,昏昏沉沉的,瞬间一个激灵就清醒了(想象一下高中课堂,你在打瞌睡,突然老师走到你面前给你一下子的感觉),原本准备再过一小时吃晚饭了,吃完晚饭再摸鱼到21点就可以下班了呀,别问我为啥到21点,问你就不是程序员!
带着无比紧张且颤抖的心情开始定位问题,先来个错误日志尝尝鲜:
1、下午五点开始有少量的慢sql报警,没有人当回事,因为这种事情总发生,虽然大家都知道在实际开发中如何避免慢sql,但是整个团队要想完全避免慢sql却很难;
2、五点十分左右,开始零星有用户反馈指定功能不可用,SLB开始报警,技术开始介入排查;
3、十五分左右,客服部门电话开始爆炸,用户密集反馈指定功能不可用,技术部开始重视;
4、二十分左右,所有服务大面积出现接口无法响应,整体服务不可用;
5、我们一开始定位觉得是MySQL的问题,因为前面有mycat的慢SQL报警,后来定位并不是MySQL,因为MySQL的内存、连接数、流量这些指标都很平稳;
6、最终在五点三十分的时候我们定位到是ES出问题了,因为所有的Java服务不可用最终都指向上面的错误日志,bbo提供的服务线程池满了,再有请求进来直接拒绝了,查看这个服务的代码,最终查询的是ES,此时的ES进程已经处于假死状态。
那接下来大家说怎么办?如何快速的恢复线上服务?
重启!
是的,只有重启大法此时是最快的解决办法,你不可能说保留ES事故现场,让我用arthas之类的工具来现场分析jvm内存情况。
然而重启之后服务依旧是不可用,接口还是无法响应, 大家知道这个时候是什么原因吗?为什么重启了ES服务还是不行?
后续继续重启报错bbo日志的相应服务,当这些服务全部重启完毕后,我们的服务终于恢复访问了,这个过程持续了十几分钟,确切的说,直到17点五十多分,我们的所有服务才恢复了访问。
接下来就是事故总结、相关责任人、产生问题的原因、接下来的优化方案,全公司邮件通报!
你说这个难不难?本身并不难,难的是事情紧急且重要,这个时候你慌了啊,乱手乱脚的,大家你一言我一语的,如何冷静提取有效信息然后尽可能快的解决生产的重大故障才是最难的!
最后,当一切都恢复平静的时候,你会发现:“卧槽,好累啊!”。
虚脱的感觉!
最后祝大家程序员节日快乐,今年可是程序员的本命年哦
2020 = 1024 + 996 = 404 + 404 + 404 + 404
这种感觉能难受,很压抑。
技术难题,对于程序员来说,是经常有的事,关键是如何面对吧。
说下我的事情,虽然也会写点代码,但并不是以此为正业,所以对于真正的程序员来说,可能说法会有点偏颇。
遇到难题时,一般都在网上搜索解决方法,一般来说,都有很优秀的程序员分享他的劳动成果,所以一般都能解决问题。但也真正碰到难的问题,一个就是循环的问题,无限极菜单问题,当时都是找了很久,看了很多遍才明白过来,当时自己是几天都不太开心,也不太想说话,总是在测试着程序。挺烦也挺不开心的。只是最后做出来了,心情就好多了。
这是我的一些经历,当然,如果全职程序员,可能压力就更大了。
如何形容这种感觉呢?焦躁,紧张,失落,无助,亚历山大...
再多词可能都描述不清楚。本人在工作中经常遇到难题,有些问题一两个月都搞不定。遇到这种问题,估计只有下面这张图的表情能描述此时此刻的心态了。
程序员遇到的难题其实分为两种,一种是没有办法定位清除的问题,另外一种是定位清除了,但是没办法,或者很难解决的问题。
难定位的问题所谓难定位的问题,其实就是你根本不知道这个问题是什么。比如系统突然挂掉了,你从现有的信息根本不能确定问题在哪。这个时候你剩下的可能只有满脑子的问号了。
如果系统只挂了一次,后面不再出问题,那就很难找出问题的根源了。不过这样也有好处,那就是问题的影响的程度相对较轻,毕竟不容易出现。所以在软件开发中通常不是什么问题都解决的,因为不是所有问题都能搞清楚是什么问题,谈何解决呢!
难解决的问题难解决的问题是问题搞清楚了,但是基于现有架构很难,或者没法搞定。遇到这种情况,通常先是很高兴,兴奋,然后就只剩下无奈了。
当然,从技术层面来说并不是完全解决不掉。只是如果要解决需要涉及架构调整或者其它方面的改动,修改调整的内容太多。这种情况下就要考虑利弊得失了。
如果改动太大,可能会引入很多新的问题,可能得不偿失。因此,遇到此类问题可能会采取一些规避方案。
当然,在开发和运营当中遇到各种问题是很正常的,关键是遇到不同的问题采用不同的策略。首先保证的是业务的正常运行,然后是考虑是否需要彻底解决。这样慢慢调整,心理压力会小一些。
作为一个工作多年的老码农,在工作也遇到过一些艰难的技术问题,就以切身体会谈谈对这个问题的看法。
首先需要明确一下,问题是否困难除了取决于问题本身之外,还在于解决问题的人的水平,也许对你很难的问题,在别人看来不过是小菜一碟。明白了这一点,那么这些技术问题也就成了考察程序员水平的试金石,有些人可能会因此气馁,甚至放弃;而有些人则通过解决问题学到了很多新的技术,也让自己进一步成长。
记得多年前看工作中要用到一款开源库,那时候刚学完C++不久,自以为对面向对象了解甚深,然而学习这个库时却是一头雾水,最后在经过泡论坛,然后又认真的学习了面向对象设计模式,后来不但能使用那个库,更重要的是对面向对象编程有了更深的认识!
后来还有很多类似的事情,刚开始时感觉无比困难,但是通过自己的努力,或求助他人、或查阅资料,当最终问题解决时,你会发现自己又牛逼了一些,然后再遇到一些新的问题,如此循环……
其实编程也是一个学习的过程,就如同爬山一样,每一阶段都会有一些山头,只有当你爬上山头才能欣赏美丽的风景,但是当你爬上一座山头的时候,就会发现更高山峰!只有当你爬上最高峰,才能“一览众山小”,可是到那时,你可能会向往地球之外的天地!
很难解决一般就是遇到某些瓶颈了,不同瓶颈的感觉是不一样的,但无非可以归结为下面几类。
成本原因
不让马儿吃草,还想让马跑。这个是有些不太理解互联网的一些领导的错误观念,他们会给你安排一个老旧台式机,想要让你承载几万、几十万并发的秒杀系统,你当然很难解决。
外界的评论可能是,“这帮程序员是吃干饭的么?这系统也太垃圾了!”
老板的评论是,“我这台式机也不少钱呢。”
程序员的评论是,“这抠门老板不会是个傻子吧。哎,再优化优化吧。”
当然,有些情况也是能够理解的,公司明白需要更好的设备,但是由于成本控制,不得不在某些方面节省。但换句话说,设备成本是占不了一个大头的,可能有其他方面的成本更加需要收紧。
如果是因为成本原因,我们的心情可能是无奈,又有些不能施展拳脚的束缚感。
历史 原因
举个例子,系统用了5年了,迭代了N个版本,在面对新的需求的时候,就会出现需求限制于系统的情况,常常会有程序员说,这个实现不了,那个不符合现在系统规则。其中很大一部分是这些年的积累,欠下的技术债造成的。俗话说,大船难调头。
这种情况更多的出现在刚创业之后的几年,由于一开始的快速迭代,追求先把业务流程跑通,先生存再规范,会让一开始的软件开发流程并不那么规范,如果在1-2年内没有进行重构,那么积攒的3-5年的技术债就会慢慢把你压得喘不过气来。
解决这种情况,一是需要时机,给出足够的空间和时间让技术团队重构,二是需要魄力,你得有成功的把握,不能干着干着说不行了,咱们还是回到原来吧。
如果是因为 历史 原因,我们的心情可能是期待和渴望,又有些对现状的无奈。
能力原因
虽然说专家很厉害,但说白了,大部分企业需要的研发人员,还到不了需要专家的级别。所以,一般而言,没有什么技术是攻克不了的。如果真的遇上了,那就说明你的公司已经到达了一个新的层次,从而需要那个层次的人员来解决,可以通过外聘或者顾问的方式,引进新的技术。
如果是因为能力原因,我们的心情虽然有些力不从心,但又为公司在新的台阶而高兴。
不管怎样,程序员是一群追求美好的人,不管是外部限制还是内部限制,不能解决的难题对于技术人员来说总是很憋屈的。
不能着急,慢慢分析,找到问题点,没有解决不了的问题
程序员的技术问题,排除架构师技术选型错误以外,都是程序员的功夫不到家所致。
1,面向网络的程序员会第一时间问度娘,各大社区求助大神。
2,面向源码的程序员会第一时间查看源码实现,查找api文档,思考解决方案。
3,不管技术如何发展,架构如何延伸,不变的是基本功,再先进的组件都是由基础语法书写出来的 。
练武不练功,到老一场空,共勉!
首先说下这个很难的技术定义,个人认为在你知道之外的知识都是很难的,一旦你深入了解其使用方式,原理,甚至阅读了他的源码,你会觉得有的时候会恍然大悟。程序员是一个不断要学习的岗位,就要面临很多从未知到已知技术的时候,每当遇到这样的情况时候,总有种不解决了这个问题,睡不着觉的感觉,心里不踏实,总是想尽各种办法去解决这个问题。甚至可以一直追查这个问题。也许这就是一种执拗吧
我老公最近就遇到一个大石头需要敲碎,我作为一个旁观者,都挺心疼他。
他还在读博,最近遇到的问题是他一个项目上的问题,也跟他的毕业设计相关。他刚读博的时候确定了一个方向,去年开题的时候他觉得这个方向没有什么前景,真的是考虑了好久要不要换,如果不换,就是安稳的毕业,换的话接下来的一年多时间他会很艰难,很多新的问题需要一一克服,最后他决定换了,他说他读博就是为了提高自己,还是想挑战一下。
年前,系统板设计好了,然后最近做好回来了,开始调试,说这个板子跟个石头一样,不工作。本来就是礼拜一到礼拜六待在学校不回来,周日是休息的。现在放假回来都是在啃变压器的东西,早上起的很早,晚上又很晚。真的挺心疼的,他还安慰我说,他又要进步了。挺担心他的身体的,我特别希望时间能快点过去,能顺利毕业。他却不希望,总觉得时间过的太快,没有时间搞研究。
今年的生日愿望,希望他科研顺利,身体 健康 。
以我的从业经历,说说遇到很难的技术问题是什么感觉吧: 兴奋、充满挑战性 。尤其是在开发中遇到了技术难题,很多情况下真有种可遇不可求的感觉。
我认为能遇到技术难题,至少证明这个工作是有价值的。 这种价值体现了两个方面,一是你的工作在整个产品开发中占据重要地位,甚至是核心地位。二是你的认知和经验,仍然有成长的空间。如果你的工作一直没有遇到难题,轻而易举地就解决了一切,那么很可能是你没有机会深入重要的核心部分,或者你的工作性质可替代性很高,简单重复性很高。
分解法。 把技术难题拆分,尽量的单元化、模块化,这样有利于逐步攻破,逐步解决。主要是降低技术难度,寻找真正的难点所在。如果问题无法拆分,就是那么一个点,那么需要逆向思维,可以先把问题扩大,看看涉及面有哪些,然后再缩小范围,锁定关键之处。
刨根法。 把技术难题抽象化,理论化,从根本的源头去解决。很多技术问题,从基础理论的角度去看,其实真的不难,只要你能定位到相关的技术点,困难点,知识点,就很容易进行快速解决。解决的终极办法就是从理论上彻底解决,做到知行统一。
讨论法。 三人行,必有我师。很多情况下,所谓的技术难题,在别人的眼中,也许并不是难题。很多情况下,小组讨论,交换意见,方案互补,就可以解决难题。有些情况下,还需要和供应商一起讨论,主要是补充信息的错漏。经常出现的芯片问题,很多情况下供应商都更加有经验。因为供应商有更多的使用客户,有很多解决问题的经验。最主要的是,芯片是他们设计的,他们更加清楚缘由。
没有绝对的技术难题,有的只是尚未解决的技术难题。
❷ 疯狂的程序员励志语录
程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。下面是我给大家整理的疯狂的程序员励志语录,供大家参阅!
疯狂的程序员励志语录(一)
1. IT人表示屁股上还得纹一个,要不中间来个helloworld!
2. 知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
3. 学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览群书。
4. 保存好你做过的所有的源文件----那是你最好的积累之一。
5. 把学到的东西教给别人,无论是口口相授还是文以载道,你都会发现自己也能从这个过程中收获良多。
6. 找到旁人写的这样一些代码——它们实现了重要的功能,但写得并不够聪明。重写它们,然后告诉自己永远不要犯相同的错误。
7. 经理往往认为“程序员A=程序员B”,因为他们工作的年头差不多。但实际上,他们的效率可能相差十倍甚至百倍。
8. 软件开发的时间通常是这样的:一开始的90%开发工作用掉了整个计划90%的时间,剩下的10%同样需要整个计划90%的时间,而最终发布前的修改也是如此。
9. 设计软件有两种方法:一种是简单到明显没有缺陷,另一种复杂到缺陷不那么明显。
10. 一门技术必须多用才能掌握,最好的办法是在项目中运用。如果你在真实的项目中使用了某一项技术,那么印象就会非常深刻。即使忘记,也能很快捡起来。
11. 不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。
12. A:你在哪自习?B:教南404。A:好的,我来了。B:……A:你怎么还没来?要这么久么?B:404notfound!
13. 真正的程序员喜欢兼卖爆米花,他们利用CPU散发出的热量做爆米花,可以根据米花爆裂的速度听出正在运行什么程序。
14. 十年生死两茫茫,写程序,到天亮。千行代码,Bug何处藏。纵使上线又怎样,朝令改,夕断肠。领导每天新想法,天天改,日日忙。相顾无言,惟有泪千行。每晚灯火阑珊处,夜难寐,又加班。
15. 老婆给当程序员的老公打电话:“下班顺路买三个包子带回来,如果看到卖西瓜的,买一个。”当晚,程序员老公手捧一个包子进了家门……老婆怒道:“你怎么就买了一个包子?!”老公答曰:“因为看到了卖西瓜的。”
16. 程序员爱情观:爱情就是死循环,一旦执行就陷进去了;爱上一个人,就是内存泄漏–你永远释放不了;真正爱上一个人的时候,那就是常量限定,永远不会改变;女朋友就是私有变量,只有我这个类才能调用;情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。
17. A:借我1000块。B:拿去,1024,我给你凑了个整儿。
18. 程序员对测试人员说:"在我机器上没问题啊!""我测试了一下,确实在我机器上没问题啊"
19. 少壮不努力,老大写程序。
20. 世界上只有两句真理:1。人一定会死。2。程序一定有Bug。
疯狂的程序员励志语录(二)
1、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
2、调试完一个动态连接函数,固然值得兴奋,但真正的成功远还在无数个函数之后。
3、如果你喜欢底层开发,千万不要勉强自己去搞VC,找到你最真实的想法,程序员最不能忍受的就是万精油。
4、非优秀的程序员常常把空间和时间消耗殆尽,优秀的程序员则总是有足够的空间和时间去完成编程任务,而且配合近乎完美。
5、程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。
6、一个人静静坐在电脑面前写代码的感觉,那是什么感觉?那是武林高手闭关修炼的感觉。
7、硬的怕横的,横的怕不要命的,疯子都是不要命的,所以疯子力量大,程序员只有一种,疯狂的程序员。
8、“设计是一个发现问题、而不是发现解决方案的过程”
9、“功能说明书里不存在可操作性”
10、“过去的代码都是未经测试的代码”
11、“任何傻瓜都能写出计算机可以理解的代码。好的程序员能写出人能读懂的代码”
12、“测试是来表明bug的存在而不是不存在”
13、“简单不先于复杂,而是在复杂之后”
14、“Real developers ship”
15、“没有绝世神功”
16、“过去的33年里,我每天早上看着镜子问自己:“今天是我生命的最后一天吗?我是否要去做今天该做的事?”一天一天太多次是“不是”,我知道这需要改变…所有的事情——所有身外的期望,所有的骄傲,所有的对困难和失败的恐惧——这些东西在死亡面前立刻消失的无影无踪,只剩下真正重要的东西。想着自己即将死去,这是让我避免落入担心失去什么的陷阱里的最好的方法。”
疯狂的程序员励志语录(三)
1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。
4、程序不是年轻的专利,但是,他属于年轻。
5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。
6、一个好汉三个帮,程序员同样如此。
7、一个100行的代码调试都可能会让程序员遇到很多挫折,所以,面对挫折,我们永远不能低头。
8、调试完一个动态连接函数,固然值得兴奋,但真正的成功远还在无数个函数之后。
9、程序是我的生命,但我相信爱她甚过爱我的生命。
10、信念和目标,必须永远洋溢在程序员内心。
11、就算我们站在群山之颠,也别忘记雄鹰依旧能从我们头顶飞过。骄傲是比用JAVA进行底层开发更可笑的东西。
12、这句话不是很文雅,彻底鄙视那些害怕别人超越自己而拒绝回答别人问题的程序员。
13、如果调试一个程序让你很苦恼,千万不要放弃,成功永远在拐角之后,除非你走到拐角,否则你永远不知道你离他多远,所以,请记住,坚持不懈,直到成功。
14、最累的时候,家人是你最好的归宿。
15、退一步海阔天空,这是一种应有的心境。
16、如果你喜欢底层开发,千万不要勉强自己去搞VC,找到你最真实的想法,程序员最不能忍受的就是万精油。
17、IF(BOOL 学习= =FALSE)BOOL 落后=TRUE;不断的学习,我们才能不断的前进。
18、你的一个程序有时正常有时不正常,而你已经完全遵循编程的规则,为什么?事实上我认为相信只要遵循别人所说就能得到想当然的结果的人其实是个傻瓜。
19、编程中我们会遇到多少挫折?表放弃,沙漠尽头必是绿洲。
20、非优秀的程序员常常把空间和时间消耗殆尽,优秀的程序员则总是有足够的空间和时间去完成编程任务,而且配合近乎完美。
21、我们应该重视团队的精神,一个人作用再大,也不过是一碗水中比较大的一粒水珠而已。
22、无私奉献不是天方夜谭,有时候,我们也可以做到。
❸ 程序员喜欢你的9大表现是什么
程序员爱上一个女生,相对来说他们在这方面会表现的虽然迟钝一些,但你仔细观察会发现一些细节上会有一定的不同。
程序员男生喜欢你的表现如下:
1、主动跟你联系。
一个男人喜欢一个女生的时候,他会找任何的方法跟你去见面,因为男人不想闲聊,他喜欢的是见面在一起的感觉。所以喜欢你的男生会主动联系你,会找借口约你出来。如果你有事,那他可能还会坚持说请你吃饭,或者去看电影什么的。
2、他的眼睛会告诉你。
喜欢你的话,他一定会找办法跟你对视,跟你有眼神接触,如果不喜欢你的话,会避免跟你有眼神接触。
3、主动问与你有关的事。
他对你好奇,如果他自己一直在吹牛。而且也不表明他喜欢你,这就说明他是一个自恋人。真的喜欢你的话,会对你的世界感兴趣,所以他会适度真正的了解你,并且会时不时的会问很多问题。
4、他稍微会适度的接触你。
可能就是跟聊天的的时候碰你的胳膊,或者过马路的时候,他会试图让你搂着他的胳膊,或者你头发上有东西他会主动去帮你拿掉,反正如果他喜欢你,他会试图跟你有一种身体方面的接触。
5、会把空余时间留给你。
这个是非常重要的,因为有女生都会反映到一个问题,就是说他很忙,平时没有时间跟我聊天,也很少跟我见面。
6、主动跟你联系。
一个男人喜欢一个女生的时候,他会找任何的方法跟你去见面,因为男人不想闲聊,他喜欢的是见面在一起的感觉。
所以喜欢你的男生会主动联系你,会找借口约你出来。如果你有事,那他可能还会坚持说请你吃饭,或者去看电影什么的。他主动联系你,因为想跟你见面,更是因为他喜欢你。
7、他的眼睛会告诉你。
喜欢你的话,他一定会找办法跟你对视,跟你有眼神接触,如果不喜欢你的话,会避免跟你有眼神接触。这里我们指的是视觉动物。所以他看到一个喜欢的东西或者人就会忍不住地去看,比如说有一个跑车或者一个美女喜欢的话,但是他跟你聊天的时候会看你的眼睛。
8、当他开始跟你吹牛。
因为男人很理性,所以他会想通过说出来自己的条件来征服你,比如会说他在学习或者工作的成就,刚才在公司开会,然后开我的法拉里送朋友到机场。男生这种情况是非常容易见到的。
9、主动问与你有关的事。
他对你好奇,如果他自己一直在吹牛。而且也不表明他喜欢你,这就说明他是一个自恋人。真的喜欢你的话,会对你的世界感兴趣,所以他会适度真正的了解你,并且会时不时的会问很多问题。
❹ 看看80万程序员怎么评论:前端程序员会不会失业
前端程序员不会失业。
前端后端怎么分,简单来说,你能看得到的,就是前端,你看不到的,就是后端。
前端在某种程度上,包括PC,手机,Pad,以及各种硬件设备,大屏/手表等。
设备会变,编程语言也会变,但是前端程序员是不会消失的。
也许未来就是音频视频和VR的世界,也许做动画可能更多。
他是会一直发展,并不会完全消失。
从某种程度上来说,之前的Flex程序员都饿死了么?
并没有,大部分都转成了JS,Android,IOS等。
一个程序员,本来要懂的就不应该只是一种语言。
就像一个写手,他的价值并不只是在用哪种语言来写作,而是在于他想要表达的是什么,以及用什么样的方式表达出来。
❺ 脉脉、知乎评论区留言“m”是什么意思是骂人的话吗
如果你经常玩脉脉、知乎等这些人脉、知识社区会发现一个问题,评论区很多留言会只留一个“m”,小编一开始完全不知道m是什么意思,以为M代表的是“没”的意思,然后延伸出来是骂楼主”没鸡鸡“或者延伸出”没真相“之类的含义,后来经过仔细研究才知道m的真实含义!❻ 为什么很多女生都想嫁给程序员
女生为什么想嫁给程序员肯定是现在的程序员比较吃香,不然女生也不会,选择他们了,毕竟现在的女生多么的现实,多么的识时务,所以可想而知了