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

2024-08-07 15:25:42 +08:00
 wanmyj

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

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

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

5114 次点击
所在节点    程序员
30 条回复
flyhelan
2024-08-07 15:37:08 +08:00
你不是一个人。
tool2dx
2024-08-07 15:37:41 +08:00
C++开源工程很多啊,多看看老外怎么写的,多抄抄不就可以了。

比如 unreal ,比如 webkit ,比如 chrome ,编译一次都够久了,都是巨无霸。
ih8es9OIzne0959p
2024-08-07 15:37:55 +08:00
我算不算是相反的,主 cpp ,副 Java ,react ,vue 。cpp 只用框架,能不造轮子就不造,现在导致代码的功底很薄弱,很少有一次编过,经常犯低级错误将 cpp 的内存机制和 Java 的那一套混淆,导致代码很不规范,之前埋的坑经常爆发。
F281M6Dh8DXpD1g2
2024-08-07 15:42:56 +08:00
隔行如隔山,这有啥奇怪的
jjx
2024-08-07 15:50:07 +08:00
没啥
有了工程能力
你又会感叹没有设计能力的

有了设计能力,可能又没有销售能力

人不到全才和完美
wanmyj
2024-08-07 15:56:00 +08:00
@ajaxgoldfish 真的是完全相反。我现在修的 C++的 bug ,基本都是对象没有正确释放,参数类型强转出错,数据计算精度错误,环境变量错误,反正都是很细节的东西。我倒是很羡慕你的状态,能自己独立挑起来项目大梁,修 bug 改代码就招一两个我这种老学究就完事了
AoEiuV020JP
2024-08-07 16:43:14 +08:00
也是, 想自己写点小东西就各种纠结,框架搭不起来,总觉得这样也不好那样也不好,找找教程或者其他开源项目吧,也套不上, 自以为这点小东西实现起来还是没问题的, 实际上纠结半天一行代码都没写,
szboy
2024-08-07 16:47:01 +08:00
深度和广度都需要发展
liuzhedash
2024-08-07 16:51:44 +08:00
正常,因为之前你关注的点都是细节的,具体的问题,而没有从 0 开始做一个完整应用的经验
好比之前你是个小兵,打了几年仗会用 ak47 和火箭筒了,现在让你当连长指挥几个排,武器经验仍然有用,但是更重要的是思考怎么把各个作战单位组织起来,打赢一场战斗
其实,这也是各个大厂最希望员工达到的状态,完美的标准螺丝钉,不但随时可以替换,而且你离开现在的岗位技能就没用了

破局的方法也不复杂,就是开始从 0 开始制作一个应用,比如从空白工程开始写一个 Windows 窗口程序
mcfog
2024-08-07 17:02:55 +08:00
这不是正常的吗,你找个平均的 spring boot 搬砖师傅来请教个安卓 GUI 问题,也是懵逼的啊

工作这么多年还觉得用同一个语言就是同一个工种,这才是大问题吧
jufeng
2024-08-07 17:31:23 +08:00
1. 软考证书考试走一遍,可以补全理论知识
2. 主动申请承接项目的各个环节的工作参与,即使是讨论群组,会议旁听也可以
3. 主动跟踪支撑项目全流程从需求端到交付全流程,这个很费精力,还得领导能给机会
jufeng
2024-08-07 17:34:29 +08:00
这两年最大的体会,就是软件工程首先是个工程,最终目的就是输出一个交付出去,受用户受众认可的软件产品。软件和土木其实没啥区别,只是实现手段和产品形态不一样。
xing7673
2024-08-07 17:34:43 +08:00
直接点说,放弃 c++,多接触其他语言框架。
c++做工程个人单打独斗就是时间黑洞。
用其他语言做跳板多接触业内主流技术框架开拓视野,渐渐就能用这些积木搭建你想要的玩具了。

当然不是说你主业放弃,因为按照你的描述来看,你主业的 c++在企业里还挺有含金量。
业余时间平均每天有 1 个小时左右就行
iOCZS
2024-08-07 17:37:38 +08:00
MFC 本就是有点年头的东西了,设计理念跟 WPF 就差很多了
MrVito
2024-08-07 20:16:05 +08:00
问题关键在于,MFC 这玩意和你平时用的 C++,完全就是两个东西呀。就像 10 楼回复的那样,同一个语言,本来就可能差距很大。java 框架更多,你让平时用 A 框架的人去修复 B 框架的问题,肯定不可能的。
levelworm
2024-08-07 20:21:54 +08:00
得自己写项目。另外 MFC 这种东西,可能 ChatGPT 会有帮助。
xuelang
2024-08-07 20:56:30 +08:00
这时候需要 ChatGPT 或者 Claude 了,哈哈,本后台写 c++的,用 Claude 快速撸了一个 nextjs 的 web 站 https://gallery.selfboot.cn/

有算法演示,web 游戏,和工具,代码开源。 看 ai 写,慢慢迭代,也就慢慢懂点前端了
jones2000
2024-08-07 22:35:32 +08:00
c++ 5 年,只能算刚刚入门。MFC 可以看<深入浅出 MFC>侯捷写的, 看完自己用 win32 写一套类似的 MFC 框架,写完基本就懂了。 少用开源,尽量都自己写。
GrayXu
2024-08-08 01:37:55 +08:00
不懂 MFC 这种古董不是很正常嘛。。
xuanwu
2024-08-08 07:56:12 +08:00
可以在 gitee 创立一个开源项目,解决工作生活中碰到的一个小问题。
然后用悬赏功能新建任务,锻炼项目规划、与新开发者交流、任务进度管理、测试验收、预算编排等等能力。

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

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

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

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

© 2021 V2EX