4月份学习记录
找到自己感兴趣的方向,而不是人云亦云,知道自己想要的是什么,而不是一直得过且过!
差距是怎么出现的,四年来的点点滴滴!!!
一个前端大佬的十年回顾 | 漫画前端的前世今生
岁月如梭,十载流年前端技术,蓬勃向前HTML,CSS,JavaScript演绎出璀璨夺目的技术画卷
https://blog.csdn.net/jdcdev_/article/details/130052555?spm=1000.2115.3001.5927
C++ 增幅一骑绝尘,“黑马” Zig 闯入前 50 名!TIOBE 4 月榜单发布
2b74dd1aab6f0e641c3d1c2.png#pic_center)
https://csdnnews.blog.csdn.net/article/details/130023310?spm=1000.2115.3001.5927
软件行业的最后十年【ChatGPT】
https://blog.csdn.net/shebao3333/article/details/129633882?spm=1000.2115.3001.6382&utm_medium=distribute.pc_feed_v2.none-task-blog-hot_rank_bottoming-1-129633882-null-null.pc_personrec&depth_1-utm_source=distribute.pc_feed_v2.none-task-blog-hot_rank_bottoming-1-129633882-null-null.pc_personrec
程序员该如何打赢 AI 编程?这两种编程范式,值得你去深研 | NPCon 演讲实录
https://csdnnews.blog.csdn.net/article/details/129891450?spm=1000.2115.3001.5927
「未来的 AI 开发应该是一种多范式的开发流程」。
关于AI的预测谬误
人类的预测是出了名的短视,尤其是在技术方面:
1903 年,《纽约时报》预测人类需要超过 100 万年的时间才能飞行。 九周后,莱特兄弟做到了。
同年,一位著名的银行行长在谈到投资亨利·福特时说:“这匹马会留下来,但汽车只是一种新奇事物——一种时尚。
关于收音机,“无线音乐盒没有想象中的商业价值。 谁会为没有特别发送给任何人的消息付费?”
然而,一个世纪后的今天,我们看到了相当于汽车的 AI,并自欺欺人地认为这次它有所不同。 汽车刚刚被发明出来,我们说它会给我们的马增加轮子。
谬误 2:AI 是用来增强而非替代的
工程师目光短浅,没有意识到他们构成了一个巨大的成本中心,管理层正垂涎三尺地削减成本。 撇开 OpenAI 公开表示要取代开发人员的意图不谈,想想我们有多贵。 2021 年,北美有 430 万开发者,平均工资超过 10 万美元。 加上福利、税收和其他员工开支,保守估计为 6000 亿美元。 你是在告诉我像贝佐斯这样的人,他认为上厕所太贵了,想要留下我们吗? 一旦少数公司走这条路,其余公司就会像多米诺骨牌一样倒下,以免被定价淘汰。
选取评论:
也不用太过焦虑,正如当初财务软件刚出来的时候后,很多人说会替代,十几年过去了,依然没有。因为人类是个会开发需求的种族,新的更高效的工具出来之后,一定会有人对当前的状态不满足,会开发出新的需求,所以如何驾驭这个工具才是我们需要考虑的,当然低端人员会一定程度的被取代,而活到老学到老,才是我们毕生的根本。
大语言模型将如何影响软件开发?
https://csdnnews.blog.csdn.net/article/details/130073246?spm=1000.2115.3001.5927
作为一个 AI 模型,我不会说我会完全取代软件工程师,因为 AI 技术只是软件工程师所涉及的众多技术之一。然而,我可以说在未来十年,AI 技术将在软件开发和软件工程领域扮演更加重要的角色,并且在某些领域可能会对传统的软件开发方式造成一定的影响。以下是对这个问题的一个可能的预测:
阶段 1:AI 帮助软件工程师加快开发速度和提高质量。
目前,AI 技术已经被广泛应用于软件开发的各个方面,例如代码自动生成、缺陷检测和修复、自动化测试等。这些技术的应用可以帮助软件工程师更快地开发软件,并提高软件的质量和可靠性。在未来十年,AI 技术的应用将更加广泛,这将使软件工程师能够更加高效地开发软件。
阶段 2:AI 自主进行软件开发和部署。
在未来,AI 技术可能会越来越多地自主进行软件开发和部署。例如,AI 可能会自动根据用户需求生成代码和模型,并将其部署到云端或设备上。这些技术的应用将使软件工程师的角色发生变化,他们可能更多地从事与 AI 相关的工作,例如 AI 系统设计和监控等。
阶段 3:AI 完全接管软件开发的某些领域。
在未来十年,AI 技术可能会在某些领域完全取代软件工程师。例如,在某些领域,AI 可能会自动进行软件开发、测试和部署,并且能够根据用户需求自我优化和更新。这将使软件工程师的角色发生更大的变化,他们可能需要转向更高层次的工作,例如系统设计和管理。
阶段 4:AI 开始控制软件的决策过程。
在未来,AI 技术可能会开始控制软件的决策过程,例如自动决策哪些功能应该被添加到软件中,以及如何优化软件的性能和可靠性。这将使软件工程师的角色变得更加复杂,他们可能需要与 AI 一起协作,共同开发和管理软件系统。
阶段 5:AI 完全接管软件开发和管理。
在某些领域,AI 技术可能会完全接管软件开发和管理的工不可能,客户自己也不知道自己的需求,因为他们不懂技术,不知道可以实现什么需求,从而不能准确地把需求给到ai,这就要ai有一定的自主性,灵活性,大多数解决方案相同,但也有很多不同,最后还是要有程序员调教这个ai。另外,有很多技术是商业机密,通用ai根本不能胜任,除非那个公司是个大公司有能力训练自己的ai,而要调教ai,就要很多程序员。因此,中小公司要么放弃商业机密,把技术开源,要么招程序员。
大语言模型将如何影响软件的构建?
大语言模型能够提高专业开发人员的工作效率,GitHub Copilot 已经证明了这个方向的可行性。这意味着开发人员不必担心未来的工作前景,且软件的生产与分发方式不会发生剧烈的变化。
然而,大语言模型的影响力不仅于此。大语言模型将成为专业程序员的工具,但过于关注狭隘的用途可能会导致我们错失未来推动更大变化的潜力。
因为我认为在短时间内有可能所有的计算机用户都将有能力开发小型软件工具,并描述他们希望如何修改正在使用的软件。换句话说,大语言模型将发展成为支持用户编程的工具,普通人无需掌握编程的复杂性即可充分利用计算机。就目前的情况而言,这一愿景在将模糊的非正式意图转化为正式的可执行代码方面遇到了瓶颈。而接下来,在大规模语言模型的助力下,瓶颈正在迅速打开。
如果这种假设成真,我们将看到人们使用软件的方式出现一些惊人的变化:
一次性脚本:普通计算机用户可以借助 AI,每天创建并执行几十次脚本,以执行数据分析、视频编辑等任务,或自动执行一些繁琐的任务。
一次性 GUI:人们将使用 AI 创建整个 GUI 应用程序,这种应用程序只能执行特定的某个任务,仅包含他们需要的功能,不会膨胀。
构建取代购买:企业内部将开发更多软件,以满足他们特定的需求,而不是购买现成的 SaaS,因为根据具体情况定制软件更便宜。
修改/扩展:消费者和企业需要扩展和修改现有软件的能力,在 AI 的助力下,开发新功能或调整匹配用户的工作流程将更容易。
重组:吸取各个应用程序的精华,并创建一个集百家之长的混合应用程序。
所有这些变化不仅仅是加快当前软件的生产过程。软件的创建时机、由谁创建以及出于什么目的,都将发生变化。
大规模语言模型+可延展软件
接下来,将深入探讨大语言模型可能为软件创建和分发带来的广泛变化,而且还会影响到人们与软件交互的方式。讨论的问题包括:
交互模型:哪种交互模型适合哪些任务?人们什么时候需要聊天机器人、一次性脚本或自定义的一次性 GUI?
软件定制:大规模语言模型如何实现可由用户拆分、重组和扩展的可延展软件?
意图规范:最终用户将如何与大规模语言模型交互,表达自己的意图?
模糊翻译器:大规模语言模型如何实现以前不可能实现的共享数据基础?
用户授权:我们应该如何看待大规模语言模型时代的授权和代理与授权和自动化?
聊天机器人应该何时使用?
在大规模语言模型时代用户交互模型将如何进化?特别是,聊天机器人可能会接管哪些类型的任务?当我们考虑用不同的方式来武装最终用户时,这个问题的答案会特别重要。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uc2OHVtw-1682587431930)(2023-04-12-23-11-15.png)]
我认为,虽然 ChatGPT 比 Siri 更强大,但聊天 UI 无法很好地完成许多任务,我们仍然需要图形用户界面。之后会讨论利用大规模语言模型帮助我们构建 UI 的混合交互模型。
最终,我们将达成一种有趣的设计:开放式计算媒体,用户可以直接学习和建立模型,大规模语言模型将作为媒体内的合作伙伴。
在深入展开讨论之前,首先声明:本文探讨的很多观点都源自个人的猜测,具有很大的不确定性。我甚至无法预测这些变化什么时候会出现。重点是,想象如何根据当前 AI 的发展状况,推断用户与计算机的新型交互,以及我们如何利用这项新技术来最大限度地加强最终用户的能力。
打破编程瓶颈
为什么大规模语言模型关系到普通用户使用计算机的能力?
几十年来,计算先驱们一直在努力实现最终用户编程的愿景:普通人也可以充分利用计算机,而不仅仅是使用程序员给他们的预制应用程序。Alan Kay 曾在1984 年写道:“我们希望像以前编辑文档一样编辑我们的工具。”
这个理念有很多表现形式。现代终端用户也或多或少地接触过编程系统,包括电子表格、Airtable、Glide 或 iOS 快捷方式,以及早期的 HyperCard、Smalltalk 和 Yahoo Pipes。
尽管其中一些产品取得了成功,但现在它们也面临一个基本难题的限制:帮助人们将粗略的想法转化为正式的可执行代码,这一步非常难。系统设计者尝试过超高级语言、友好的可视化编辑器和更好的语法、复杂性分层以及根据示例自动生成简单的代码。但事实证明,使用这些技术很难突破一定的复杂性上限。
我自己在工作中就遇到过编程瓶颈。几年前,我开发了一个名为 Wildcard 的最终用户编程系统,用户可以通过电子表格界面自定义网站。例如,在下面这个简短的演示中,你可以看到用户按照不同的顺序对 Hacker News 上的文章进行排序,然后将阅读时间添加到页面的文章中,这一切都是通过网页与电子表格的同步化实现的。
这个演示看上去很不错,对吧?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5uyWtPeR-1682587431930)(2023-04-12-23-11-51.png)]
然而仔细观察,就会发现这个系统有两个略显尴尬的编程瓶颈。首先,用户必须能够编写小型电子表格公式来表达计算。虽然难度远小于学习一门成熟的编程语言,但对于新手用户来说依然是一个障碍。其次,在背后,Wildcard 需要特定于站点的抓取代码,才能将电子表格连接到网站。理论上,这些代码可以由开发人员编写和维护,并在最终用户社区中共享,但这需要付出巨大的努力。
如今有了大规模语言模型,这些编程瓶颈就不再是限制因素了。将自然语言规范转化为网络抓取代码或者是电子表格公式正是目前大规模语言模型可以实现的代码生成过程。我们可以想象,让大规模语言模型帮忙抓取代码和生成公式,这样就无需任何人手动编写代码即可实现上述演示。在我做 Wildcard 的时候,这种的程序生成还只是一个幻想,而如今正在迅速变成现实。
不过,这个例子也提出了一个更深层次的问题。如果让大规模语言模型为我们修改网站,那又何必使用 Wildcard UI 呢?难道我们不能让 ChatGPT 重新排序网站并添加阅读时间吗?
我认为这个问题的答案尚不明朗。将电子表格视为网站基础数据的另一种视图具有很大的价值,我们可以直接查看和操作这些数据。点击列的标题即可让表格中的数据按顺序排列感觉很好,而且比输入“按列 X 排序”更快。允许用户直接查看和编辑电子表格公式,可以让他们拥有更多的控制权。
所以,用户界面仍然很重要。我们可以想象,大规模语言模型的具体、有针对性的角色应该是帮助用户定制和构建软件,而不是将几十年的交互设计抛诸脑后。
对GPT-4看法
有些程序员对人工智能持怀疑态度,我经常看到这样的一个笑话:“太好了,现在大家都不需要编写代码了,只需要编写准确无误的计算机行为规范……”(意思是说,那不就是代码吗?!)我认为这种观点的目光太短浅。大规模语言模型可以与用户反复沟通,并提出问题,帮助他们编写规范,而且还可以通过常识填补不明确的细节。这并不意味着,实现起来很简单,但我希望看到这些方面取得进步。我已经成功地要求 GPT-4 提问,从而澄清我指定的规格。
还有一个重点,根据 MSR 论文以及我自己的有限实验,GPT-4 的编程水平较之 GPT-3 似乎已有了很大进步,而且上升幅度很大。照着这个节奏发展下去,那么下一代模型也将呈现巨大的提升。
编程的难度因上下文而异,我们可能会看到专业软件工程与最终用户编程之间的差异。一方面,我们可能会看到最终用户编程的难度远小于专业编程,因为许多任务可以通过简单的编程来完成,主要工作就是多个库粘合在一起,不需要新颖的算法创新。
另一方面,与熟练的程序员相比,在新手终端用户主导的流程中,如果 AI 给出错误的代码,那么造成的后果更严重。面对大规模语言模型给出的愚蠢建议,熟练的程序员大可以一笑了之,然后自己编写代码,或者利用自己掌握的技术与大规模语言模型一起调试。但最终用户就会束手无策,甚至在刚开始的时候发现不了这些问题。虽然这些都是真实的问题,但我认为并非无法克服。一直以来,最终用户编写的电子表格程序不仅杂乱无章,而且漏洞百出,但我们依然有办法应付过去,即使这对于注重正确性的专业软件开发人员来说是无法忍受的。
GPT-4 还没玩透,下半年可能发布的 GPT-5 会有什么样的能力?
https://blog.csdn.net/csdnnews/article/details/129870029?spm=1000.2115.3001.5927
GPT-5 可以带来众多可能的新功能和改进,例如:
个性化的模板:可根据用户的具体需求和输入变量进行量身定制,提供更加个性化的体验。
允许用户调整 AI 的默认设置,包括专业性、幽默感、语气,甚至 AI 化身的人口统计学等方面。
自动将文本转换为不同的格式,如静态图像、短视频、音频和虚拟仿真。
高级数据管理:包括记录、跟踪、分析和分享数据,以简化用户工作流程,提高生产力。
辅助决策:通过提供相关信息和见解,协助用户做出明智的决定。
改进 NLP 能力:增强 AI 能够以更像人类的方式理解和响应自然语言的能力。
集成机器学习:允许 AI 随着时间的推移不断学习和改进,适应用户的需求和偏好。
现在就是成为“新程序员”的黄金时刻!
https://blog.csdn.net/csdnnews/article/details/129870037?spm=1000.2115.3001.5927
自然语言代替了编程语言,大大地降低了程序员的门槛。现在,ChatGPT 将全球的知识库和代码都放在了你的手中,只要有想象力,人人都能成为「新程序员」。在不远的未来,新的应用市场会产生,大多数工具都会被重构。”
面对这些问题,CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛在天风证券「如日方升 2023 春季策略会」和「新程序员大会(NPCon):AIGC 与大模型技术应用峰会」上进行了解读:
现在 GPT 正处于 iPhone 4 时刻,而不仅仅是 iPhone 时刻。GPT 应用将迎来大爆发时代,大多数软件、开发工具和工作流程都会重构。程序员的技术栈会发生许多变化,编写 Prompt 是新时代的必学技能,确定性编程依然重要。这是 AI 的“大航海时代”,有人获益、有人受损,所以需要新规则。成为“新程序员”为时不晚,AI 时代人人都能成为开发者。
人人都是开发者、家家都是技术公司、中国需要建立自己的技术生态。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VFJaOoFZ-1682587431930)(2023-04-12-23-58-32.png)]
深度学习和卷积神经网络(Convolutional Neural Networks, CNN)
深度学习
深度学习指的是深度神经网络模型,一般指网络层数在三层或者三层以上的神经网络结构。
参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。但是在一般情况下,复杂模型的训练效率低,易陷入过拟合,因此难以受到人们的青睐。具体来讲就是,随着神经网络层数的加深,优化函数越来越容易陷入局部最优解(即过拟合,在训练样本上有很好的拟合效果,但是在测试集上效果很差)。同时,不可忽略的一个问题是随着网络层数增加,“梯度消失”(或者说是梯度发散diverge)现象更加严重。我们经常使用sigmoid函数作为隐含层的功能神经元,对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本接收不到有效的训练信号。
为了解决深层神经网络的训练问题,一种有效的手段是采取无监督逐层训练(unsupervised layer-wise training),其基本思想是每次训练一层隐节点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入,这被称之为“预训练”(pre-training);在预训练完成后,再对整个网络进行“微调”(fine-tunning)训练。比如Hinton在深度信念网络(Deep Belief Networks,简称DBN)中,每层都是一个RBM,即整个网络可以被视为是若干个RBM堆叠而成。在使用无监督训练时,首先训练第一层,这是关于训练样本的RBM模型,可按标准的RBM进行训练;然后,将第一层预训练号的隐节点视为第二层的输入节点,对第二层进行预训练;… 各层预训练完成后,再利用BP算法对整个网络进行训练。
另一种节省训练开销的做法是进行“权共享”(weight sharing),即让一组神经元使用相同的连接权,这个策略在卷积神经网络(Convolutional Neural Networks,简称CNN)中发挥了重要作用。CNN可以用BP算法进行训练,但是在训练中,无论是卷积层还是采样层,其每组神经元(即上图中的每一个“平面”)都是用相同的连接权,从而大幅减少了需要训练的参数数目。
————————————————
版权声明:本文为CSDN博主「Maann」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43815222/article/details/130079456
- 卷积神经网络(Convolutional Neural Networks, CNN)
https://www.cnblogs.com/charlotte77/p/7759802.html
在图像领域,每个像素点有三个通道,分别代表RGB颜色,那么,如果一个图像的尺寸是(28,28,1),即代表这个图像的是一个长宽均为28,channel为1的图像(channel也叫depth,此处1代表灰色图像)。如果使用全连接的网络结构,即,网络中的神经与与相邻层上的每个神经元均连接,那就意味着我们的网络有28 * 28 =784个神经元,hidden层采用了15个神经元,那么简单计算一下,我们需要的参数个数(w和b)就有:7841510+15+10=117625个。
传统的三层神经网络需要大量的参数,原因在于每个神经元都和相邻层的神经元相连接,但是思考一下,这种连接方式是必须的吗?全连接层的方式对于图像数据来说似乎显得不这么友好,因为图像本身具有“二维空间特征”,通俗点说就是局部特性。譬如我们看一张猫的图片,可能看到猫的眼镜或者嘴巴就知道这是张猫片,而不需要说每个部分都看完了才知道,啊,原来这个是猫啊。所以如果我们可以用某种方式对一张图片的某个典型特征识别,那么这张图片的类别也就知道了。这个时候就产生了卷积的概念。
科技爱好者周刊(第 249 期):最成功的软件企业家
https://www.ruanyifeng.com/blog/2023/04/weekly-issue-249.html
文摘
1、四千周
美国有一本畅销书叫做《四千周》,它的主要观点是:人生大约有4000周,将那么有限的人生,用来追求效率是错误的。
理想情况下,你努力工作,早点把事情做完,然后就可以在一天的剩余时间里享受休闲时光。
因为你很有效率,所以你有时间照料花园、和朋友打牌、发发呆、学习新的食谱、与老朋友打电话,以及在大自然中散步。
但是实际上,你的效率越高,只会得到更多的工作。
全世界都注意到了,你完成任务的速度有多快,开始向你推送更多的事情。你回复工作邮件越快,只会让你收到更多的工作邮件,因为你的同事现在都习惯了你的快速回复。
这里的关键是,世界给你提供的工作量实际上是无限的。
如果工作是无限的,那么工作效率的提高,将无法帮助你更快地"完成"工作。
你原以为,多年来努力提高生产力和效率,应该会让你过上悠闲的生活,但你最终得到的可能只是倦怠。
生活中有无限的事情要做。你越想在有限的日子里塞满的东西越多,你就越会觉得自己输了。
你不可能访问世界上所有的城市,所以如果你觉得自己的目标是环游世界,走过最多的地方,那么你肯定会失望。
解决办法就是,不要把提高效率当作自己的目标,你要找出那些对你重要的事情,把它们放在更优先的位置,学会享受现在,不要把快乐推迟到未来。
言论
企业家谈成功经验,就好像在说:“我曾经用这些号码,赢得过彩票。”
AI 带来的风险之一,就是权力会集中到那些建造 AI 模型的人身上,他们的决定会影响世界。
– 《AI 颠覆世界》
我做过70多个创业项目,只有4个成功。总体来看,我的成功率只有5%左右,我做的事情95%是要失败的。
所以… 我就要去做更多的项目啊。
一些科学家像鸟,从鸟瞰的角度看待问题,注重面前的广阔风景,不需要太多细节。另一些科学家像青蛙,只盯着眼前的事物,喜欢深入细节。
– 《物理学的鸟和青蛙》
你应该开始写博客,如果不知道写什么,就写你学到的东西,以及写下你创造或建立的东西。
– 《博客写什么》
中国北方以种植小麦为主,南方以种植水稻为主。有一种理论,认为水稻需要稻农合作,解决灌溉和水灾,而小麦主要依靠雨水,不需要与其他人合作,所以北方人的个人主义倾向更强一些,南方人则是群体性倾向更强。
– 《全球范围的南北方差异》
自由软件最好的部分是,它有时会产生你付钱也开发不出来的产品(比如 Linux),或者比你付钱得到的软件质量更好的软件(比如 SQLite)。
自由软件最糟糕的部分是,开发人员可能根本不理睬用户。
– apenwarr.ca
科技爱好者周刊(第 240 期):教育年限可以缩短吗?
感觉缩短教育年限本末倒置了。是因为没有足够的工作机会,所以人多少不得不继续读书。就算让所有学生出来就业,他们能去哪里就业呢?
缩短教育时间,这不就是前几年小平平开始搞的那套了?以后职业学校等会非常流行,并且与企业结合的更紧密,毕业就可以上岗,都不需要入企再培训了。。相当于德国模式了。。
现在的问题是,这样的人才,获得的收入回报并不高。。如果这样的人才在当地的收入能达到“企事业单位职工”相同标准,那谁会去考公会去送外卖啊。
进入社会就是工蚁了,至少对于绝大部分人是这样的,上学的那段时间是很轻松的,这也拿走吗
简单说,最终还是分配问题。看看每年底公布的“非私营单位”,“私营单位”平均收入差距就知道了(快2倍了),而且私营企业相比非私营单位,还存在稳定性不足的天然风险。从更合理公平的角度上看,这些私营职工应该有更多的眼前收入来弥补这部分的风险的。然而事实完全相反。“非私营单位”有着更多的表外福利。
所以我一直坚持“社达”才是这个社会的本质。
科技爱好者周刊(第 250 期):新技术的最大风险
https://www.ruanyifeng.com/blog/2023/04/weekly-issue-250.html
新老技术
这件事的教训,就是使用新技术要谨慎。新技术有一个最大风险,往往被忽视,那就是它们没有经过足够的使用,问题都没有暴露出来。我记得,有人做过研究,企业软件的成本,只有20%是早期的开发成本,剩下的80%都是后期的维护和更新成本。很多的新技术,看上去可以节省前面20%的开发成本,但可能大大增加后面80%的维护成本。现实生活中,那么多企业选择 Java,而不是那些时髦花哨的新技术,原因就在这里:Java 是经过考验的,不会出现奇怪的问题,有良好的长期维护,企业长期使用的风险和成本相对较低。如果开发者真为自己考虑,想将来简单一点,不必每天为复杂奇怪的技术问题操心,应该优先选择那些可靠的老技术,用于公司的长期项目。老技术的问题是,它很乏味:所有可能性都被探索过了,创造发挥的空间不大。很多程序员(尤其是新程序员)因此觉得,老技术展现不了技术能力,也不够好玩,新技术更有乐趣,对自己的提升更大。这种想法并没错,但前提是你的项目不需要长期维护,否则使用未经考验的新技术是非常冒险的。
大数据已死 科技爱好者周刊(第 244 期):大数据已死
https://www.ruanyifeng.com/blog/2023/03/weekly-issue-244.html
谷歌的大数据工程师乔丹·蒂加尼 (Jordan Tigani),最近直言不讳地说:"大数据已死"。他认为,大数据时代已经结束了,大数据的存储和分析,作为一个技术问题已经解决了。 用户已经不必担心数据大小了,再多的数据都不是问题。他提出了"大数据已死"的6个理由,我觉得很有说服力,下面就跟大家分享。(1)绝大多数企业到不了大数据级别。 企业的数据量往往不到 1TB,很多甚至不到 100GB。假设一家中等规模的制造业公司,拥有1000个客户,每个客户每天产生一个订单,每个订单包含100个产品。这家公司一天产生的数据量,依然远远小于 1 MB。三年后,数据总量也只有 1 GB,达到 1 TB 需要几千年。就算是大型互联网公司,大多数时候也到不了大数据级别。假设某个营销活动有100万用户参加,并且同一时间,该公司开展了几十个这样的营销活动,每天的数据量依然不足 1 GB,就算加上各种日志,可能也只有几个 GB,这跟大数据相差甚远。(2)存储和计算正在分离。 大数据包含"数据存储"和"数据计算"两个方面,如果放在一个系统里面处理,确实很难。但是,这两方面现在已经能够脱钩,变成两个独立系统,各自都能独立扩展。这意味着,"数据计算"不受"数据存储"(数据库大小)的限制,反之依然。因此,大数据作为单一问题就不存在了,变成了海量存储和大型计算两个问题。(3)没有新业务的情况下,数据是线性增长的, 即每天的新增数据与以前的数据结构相同。以前的数据一旦写入数据库,通常就不再发生变化,也没有新的计算需求,相关计算在以前就完成了。这时只要对最近的新增数据进行单独计算,然后保存就可以了。你很少需要每天扫描一遍旧数据:那些数据一成不变,为什么要一遍一遍计算它们呢?因此,对于一家企业来说,"数据会指数式增长"这个假设并不成立。而且,数据计算的需求,其实比数据存储的需求小得多,因为老数据很少需要再次计算。(4)人们看重的往往只是最近的数据。最频繁的查询是针对24小时内产生的数据,一周前的数据的查询可能性要低20倍,一个月前的历史数据只会偶尔被查询。这意味着,大数据更像静态数据,而不完全是动态数据。既然以前的数据很少用到,那么就可以压缩保存。一个包含10年数据的表格,可能会达到 PB 级别,但是如果压缩保存历史数据,压缩后可能不到 50 GB。(5)真正拥有大数据的公司,几乎从不查询全部数据。他们90%的查询涉及的数据少于 100 MB,涉及 TB 级别数据的查询非常少。就算查询 TB 级别数据,查询性能的优先级往往并不高。等一个周末或几天才拿到结果,通常是可以接受的。另外,大型数据集的查询非常昂贵。谷歌的 BigQuery 的 PB 级别查询报价是 5,000 美元,即使是大公司也不会经常使用。(6)硬件的飞速发展,使得单台计算机的计算能力大增。 2004年,谷歌发表 MapReduce 论文时,单机的计算能力还比较弱,很多计算必须通过分布式完成。2006年,AWS 推出了 EC2 云主机,你只能用到一个单核 CPU 和 2 GB 内存。今天,AWS 的标准实例具有64个内核和 256 GB 内存。如果愿意多花钱,还可以拿到445个内核和超过 24 TB 内存。单机计算能力大大增强,意味着大数据的最大难点----分布式计算----即使被用到,困难程度也大大降低。综上所述,结论就是:数据量已经不需要特别关注了,再也不必担心处理不了海量数据了。 大数据作为一个技术问题,已经解决了。
文章我如何搭建自己的博客(英文)
https://www.joshwcomeau.com/blog/how-i-built-my-blog/
用信鸽解释HTTPS
https://baida.dev/articles/https-explained-with-carrier-pigeons
https://www.dobyasa.com/index.php/archives/25/
西蒙·威利森的博客对博客的建议
博客内容
你应该开始一个博客。拥有自己的互联网小角落对灵魂有好处!
但是你应该写什么呢?
很容易被这个挂断。我确实感受到了自我施加的压力,只写一些新的、独特的东西,感觉就像以前从未说过的那样。这是一个心理陷阱,除了阻止你之外什么也做不了。
以下是两种类型的内容,我保证您可以制作并感觉很棒:TIL和编写项目描述。
今天我学到了
TIL——今天我学到了——是我所知道的最自由的内容类型。
你刚刚学会了如何做某事吗?写下那个。
称之为 TIL——这样你就不会向任何人承诺一个启示或一个深入的教程。你说“我刚刚想通了:这是我的笔记,你可能会发现它们也很有用”。
我也喜欢这种内容的谦逊。我发表它们的部分原因是强调,即使有25年的专业经验,你仍然应该庆祝学习最基本的东西。
前几天我学会了“交互”命令!这是我的 TIL。pdb
我于 2020 年 346 月开始发布 TIL。我现在有 10 个,其中大多数都花了不到 <> 分钟的时间写完。这是一种快速而令人满意的在线写作的绝佳格式。
我的收藏位于 https://til.simonwillison.net — 它发布来自我的 simonw/til GitHub 存储库的内容。
写下你的项目
如果你做一个项目,你应该写它。
我建议将“写下它”添加到您构建或创建的任何内容的“完成”定义中。
与TIL一样,这消除了独特的压力。如果您的项目是否与成千上万的其他项目重叠并不重要:构建它的体验对您来说是独一无二的。你应该有几段话和一个截图来解释(并悄悄地庆祝)你所做的。
屏幕截图尤其重要。你的项目在十年后还会存在并发挥作用吗?我希望如此,但我们都知道事情屈服于位腐烂的速度有多快。
甚至比截图更好:动画GIF截图!我用LICEcap捕捉这些。视频甚至比这更好,但这些需要付出更多的努力来制作。
跳过写项目的步骤是非常诱人的。但是,每当你这样做时,你都会在桌面上留下大量来自该项目的未捕获价值。
这些天我让自己这样做:我告诉自己,写一些东西是我为建造它而必须付出的代价。我总是觉得这种努力是值得的。
查看我的项目标签,了解此类内容的示例。
这就是我对博客的建议:写下你学到的东西,写你构建的东西!
科技爱好者周刊(第 197 期):如果这个世界有快乐机
https://www.ruanyifeng.com/blog/2022/03/weekly-issue-197.html
本周话题:如果这个世界有快乐机
上个世纪70年代,哈佛大学的哲学教授诺齐克(Robert Nozick)提出一个问题, 如何证明享乐主义(追求快乐和满足)是人类的行为目的?
当时,美国陷入越南战争的泥潭,社会弥漫着"享乐主义"的气氛,年轻人普遍觉得,人的行为就是为了追求快乐、满足、幸福感。只要能够获得快乐的事情,就值得去做。
诺齐克不喜欢这种想法,质疑道:有何证据可以证明,人活着就是为了追求享乐?
他假设了一个场景,假如世界上有一种机器,叫做"快乐机",只要插上插头,就能带给你源源不断的快乐。 并且,你无法分辨,这种机器快乐与现实世界的快乐有何不同。
如果人生的目标是体验尽可能多的快乐,那么没有理由不接入这台快乐机。一旦所有人都想接入,那就证明了人类真的是追求享乐主义。
这在哲学上称为"快乐机假设"。诺齐克相信,只要有人放弃接入快乐机,就说明享乐对这个人来说并不是最重要的,从而证明了人类还有其他的追求。
他在著作里面,提出了三种可能,会让人放弃快乐机。
人们想亲身做某些事情,而不是单纯地体验快乐。
人们希望能够真正成为某种类型的人,而不是虚拟地扮演角色。
人们不希望被限制在人造现实中,还希望去接触更多的事物。
上面的三种可能,说实话,都没有说服力,都是无法证明的假设。因为现实中没有快乐机,所以关于这个问题的一切讨论,都是纸上谈兵,没有答案。
但是,现在的情况有所不同。50年过去了,VR 技术的进展和元宇宙的出现,使得快乐机不那么像科幻小说了。 人类很可能在未来10年中,创造出很接近快乐机的设备。
到了那时,你戴上 VR 头盔,就进入一个不同的世界,感受到无比的满足和快乐,而且会很真实,一点不像假的。这意味着,"快乐机假设"很快就能被验证了。
如果元宇宙很逼真、很梦幻,人们会争先恐后进入其中,流连忘返吗?还有多少人能抗拒不接入它的诱惑,宁愿放弃更多的快乐,留在充满了乏味、悲伤、灾难、战争的现实世界吗?
我猜想,大部分人一定会选择快乐机,因为那里的生活更容易、更快乐,更美好,也更便宜。少数人可能会放弃快乐机,宁愿面对现实,过一种快乐更少、痛苦更多的生活。有一种理论解释这种信念,认为没有痛苦的人生是不完整的。那些痛苦、焦虑、挣扎和苦难的日子,可以塑造人,让你领悟人生意义。
总的来说,如果真的有那么一天,快乐像汽水一样,可以从机器上获得,为什么不接入呢?
关于 Python 中的数字你可能不知道的 3 件事
https://davidamos.dev/three-things-you-might-not-know-about-numbers-in-python/
向学姐表白可能是一个比较难以处理的话题,但以下是一些建议:
确定她是否单身:在向她表白之前,请确认她当前是否已有男朋友。否则,你的表白将变得尴尬而无意义。
处理好场合和时机:找到合适的时间和地点很重要,最好能够找到一个安静、私密的场所,可以让彼此的情感更自然地发展。
表达你的感受:当你确定了场合和时机后,直接告诉她你的心意。真诚地表述你对她的思念和感情,给出具体原因,使她明白你希望与她在一起的原因。
尊重她的选择:不论她怎么做出反应,都要尊重她的决定。如果她不同意你的表白,即使你感到失落,也不要对她和你们的关系产生不必要的压力。
总之,在向学姐表白时,请保持诚实、尊重和开放的态度,并具备一定的细腻和耐心。
科技爱好者周刊(第 204 期):如何度过疫情、裁员、还有战争
https://www.ruanyifeng.com/blog/2022/04/weekly-issue-204.html
最近的坏消息比较多,疫情、裁员、还有战争。一打开群组和朋友圈,转发的都是这些事情,很多人的心情受到影响。今天谈谈我的想法。
不少网友私信,问我在上海的近况。我都没有回复,总觉得隔离的生活没什么可说。小区封控一个月了,出不去,下楼就是做核酸和领物资。这些事情不值得细说。
我认为,对待这些事情的正确态度,就是三个字:随它去,英语叫做 let it be。不要为这些事情费神上心,理由很简单,它们完全超出了你的能力,你根本影响不了,无论事情发展到哪一步,你只能接受。就算你感到痛苦和烦恼,难道会改变局面吗?
我们的时间很宝贵,不要用于那些改变不了的事情,而要用于你能够改变的事情。一位美国神学家曾经写过一段著名的祈祷文:“请赐予我力量,全力改变那些可以改变的事情,平静接受那些无能为力的事情,拥有智慧区分这两者。”
疫情何时结束,小区何时解封,这是你无能为力的。与其烦恼这种事情,不如不去管它。人生难得有这样一段突然停下来的时间,别浪费了,多读一点书,多学一点技术,比什么都有用,等到生活恢复正常,它们能帮到你。
1665年8月,剑桥大学由于鼠疫大流行而关门,学生们都回家了。有一个22岁的学生回到乡下的老家,整整18个月闭门不出,努力读书和做实验,最后提出了一整套全新理论,彻底改变了人类的科学进展。这个学生就是牛顿。
疫情是一场灾难,但是如果能好好利用这段日子,它也许就会变成你的人生财富。
裁员也应该如此看待,这一次有些行业(房地产、教培、互联网)的裁员,属于全行业收缩,不是员工的问题,行业的问题超出了你个人的努力。
如果公司把整个部门和业务线都砍了,里面最好的员工也不可避免会受到影响。不要灰心焦虑,更不要怀疑自己,既然事情已经发生了,你所能做的就是随它去,别把时间用来长吁短叹、愤世嫉俗,而要保持学习,磨练自己的技术,等到行业回暖时,就会有回报。
你要这么想,这些行业之所以会收缩,就是因为前期的市场需求旺盛,扩张太快。这说明它们的市场需求是真实存在的,只要市场需求还在,就有发展空间,你练好本领,不愁将来没有用武之地。
最后,送给大家两句话,都是我看来的。如果你也因为疫情,有很多空闲时间,推荐可以找来看看。
第一句出自《曾国藩家书》。曾国藩的人生并不顺利,50岁以后才出头。他给弟弟写了很多信,一再教育老弟要经受得住挫折,能够沉住气。他说,人生应该做到"四耐":"耐冷耐苦,耐劳耐闲。"我觉得说的真好,很适合现在的疫情时期。
第二句出自经典日剧《悠长假期》。这部电视剧是20年前拍的,现在看一点不过时。它讲了两个倒霉的年轻人相遇,互相激励的爱情故事。它的片名取自男主角对女主角说的一句话:“人生总有不顺的时候,不必勉强冲刺,就把它当作老天给的悠长假期,好好享受这个假期。突然一天假期结束,时来运转,人生才真正开始。”