会写代码但是缺乏工程能力,该怎么补

97 天前
 wanmyj

写 C++五年了,一直流连于各大厂拧螺丝,每个项目里都是上百号人写了十几年以上的代码,在里面修各种离奇古怪的 bug 。

今天被同事请教一个 MFC 的界面问题,很小的一个 GUI 程序,以为 3 分钟搞定,结果彻底蒙圈了,完全不了解界面那一套,文档都要从绪论开始开。

感觉自己的代码之路走偏了,完全沦为了大厂打工仔,让我设计开发一款新的桌面应用,该怎么设计框架,设计模块,脑子就一片空白。学那么多 C++的八股知识,看似学到了,实际上无非就是茴字的四种写法。不知道有没有人跟我有同样的困扰,想请问大家该怎么破这个局。

4594 次点击
所在节点    程序员
30 条回复
vitovan
96 天前
很羡慕楼主啊,现在我写个 C 的字符串拼接都要去查文档,最后还整溢出了。
MozzieW
96 天前
最近杂活干多了,也感觉自己不会写代码了(从头设计、实现一个功能系统),翻出了《代码大全》,常看常新。

我理解这是一个思维的问题,Bug 改多了,脑子里多解决问题的思路都是找到问题点,然后思考怎么调整代码逻辑,最后解决。

但是要搭建一个新的,第一步是要了解需求,分解模块,逐步实现,这些也是要思考的。平时看代码很容易看出模块,但是的确太久没主动思考怎么根据需求划分模块了。
zsc8917zsc
96 天前
打开 gpt 让他从创建一个项目开始一步一步的教你
originals
96 天前
同 c++五年,一开始也是修 bug ,然后到后面自己负责项目就开始设计架构模块啥的,不过这种机会感觉大厂很少吧,毕竟分工太细人也多,我朋友也是大厂拧螺丝,不过给的钱是真的多哈哈哈
lxh1983
96 天前
你现在这就是标准的码农啊,要想做工头,就看看工头是咋干活的呗
LwZiye
96 天前
多看,多思考,多重构
magiclx
96 天前
MFC 是对 Win32 API / Windows SDK 的封装,目的是让你更方便使用 API ,里面用了一些宏和注释的约定,得按它设计思路填写代码。GUI 的东西还不太复杂,复杂的是一些稍微复杂的东西和操作系统设计搅到一起,比如消息机制、事件循环、进程、内存、线程、异常处理,所以现在除非必要,否则界面都用类 Web 的 HTML 或 XML 来表达了,MFC 是微软自己也放弃的,很少场景一定要用这个老古董,大家用的多的不都是 DirectUI 或一些第三方控件吗。你说到的工程能力,不知是不是指一个项目从头开始搭建工程,我想这里的难度分为两部分,一是 GUI 你不熟,其次是从需求到设计你不会转化。对于前者,可以先了解现在主流的 GUI ,然后选择一种满足需求的主流框架,可以询问 AI ,多问几轮,也就能了解了;而从需求到设计是从技术视角到业务视角的转化,本身还是一件事,只不过角度不同。前者吃学习能力,你都辗转大厂了,应该很强,后者吃经验,只能多看多思考,事上练得,急不来。能快速提升功力的,那就找行业内的人指导指导,说不定一点就通。
qiyilai
96 天前
所有框架,特别是大而全那种,都是屏蔽了很多实现过程和细节,一开始只能按照它的规则去填充,后面接触多了,像一些多年的项目也是一样的,短期也搞不清全部流程,大多数情况下一个框架明白了其他都是类似的
LuckyPocketWatch
96 天前
初学 C++,看完<c++ primer plus>,后觉得自己只会基本语法,于是学了 Qt

学完 Qt 。发现算法基本不会,于是学了<算法导论>和<数据结构>
学完算法。发现对实现不了解,于是学了<STL 码源解析>
学完 STL 实现。发现不会设计,于是学了<设计模式>
学完了设计模式,发现对编译一无所知,于是学了<编译原理>
学完了编译原理,发现缺乏数据库至少,于是学了<数据库原理>
学完了数据库,发现缺少源代码阅读,于是阅读 levelDB 的源代码
学完了源代码,发现 C++标准以及到了 C++20 甚至 c++23 了,于是赶紧开始学习 C++20 标准,特别四大组件
.......
以上仅限 C++

但回过头来,我现在就靠 c++基本语法和 Qt 吃饭,就目前而言,能用到的也就 C++语法和 Qt 了

能用到 == (工作用到 || 面试被问到)
wanmyj
95 天前
@LuckyPocketWatch 敢问兄台的工龄几何?这里面好几本书我都看了个大概,都没能耐心看完

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX