程序员的道与术

这是一个系列文章,目前共5篇。文章尽可能不涉及任何编程专业术语,努力做到让一般人都能读懂,所以,我会尽最大可能讲的通俗易懂些,便于为各位建立信心,同时也能让各位认知到这个行业的很多问题,避免再次走弯路,祝愿各位都能有所收获。

态度篇(这是我唯一希望你认知到的东西,你可以什么都忘了,但态度得端正。)

为什么985高校还是在上C语言?这难道不是大学教育的失败?为什么现在985高校还是上C语言课?_zhumengyisheng的博客-CSDN博客现在工作它们不都在找java、PHP、golang之类的吗?可是为什么985大学了居然还在教学生古老的C++啊?这不是误人子弟?这难道不是大学教育的失败?https://blog.csdn.net/zhumengyisheng/article/details/121391642

 计算机那么好,为什么计算机专业出身的很多人毕业都转行不搞计算机了?计算机那么好,为什么计算机专业出身的很多人毕业都转行不搞计算机了?_zhumengyisheng的博客-CSDN博客计算机那么好,为什么计算机专业出身的很多人毕业都转行不搞计算机了?为什么挤破头都抢不上的计算机专业,毕业工资那么高,分分钟年薪几十万,那他们为什么要转行呢?这里面到底有什么不为人知的秘密?到底是什么想不开让他们放弃了如此大好钱程前程?https://blog.csdn.net/zhumengyisheng/article/details/121391821学习篇

编程语言第一课 入门 程序员的道与术程序员的道与术_zhumengyisheng的博客-CSDN博客什么样的程序员才是好的程序员?程序开发学习到底是在学什么?你适合学习程序开发吗?编程语言众多,如果要学习我到底该学习哪一种?程序员的道与术,讲述那些不为你知的秘密https://blog.csdn.net/zhumengyisheng/article/details/121391210 编程语言第二课 晋级 不忘初心 方得始终 

不忘初心,方得始终_zhumengyisheng的博客-CSDN博客难道我们学习程序就是学一堆一堆的框架吗?难道学习程序就是学一堆一堆的套路?如果不是,那我们到底又该学什么?程序的本质又是什么?本文将给你答案https://blog.csdn.net/zhumengyisheng/article/details/121391458编程语言第三课 深入 想法也疯狂,创造一门语言

想法也疯狂--创造一门语言_zhumengyisheng的博客-CSDN博客开天辟地走一遭学了那么多语言,敢不敢挑战一次自己,创造一门语言?语言从来都不是天生的,它们都是人写出来的,既然别人能写,那你能不能写?如果要创造一门语言,那么到底该怎么创造?https://blog.csdn.net/zhumengyisheng/article/details/121391567实践篇

是骡子是马总要拉出来溜溜,你学了那么多东西总需要找个地方去展示你的技术实力,这样不管你是面试也好,还是做个项目也罢,总得找个地方存放你的代码,以前都得自己买服务器,就那种机房放那种,家里明显不现实,所以大家现在都是自己买云服务器,很便宜,这种东西作为专业的程序员那是必备的,我一般主要买阿里云的,有十几台,腾讯云大概有个三四台,阿里云做的早些,市场份额也大,大概60%多市场都是阿里云的,所以一般优先买阿里云就成,如果腾讯云便宜的话,也可以买。

不管用不用,领个红包不要钱,万一你以后用也能当钱花

阿里云限量红包,速领。阿里云限量红包https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=v6vhcyn8腾讯云新用户红包,新用户专属。腾讯云优惠券_代金券_云服务器折扣券-腾讯云腾讯云优惠券,腾讯云代金券,腾讯云服务器折扣券icon-default.png?t=LA92https://cloud.tencent.com/act/vouchers/list?fromSource=gwzcw.2477393.2477393.2477393&utm_medium=cpc&utm_id=gwzcw.2477393.2477393.2477393&cps_key=b0c7af9380d6324294316347ba2c8a49

 阿里云最新活动最新活动_阿里云最新活动,阿里云最全的优惠聚集地https://www.aliyun.com/activity?userCode=v6vhcyn8 腾讯云最新活动 

腾讯云11.11大促_腾讯云11.11优惠活动-腾讯云腾讯云推出11.11智惠云集活动:爆品秒杀,企业专享优惠,低至1折起;企业抽奖活动,100%中奖;免费领取11000元代金券!icon-default.png?t=LA92https://cloud.tencent.com/act/double11?spread_hash_key=3d5d628c89ca2247f5f05604d3ae5c3a&from=pre-2021double11阿里云腾讯云所有优惠都在这了。浅谈VPS云服务器(内含神秘大额专属特惠)_zhumengyisheng的博客-CSDN博客怎么做一个网站?都需要什么?要个服务器?要个域名?去哪里买?哪个好啊?有优惠吗?所有的优惠都在这里了,给自己建个网站吧,毕竟要学以致用啊!https://blog.csdn.net/zhumengyisheng/article/details/121391896

以下为本次正文:

开篇之前,我想先问一个问题:程序员的简历应该怎么写?看到什么样的简历会让你有约来聊一聊的冲动?你认为现在的程序员是怎么样的?

回答这样的问题之前,你不妨打开智联招聘看一看,现在的简历都是怎么写的?我花了2天的时间,看了四百多份简历,一堆堆的简历看下来,给我的感觉只能用惊叹来形容,这么多的天才,都好厉害,都是十六岁上大学,二十三岁都有五六年的工作经验,这......请问你们都是神童吗?这五六年的工作经验是怎么来的?都是靠加班算,一年当三年用的吗?简历里到处写着精通各种,请问精通的定义是什么?能写出hello world算不算精通?

回归正题,你觉得怎么样的程序员才是一个好的程序员?或者说你想作为一个优秀的程序员,你应该学什么?

一堆堆的培训班拼命的给你打电话推销,前几年安卓ios比较火,天天跟你推销,三个月速成,月薪过万不是梦,只要三个月,给自己一个机会,为自己博一个明天;现在一堆堆的跟你推销,只要三个月,学习人工智能,学完年薪几十万不是梦,何其相似?

真的是这样吗?真的可以三个月速成吗?或者说我们去学习程序到底是在学什么?

常常讲:师傅引进门,修行靠个人

三个月大概能学到什么?

第一个月,忽悠你前途一片光明,学习最基本的语言规范语法;

第二个月,学习市面上流行的一个框架;

第三个月,学习如何写简历,把自己包装成具有三年工作经验的程序员和做面试题

更有甚者,培训班就是把大家组织到一起,看三个月视频;

然而,这都是你身边看到的正在真实发生的和即将发生的事实。

这样的程序员是想要的吗?我想并不是,但有多少人是这样出来的?

程序员到底在学什么?

是你看到的一堆堆的教程里面教你各种语言语法,这个功能怎么实现,写一个漂亮的效果惊叹到自己,是这样的吗?

是的,但也不是;

你学的这些,终究只是一些术方面的层次,你在纠结每一个功能,每一个效果怎么完成,你没有形成体系,只是流于形式。

而我,恰恰想讲的是道的层次。

道是思想,术是方式,你们学了那么多东西,更多的只是在研究实现方式,这些方式为什么是这个样子?它怎么形成的,是我现在想说的。

程序员是在学一门语言,你总是在纠结,是学java呢还是学python?是学安卓呢还是学ios?你总是在对比,谁的工资更高?

你忘了,语言终究只是语言,真的只是语言,就像汉语,英语,俄语,日语,每种语言都有自己的书写规则,然而它们产生的目的和意义只是在描述清楚事情和沟通的工具。

你选择的程序语言是一门语言,它是一门语言,它只是一种语言啊,它的目的也只是为了描述事情和计算机沟通让计算机完成一定的指令做出一定的操作而已啊,语言你知道吗?

既然它们都不过只是一种语言,那么注定了大多的语言都是共通的,你用汉语能描述这是一本书,你用英语依然能描述它是一本书,日语难道不可以?所以在绝大多数情况下,语言只是一种的选择,大多数情况下,PHP能做到的,java也可以,python也可以,语言都是相通的,只是你的母语可能是java,可能是python而已,对其他语言可能接触的少罢了。

我们现在已经选择了一门语言,假定是php,那么我们在学php的时候,我们又是在学什么?

我们总是在学术,总是在学怎么做功能,怎么做的炫酷,然而,你却忘了,术这种东西并没有太大的价值,你可以从网上找到各种各样的术,比你写的好的太多了,你只是在完成复制粘贴到合适的位置上。

道是什么?这才是最缺失的,道是思想,是在研究为什么是这样的?是在指导你实践,道是总结,是总结过去,指导未来的东西。这才是最有价值的。

门捷列夫作为一个初中高中化学最成功的男人,霸占了你们化学课本最后一张大彩页,你知道他最大的成就是什么吗?他为什么能上化学课本吗?要知道,他根本就不是一个化学家啊!

门捷列夫最大的贡献根本就不在于他是不是一个化学家,他能长期霸占初中高中化学课本最后的大彩页只是因为他的元素周期表,可是这个东西为什么是一个不是化学家的人居然弄出来了这个?那些化学家都是干啥的?他们不知道吗?

任何一个化学家都比他更权威,但是他们都陷入了术的环节,他们总是聚焦于一个一个的元素都有什么功能,什么特性,能干什么?就像我们每天都在研究这个功能怎么实现,那个飘啊飘飘来飘去的特效是怎么玩?这些化学家和我们何其相似,他们太注重于术的研究,身在此山,又怎么知道这是一座山?

门捷列夫用它优秀的数学思想,研究了当时已经被化学家发现的62种元素,经过了长时间的演算推理和判断,用原子量的思想来推演,最后形成了一张我们今天熟悉的元素周期表,当时仅仅只有62种元素,还有很多元素并没有被发现。

你总是在问,这张表有什么用?有什么意义?你没发现吗?什么是道?就是道,这就是思想,看到这张表,化学家们就可以遵循这张表的规律,去寻找那么还没有被世人发现的元素。

所以我们知道了,做程序也是一样的,我们要学习什么?我们要学习道,术的东西你可以通过各种方式去学习,百度会告诉你各种程序语言规范语法怎么写,各种框架怎么玩,这种东西都是术。但是重要的是,你有没有形成思想?如果形成了思想,那么我们可以按照这种思想去学习别的语言,依然是一样的套路,思想指导实践。

什么是思想?我总是在强调,程序就是在翻译,把你说的翻译成计算机听的懂的。

写作文老师告诉我们要动静结合。

然而我要告诉你的是:写程序其实也是动静结合。

静态的你当然都是在写一些实物,比如桌子椅子,都是在描述一个东西,用汉语说这是一本书,好了,用程序也是一样的,用程序语言对应的语法规则翻译一下这是一本书,然后把它显示出来这个程序就诞生了;然后我们写动态的,就是在描述事情是怎么做的,分什么样的步骤,最后的结果是什么;对于程序来讲,就是把你刚才那一段拿程序语言完成翻译,写了一段完成事情的代码而已;然后你会发现这样的事情经常干,写文章一样,你写了一堆又一堆的复制粘贴的文字,这显然不是很好,老师会让你把它摘出来,作为一个附录放在文章最后,想用的时候做一个引用,指导我们程序的实践,就是把这个东西拿出来,写一个公用的文件,每一次要用的时候,就把这个文件引入,这有什么区别?完全没有;就是在写文章嘛!对于文章来讲,文章要求动静结合,写程序来讲,我们说就是在写变量(静态的事物)和功能(动态发生的事件),一个功能我们会写成一个文件,作为一个附件从而引用,后来为了避免文件过多,把所有的功能写到一个文件里,但是为了分清楚哪里到哪里是一个功能,就像我们写文章需要分段吧?文章引入了分段功能,程序引入了函数功能,就是在分段而已,大括号括起来,写个名字分开,然后就形成我们的函数,所以文章动静结合分段,我们写程序变量功能函数结合,你看,何其相似?

这是什么?我没有告诉你术的东西怎么写?我没有告诉你程序怎么写,但是我相信,遵循这样的思想,你只需要去百度每一种语言的语法规范,你已经可以写程序了,无非是在翻译你的文章而已。

我们把上面的过程叫作面向过程,就是你写文章的过程,你写文章也是在面向过程不是嘛?写了你看到的东西和发生的事情,写程序也是,写了看到的东西(变量)和发生的事(函数)。

道理都是相通的,不是嘛?

不是吗?

你可能听说过别人谈起面向对象什么的东西,上面我们说的是面向过程,就是在写你看到的东西和发生的事,面向对象怎么玩?

举个实例你就懂了,比如看到我们上班的大搂,它有15层,每一层都有不同的公司在办公,每个公司都在完成不同的事情,我们使用面向对象的思想把它翻译成程序语言,大楼有15层,这是一个静态的属性,就是我们上面的变量,每个公司都在完成不同的事情,就是在完成不同的功能,所以按照我们面向对象的思想,我们就是写了15个不同的功能函数来完成不同的功能,好了,我们写完了这个静态的属性和动态的这15个功能,我们把他们放在一起,给这个东西起个名字,然后以后要用这个东西,我们就把它实例出来,这个东西就叫面向对象;其实并没有什么新鲜的东西,无法就是把你以前面向过程的动静结合相关的某一类东西装在了一起,我们叫它面向对象,这种能更好的描述现实世界,比如可以更好的描述,前台所有人都可以去,每一层都只允许特定公司的员工才可以去,这种我们面向过程当然也是可以实现,不过我们需要做具体的限制,面向对象不过就是引入了一些通用的东西,替我们做好了这一类限制,比如public,private,你可以说他引入了一种标准方案,我们按照它的这种方案,就可以做到,当然,只要你愿意,你也可以在面向过程,自己实现一套权限控制,控制你的哪些东西可以让哪些访问,让哪些不可访问,并没有什么区别。不要流于形式,它们不过是方案之一。

好了,我不会写任何关于术的东西,这种东西去百度去谷歌,到处都是,我没有在这里复制粘贴的必要,程序员的道,尽管我没有说任何的术,但是我相信此刻你应该已经可以按照百度搜索的语法去写一个动静结合的程序了。

现在的你,遵循我们的道,已经学会了如何写一篇动静结合的文章,也学会了如何去写一个动静结合的程序,已经有了程序员的基本素养知识。

现在我告诉你程序世界的道是怎么玩的?

忘掉你在写程序,请记住你只是在写文章而已。我们在讨论如何写文章。

现在的你,手机里装了各种app,安卓的也好,ios的也罢,包括你现在看到的网页,看到的公众号,看到的小程序,各种各种,直接面向用户展示的,我们就叫它展示层,英文里面有个词叫view,差不多就是这个意思。

忘掉程序,忘掉程序,忘掉程序........重复10086次

我们只是讨论如何写文章,只是在写文章,只是在写文章......重复10086次

好了,我们的文章写完了,可是你如何才能看到?我们的文章要放到哪里?我们总是需要一个地方去把我们的文字保留下来,它可能是你的笔记本,可能是txt文档,可能是word文档,可能是你能想到的任何一种可以存储我们文章的地方,也就是我们首先需要一个地方把我们的成果存下来,然后我们要向世人去展示我们的成果,可能是电视,可能是网页,可能是app,可是种种种种,但是我们中间缺少媒介,缺少连接

忘掉程序..........再重复10086次.......

你只是在做连接........做连接......做连接......重复10086次

所以我们明白了

大多的程序在做什么?

做连接啊

不是吗?

你java/php/python写的程序就是媒介

它很多时候只是在做把信息从一个地方搬到另一个地方展示而已;

就是把数据库(存储你文字信息的场所)搬到了显示屏上(app,网站,小程序,公众号,微信,qq等等)。

明白了吗?

你看到简历上,大多数人做了很多的功能

但他们工作的绝大部分内容

都是在做上面的事情

而且是处在程序员鄙视链的最底端

使用框架完成增删改查你文章信息的操作而已

即使大多增删改查这样的工作

也依然还是使用框架

然而

框架已经做好了基础的操作

它们只是拿别人已经做好的半成品完成一些增删改查的操作而已

而这样的操作

对于大多数的毕业生

我相信

培训三个月

足矣

所以

道无术,术尚可求

术无道,止于术

60%的程序员

止于框架

本文完

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值