光阴似箭,2021也在各种争吵中落下帷幕,开通自媒体账号也已有300天,这期间有落寞,也有惊喜。 落寞的是,VB家族的确已日薄西山 ,从大家的反馈中亦可窥见势微之一二。惊喜的是, 在业余编程群体中,VB/VBA/VBS仍然是他们的最爱 。业余编程,要想产生更有价值的成果,专业概念(学习)是绕不过的。但 在极为有限的投入下(时间、精力、意愿),如何平衡简单粗暴与精细专深之间的矛盾?
VB家族从诞生之日起,就镌刻着计算机编程教育的基因。 很多人只看到了VB作为可视化编程的先驱,曾经红极一时,却看不到其真正的易用性和低门槛,在于骨子里的编程启蒙教育理念。 天下编程工具,多如牛毛,唯VB(BASIC)是为教育而生。 所以,VB系列极易上手。但 成也萧何败也萧何,VB家族的势微,也同样与其基因有关。
在BASIC和VB的时代,计算机编程尚是一野荒地, 编程是使用计算机的必经之路。 但随着 *** 作系统的崛起和完善,随着现代软件业的繁荣,编程已经发展成为一个令人瞩目的职业。人们使用计算机(PC、智能手机及其他终端设备),完全凭借一些观感就可上车,甚至横行霸道。 编程作为一个专业,无论是教育还是应用,都已发展成为一个极为成熟的产业。
在一个极细分工的现代 社会 里,需要的是专业的人做专业的事。 为非专业的人提供非专业的编程工具,逻辑上已发生了翻天覆地的变化。它 不再需要像若干年前那样直面代码,取而代之的是AI辅佐下的各种轻代码或奔自然语言编程,本质上是如何使用存量代码库的应用问题。所以, 轮子封装性不够的VB家族,败下阵来也在情理之中。
AI究竟会将人类带向何处?就目前而言还看不出端倪 ,至少在很长一段时间里,AI还是没有办法取代人类的主观能动性。 VB/VBA这种直面代码的业余方式,仍然是很多人最稳妥的选择。 所以BtOfficer将VB家族作为首推分享板块,具体理由已在过往文章中阐述过。 本着为广大非职业IT普及适用的IT技术框架,本文将过往文章(200多篇)分类整理于此(『《 蓝色 》』为链接样式,可点击查阅),以便各位取阅,为后续深入学习打下信心、概念方面的基础。
1、是什么促使BtOfficer要分享IT技术?
尽管有简单易用的Python和C#后来居上,但他们的概念体系仍然是建立在专业者的角度。纯现代意义的初学者语言,除了少儿编程外,几乎不再有生存的土壤。 造成这一结果的根本原因,在于专业编码的巨大存量。 很多人,包括专业编码者们或许都坚定地认为, 未来很长一段时间,传统码手的地位都不可动摇。
但事实并非如此(《AI写代码,来得让人猝不及防!》《程序员是怎么记住许许多多的语法的?》 可见一斑 ) ,在数据量尚未积累得足够庞大之前,凭经验谁也不知道还有哪些关系尚未被人类发现。尿不湿与啤酒的故事,就是 数据的规模化效应 之一。 世间万物之间,并非看得见的才叫因果,很多看不见的往往成为神论。然而,人类已经发现了通往神秘之门的钥匙。
一个个小小的人,以匹夫之勇在地表,举不足百斤,卧不过三尺,走不及风水。但聚众之力,可移山改川,可星辰大海,在广袤的地表和太空遍布文明的痕迹。人类的光芒,闪耀在遥遥太空之中。人类的触手正如藤蔓,一个锚点一个锚点地快速向前。 集众之智乃大智,这便是那把钥匙。
互联网AI便是 集众之智 ,即便硅基芯片不能真正地成为人工智能的栖身之所,攫取众人之智,已足以让其变得强大无比。然而, 这是人类整体层面上的某种进化,对于个体而言或许很难避免被“压榨”的过程 。 如何更全面、更客观地看待和适应自身的处境?或许《 互联的围城,已春暖花开,我却心向罗盘荒野 》可以告诉你。
该文首先,从AI的概念讲起,因为AI与互联网的合一,是二者在当前技术框架下,必然的进化方向,而AI正是关乎进化的关键。其次,讲AI与互联网的现实、进化,我等是如何自陷,又如何自救。摘自该文一小段的《 大数据能可怕到什么程度? 》获得了近40万阅读和近1000赞的成绩,但更全面的文章却仅有100阅读和3赞。 尽管数字世界里(包括以后的元宇宙),跨越边界成为特权,从而重塑传统边界的定义,但并不妨碍我们建设和守好现有的传统边界。因为二者并非『不是你死便我亡』的互斥关系。
众智与小智之间,应当各有各的生存空间,应当互惠互利,相互成就,而非一厢情愿。小智不能滥竽充数,坐享众智之便。众智之上的AI也不能恃强凌弱,奴役个体。这就是为什么BtOfficer要分享IT技术给广大非IT人员的原因所在。
2、为什么鼓励非IT适当掌握编程技能?
诚如华为任正非谈 公司人才体系 所说,作为管理者,你 不能要求每个员工都成为奋斗者 。有的员工就想领点工资按时上下班,你得容忍和尊重这样的员工。对于编程而言,并不是每个非IT都有必要来学,和愿意来学。即便学了的,也不是每个人都愿意更精进, 得尊重那些得过且过的存在。
所谓 有钱难买我愿意 ,即便互联网里高墙林立,即便智能手机上的APP都在觊觎个人隐私,能架住不用?如何平衡个体人的发展与人类整体发展之间的矛盾,也不是每个人必须要去思考和应对的。 所以,明知山有虎,偏向虎山行的都是少数派,毕竟佛度有缘人嘛。任何一位奋斗者所收获的,也绝非普通人所能想象的。不一样的风景,得有不一样的位置去观察。
在《 明比阅历浅,暗拼体力衰,指下讲武德,码上笑春风 》一文中,详细地分析了非IT人士是否需要掌握编程技能,掌握到何种程度,入门原则,入门工具的挑选原则,为何挑选VB系作为入门工具,如何开启编码武德之旅。
BtOfficer的经验证明,当1个专业人士掌握了地球上最通用的计算工具之后,可以将专业优势进行数倍的放大。无论是工作效率,学习效率,还是在整合人际关系上,均能受益不少。 这是在互联网包围下的个体,能够获得的为数不多的神器之一。
3、为什么偏偏首推VB/VBA/VBS作为业余编程的入门工具?
有人说,VB(包括BASIC)当年成为入门的不二法门,是因为没得选,而现今有更好的选择了。 这句话,既正确又不正确。它得考虑受众是谁?如果一个人有意愿,也有时间,为什么要学VB呢?成为编码专业人士的渠道千千万,但最后都离不开基础,与其在捷径中胡乱碰撞,还不如从基础开始一步一个脚印。
什么是基础?那是半导体工业体系历经上百年的沉淀。或许有人认为这么说很夸张,软件尤其是系统屏蔽了很多硬件层的东西,从而使得软硬件分离。事实上,就网上漂浮的绝大部分码手,离硬件都非常的遥远。但这并不能说,不懂硬件,不了解硬件就能做好这一行业。 恰恰是懂硬件者,才是基本盘的 *** 持者,微软、苹果、谷歌等概莫能外。
过来人都清楚,要 想掌握半导体工业在软件层的映射,绝非一朝一日之事 。专业人士,爬过高考,躺过本硕博,再经若干项目的锤炼,都不一定能成为行家。上过几十个IT素质教育课时的童鞋们,凭什么能成为IT专家?在不同基础层面来看, 有基础的可选项的确是多了,但对没有基础的人而言, 历史 的发展并未过多地偏向他们,留给业余人士的选项并未因此而增加。所以,地毯式的专业学习之路,压根就不适合业余编程选手。
4、VB/VBA/VBS分享定位在什么层面?
在分享期间,有不少朋友询问能否普及更基础一点的概念。VB/VBA/VBS的基础部分,网上有太多的资料,也有太多自媒体运营者在分享相关内容,再重复并无太多意义。所以这部分,BtOfficer 主要针对流行的一些错误进行纠正。反倒是VB/VBA/VBS很根底的内容,在网上很难见到,BtOfficer会着重围绕这部分进行分享。
在后续分享的 VB/VBA/VBS插件里,会包括更系统的基础知识,从语法语句到内置函数,再到API和具体应用源码案例,均以动态帮助的形式呈现给用户 ,有需要的届时可下载使用。
虽然,大部分内容适合有一定基础的朋友,比如讲原理的部分。但这并不意味着,分享的内容不适合初入门的人。 VB系大道至简, 再深入的东西,回到最后都是简单的语句和函数 。 针对语句用法用例上的结论,是通用的。掌握这些结论,便可不费吹灰之力就可提升代码的质量。 即便有些内容现阶段够不着,在往后的应用中,迟早都有见面的那一天。待到那时,翻出来看一看,想必会顺利很多。
更何况, 深入VB的部分(尤其是BtOfficer改进VB的部分),对绝大部分VB用户都是一样的,是一个全新的领域。 总之, 如果信哥,那就跟我走,必然会还你一个非同凡响的VB家族。
没有什么比过时、淘汰更能让人感到沮丧的了。尤其是对VB家族而言,没有前途的言论正在主宰着入门者清秀的眼神。 但很少有人去问,为何过了半个世纪,BASIC的后人依然在数千种开发工具中位居前20(据坊间流传的排行榜)。要知道,现在微软的GitHub Copilot可以根据功能注释自动补全(写)代码了。所以,有必要去一探究竟,为正确的选择提供充足的参考。
1、 *** 作系统与开发工具之间的关系
正如前文所说,现代开发工具,在 *** 作系统的加持下,让很多开发者能够远离硬件端,而成为纯软件开发者。网络上大部分争得面红耳赤的,都是没能遵循凡事看硬件的基本逻辑。相信很多人也不会去想, *** 作系统和开发工具之间的关系。那么《 以史为鉴,编程语言,启示录之系统觉醒 》将是一个不错的概览。
编程语言源自机械时代,随着硬件的进化完善,而不断演化。 从救人于水火的助记汇编、到专注于科学计算的面向过程,再到可扩展易维护的面向对象,无一不是硬件在推波助澜。就 个人计算机而言,硬件体系在32位时代,就趋于稳定。后续的64位,也只不过是锦上添花而已。 每一种计算机语言,都诞生于特殊的需求,并经不断完善,才有后来的样子。 这就意味着,每种语言都有长短之处。每个人的学习也应当有所侧重,追求全能,就像Multics,注定很难有结果。 没有过时的语言,只有趁手的工具。 现代 *** 作系统,将硬件层隔离,让应用开发者远离底层,这让 很多人误以为,语言决定一切。孰不知,高级语言只是硬件的传话筒而已,二进制指令才是机器上的唱歌的角儿。脱离硬件讲语言,知其一不知其二也。
2、BASIC、VB与VB.Net和PC *** 作系统(Windows)之间的关系
现代常青的开发工具,包括C在内,都汲取了很多前人的智慧。所以,评估一项开发工具是否适合自己的技术路线,很有必要去了解这项工具的设计意图,当时技术的局限,以及后续的发展历程。《 VB前传,从教学到 游戏 ,再到系统,似乎每步都是精心设计 》一文便讲述了被淹没在 历史 中的那段过往。
与BASIC一脉相承的VB,吸收了计算机发展史上,数种优秀开发语言的优点,最终落脚于服务普通大众。因为心胸开阔的Kemeny和Kurtz深知,人才是计算机的灵魂和归宿,普通大众才能赋予计算机无限可能。BASIC的 历史 脉络,也告诉后继的使用者,简单里有深厚的哲学,抓住得住时机,才有自己的时代。
不必苛责VB什么,找到合适的位置,这是BASIC立足于教育,带给我们的启示。诚如Kemeny所说,关键要看用户能否意识到哪些是计算机可以做的,哪些是计算机不能做的。但很肯定,它能给企业和大部分私人生活带来影响。
如果说BASIC时代属于混沌的前者,那么VB就属于清醒的后者。《 早判了,VB已死,但我说话了么? 》一文将带你了解属于VB的哲学。在普通人通往程序之路上,VB就像摆渡人,接来一批又送走一批。 VB存世的意义,或许就在于既普世又度人。心清脑秀者,许你3%得道升华。资历平平者,也许你97%的凡人吃喝。
VB的世界里有自由的周全,也有刻薄的束缚。她试图让所有人都能踏进编程的世界,并在这个晦涩的世界里护其周全。她也总拿自由不是没有代价来告诫使用者,知其然还要知其所以然,到远方去才是 旅游 的意义。
正如《 VB/VBA,请让我点名表扬你 》所说,深入理解VB的 历史 ,仍是把握VB适用场景的关键。
3、VB过时淘汰之说蔚然成风,真实的信息是什么?
要说过时淘汰,很显然并没有,至少VBA还在大行其道。《 VB/VBA这个打不死的小强,还会坚持多久? 》一文,便围绕『语言之争』的若干问题,摆事实讲依据,就Python与VBA,VB与VB.NET之间的恩恩怨怨来了个起底和辟谣。在这篇文章里,援引了微软针对VB在各大系统的支持政策。从中不难发现,所谓VB之死,不过是IDE停止更新罢了。所谓Python替代VBA,不过是一投票帖数千点赞而已。属于咱业余户的家伙事,会继续在Win10/Win11上演绎不老传说。
4、VB死掉的是什么,活下来的又是什么?
此时的VB和彼时的VB,所处的技术环境和商业环境是不一样的。如今VB势微,更多的是指商业开发领域的工作机会。《VB、Delphi等编程语言没落的主要原因有哪些?》或许可以回答VB过时淘汰的根本来源。
作为专业的高级开发语言而言,它必须在高级的路上不断的进化,才会有开发人员使用。大量开发人员的使用,才会降低项目的实施成本。相反,如果得不到进化,那么开发的人才资源,就会逐渐枯竭,从而提高项目的成本,进而影响项目的技术路线。 对于专业开发人员而言,掌握一项停止进化的的高级开发语言,就意味着工作机会的收缩。
但这对于一项可实施的技术而言,并不妨碍它继续工作。所以 这种落败,不是指技术,而是指就业机会的凋零。 就VB和Delphi而言,只要不用于糊口的工作,他们仍然是桌面应用开发的一把好手。正如《影响VB/VBA商业价值的原因是什么?》中所说,VB/VBA会逐渐演变成自产自用的小工具生产者角色。
5、打不死的VB,何以存活?
《为什么Windows的兼容性这么强大,到底用了什么技术?》,或许从系统的兼容特性,一直追溯到X86硬件体系,方能明白,小强不死,是有深层次原因的。
6、场景与前景
《Python取代VBA?先问C#答应否》《Office开发,选VSTO,还是VBA,Python行吗?》《VBA源码可以编译吗?》《VBA是脚本语言吗?》《Excel公式算编程?还别说,真是一门编程语言!》《VB/VBA的改进思考》《为什么VBA名列最讨厌编程语言第一名?》
《vb/vba的数据类型,有大佬可深度介绍下吗?》《VB的任性,从Variant开始》《VB的天地,横看成岭侧成峰》《VB的整数,你真的了解?》《知VBA的浮点数结构,更懂算力》《VB/VBA的无符号整数》《VB/VBA之Boolean的坑,防不胜防,治标还得治本》《VB中Byte、Bool和Int与Lng的开销及性能相同吗?》《VB/VBA字符串》《VB/VBA的ByVal和ByRef》《VB/VBA中Variant不仅是容器,充当传参的Any,更可以当函数用哦》《大家都有哪些提高VBA/VB代码运行效率的小技巧?》...哎哟,太多了,懒得整理了,有兴趣的自己去翻吧。
欢迎关注BtOfficer(收藏、点赞、关注+转发) ,更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!
电流控制元件。发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结,输出特性曲线,输出特性曲线表示Ic随Uce的变化关系(以Ib为参数),从输出特性曲线可见,它分为三个区域:截止区、放大区和饱和区。
根据三极管发射结和集电结偏置情况,可以判别其工作状态:
锗管约0.3V,硅管约0.7V,不同的制造工艺,不同的型号也有少量差别,但是基本是这个量级。要知道准确值,必须查看输入特性曲线(类似于二极管正向特性曲线)。
三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。
NPN型硅三极管。如上图所示,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流Ic。这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:集电极电流的变化量是基极电流变化量的β倍,即电流变化被放大了β倍,所以我们把β叫做三极管的放大倍数(β一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式U=R*I可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。BE结的非线性(相当于一个二极管),基极电流必须在输入电压大到一定程度后才能产生(对于硅管,常取0.7V)。当基极与发射极之间的电压小于0.7V时,基极电流就可以认为是0。但实际中要放大的信号往往远比0.7V要小,如果不加偏置的话,这么小的信号就不足以引起基极电流的改变(因为小于0.7V时,基极电流都是0)。如果我们事先在三极管的基极上加上一个合适的电流(叫做偏置电流,上图中那个电阻Rb就是用来提供这个电流的,所以它被叫做基极偏置电阻),那么当一个小信号跟这个偏置电流叠加在一起时,小信号就会导致基极电流的变化,而基极电流的变化,就会被放大并在集电极上输出。另一个原因就是输出信号范围的要求,如果没有加偏置,那么只有对那些增加的信号放大,而对减小的信号无效(因为没有偏置时集电极电流为0,不能再减小了)。而加上偏置,事先让集电极有一定的电流,当输入的基极电流变小时,集电极电流就可以减小;当输入的基极电流增大时,集电极电流就增大。这样减小的信号和增大的信号都可以被放大了。Rc的限制(Rc是固定值,那么最大电流为U/Rc,其中U为电源电压),集电极电流是不能无限增加下去的。当基极电流的增大,不能使集电极电流继续增大时,三极管就进入了饱和状态。一般判断三极管是否饱和的准则是:Ib*β〉Ic。进入饱和状态之后,三极管的集电极跟发射极之间的电压将很小,可以理解为一个开关闭合了。这样我们就可以拿三极管来当作开关使用:当基极电流为0时,三极管集电极电流为0(这叫做三极管截止),相当于开关断开;当基极电流很大,以至于三极管饱和时,相当于开关闭合。如果三极管主要工作在截止和饱和状态,那么这样的三极管我们一般把它叫做开关管。Rc换成一个灯泡,那么当基极电流为0时,集电极电流为0,灯泡灭。如果基极电流比较大时(大于流过灯泡的电流除以三极管的放大倍数β),三极管就饱和,相当于开关闭合,灯泡就亮了。由于控制电流只需要比灯泡电流的β分之一大一点就行了,所以就可以用一个小电流来控制一个大电流的通断。如果基极电流从0慢慢增加,那么灯泡的亮度也会随着增加(在三极管未饱和之前)。PNP型三极管,分析方法类似,不同的地方就是电流方向跟NPN的刚好相反,因此发射极上面那个箭头方向也反了过来——变成朝里的了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)