为啥很多人觉得编程难学?

看到推特上网友菜脯写的一条推文:

菜脯:我大概知道,为啥很多人觉得编程难学了。

因为对我来说,编程过程就是 看资料------开始写------遇到问题------查资料------解决问题------继续写------继续遇问题------继续查资料........

这个循环似乎会一直持续下去,不像有些工作,难度会逐步收敛,要一直一直动脑子,太难了 😂

不知道是我菜,还是大佬们也会这样。

看起来你是在写程序,其实你做的是产品,那就不是简简单单的编程,无法像刷 Leetcode 那样,刷一刷就熟了,而是要面对软件工程中的各种问题。

所以你面临的问题一直在变,大部分时候你不是在解决代码的问题,是在解决类似于:

  • 我怎么把需求抽象成设计?
  • 我该选择哪个技术方案?怎么找到最佳实践?
  • 这个技术、框架我没用过,怎么快速用它实现我要的功能?
  • 这个 Bug 我该如何定位和修复?
  • 这个 Bug 是解决了,但是这段代码我怎么重构才能避免问题?

这里面其实最容易的反而是代码问题,要实现一个函数,搜索一下可能别人已经写好了,要解决一个 Bug,用错误信息搜索一下可能 StackOverflow 已经有人解决过。

难的是你怎么把这些代码放在一起能满足你的需求,还能运行的高效,还要好维护,这些事不是 ChatGPT 或者 AI 短时间能替代的了的,需要很多年的积累。

其实也没啥捷径,只能是投入时间去不断地学习优秀的代码,不断地实践,比如实现功能,重构代码。

所以有人说三年才能成为一个领域的专家,说的没错,但是对于软件开发领域,有无数小的领域,就拿前端来说,也许三年你能成为 JavaScript 专家,但是你还要学会 CSS、HTML,还要会打包工具,还要 React 或者 Vue,还要状态管理。

除了这些基础的知识,再往上还要涉及系统设计、面向对象、设计模式这些。如果有团队了,还要学习一些项目管理和团队管理的知识,就算天纵奇才,并行学,三五年可能也是过于乐观的。这也是为啥上次 Grey Brockman 说学习 ML 比学软件开发快多了!

要想提升一点学习速度,也不是没有办法,我的经验就是尽可能早的构建自己的知识树,把某一个领域当成自己知识树的主干,主干不断长大长粗,并且在其他知识领域添枝加叶。

因为当你有了一棵自己的知识树,那么你就能有一个地图,知道该往哪发展,该补哪部分知识,会更有目标;另外当你有一个粗的主干,那么你可以借用主干的知识来学习枝干的知识,效率会高很多!

如果没有主干,就像有些人懂很多领域知识,但又只懂点皮毛,什么都不精,那样不是知识树,而是知识的灌木。

当你的知识树逐步成型,这样才能真正做到难度逐步收敛。

相关推荐
Chrikk5 分钟前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*7 分钟前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue8 分钟前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man10 分钟前
【go从零单排】go语言中的指针
开发语言·后端·golang
cs_dn_Jie11 分钟前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic1 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿1 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具1 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
customer082 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
qq_390161772 小时前
防抖函数--应用场景及示例
前端·javascript