Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >强烈推荐:程序员遇到瓶颈期该怎么解决?

强烈推荐:程序员遇到瓶颈期该怎么解决?

作者头像
编程软文
发布于 2018-06-20 05:39:43
发布于 2018-06-20 05:39:43
4990
举报
文章被收录于专栏:编程软文编程软文

原文作者:2gua

原文地址:https://zhuanlan.zhihu.com/p/26186494

特别声明:本文为2gua原创并授权发布,未经原作者允许请勿转载,转载请联系原作者

前几天在知乎上看到一个帖子:《是不是程序员总会遇到一个瓶颈期,觉得自己没有进步了,该怎么解决?》,看到知乎大神2gua的回答,感觉写的真是太好了。原文叫:《作为一个程序员的学习思考》,可谓写的深入人心,如果你也遇到了这样的问题,看完这篇文章,相信我,可能帮助你解决你心中的疑虑和焦虑。

其实关于读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法阐述得清清楚楚、面面俱到。那么,要为自己找到最优的学习方法其实很困难,要去指导别人怎么学习那更是相当困难......

大凡提到读书、学习,都几乎会提到 “计划”、“方向”、“坚持”、“静心”、“总结”、“思考”、“实践” 这些个关键词。其实都是没错的,如果日积月累下来,你最大的感悟往往也就是沉淀于此。而所谓 “知易行难”。

我在这篇文章里想尽可能从 “自己作为一名程序员” 的角色及历程——来做些思考,算是对自己学习过程的一个审视。

想了想,我的知识积累过程大抵分为四个阶段。

第一阶段:困惑期

这个阶段往往是小白阶段,要么经验积累不够(比如刚毕业),要么是重大技术转型阶段(颠覆性的,比如由 GUI 应用模式转到 Web 应用模式)。

以前刚出道时,写的基本是 C++ 的 GUI 应用和 Foxbase 管理信息系统,之后的技术发展逐渐向 Web 趋势演进,而 Web 应用从程序模式到部署模式都完全不同,以至于当年着实跌了不少跟头。

记得刚涉足 Web 开发时,即使是拿着一本类似 “21 天精通” 这样的入门书,也是走得跌跌撞撞。啥 IIS、Apache 应用服务器、请求 / 响应、Cookie/Session、Servlet...... 陌生到一度让我怀疑人生。

这个阶段也许一个月才能写出一个聊天 HelloWorld 程序,心境往往起伏得厉害。但万事开头难,这个阶段一定是要坚持、坚持再坚持,而且尽量沉下心学会控制情绪,千万不要怨自己基础不够、脑袋不灵光。你咬牙坚持个一段时光,相信就可以进入 “发展期”。优秀的人在这个阶段:“不贪进度,稳扎稳打,愿意打破砂锅寻到底”

第二阶段:发展期

在 “打破砂锅寻到底” 的模式下,随着之前的障碍逐个被击破,我觉得啃一部入门书确实越来越轻松了,这个阶段学得快也学得多,而且过程中冒出的问题越来越多,比如 “要添加一个图表咋办?”、“想整个带编辑、删除功能的翻页列表咋整?” 之类的问题。这时候我往往是把这些点记录下来,但不打断自己(跟书或跟计划)学习的节奏,好比 “没学会走之前不要试图学飞”。

这个阶段让我想到小时候刚学会骑自行车,心里欢喜得不得了,有一次竟然忘乎所以,豪情万丈般地撒开手把子想让车子自己保持平衡,结果一下子连人带车就扎到路边土沟里去了。此时其实就是个 “半桶水” 阶段,摸着了门槛但切勿得意忘形,还是扎扎实实跟着书本或计划学基础为妙。

第三阶段:瓶颈期

基础的内容掌握了,积累的困惑又呈现出了越来越多的趋势。因为我已经不满足温饱,想做得更好了。这就是往更高层次发展过程中会遇到的障碍,一种 “书我都读完了也理解了,但就是在实践中感到无从下手” 的感觉。想要进一步提升自己,基本也就是靠 “继续学习深入的知识” 跟 “不断尝试 / 实践去解决问题” 这两个方式并重了。如果你完成了第一个翻页控件,是会有不小的成就感的。随着一方面博览群书、另一方面不断勇于解决问题,这个瓶颈期就会在不知不觉中慢慢地度过去。

这个瓶颈期是比较磨人的,因为周期比较长,没个几年功夫过不去,三五年一小成,十年八年一大成。但这个过程又是最关键的阶段,在这里学到的、掌握到的都是行走江湖的真功夫。而且经历了这个过程,就基本能把程序员分出个三六九等来。

第四阶段:自由期

苦尽甘来后发现自己已经到了一个相当高度了。一方面经验积累得很丰富,另一方面能做到触类旁通。在这个阶段你再学新知识、探索新方向,其实都能进展得比较顺利。此时的你厚积薄发,打通任督二脉,原力生生不息。

这个阶段基本不会有什么困惑,而且也更能主动式学习及洞察事物趋势。一年学个两门语言不在话下。爱学啥学啥。但如果要深度运用新知识,则仍有一个小周期:进展期 -> 瓶颈期 -> 自由期,只是周期缩短了不少,再也不会像第一次蜕变过程那般痛苦不堪了。

到达这个阶段可不容易,可能之前你早已摔得遍体鳞伤了......

其他

阶段和过程摆在那儿,但要成就一名杰出的程序员、工程师、架构师甚至管理者、创业者,都需要个人具备一些优秀特质:

  1. 能够沉浸其中,“做一行爱一行”,也就是通俗意义上的 “兴趣”;
  2. 熟稔总结之道。我一般喜欢联想,比如这个内容书上是这么讲的,但再延伸一下问题应该怎么解决呢?或者把模糊之处,自己用文字和代码把它展开,甚至封装起来进一步抽象。把这些方方面面的问题点、难点逐个突破,一点一滴地抽象成自己的知识库、工具库,一定程度之后各种现实问题几乎都能从中挑出答案;
  3. 不满足现状。程序能跑了,但能跑得更好吗?代码实现能更简洁优雅些吗?就算是生产环境你不能随意更改,你也应该在自己的环境或测试环境中去尝试改进代码——得出的经验教训都是你自己的收获。而且只有不满足现状,你才更可能去主动式思考与学习;
  4. 周边知识的探索,算法、架构模式、设计模式、语言 / 技术新版本、新概念 / 新架构等等,不要觉得累。一旦你觉得累你就差不多走不远了;
  5. 充分认识到英语的重要性——这个已经不想多说了;
  6. 锻炼身体——比如我现在学习武当太极拳;有一门其他爱好——比如我现在学习武当太极拳。

感觉自己其实也有蛮多欠缺之处,还需要继续加油努力。但无论多么模糊,我都始终坚信一点:“无他,但手熟尔”。要坚持这点之前,你还得时刻提醒自己:“你一个砍柴的,他是放羊的,你和他聊了一天,他的羊全吃饱了,你的柴呢?”

作者的知乎专栏:2gua 的编程生活,超级棒,里面有很多高质量的,有关程序员的文章,有兴趣的朋友可以关注一下,地址:https://zhuanlan.zhihu.com/guagua

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程软文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
探索OpenNJet :快速上手下一代云原生应用引擎
想要了解更多可以查看OpenNJet官网链接:https://njet.org.cn/
小尘要自信
2024/05/02
1840
探索OpenNJet :快速上手下一代云原生应用引擎
OpenNJet:引领下一代云原生应用引擎
云原生引擎是一种用于构建、部署和管理云原生应用程序的工具。它可以帮助开发人员更轻松地将应用程序部署到云端,并利用云计算资源来提高应用程序的可靠性、可扩展性和安全性。云原生引擎通常包括容器编排、服务发现、负载均衡、自动伸缩等功能,帮助开发人员更好地利用云计算平台的优势。
屿小夏
2024/05/26
1280
OpenNJet:引领下一代云原生应用引擎
OpenNJet:新一代的云原生应用引擎
OpenNJet是基于开源NGINX进行了功能定制的解决方案,继承 nginx-1.23.1 所有功能, 并且100%兼容nginx,经过内核重构、安全加固和功能增强的开发,具有性能无损动态配置、灵活的CoPilot框架、支持HTTP/3、支持国密、企业级应用、是一款高效安全的框架,其旨在满足云原生环境和国内特定技术规范及标准的需求,以构建安全可控的云原生数据平台,支持我国云原生产业生态的发展。
知识浅谈
2024/05/25
1530
OpenNJet:新一代的云原生应用引擎
OpenNJet评测,探寻云原生之美
在信息时代的大海上,云原生应用引擎如一艘航行于波涛之间的帆船,承载着创新的梦想和数字化的未来。本文将带领您登上这艘船,聚焦其中之一的OpenNJet,一同探寻其中的奥秘和精妙,领略其独特之美。
繁依Fanyi
2024/05/08
2140
[1317]centos7 node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found
centos7服务器使用nvm安装的node之后,只要使用npm或者node,均会出现以下问题。
周小董
2024/12/29
1.6K0
OpenNJet如何做到让用户永远在线
最近看到了国内开源的一个名为OpenNJet的项目,有一个响亮的口号:“下一代云原生应用引擎”。
手撕代码八百里
2024/05/24
1330
OpenNJet如何做到让用户永远在线
触摸OpenNJet,云原生世界触手可及
🖊 人不光是靠他生来就拥有一切,而是靠他从学习中所得到的一切来造就自己。 —— 歌德
ImAileen
2024/05/14
1350
触摸OpenNJet,云原生世界触手可及
C++在线五子棋对战(网页版)项目:环境搭建
wget工具是Linux中的一个下载文件的工具,支持通过 HTTP、HTTPS、FTP 三个最常见的TCP/IP协议 下载,并可以使用 HTTP 代理。可以使用以下命令进行下载:
二肥是只大懒蓝猫
2023/10/13
4011
C++在线五子棋对战(网页版)项目:环境搭建
测试跑通应用性能观测通过 Skywalking 协议上报
找到 php.ini-production,复制到/usr/local/php/etc下,并改名为php.ini
相柳
2021/12/13
1.5K1
测试跑通应用性能观测通过 Skywalking 协议上报
实验:CentOS 7 编译安装最新版内核 Linux Kernel 6.5.2
注意:一定要执行 cd linux-6.5.2 命令,因为接下的操作默认都是这该目录下操作的。
ling218cn
2023/09/10
3.8K0
centos7 安装ollama 运行 ollama -v 报错解决
在ollama官网上,找到了linux上安装ollama的命令后,复制到自己的虚拟机中,下载完ollama,运行 ollama serve,提示以下报错:
teminite
2025/06/12
4210
CentOS/Ubuntu编译安装Python 3.9.10《详细》
指剑
2023/05/31
8430
搭建centos7 ebpf编译环境
安装的是 devtoolset-7 和 devtoolset-8, 安装完成后全部文件在/opt/rh目录下:
cdh
2024/01/03
1.6K0
CentOS / tencentOS 升级 gcc 支持 c++17
目前环境中默认安装的gcc大多版本为 4.8.5,该版本并不支持 c++17。现为了满足对c++17 的依赖,需更新 gcc 版本。
kwai
2024/07/02
1.6K0
服务器配置——Linux系统安装Redis
Redis官方网站:Download | Redis Redis中文官方网站:CRUG网站 (CRUG网站)
2022/08/08
6.3K0
触摸OpenNJet,感悟云原生
云原生技术的用处在于提高应用程序的可靠性、可伸缩性和灵活性,加快开发和部署速度,降低成本,提升整体的效率和竞争力。通过采用云原生技术,企业可以更好地适应快速变化的市场需求,实现业务的持续创新和发展。
学编程的小程
2024/05/26
1280
触摸OpenNJet,感悟云原生
kudu-1:原生方式在aws的centos8系统上搭建生产级kudu集群
ambari已经被CDH所在公司收购,两者现在都已经闭源,生产使用需要付费,费用极其昂贵。
千里行走
2021/12/20
1.4K0
kudu-1:原生方式在aws的centos8系统上搭建生产级kudu集群
flask项目在centos7部署流程
Flask 是一个 web 框架,而非 web server,直接用 Flask 拉起的 web 服务仅限于开发环境使用,生产环境不够稳定,也无法承受大量请求的并发。基于 Flask 开发 API 项目是,部署时用 uwsgi 和 Nginx,是一个很好的选择。
用户6256742
2024/07/15
3400
基础环境搭建,这一篇就够了!
不论是前面分享过的《开源云真机平台-Sonic》,还是《流马测试平台》、《一站式开源持续测试平台Metersphere》,似乎都会用到一些如JDK、ADB、MySQL、Docker、Python等各类环境,像一些前后端分离项目可能还会用到NodeJS。环境搭建是一切开发调试、编译构建、自动化测试的前提,也是开发测试人员必不可少的基础技能。但是很多平台工具往往会卡在看似简单的环境部署环节,甚至影响继续下去的信心。所谓工欲善其事必先利其器,高效的搭建效率往往能提供一个好的开始,而好的开始是成功的一半!
大刚测试开发实战
2023/01/18
2.8K0
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
   最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持下来了,嗯,看了看时间,原本决定的半年完成肯定是完不成了。这两周重新拾起来学习 Vue,文章也在慢慢的更新中,这一篇文章主要是想提前试试水将 ASP.NET Core 部署到 Linux Server 上,原本的打算是把毕业设计就部署到 Linux 上,最终也未能成行,究其原因,还是自己太懒太拖了吧,哈哈哈,拖到最后,毕业设计差点都没写完。
程序员宇说
2019/09/11
2.8K1
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
相关推荐
探索OpenNJet :快速上手下一代云原生应用引擎
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档