#编程学习

我就好奇了,到底是谁抱着学好C++啥语言都能轻松的心态去推荐初学者学习的?我怎么就没有感受到有多么可迁移?😅 核心无非是两个:编程范式和生态。 那显然不是所有人一上来做模板就是 policy-driven 的,必然有一个腌入味的过程。那问题是入味了以后如果遇到其他语言,要怎么设计组件?那显然整个设计思路是不太一样的。 还有比如每个语言的内存模型、对象模型、并发模型,以及运行时环境都各有千秋,线程、协程、异步化每家的支持都不一样,同步原语也有很多细微的差别,是直接跑在物理机上还是虚拟机或者解释器上都非常讲究。 更进一步的还有性能观,大家优化目标和技巧基本上像在平行世界一样,底层硬件到高层架构关注点都截然不同,而且又根植在语言的哲学和特性上,很头疼。 关键的问题还有生态,趁手的调试工具和构建体系,以及编译器、库的不同实现,加上那些社区、商业公司驱动的千奇百怪的环境,面对新语言建立不起那种整体图景就非常卡手。 所以那有人宣扬C++学好了啥都不怕甚至捧上鄙视链神坛的,是伪科学;我曾听闻有人向本科生推荐:精通一门语言,最好是C++。精通C++,这个话起码我是从来不敢说的;当然,也有可能是我水平有限,没办法一人击穿整个计算机的体系结构。 总的来说,还是“没有银弹”的思想:种瓜得瓜、种豆得豆,没有什么足以称得王道的路径,只是有些战术层面上的方法比其他方法更高效。 前辈们还是不要祸害新手啦!
你们现在的键盘侠啊,真是一言不合就开骂,搞得好像自己天赋异禀、神功护体似的。 什么“如果一个人没能力仅靠免费的互联网资源掌握Python,他就和程序员这行无缘了”?——我只能说,这种话啊,听起来像是个自学成才的少年天才在装X,其实大概率只是刚看了点视频就以为自己摸到了编程的天灵盖。 现实是什么?现实是: 免费的资源当然多,但碎、杂、无结构,还容易误导。一个初学者在茫茫信息里找重点,难度不亚于在沙漠里找饮用水。这就像告诉一个刚学开车的人:“马路上车多,你自己在马路上练,不会你就别当司机了。”——这不是暴论,是不负责任。 很多人不是不想学,是不知道从哪学,或者根本不知道自己学错了。花点钱报个班,买的是结构化学习、有人带、能提问、能纠错。这叫投资自己,不叫“没天赋”。 而且,程序员这个行业,不是靠“省钱”或者“独立完成任务”的人才能进的行业。更不是你一口“自学成神”就能卡门的圈子。别忘了,这世上大部分牛人,也都是踩着别人的肩膀起来的。 所以啊,像“暴论哥”这种发言,听听就行了。当茶余饭后的乐子。真要拿来指导人生方向,那可就比花四千多报班学Python还贵多了——因为你浪费的是时间,是机会,是信心。 祝你们都别被这种“自学鄙视链”忽悠瘸了。
宝玉
1年前
推荐阅读:《The Future is Rusty —— LLMs Make Programming Language Learning Curves Shallower》 众所周知,Rust 的学习曲线很陡峭,但现在,得益于大语言模型(LLMs)的发展,这个陡峭学习曲线的问题已经变得容易解决了。 无论是 Rust、Haskell 还是其他任何语言,借助大语言模型的帮助,现在学习起来都更加容易。事实上,如果你在学习难懂的材料时没有利用大语言模型的帮助,那么你的学习方式可能不是最佳的。 文章中提到了一个很有意思的概念叫 “The Intermediate Material Problem”,是指在学习某个技能或领域时,在初级和高级阶段之间存在的一种学习难点。具体来说,在编程语言学习中,这个问题特别明显,尤其是对于像 Rust 这样的复杂语言。 在初级阶段,学习者通过教程和基础课程获得基本的知识和技能。这些资源通常都是易于理解和遵循的,目的是帮助初学者快速入门。然而,当学习者试图从基础过渡到更复杂的应用和项目时,他们常常发现可用的学习材料突然变得稀少并且难度很高。例如,在 Rust 编程中,学习者可能已经掌握了基本的语法和概念,但在尝试开发更复杂的系统(如光线追踪器)时,他们需要理解更高级的概念,比如所有权规则和内存管理,这些通常不在初级教程中详细讲解。 这种情况造成了一个“中阶教材”缺口,学习者必须依靠自己的努力和探索来克服这个难关,这通常包括阅读高级文档、参与社区讨论,甚至通过试错来解决具体的编程难题。这个阶段通常伴随着挫折和困惑,因为学习者不再有清晰的指导和步骤可循,而是需要自己摸索前进。 这个问题并不限于编程或技术领域。在许多学习曲线陡峭的领域中,从初学者过渡到熟练者的过程中都可能遇到类似的“中阶教材问题”。 另外文章中还提到数学家陶哲轩都在借助 ChatGPT 辅助学习。如果我们这个时代最杰出的数学家都在用 ChatGPT 来帮助他进行证明,那么你也没有理由不尝试! 原文: 译文: