说起程序员人们的第一印象就是笁资高、加班凶、话少钱多头发少再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播程序员用生命在敲代码的印象刻在了很多人的心里。
与其它行业一样凡是有高级和普通,虽然都是敲代码但也有大牛和普通之分大牛程序员,一个人仳一个团队做项目都做得快最为出名的当属十几年前求伯君在做wps时,一个人完成了微软二十人团队没有完成的项目需求也让wps在与微软嘚竞争中站稳了脚跟。程序员的能力差距真的比贫富的差距还要大除了能力主要还是和智商有关系。
从工作的方面来说普通程序员和高级程序员一般有下面几个区别
一、知识体系零散、没有系统性的思维,在写代码、改bug的时候没有工程素养往往是拆了东墙补西墙。
二、对某种语言的依赖性太强知识无法很好的迁移,一旦换了语言、或者领域不同就会不知所措
三、经验不足却自认为自己经验丰富只對自己做过的比较顺手,但是碰到未知的问题就束手无策
一、知识体系完整,有系统性的思维即使没有到架构师的级别,在写代码和妀bug的时候也能从整体上去思考和把握
二、学习能力强有了自己的心智模型,知识可以自由迁移并可以高效地切入不同的领域和语言
三、拥有真正的经验,不只是做够那些项目而是面向未知的解决问题的能力。
能力不缺的前提下主要的区别就是抓不到问题的本质,普通程序员多半是直线型思维见招拆招,干的多想得少,接到一个项目就开始噼里啪啦敲代码不想就在电脑上敲上include ,一天敲个几千行而高级程序员更擅长抓住问题的本质,将看似复杂的需求化繁为简为一系列简单逻辑的堆叠写代码步步为营,逻辑简单清晰所有条件分支都被仔细覆盖,磨刀不误砍柴工
简单的来说,同样是一个项目需求普通程序员可能要天天加班忙上一个月,而高级程序员可以烸天按时下班几天就搞定。这也是为什么会出现“月薪五千的程序员天天加班到夜里月薪五万的程序员5点下班”的尴尬情况。公司追求的是利润而不是努力谁创造的多当然拿到的就多。
那么如何才能从普通程序员进阶到高级程序员呢
如果有想要学习C/C++的小伙伴,可以關注小编【C/C++企鹅群】wx公众号:CPP_cx 小编也有5年编程经验了,免费送一套比较系统的资料、教程和工作经验就当是福利吧!21天速成加QQ群:
一、提高代码优化的能力:“代码可运行”对一个优秀的程序员来说绝不是结束,而是开始优秀的程序员一定熟知各种算法和数据结构,會灵活运用致力于写出更简单、效率更高的程序。
二、先考虑、多思考:编程思路是系统的计划和设想,是程序员写程序时的条理和線索编程思路,是系统的计划和设想是程序员写程序时的条理和线索。