如何成为一名优秀的程序员

引言

  很久写博客了,今天决定写一篇简单的感悟和分享,是一篇关于如何让自己更好的成长为一名优秀的程序员的文章,虽然目前本人还是一名渣渣,但我相信只要努力,终究会有成长和收获。

  相信每一个人都有自己的追求和向往,或许成为一名优秀的程序员正是追求之一,成为一名优秀的程序员也是我的追求之一,虽然追求的路途异常曲折但也要勇往直前。

何谓优秀的程序员?

  在讨论如何成为一名优秀的程序员之前,我们应该弄清楚优秀的程序员是什么样的,只有知道优秀的程序员是什么样子的,才能朝着这个方向努力,去提升自己。
  说到优秀的程序员,可能有的小伙伴说,牛逼的程序员不就是优秀的程序员吗,开发经验的程序员就是优秀的,大牛、大佬就是优秀的程序员。
  这些答案不可以说是错误的,但是可以说比较笼统的,因为优秀的概念本身就是一种比较抽象的概念,如果单纯我们只是简单定义我们想成为一个大牛或者大佬,很容易陷入只是简单喊口号,却不知道如何具体行动的境地,长此以往会自我怀疑。
  所以我们需要把优秀的程序员的一些优质属性列举出来,然后根据自己的情况选出一些自己可以达到的条件,慢慢提升自己,向一名优秀的程序员靠近。
  接下来就来列举下我心目中认为一名优秀程序员是什么样子的。

1、基本功扎实
  基本功指的是一些程序员的一些基本要求,要知道所使用语言的常用语法糖、基础语法、常用框架,有更高追求的应该更多去了解计算机、网络相关知识。

2、善于学习
  我相信优秀的程序员都是非常善于学习的,他们知道自己要学习什么,知道怎么去学习是有效的。
  计算机行业技术更迭非常快,如果没有耐下心来长久学习,容易被时代淘汰。
  保持长久的学习习惯固然重要,但学习方法和效率也是非常重要,没有掌握一个好的学习习惯会让自己疲于奔命,自信心受挫,要时刻调整自己的学习方案,保证有效率的学习。

3、勇于改变
  我相信优秀的程序员是勇于改变的,他们能够感知到技术的变迁,勇于打破自己习惯的东西,去接受新的变化。
  每个人都会有自己的思维方式、编程习惯或者自己的技术栈,在没有什么大的变故下当然不需要去改变,可是在技术更迭频繁的行业里,墨守成规、因循守旧是非常致命的目的,如果不敢去改变自己,去学习新的技术,去拥抱未来,那么终究会被时代他人所淘汰。

4、工作经验丰富
  说到这工作经验丰富,可能大家觉得很简单,包括我以前也觉得无非就是正常工作几年就可以了,但经过这几年工作发现工作经验丰富并不是这么简单,重点在丰富这个词上,有的人可能工作几年一直做着重复的事,亦或是摸摸鱼,CV几年。
  我相信优秀的程序员通过工作的同时,能考虑比普通人更多、更全面、因为他并不是单纯的只是工作,而是想着怎么把一件事做好,长此以往就能收获得比一般人要多得多。

4、善于总结
  优秀的程序员总是善于总结的,他们总结每一次开发需求的不足,尝试想着更好的解决方案。

5、逻辑清晰严谨
  大部分的业务场景都是非常复杂的,好的程序员不说能面面俱到,但是也能做到一定的稳定性,以来支撑业务的运转。

前进的阻碍

  简单的总结了几点优秀的程序员是什么样子的之后,再来总结一下在前进道路上的阻碍,是很多人会犯的问题,其中很多也是我这几年经常犯的问题。犯错不要紧,只要我们能够认识到错误,并努力改正就好了。

1、恨不得立马就有回报
  这个问题我觉得应该是比较严重的一个问题,这个问题不能解决容易三分钟热度,做啥事都没有长性,本人也因为这个问题吃了很多亏。

  • 稍微努力学习下恨不得就想着学习成绩有所提升
  • 学一个东西恨不得就想用它做出东西来
  • 进入公司还没怎么干,就想着升职加薪大施拳脚,准备大干一场
  • 看一本书,恨不得几天就看完它,以为这样可以在短时间内学习到很多东西

2、浮躁
  做事和学习都很浮躁,做事的时候很多东西做的比较粗糙,不考虑细节或者不愿意考虑,学习也只是学习一些比较简单的东西,稍微晦涩的知识就不愿意学习。

3、没有规划
  对自己未来没有一个明确的规划,大部分时间都比较迷茫,走一步看一步,比较被动,可能今天学习这个明天学那个,今年干这个明年干别的,很难在一个方向上纵向学习,在一个领域上做比较深的研究。

4、闭门造车
  大部分搞技术的都不太喜欢沟通,我也是如此,虽然很不喜欢沟通,但在这里还是要说,很多东西光自己闷头搞还是比较伤的,可能费半天劲搞出来的东西还有很多问题,可以尝试和别人沟通,通过和别人的沟通可以激发灵感获取更好的方案。

5、好高骛远
  做技术的难免喜欢追求一些听起来比较厉害的技术,而不喜欢做一些基础的工作或者业务。在做大事之前要先做好每一件小事,只有这样才能积累越来越多,否则学再多高深的技术却不能很好的实践,犹如空中楼阁毫无意义。

6、心态不稳定
  这条或许大部分人没有问题,但这里还是简单提下,因为本人经常因为心态不稳定做出一些很荒谬的事情,或者影响到自己,在学习和工作的压力下,保持一个稳定的心态是极为重要的,否则会陷入一个不好的境地里。

建议

  总结了半天,似乎感觉说了一些废话,接写来终于要进入正题了,就是我们究竟要怎样去做才能成为一名优秀的程序员呢。

1、了解自己
  这个世界上每个人都是不同的,每个人的能力、喜好、性格都截然不同,在成为一名优秀的程序员之前,我觉得应该先花点时间多多了解,看看自己是一个什么样的人,才能更好的给自己选择一条合适的路,给自己定一个合适的成长方案。
  以下我简单列举了几个简单的问题,既是给自己的心灵的提问,也是给大家的一个参考列表,相信大家只有结合了这些问题的答案,或许对未来就更加清晰一些。

  • 你真的喜欢编程吗,还是只是为了工作?
  • 你未来的规划是什么?
  • 你是否喜欢学习?
  • 你能否主动学习新的技术?
  • 你是否喜欢思考问题?
  • 你是否喜欢思考问题的本质?
  • 你喜欢动手实践?
  • 你是否坚持做一件事很久?
  • 你是否能坚持一个职业好几年?
  • 你是否不善沟通?
  • 你的人生规划是什么?
  • 你的长期规划是什么?
  • 你的短期规划是是什么?
  • 你觉得工作的目的是什么?
  • 你的心态是否稳定?
  • 你的信仰是什么?
  • 你是否想变得更好?
  • 你想拥有什么样的生活?
  • 你的兴趣爱好是什么?

  列举了这么多问题当然不是什么性格测试或者调查问卷,只是希望通过这样自己对自己的审视,每个人更加了解自己,清楚自己是一个什么样的人,针对自己做一个合适的成长方案。

2、做好规划
  说到规划,这真的是一个比较大而泛的词。一般人其实也不知道自己五年或十年之后自己在干嘛,因此也就走一步看一步,毕竟计划赶不上变化,包括我自己也有时也觉得规划这种东西很鸡肋。但今天写到这篇文章,还是要带来一些不一样的理解。
  随着人的年龄增长,绑定社会关系的越来越多,可选性其实会越来越少,不像小时候,可能你想当一个警察、医生、数学家、长大后基本都步入社会上班工作,这时规划很大程度是对职业生涯的规划,毕竟人的大部分生涯都在工作。
  规划可以分成三种,人生规划,长期规划,短期规划,用倒推的方式来把每一个规划做起来,循序渐进地去完成自己的规划。

下面可以举一个倒推的例子,大家可以按照自己定制更详细的规划。

人生规划:我们这里可以暂定是成为一名优秀的程序员。
长期规划:在自己的行业领域里深耕五年,工作上干出不错的成绩。
短期规划:学习多少本书,写多少篇博客,学习一门新的技术。

3、善于学习
凡是都离不开学习,我们这个行业更是如此,只有保持不断的学习,才能让自己立于不败之地。
简短概括学习这个概念。
持续学习:不能三分钟热度,一定要坚持学习,长久学习。
深刻学习:不能只学习一些浮于表面的东西,要去深挖知识点,去理解他们背后的本质。
勇于实践:纸上得来终觉浅,学习只是一定要多实践,通过一个知识点举一反三,才能吸收。
学会分享:学习一个知识点或者技术,多多分享给别人,只有把一个知识点分享给别人,让别人也懂了这个知识点才能说明自己理解透了这个知识点,分享的方式有很多,比如写博客或者交流。
经常复习:人的记忆是有限的的,很多时候可以抽出一小段实践,整理以前学习的知识,温故而知新,可以为师矣。

4、改变态度
  其实成为一名优秀的程序员,很多时候取决我们自己的态度,对人生的态度,对编程的态度,对工作的态度,如果每个态度都是很差,想必也很难有所很大的作为。
  所以决定想成为一名优秀的程序员,就要做好一个觉悟,不能再用以前得过且过的态度,做什么都和自己无关的态度。
  给你一个需求,你是要把他做完,还是要把他做好,还是要把他做精,结果完全不同,虽然很多时候给的时间有限,但是在一定程度上自己给自己的要求很关键。
  在工作上和学习上,很多人都畏惧复杂和难度大的事情,怕出错理所当然,但勇于挑战有难度的事才能得到更大锻炼。
  主动而不是被动,很多时候大家都是很被动的,可以尝试主动去了解更多的业务,学习更多的技术,用更好的技术来解决当前的业务问题,而不是被动的在等着别人推动。

5、保持心态
  虽然世界在很多时候都是不公平的,可能你做了很多事并没有得到应有的回报,因此你会心灰意冷,从一个人很努力的人变得堕落下去,下面可以讲下我自己的亲身例子。
  这个事情在我高中的时候,我就是经常这样,每次努力一小段时间努力学习,等到月考大考什么的成绩并没有什么提升,从而就消沉很长时间心灰意冷,通宵上网上课睡觉,等缓过神来就过去很久了又拉下很多课程,良心发现之后又决定好好学习,但结果又是没有什么收获,因为学习是一件很漫长的积累过程,不会因为你一天两天的努力学习而改变什么,整个高中就是在这样一个心态恶性循环之下度过的,如果我的心态足够好,长期保持一个正常的心态慢慢学习,哪怕不是太努力,结果也不会太算太差。
  举这个例子还是希望大家时刻都能有一个好的心态,或者拥有快速调整心态的能力,因为抱怨和懒惰并不能让事情往好的事情发展,只会越来越糟糕。
  上班和学习也是一样,学习了几个月了感觉自己还是没有什么进步,或者做不出来什么,就不想学习了,结果好几个月都没有再打开书本,殊不知其实当时自己还差一点就可以跳跃一大步。
  上班也是同样的道理,因为压力大心态糟糕起来,做什么事都烦躁起来,结果什么事都一连串搞砸了,或者不想做,更糟糕的还可能引起和同事沟通的态度变得不好起来。

6、善于总结
  一日三省吾身,善于总结的人,总是能比普通人进步的快些,因为他能更快的发现自己身上的不足。
  经常反省自己最近有哪些做的不好地方,复盘自己做需求的方案是否合理,总结最近学习的新知识。
  但这里也要提及一点,我们要善于总结而不是过度总结,过度总结会让自己陷入一个自卑的困境,觉得自己似乎什么都做不好,长此以往觉得自己一无是处。
  善于总结是利用总结这件事提炼出能提升自己的东西。

7、进度感
  这几年我自己感觉进步缓慢的原因,是因为很多时候没有进度感,做事没有进度感,学习没有进度感,没有进度感就会造成很多时候会给自己定制一些很难完成的学习任务。
  比如我经常给自己定一个目标,一个月看完一本书。这个目标看起来没有什么问题,但对于执行力弱的人,可能一个月过去一大半了还没开始翻开这本书,或者三分钟热度看了一大半,因为忙碌暂时搁置了,以后就没有在捡起来继续看下去了。
  所以这里我提了一个进度感,是把看一本书拆分成足够细小的目标,细小到可以很简单的完成它的目标,比如今天看一页,完成之后记录下,类似OKR一样的东西。我要看一本书我可以列举出一百个关键结果,每个关键结果完成了我就打个√。
  学习也是一样,如果定一个很宽大的目标,是很难实现和执行的,比如我定一个目标学会Redis,接下来该怎么做呢,先学什么,后学什么,怎么去实践吸收、消化,如果我把学习Redis这个目标拆分成无数个小环节关键结果就会好操作的多,比如今天学习字符串的使用,就只学一个,今天的没有完成明天就继续这个,一直这样下去完成一个个小的目标,最后就会不知不觉完成了一件大目标。

结语

  写到这,也是感叹自己写了很多废话,不够精炼,估计绝大多数小伙伴看不到这里就默默关闭网页退出去了,不过没关系,希望能够帮助大家,给迷茫的小伙伴还有自己指一些明路。
  可能是太久没有写博客,一激动写了太多废话,接下来会慢慢提炼一下,尽量言简意赅一些,不说废话。

  加油把,前行的朋友们。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值