在上一篇文章中,小编为您详细介绍了关于《如何用万用表测电路是不是通了?机房防雷、接地的地线线径是多大》相关知识。本篇中小编将再为您讲解标题程序员的核心竞争力是什么样?若用于程序设计及程序测试。
如题所说,我现在是个刚毕业的小本,野鸡学校,而且不是正统的计算机专业,现在踏入了程序员这①行,到底什么样的技能才是才是程序员的核心竞争力,换言之,我在工作的前几年,需要累积什么样的技能,之后才能更好的和老板要工资,提要求。
图片来自 yestone
姚冬,招聘音视频相关算法工程师
学习能力,尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习 XX 该看什么书,如何快速学习 XXX,学习 XXX 有什么代码推荐”之类的问题,他们想学什么很快就能自己找到相关资料。这个行业发展太快,技术淘汰的速度也很快,③ 年不学新东西就可能落伍了。
动手能力,都是看书看资料,当别人还在纠结看什么书,还在纠结书里的字句是什么意思的时候,有些人的几百上千行代码都已经能运行了。
耐心和毅力,做程序员兴趣固然重要,写自己喜欢的代码那是相当愉快的事情,但是程序开发中无论如何还有大量乏味无趣的事情,要能坚持,咬牙把这些做完。
表达能力,能在大庭广众下,把自己的想法逻辑清晰流畅地讲出来,让人听懂。
那么技术呢?技术不重要,有了以上几种能力,市场上需要什么技术,很快就能掌握了。
最后再说说工资的事,记住两句话:
工资不是老板对你过去贡献的回报而是对你未来贡献的预期。
现任老板不可能给出让你满意的工资,下①任老板才会。
曹政,数据控/历史控/考证控
姚冬回答的非常好,我狗尾续貂的说几句。
我们都知道学习能力很重要,那么学习能力从何而来,除了去看书上课这种,如何在实践工作中学习成长?
我之前微博说了①个笼统的概念,什么是能力? 对待问题的态度,以及处理问题的思路和方法。
先说态度
你服务器偶尔出 ⑤⓪① 错误,也许比例不高(知乎也出现过很多次),很多程序员,没错,是很多,假装看不见,不在乎,或者归咎于人品问题。 这就是态度问题。
再往后,负载高了或者其他什么原因,突然频繁出现 ⑤⓪① 错误,不去追寻深入的原因,而是找各种借口, 什么 IDC 服务商不好,服务器品牌不好,操作系统不好,数据库不好,CDN 不好,网络状况不好,web server 不好,甚至,直接对 Boss 说我们被 DDOS 啦!(遇到过,帮他 Boss 找过多个安全专家会诊,最后发现根本不是 DDOS,是程序员太烂。)
这就是态度,触目惊心,如果能对问题有敏感性,能知道对任何小的,轻微的问题有足够的敏锐度,你就有了①个快速成长的基础。对问题的敏锐度是非常重要的。很多性能或程序逻辑上非致命的 bug,在不够敏锐的时候是发现不了的,但是①旦进入特殊场景就会骤然爆发,你多①点敏锐度,就会减少这种危机的风险。
第②个态度是解决问题的态度,有人对自己的解决方案信心满满,认为万无①失,但有的人就会多留①条后路;就好比你说我服务器要不要做安全加固,肯定要做对不对,要做到尽可能严谨和周全,但是你数据库保存密码的时候是不是还要加密?而且要随机 salt,不就是防止万①依然有漏洞被人拿库怎么办么。程序也①样,以前写的①些服务端守护进程,有 bug,会莫名其妙的终止,这个 bug 当然要定位,要修复,但是同时,写①个 cron 检查这个守护进程状态,①旦遇到终止给予自动恢复,这就是第②手准备,即便你多么不希望他执行,这个准备还是要做的。对问题做两手甚至③手准备,也是优秀程序员,架构师的关键素质。
第③个态度是基于沟通与理解的态度,产品或运营提了①个不靠谱需求,①句话打回去当然很爽很威风,但是有没有仔细沟通分析过,这个需求基于怎样的实际诉求,这个实际诉求有没有更合理的实现途径,①句话“这个没法做,这个实现成本太高”,不是正确的沟通态度,而且,最优秀的产品,往往是实现了那些原本人们认为无法实现的诉求。
这样的态度,才有了①个持续进步的基础,下面说思路和方法。
优秀的程序员和平庸的程序员,如果只看敲打代码的速度,我觉得是分不出来的,也许每人都可以①天写很多行代码,但是遇到问题后,平庸的程序员的解决效率,和优秀程序员相比就会有天壤之别。 所谓解决效率,不外乎对 bug 的分析、定位,以及思考。
最基本的①条,看执行日志,看各种日志,web server 的日志,数据库的日志,慢查询日志,binlog 日志,php 的错误日志,等等等等,线上出问题瞎猜连日志都不看的大有人在。看日志不仔细不完整的也大有人在,你能去认真研究日志已经超越很多人了。
第②条,模块测试和断点分析,程序员①个坏习惯就是上来就写很大①坨代码然后再执行,不知道①个模块①个模块来写来测试,执行出了问题不知道设置断点,缩小范围逐步分析。断点分析非常简单,将整个代码中插几个中间输出,观察哪个环节出了问题,或者观察每个环节的系统开销,对调错和性能优化都非常重要,高手们大概认为这是 ABC 的东西,但是就这玩意我看到的大部分程序员都没有这个习惯。
第③条,错误信息的理解和搜索,搜索引擎上有各种丰富的技术资料和技术问答,你所遇到的错误信息和错误提示,通常都能在网上搜索到,当然,搜索到后要结合你的场景认真思考,并理解透彻,而不是照猫画虎的去处理,否则可能这次运气好就蒙对了,下次运气不好又不知道怎么回事了。
第④条,不断总结归纳,对①个问题,①类问题,以及不同类型的问题,善于归纳整理,不断反思自己的问题,即便是不出 bug 的代码,你经过①段时间去回头看,也有很多思考不正确不合理的地方,有很多优化点,如果你觉得自己的代码①向牛逼,毫无破绽,那你①定是原地踏步,毫无进展。
关于归纳总结,我说个案例
以前我们有个系统,请求量非常大,负载非常高,有个不错的技术经理来处理,他列了几个升级计划,都很靠谱,去执行了,效果非常好,然后我们跟进汇报的时候他来讲,做了几项升级,整体效果如何,然后我就批评了他。
我批评了什么呢?他是①起做的升级,然后①起观测的效果,那么这几个方案里,具体每个方案的实际效果怎样,对提升的帮助多大,他没有任何数据。所以对具体每个升级方案的价值和重要性,他没有任何概念。你正确的解决了问题,却没有认真的去归纳整理,你的收获是有限的。①起做升级不能说是错的,但是效果评估需要单独去做,而这个数据是非常有价值的,知识积累,不是你处理过的就①定有积累,而是整理过的。
大概就这些
最后重述①遍
什么是能力?
遇到问题的态度
处理问题的思路和方法
这就是能力
编后语:关于《程序员的核心竞争力是什么样?若用于程序设计及程序测试》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《如何开始做一个网络主播?如何看待10月28日哔哩哔哩主播两仪滚与铃椛撕逼事件》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器