前言

本篇紧承《互联的围城,已春暖花开,我却心向罗盘荒野》,是为读者奉上内功秘籍的开篇诚意之作,为非IT人士踏上IT之路提供务实的指引,适合学生、职员、更适合半途步入编程路的学习者,MyPlace安全生产框架的二次开发者,IT投资规划人员,以及其他感兴趣的人员。

内容概要:非IT人士是否需要掌握编程技能,掌握到何种程度,入门原则,挑选入门工具,开启编码武德之旅。

第1章 非IT需要掌握编程技能吗?

当今已是被云计算、大数据和AI包裹的高科技时代,生活、工作学习中处处都在与代码打交道。比如快递、点餐、云音乐、移动支付,社交动态等。只不过普通用户是通过图形界面与代码进行交互,只关心输入和反馈的结果,并不需要关心复杂的代码运行机制。那还需要编程吗?如果将自己定位为普通用户,自然无需花费心力去了解复杂的机器世界,了解浅层的使用常识即可。如果您是职场人士,又亟待提升职场核心竞争力,那就有必要了。

不进则退,是今后时代的主节奏若是一无所知,实为退,必然导致两个极端:要么迷信科技,要么逃避科技对科技缺乏足够客观的信任,是危险的。

  • 1、适当掌握代码原理,有助于走出舒适圈,更全面地了解科技的内涵。

60年代这辈人是80后的父母辈,他们对家电的进化或多或少感到不适。以前是半自动化,机械式操作面,参与程度高,确定性对他们而言更好。但现在几乎是全自动化,智能化,触摸面板+更复杂的单双击和拖动。本可更少人工参与,进一步解放人的时间,却因缺少智能操作知识(无法区分单双击拖动)而无法保证他们想要的确定性,反而回归原始的手洗操作。低操作的家电尚且如此,更别说智能手机和上面的五花八门的APP了。

想象一下,如今已是无现钞交易,无纸化交易的时代,这辈人中已有相当一部分无法适应这些科技的变化,只能在儿孙辈的眼前孤独老去。倘若现今职场的年轻人,对科技不投入足够的关注,那么未来对科技的适应也会像他们一样:充满抵触,孤独,无助。

  • 2、适当掌握代码能力,有助于建立客观的科技价值观,让自己更易明辨眼前的世界。

和老一辈相比,80以后的年轻辈对科技的适应能力则更强。股票、期货早已见怪不怪,甚至对比特币这样的虚无的资产也能玩的嗨。1朋友对比特币的稀缺性和安全性坚信不疑,对其增值性更是极少质疑,最近币市的疯狂更是助长了其坚定性,到处不计代价买买买。殊不知,高科技骗子正是打着科学的旗号到处招摇撞骗。

凡是贴上科学标签,就给予无条件信任,这跟封建迷信有何异?还有国内一众企业大打国产、民族、自主牌,推出1个又1个圈钱的项目,作为投资人士,要上车吗?笔者就曾遭遇云计算骗局,三五个在计算机底层能力、数学能力,产品产出能力并不出众,在借用开源项目却无任何贡献的情况下,号称研发出未开源的专有技术,解决了原本项目中的种种不好。要是没点行业基本知识,光凭那些亮瞎眼的专业术语和牛逼哄哄的人事关系,这坑估摸就进去了。

还有现在很多广告,如果不知道流量与广告的关系,那跟拍脑门有啥区别?类似的还很多,就不一而足了。

3、掌握代码能力,不仅能提供与众不同的思考视角,也能极大提升工作成效。

纸上得来终觉浅,代码训练的不仅是规划筹谋,考验的更是落地生花的务实。职场上处处都是PPT,要么说明工作有遗漏,需要亡羊补牢,要么就是难落地,需要反复斟酌。代码无法落地就是Bug,它跑不起来。代码没有效率,就是没反应的假死。代码中蕴含的工程思维,兼顾落地与效率,值得工作借鉴。

财经类职业要处理大量的数据,法律类职业需要精细解读法条和案例,创意类职业需要到处搜集灵感素材等。随着分工越来越精细,如何消除重复,压缩效费比低的工序,就成了职场人士的竞赛项目。现在小学生都开始捣腾Python了,职场人士难道还要像在王者荣耀中那样被小学生虐吗?

上世纪90年代前后,办公还是“笔+纸”的模式,随着计算机的引入,很快就被“磁盘+键盘”给替代。在这期间,政府机关、事业单位、社会团体、国企,甚至私企,都曾广泛配置过打字员,用以解决输入问题。现今,早已没有打字员职业,这不是说输入变得不重要,而是打字输入进化成了职业人士的必备基础技能。未来是智能化的时代,现在程序员职业,会不会像当初的打字员一样,将编程技能再次进化成必备基础技能呢?

因此,对代码这事,我认为至少得有些概念,有些还必须得入门,才能跟上未来的世界。

第二章 非IT编程需要掌握到哪种程度?

非IT并不一定需要懂编程,这不是一个必选项,而是一个进化的可选项。熟悉成品软件的使用方法,一样可以高效作业。既然是非IT,那写代码就不是吃饭的事,而是加菜的事。所以非IT对自己的IT追求要定位清晰,那就是“锦上添花”,最终达到”无心插柳柳成荫”

若要跟科班拼个你死我活,那就是拿自己的非专业与别个的专进行竞争,这叫扬短避长,能有什么好处呢?所以心态上要树立”我是非专业的”虚心态度,不争无谓的强,不好无意的胜。写代码处理问题,那是加分项,重心还是在原来的专业上。

所以,这个代码能力,能提供1个观察或操作的窗口即可。不要一来就上什么计算机导论,数据结构,C/C++,JAVA等这些专业人士的东东(非IT转业入IT,那得老老实实走专业化的路,任何走捷径的行为都会付出代价)。非专业的,咱就按半道出货的规矩,紧紧围绕如何解决手头问题,来思考掌握程度。如果录制宏就可解决重复问题,那去管COM的实现原理干啥(自讨没趣),有那时间还不如多去琢磨业务。让业务问题来驱动IT学习,让业务需求来决定IT技能的涉入深度,是经验证非常有效的。

如果你是IT领域的投资分析员,通过自己的代码能力能够洞察技术的变化,帮助甄别那些只Talk,不ShowMeTheCode的欺诈项目。如果你是财经审计的表哥表姐,借助代码能力高效处理表格数据。若你是PPT编辑,借助代码能力展示、传递更形象生动的信号。如果你是投资估值或预算管理员,借助代码能力,能够更动态的知晓各因素对结果的影响。有的,仅需点击按钮简单录制宏即可,而有的不仅需要了解计算机技术的发展历史,更需要对当前技术流派,实际商用前景作出详细的了解。甚至,需要对具体的算法原理进行剖析。

非IT掌握编程这事,本是可选,到哪种程度更是因人因事而异。现今社会早已流行“吃肉不必养猪”、”让专业的人做专业的事”,但也正是因为这种过细的分工,导致跨工种沟通异常低效,复合型人才的价值才显现出来。非IT掌握编程与否,以及到哪种程度,要不要将自己打造成复合型人才,就要看自己的进取决心在哪里了。总之,搭上车,从里面看外面,那将是别人看不到的风景。

第三章 非IT编程上车原则

编程写代码,虚构投射现实世界,可谓博大精深。专业户苦攻十年尚且不能成精,更何况非IT人士。若按专业学习的路数,时间、精力和专注力维持度,专业英语等,样样都是拦路虎。倘若处处碰壁,滋生挫败感,谁还干的了啊!代码的自我教育,也要注重循序善诱,时不时用小小的成就感奖励自己。所以,要搭的这个车得选好。下面是笔者数十年来血泪的总结,望读者们能少走弯路。

  • 1、门槛低,易上手

对非IT人士而言,这是最重要的。不需要IT4年本科那样的精心准备,在肉眼可见的常识上即可使用。不需要一来就必须熟悉微机原理(知道怎么开机、使用任务管理器,晓得没有电池时拔插头的作用就行了),位运算(我管他咋处理的,要结果就行了),数据结构(有啥用啥呗),算法(我的想法就是算法)…点一点,拖一拖,就能成事,是最好不过的啦。

  • 2、容错高,说人话

学习嘛,试错在所难免,不要动不动就弹个窗,一把“X”+错误号,解释也是一串英文,想起都头大,谁还学!你闪下嘛,我哪里错了,为啥子错了,你停到等我改了,你再看下嘛。背后要这样心胸宽广的老师,手把手的教,那还怕啥子?生牛都调教会了。这就需要一套极为安全的容错机制,能兜得住生手的错,又跟系统交的了差。不要动不动就崩溃呀,蓝屏啊,成果都没机会保存。对生手友好是王道

  • 3、猪队友,一起坑。

代码的自我修养,得有氛围,菜的多脸才厚,方能不耻下问。因为人的成长量变因子,总来自相似等级的环境中,感知的可达性是最高的,更高环境中的营养不一定能够得着。所以,有众多猪队友一起哈戳戳的分享、讨论,一起在坑里爬摸,是校验试错的有效手段。自己的困惑可能就在已知列表里,快速定位解决之道,是成长蜕变的催化剂。

  • 4、有生态,可伸缩。

IT技术近些年来不断推陈出新,动不动就被淹没在历史大潮中。作为技术的学习者,自然希望所学能经久不衰,经得住沉淀,耐得住深入。对于非IT人士而言,”无心插柳柳成荫”才有可能。所以,站队技术阵营,其实是选择生态的问题。非IT只有依靠已有的生态大树(不必重复造轮子),方能有小小天地(用户习惯,市场)。

就技术阵营而言,对非IT其实没有更多的选择。你见过用过的系统,对IT的概念从何而来等常识,就可以得出结论。反倒是实现途径上,上百种开发工具,众说纷纭。无论哪款,只要是图灵完备的,可达内核的,那就是可伸缩的。可伸缩意味着,既可小白用,也可大师用,所谓雅俗共赏。待到大师归来,任督二脉已通,门派之争无谓。

第四章 非IT如何上编程的车?

比较优劣向来富有争议,以下仅是笔者的建议,一面之词,请各读者谨慎采纳。更深入的内容请继续关注后续文章。

  • 首先,按前篇所述,得选技术阵营。

从承载硬件来看,无非服务端和客户端。服务端不是非IT要玩的,不讨论。客户端则无非移动端和PC端,移动端重在消费而非生产,所以不符合非IT把玩原则(要紧扣业务生产嘛)。非IT上编程这趟车,最重要的目的是参与业务生产。将其定位为生产力,这是非IT的初心

当今主流阵营所营造的生态中,Windows无疑是生产力的中流砥柱。尽管苹果MacOS也有不俗的生产力生态,但毕竟市场狭窄,尤其在国内,苹果的硬件+微软的系统比比皆是。很多人的计算机启蒙都是基于微软,工作学习中更是全程。因此微软的Windows是非IT人士当仁不让的站队阵营。

  • 其次,就是开发工具的选择。在这之前,先来弄明白几个道理。

1、从图灵完备性上讲,当今主流开发工具几乎都是图灵完备的,也就是说任何可计算问题都可解决。各大开发工具从底层来看,其实并无多大差异。那么网络和市场上为何有不同的表现呢?这其实,是针对开发效率,所作优化的侧重点不同而已,另外专利和市场营销也是导致差异的重要原因。所以,听信孰优孰劣,实在无聊,搞清楚各自擅长的场景,帮助选择更合理的技术路线才是王道

2、对非IT人士而言,桌面应用才是其不二选择。桌面应用在移动互联网的冲击下,一度被市场标榜的很萧条,孰不知桌面应用正是生产力的中流砥柱。我们每天在电脑上使用的各种软件都属于桌面应用。既可寄生,也可独立。既可单机,也可联网。既可娱乐,也可严肃。能解决实际问题,有用性,具有使用价值才是可信的风向标。

3、微软Windows强大的后向兼容性,从某种程度上保证了没有所谓过时的技术,也非市场传言那样会被拖死。如今已是Win10和64位处理器的天下,但仍然可运行几十年前16位处理器的代码。64位版本对Win32的高度兼容机制,更是对Win32开发的有力支持。这些兼容是基于市场的,即便是有屠龙一般先进的其他方案,你夺不来市场,那终究是屠龙术而已,更何况微软也并非止步不前。只要功夫深,担心被抛弃、被过时,实在是没必要。

我们再结合前篇的原则,来逐一分析Windows下的开发工具。

  • 1、门槛低,易上手

通观汇编、C、C++,这些都不是好惹的主,它们为专业人员而生,需要拥有系统的计算机知识,方可驾驭。对非IT来说,门槛太高,不易上手。要说起易用性,不得不提微软发展历史上的功臣,VB系列开发工具(VB,VBA,VBS),正是它们才让编程这事得以普及(非理工科职员、学生),也是确定可视化编程标准的先锋

由于其设计时就旨在降低使用门槛,在行业内常被戏称为小学生的玩具,其易用性可见一斑。在Office套件中,随手一点,就可录制宏代码,可以说这算是最早的机器写代码的案例了。对技术细节的封装,让入门用户无需了解原理,即可在较高语义层面实现开发。这种成功的容易性,将有助于激发继续前行的动力。无论从便捷性,还是易用性,VB系列都是非IT步入IT世界的不二之选。

  • 2、容错高,说人话。

VB的IDE解释编译模式,为其提供了强大的语法检查和错误调试能力。不仅自动高亮显示,并定位错误发生的代码块,而且中文版的出错、帮助信息非常易于阅读。其一边写、一边调、一边改的能力,所提供的沉浸式开发体验,更是让其他开发语言望尘莫及。其运行库对底层细节进行了层层安全封装,使得VB异常皮实,任由生手撒欢,而不至于崩溃、蓝屏。这样相当于配备了一位心胸宽广,手把手教的老师,学生可放手探索而不必畏首畏脚。这显然是其他开发语言所不允许的。

  • 3、猪队友,一起坑。

VB让玩家从专业户普及到了寻常百姓家,也正如坊间传闻的那样,大部分VB玩家也都按其设计,停留在了安全使用阶段。因此,同质代码的案例相当丰富,这给初学者提供了大量的学习素材。可以说,VB很容易达到平均水平。而这个平均水平,可能不足以明白指针、调约、线程、消息等细节,但用以解决业务个案问题已是绰绰有余。不明觉厉,这是VB的特点

  • 4、有生态,可伸缩

VB作为微软打天下的先锋功臣,与系统的关系已属于血脉级。尽管1998年后,未再提供官方更新支持,但其内在的技术标准仍然在.Net体系下得以继承。历代系统版本更是提供原生支持,即便现今已是64位Win10的天下,VB依然健在,堪称打不死的小强。这源于VB构造的上亿的应用生态,他们活跃在生产的田间地头。然而VB的所有优点,同时也是其缺点。在安全阶段,处处优越,也处处受限。

正如某网友所说,VB运行库,这位妈妈考虑的太多,做了太多,以至于代码总是在其掌控下,难以越界。拨开其层层封装,我们才能看见C中的指针、多线程、内联汇编等特性。然而,这已非入门级所能企及的了。VB是COM的天下,而COM又是系统的基石。深入COM,深入系统,深入硬件,洞察秋毫也!所谓门派,那是弟子们的事喽。VB的伸缩性,在于提供了这样的窗口,所谓沉默的学习,其实是不存在的(C/C++,汇编自然都会了),只要深入,专业户非你莫属。

总之,非IT人士,选择微软嫡系的VB家族,是上车的不二之选。等你上来,就会发现,这是老司机啊,值得拥有哦!

Views: 28

Hi, I’m BtOfficer

One Comment

发表回复