写点什么

为什么很多程序员,成为不了技术大牛?

发布于: 2021 年 05 月 25 日

为什么很多程序员,成为不了技术大牛?


这个话题,有点敏感,可能会让很多程序员心里非常不舒服。但现实世界中,技术平庸的程序员比比皆是,水平精湛的程序员少之又少


尽管每年有大量的学生毕业后成为程序员,但从企业招聘的角度却一直难于招到高水平的程序员。

也就是说,低水平的程序员过剩,高水平的程序员严重不足,这种两级分化的情况非常严重


我本人,从事产品研发和技术管理已经超过 20 年,我也面试过非常多的程序员。很多 5 年甚至 10 年以上的程序员,做过很多项目,但却连内存分配、字符串查找替换这些基本的题目都答不上来。


就像一个人,习武多年,就只学会了花拳绣腿,内功几乎为零。这种方式,你就是再练 10 年,也是注定无法成为高手的。

更要命的是,有些人还没有自知之明,还觉得自己水平挺高的......


也有一些程序员,能够认识到自己多年没有技术提升,一直停滞在一个比较低的层次上,但苦于不知道问题出在哪里,不知道如何能提升到更高的层次,因此非常迷茫。


我自己工作了这么多年,亲身经历过这样的迷茫期。因此,作为过来人,我准备写一些相关的文章,把我自己的体会和经验总结出来,送给在迷茫中挣扎的朋友们,希望能够帮助大家形成正确的认知,快速提升底层硬核技术能力,实现技术跃升。


首先讲讲,如何学习。


如何学习,让自己能快速成长,这个“学习”本身,也是要经过学习的,也是有相应的方法和技巧的


通常,一个程序员进入一个公司,就被分配到某个项目组,项目经理给你分配了一个模块,让你来开发。这个任务不是很难,你做了不到 1 个月就完成了。然后项目经理又给你分配了一个新的任务,然后你又开始干。就这样,转眼过了几年,你在公司做了多个项目,每个项目都是做应用开发,技术挑战不大,因此你也觉得没什么技术长进。觉得是这个公司技术层次不高,让自己没学到太多技术,因此决定跳槽。

由于自己水平进步不大,因此高技术含量的工作岗位自己不能胜任,面试时被虐得体无完肤,只能找初级或中级程序员的职位。

到了新的公司,上述做项目的过程又开始上演,又干了几年,还是没觉得自己有多大的技术提升。


以上,就是一些程序员的常见职业经历。自己技术水平没有得到提高,是公司的问题,还是自己的问题?到底问题出在哪?如何解决呢?


首先,你需要重新思考一下,你的主管分配一个工作任务给你,你是如何看待这件事情的?


就只是为了完成这个工作目标,领一份薪水报酬吗?

不,绝不是!这个工作任务,只是给了你一个机会,让你能够对这个任务相关的技术领域进行学习和探索,通过完成这个任务,来提升你的技能,让你自己成长。


因此,完成工作目标,只是一个副产品,只是你能力提升这个主产品的附带结果而已


不要为了完成任务而完成任务!


更通俗地讲,主管给你分配了一个任务,是公司给了你一个练手的机会,让你用公司的客户、项目、团队、设备等来做试验,让你可以接触到相关的技术,尝试不同的实现方式,思考和评估不同方案的优劣,在编码、设计、需求、沟通和协作等方面全方面锻炼你自己,不断磨砺你的技能。


因此,从这个新的认知出发,你就会发现工作开启了另外一扇门,通往了一个全新的学习世界


可能有些程序员,思路还没反应过来:这个工作任务就是没有技术含量啊,我做这个任务怎么能提高我自己?


这个任务,只是一个契机,让你能接触到几个技术点,可能你稍微花点时间,查查资料就学会了。但切记:你的目标不是只是为了完成任务,不是只学了这几个技术点就结束了。如果你从这几个技术点出发,向外延展技术领域,从点扩展到线,从线再扩展到面,不断扩展下去,那你就能够学到更多的技术了


举个例子:

初级程序员小张,完成某个工作任务时,学会了用 printf 函数向屏幕上格式化打印输出文本。他发现,用 man 3 printf 查阅函数原型时,man 的帮助信息中提供了一系列相关的函数,如 fprintf,snprintf, vprintf, vsprintf...., 这些函数都是干什么用的?另外,我已经学会了 format 参数中用 %d 格式化整数,%s 格式化字符串,还有别的格式化控制符吗?man 帮助信息的最后有个 SEE ALSO,如下:


SEE ALSO

       printf(1), asprintf(3), dprintf(3), scanf(3), setlocale(3), wcrtomb(3), wprintf(3), locale(5)


这些函数自己都不知道啊!比如,asprintf,dprintf, setlocale, 顺着这些点找下去,这些点又会带出更多的技术点出来,这样你还会学不到技术吗?


当你有了这个思维认知后,你的学习才真正开始!


对于查阅 api 这件事,强烈推荐大家使用 man,而不是 baidu 或者是其它中文搜索引擎!!!


作为深入学习者,必须要学习官方的原版英文材料,而且要全文一字不落地阅读,因为这是最权威的技术教材!无论你英文是多么弱,都得强迫自己去阅读英文 api,因为只有这样,你才能真正全面而深入地掌握这个 api。注意,全面而深入!


我的微信号是 实力程序员,欢迎大家关注我的后续文章。

发布于: 2021 年 05 月 25 日阅读数: 18
用户头像

实力程序员,用实力说话! 2021.05.24 加入

超过20年一线产品研发和技术管理的实力程序员

评论

发布
暂无评论
为什么很多程序员,成为不了技术大牛?