共享是最有用的学习方式。
博客:blog.ktdaddy.com/
地铁上刷到一个论题,觉得挺有意思的,如下。
看到许多朋友在下面吐槽,有说加班是真的多,有说找对象是真的难,有说程序员爱穿格子衫是假爱背电脑是真的等等,我们吐槽得都挺欢喜的。
老猫也开端复盘这些年的经历,更多想聊的或许仍是一个后端程序员的真实感悟。
入行
俗话说“男怕入错行,女怕嫁错郎。”相信许多朋友在进入一个职业之前都是深思熟虑的,亦或许是咨询过一些人,亦或许是查阅了挺多材料。可是老猫入行则适当奇葩,不是蓄谋已久,而是心血来潮。
全部都得从一部电视剧开端,不晓得我们有没有看过这部电视剧,佟丽娅主演的“我的经济适用男”。
12年的一部电视剧,挺老了,首要女主放弃富二代的追求和”老练稳重老实巴交的IT男”好上了的桥段。其时心智单纯的老猫可谓看的是热血沸腾啊。一拍桌子,“发可油,劳资往后就要当那个男主,这结局多好啊,抱得美人归啊这是,我要学IT!”。其时老猫的专业是电子信息类的专业,后来根本就放弃了本专业,大学根本逃课就跑去学软件去了。
就这么上了贼船,一晃十年过去了。多年前,躲在试验室里,开发了一个简略的坦克大战的游戏,感觉自己是最牛逼的,子弹爱怎样飞怎样飞,坦克能开多块就开多快,那时分觉得自己便是这个IT国际的主角,“control evety thing”。在这样一个程序的国际里,一切的事儿都是自己说了算。
踏上社会后,遭受社会惨无人道地毒打之后,发现要做的便是提高造火箭吹牛逼的才干,作业中是个crud-boy。键盘上磨损最严重的那几个键是“ctrl”,“c”,“v”,“x”。当年那个神采飞扬的少年现已不复存在,我是一个弱鸡螺丝钉。
作业十年
大部分后端程序员也首要是围绕着事务在转,所以crud或许占了大部分时间。
话虽如此,但仍是有点除此以外的收货,这些收货乃至潜移默化地影响着我的日子。
技能一日千里,今日这个结构,明天那个架构,今日这种完成牛逼,明天那种部署更6等等,到头来发现自己一直都是在追着技能跑。也的确假如不奔跑的话,或许就会被淘汰。作为程序员来说适应改变也是程序员的一种品质,可是老猫觉得具有下面这些或许会愈加重要一些,这些或许也是唯一不变的。
笼统思想很重要
第一次听到“架构师”这个职位的时分,觉得那必定是一个需求超强技能才干的人才干担任的岗位。
后来才发现本来架构师也分品种,“事务架构”,“技能架构”等等。再后来发现无论哪种架构,其实他们身上会有一种一同的东西,那便是优秀的笼统思想。
啥是笼统思想?百度百科上是这么说的:
笼统思想,又称词的思想或许逻辑思想,是指用词进行判断、推理并得出结论的进程。笼统思想以词为中介来反映现实。这是思想的最实质特征,也是人的思想和动物心思的根本区别。
说的比较官方,乃至有点不好懂。
我们以前上语文课的时分,有没有做过阅读了解,教师在讲课的时分常常我们概述一下这段文字到底讲了什么东西,越精简越好,或许要求20个字以内。其实这个进程便是在训练我们的笼统思想才干以及概括才干。
在软件后端领域,当事务传达某一个需求的时分,往往需求产品去提炼一道,那么此刻便是产品笼统,继而产品又将需求传达给相关的研发担任人,研发担任人设计出相关的完成模型,那么这又是技能笼统,这些笼统的进程便是将复杂的事务流程和逻辑转化为可管理和可重用的组件的进程。它的意图是简化体系的完成,聚焦于应用程序的中心功用,一同躲藏不必要的细节。笼统后设计出各种基础才干,通过对基础才干的组合和拼接,支持复杂多变的事务逻辑和事务形态。
具有笼统思想,能够让我们从复杂的事务中敏捷切入事务关键点。在日子中或许表现在透过现象看到实质,或许碰到问题能够快速给出有用解决方案或思路。例如老猫上次遇到的“真-丢包事情”。
分层思想很重要
说到分层思想,应该精确地来说是建立在能够明晰的笼统出事务实质的基础上,而后再去做分层。
许多地方都会存在分层思想。日子中就有,我们双休日没事的时分估计会逛商场,商城的模式一般便是底层停车场,一层超市,二层卖服装的,三层儿童乐园,卖玩具的,四层吃饭看电影娱乐的等等。
再去聊到技能上的分层思想,例如OSI七层模型,我们在面试的时分乃至都碰到过。
抛开这些,其实我们对自己当时担任的一些事务,一些体系也需求去做一些分层划分,这些分层能够让我们更好地看清事务体系之间的关系。例如老猫之前收拾的一张图。
通过这样的分层收拾,我们或许更好地了解当时的体系组成以及层级关系。(补白一下,老猫这儿画图东西用的仍是wps绘制的)。
结构化思想很重要
结构化思想又是咋回事儿? 不着急,打个比如,我们看下面一组数据: 213421790346567560889 现在有个要求,我们需求记下这些数字,以及呈现的次数。短时间内想要记住或许比较困难 假如我们把这些数字的内容调整下,变成下面这样: 00112233445566778899 是不是明晰了许多?
所谓的结构化思想,便是从无序到有序的一种考虑进程,将搜集到的信息、数据、知识等资料按必定的逻辑进行剖析、收拾,呈现出有序的结构,继而化繁为简。有结构的信息更适合大脑回忆和了解。
人类大脑在处理信息的时分,有两个特点:
第一,不能一次太多,太多信息会让我们的大脑觉得负荷过大;乔治米勒在他的论文《美妙的数字72》中提出,人类大脑短期回忆无法一次包容7个以上的回忆项目,比较简单记住的是3个项目,当然最简单的是1个。
第二,喜爱有规则的信息。有规则的信息能削减复杂度,Mitchell Waldrop在《复杂》一书中,提出一种用信息熵来进行复杂性度量的办法,所谓信息熵便是一条信息包含信息量的大小。举个例子,假设一条音讯由符号A、C、G和T组成。假如序列高度有序,很简单描绘,例如“A A A A A A A … A”,则熵为零。而完全随机的序列则有最大熵值。
老猫在写文章的时分喜爱先列一下要写的提纲,然后再跟着提纲一点一点的往下写,写界说,写完成,写流程。
尽管本文偷了个懒,没有写思想导图,老猫一般再聊到干货的时分都会和我们先列一下提纲。这种提纲其实也是结构化的一种。当我们遇到复杂体系需求的时分,我们不妨先列个提纲,将需求做的依照自己界说好的次序罗列好,这样解决起来会愈加简单一些。
过分理性或许也不好
程序员做久了,做一件事情的时分都会去想着先做什么然后做什么一步一步,有时分会显得过于机械,不知变通, 有时分或许也会过分较真,大直男显得情商比较低,会多多少少给他人带去一些不方便,记住在银行处理事务的时分会指出事务员说话的逻辑缝隙,然后不停地诘问,最终或许导致事务员为难地叫来事务经了解说等等。
程序员思想做事情,或许在日常日子中比较谨慎,可是许多时分仍是会显得比较呆板。
总结
以上是老猫觉得除了技能以外,觉得一个后端程序员应该具有的一些考虑方式以及作业方式,当然也或许仅仅老猫的办法论,假如我们有其他的作业领会,也欢迎我们留言,我们一同共享一下经验。