大多数程序员该如何自我提高

发布于:2023-03-27 ⋅ 阅读:(274) ⋅ 点赞:(0)

​程序员提升技术,最头疼的是什么?

做了一次问卷调查,票数最多的选项是:

公司技术不强、项目老、没人带。

投完票,还有人现身说法:

“技术强的公司进不去,就找了一家工资过得去的公司,2周时间,就把业务弄熟了,然后就是天天重复,在这种公司,怎么提高自己?”

“我在一家小公司,给学校做网站,每天就是用各种轮子赶进度,根本涉及不到原理层面,研发流程都变成可配置的,按照之前留下来的模板去拼就行,自己挤时间学了点技术,又用不上,怎么办?不能一直干体力活吧……”

问题是,能进大厂、碰到好团队的,是少数人,最多占整个程序员群体的20%,那剩下的80%,该怎么提高自己?

1、提升技术的根本原则:主动性

跟国外比,跟国内一线大厂比,普通程序员所在的公司,有各种短板。

但客观条件就这样,有很多大牛,也是从这种环境练出来的,他们怎么做的?

主动。

听起来,有点鸡汤。

项目马上要上线了,赶紧加班加点交付,大部分人都能做到,但是,更多的时候,没人催你,时间有富余,你还会不会主动地研究技术?

人的主观能动性有多强,不好量化,但从长期看,是人和人拉开差距的必要因素。

2、在技术不强、项目老旧的公司,具体怎么提高?

我们天天都想着,要增加自己的技术深度,目标有了,用什么方法呢?

深度总结。

不管是在线学习,还是项目实操,自己的代码,还是大牛的代码,深入分析、总结,每天在别人想不到、不愿意想、想不明白的地方,多想一点,就多沉淀一点竞争力。

多想点什么呢?

  • 工作中的代码,能不能优化一下?
  • 同样的功能,高手怎么写的?我和他差在什么地方?
  • 解决同一个问题,我有几种办法?哪种最适合?为什么?
  • 这个思路,还能应用到什么其他的场景?

有人说,我们公司项目类型太少,我平时做的都是增删改查的事情,想尝试新技术,公司根本没这个环境,也没这个要求,限制我发展,我能怎么办?

A.打好基础,摆脱“不知道自己不知道”状态

有些工作了1、2年左右的程序员,也会讲自己陷入了瓶颈:前端,不就那么点东西么?

基础知识,制约了大多数初级程序员的提升,那些只掌握皮毛的新手,不是故意显得自己很牛,他们是真不知道,皮毛下边还有那么多东西。

B.通过网络,保持跟外边的接触

互联网时代,信息越来越透明,公司项目虽然老,但是网上有太多开源项目,去热门的网站看看,就不用担心被趋势抛弃:你一直在用jQuery,大家都在谈vue,你一直用VS2015,别人都VS2017了。

看到一些复杂的SQL语句,你就会知道数据库使用,不仅仅是SELECT 、 UPDATE 、 DELETE 、 INSERT,看到高手做的更复杂的页面,你才知道,JS不只是写写特效,ES6不仅仅只有Let和箭头函数,组件化指的远远不止import。

保持眼界开阔,能让你知道接下来该学点什么。

C.再简单的事情,也有优化的空间

再简单的项目,也有优化的空间,做过的项目,千万别能过测试就放到一边,多想想有没有优化的空间,有时候确实赶进度,先提交再说,很正常;

但总这么干,下次你还是插件的搬运工,用这种方式干十年,水平也没法长进,在哪家公司都一样,经常把过去的代码拿出来看看,水平不一样了,同一个问题,你会有新的想法。

D.动手,还是多动手

敲代码还是讲究动手的行当,不动手,就不会发现有问题,技术水平原地打转,就会成为最致命的问题。

如果没有明确目标,不知道该动手干什么,就从网上搜一些需求文档、设计文档,找一些高手的开源项目,比如做一个博客系统,看看大牛的代码是怎么写的,关掉它,试试自己能不能仿制出一个类似的,卡壳了,就对比下差距,看看差在什么地方,知识体系还是思路。

这种方式更走心,要是单纯地啃书本,看的时候感觉自己会了好多,合上书,什么都记不住,而且很容易陷入一个个知识点里,远不如实操一个项目,水平提高得快。

动手的时候,建议要按照自己的实际情况来,有些程序员一上来,就想模仿一个大系统,工程量大,而且对技术深度有要求,很容易长时间看不到效果,就直接放弃了,选比较容易部署的语言,由浅入深,从模块到整体,这样成功的概率也会大很多。

总结

大部分程序员,进不了理想的公司、团队,没必要泄气,80%的人都这样,区别就在于,很多人都在抱怨运气不好,环境差劲的时候,在同样条件下,有那么一小撮人,选择了另外一条的路:

不抱怨,主动投入时间和精力,保持敏锐的技术嗅觉,夯实基础,多动手,多总结。

愿你坚定对技术的极致追求,经过时间的沉淀,成为代码界有核心竞争力的人。


网站公告

今日签到

点亮在社区的每一天
去签到