201
lucybenz 209 天前
20 岁重新走到大学校园不知道还有没有机会? 成人教育 和 自费生 不知道当前社会还有没,如有 读个大专 也不为学历专业啥的 就是融入社会前的一个过渡
|
202
geligaoli 141 天前
@binfreeze 抱歉,虽然说出来会很冒犯,但还是觉得你有装的嫌疑。在看了你第一个回复,忍不住去你主页把所有参与的回复浏览了一遍。总体感觉是你看了不少编程相关的学习视频,了解了很多名词,但未必真的是深入编程世界。我也有朋友因玩游戏高中未毕业,之后因喜欢游戏,转而学习编写游戏,之后逐步走上编程开发的路子。但他没有从英文书籍学 c++来起步,也没有用 C 写 2D 游戏,也没有写 C 编译器,而是从简单的脚本语言开始,逐步学习语言编程的。这些专业知识性的东西,是需要一步一个脚印学习的,没有一朝顿悟就打通任督二脉成为绝顶高手的可能。你的回复里,“不用标准库,内存分配器各种基础功能全都自己撸的”、“比如我写 SPIR-V 的编译器, PNG,TrueType,glTF, 或者 Vulkan 渲染器,内存分配器,”,这些知识点都是需要多年的技术积累、真正写出、绊倒、修复无数 bug 的实践中,才能掌握的。如果你说的确实是真的,那你就是二十多年来仅见的技术天才,我真心道歉。如果不是就不要误导,如果确实喜欢编程,就从基础的应用开发做起,从浅入深在学习的过程中也能感受到编程中自我实现的乐趣。
|
203
binfreeze 41 天前
@geligaoli 这不需要 20 年的天才.. 只需要有一个迎难而上的决心. 在你已经落后别人许多的时候, 如何在竞争中缩短差距? 我选择用英文直接学是为了缩短差距. 选择比较硬核的技术路线也是出于这个目的. 很多人会因为自己曾经所失去的一些, 比如没有读一个好大学, 去给自身画个圈, 觉得很多东西离自己太遥远, 从而选择更符合自己"身份"的事情去做. 编程里面也有这种, 比如觉得一些库提供的功能是 "神圣且不可侵犯" 的, 是超出自己能力很多的人写出来的, 自己不敢去尝试, 他们会安慰自己, 等我工作 10 年, 20 年之后, 再去做同类的事情, 就像你提出的看法一样. 但事情根本没有表面上看起来那么简单, 因为我们只能活一次, 如果你现在不去做这些, 20 年后, 从 30 岁到了 50 岁, 就更没有精力和勇气去做这件事了. 你以为只是推迟, 实际上是从根本上斩断了自己在另一个路线上的可能性. 这几个月我没上论坛, 刚把游戏需要的 UI 系统写完. 可能听起来很唬人, 但当你真的去做了这件事, 也没有想象中那么难. 编程水平的提升并不是一个单纯代码量的累计, 而是根据你所解决问题的难度来决定水平提升速度的. 另外补充一下, 我的 C 语言编译器也没写完. 把前端部分写完就搁置了. 内存分配也有不同难度的, 如果只是线性分配, 去看 raddebugger 的源代码, 里面有很简单的实现. Vulkan 渲染器这些也都有很多参考代码. 如果你写过一些 C 程序, 看懂这些代码并不难. 但如果你一直都是写脚本语言, 就会觉得跨度很大, 像一堵墙一样. 因为人在学习编程的过程, 并不是在死记硬背, 而是在一种培养直觉, 只有你把自己 "泡在" 这些难题中, 才能获得这些直觉. 就像学习英语需要语言环境, 学习编程同样需要创造一种环境. 比如用 C 语言无时无刻都在面对指针, 那它就会像吃饭喝水一样没有挑战了. 你也可以试着把文本编辑器的自动补全关掉, 以及任何智能提示, 可能刚开始会很不习惯, 但久而久之, 你会获得记住变量名和函数名的能力. 失去了工具的辅助, 就会强迫你用大脑的工作记忆区域去承载更多的信息, 但也同时锻炼了大脑的这个功能. 工作记忆的强弱, 对于解决编程问题也是非常重要, 就像国际象棋棋手在脑海里面下盲棋一样, 哪怕你在电脑屏幕上盯着代码, 他们也不可能是都集中在一起的, 这些代码在不同的位置上前后关联, 都需要工作记忆作为前提, 然后才能展开时候的思维活动, 去理清这些问题的脉络. 我在这跟你讲这堆东西, 如果你是一个有一些水平的程序员, 自然能明白他们的含义, 也能判断我是不是在装. 如果你从来没解决过一些复杂的问题, 自然也听不懂这些.
|
204
binfreeze 41 天前
@geligaoli 刚才说的废话太多了. 这次简单一点. 你去动手写一些我提到的那些程序. 别想着一次性就写出来完美的, 而是一步一个脚印慢慢去做. 不要去提前就规划整个程序, 而是只把这一步干完, 再去构想下一步. 完成了几步之后, 再去重构代码. 重构之后, 再去做下一步. 如此反复. 那些复杂的程序, 也就没有那么复杂了. 现在互联网上的知识, 都是教你, 从最开始就要设计好一切. 这从根本上就跟人类解决问题时候的过程是相冲突的. 当你提到那些程序的困难时, 也是把它当作一个整体在谈论. 可任何机器都不是一下子凭空变出来的不是么, 而是一个零件一个零件组装起来的.
|
205
binfreeze 41 天前
@geligaoli 我也可以讨论下 "自我实现的乐趣". 比如你说的, 从一些小的应用开发做起. 就说个最最最简单的, 一个秒表, 或一个计算器. 有些人用 C# 在 WPF 里面实现出来, 就可以很满足. 觉得自己好牛逼, 会编程了. 可有些人在实现完之后, 会产生疑问. 这个文字是怎么跑上面去的, 这个按钮点击为什么会产生作用. WPF 提供的这些接口背后到底是如何完成这些的. 有这些疑问的人, 并不会在通过完成这种简单的应用程序上获得自我满足. 我就算是误导, 也只是误导了某一类性格的人, 而不是全部. 既然不同路线适合不同的人, 你所说的大众化的路线, 也同时存在误导一些人的可能性.
|
206
binfreeze 41 天前
@geligaoli 今天心情好, 多跟你侃几句. 我清楚的记得 2022 年, 是我自学编程的第三年的夏天. 我把 3000 行不到的 PNG 解析写出来替换掉了大家常用的 stb_image 或者 libpng. 从那一天那一刻, 我对编程世界认知就完全变化了. 这就是一个三星期左右工作量的程序, 如果是现在的我, 也就一星期的工作量. 可你放眼望去, 有几个人自己写. 他们就算实现出来, 会写多少行代码? 看看 Rust 仓库的 png 解析是用多少行代码实现. 看看多少人写游戏引擎还要集成 stb_image 的. 都自己写游戏引擎了, 集成几十个开源库在里面, 你在写啥啊? 写胶水程序也值得骄傲吗? 而且这种用了几十个第三方组件的开源库还不止一个. 诚实地说, 你在这里说什么, 我其实并不在乎. 因为我们并不是一类人, 如果是我看到跟我走一样路径的人, 而且还仅仅是走了个开头, 我根本不会产生质疑. 我觉得这很正常. 上面提到的 raddebugger, 那作者有个 discord 群, 那里面的人都用 C 从头写的程序. 就连那个 raddebugger 都只是两个人在搞. 这 2 个人全职搞下来的东西, 就已经有 VS debugger 差不多的功能了. 而且 99% 的部分都是从头写的, 没有集成几个第三方的库. 你可以去关注一下这些项目这些人. 我做到的这些, 在那个群里我都难以启齿. 这都是太平常的事情了. 结果到了这里, 到了中文社区, 大家又觉得不可思议. 甚至一些人拿出来几十年的工作资历来教育我. 你让我怎么看待这些事情. 我只能是觉得可悲又可笑.
|