此文本身是一篇命题作文,初稿几个月前发布在内网。蹭1024码农节,洗洗稿再发一下。
当时有人约稿说:“来写点心灵毒鸡汤吧”~
所以, 我想以沉重的调子开头:【整个世界越来越多的呈现不确定性,一个普通人的人生机遇、职业发展、财富盈亏、甚至每天能否顺利出行...都面临诸多不以个人意愿和技术因素所转移的不确定】-- 应景这非常时期。
到这个年头,我当码农也有20多年了。
零.概述:码农之路
跟从小就有电脑可玩的新生代们不同,我在工作之前从没想到会以写代码谋生。上班之后埋头搬砖多年,各种问题都遇到过,诸如哪种语言更好、996、沟通不畅、年龄焦虑...曾经疑惑究竟要做怎样的程序员,也迷惘过能不能一直做程序员,甚至曾一脚踩在职业悬崖边缘摩擦摩擦,一路走来,最终命中注定干成了一个资深码农。
下图是个典型码农示意图,囊括20多年的职业生涯。展开之前先管理一下期望:本文谨从个人视角出发,从走出新手村到练级打副本的种种体会,倒不是吹牛逼说如何成为“好”程序员。
一.读书:风声雨声读书声
1.1 读书:恐慌式囤书
我不是学计算机和软件出身,大学读的是电子学偏硬件,坦率说我不喜欢自己的专业,妥妥的电子电路学渣。和计算机直接相关的主要学了C语言(谭浩强经典版本),幸好学C语言的过程给我些许启发: 我喜欢写代码,也能写代码。
懵懵懂懂的大学四年结束时,我决定找份写代码的工作。
现实很骨感。许多同学都拿到了深圳某大型通信企业硬件部门的Offer,我投了软件部门,面试挂了。最后我还是找了个电子厂工作来到深圳,每天早上出门,买一张福利彩票憧憬500万,拿一份深圳特区报看招聘版,坐班车去厂子里守流水线。
由于有自知之明,我无差别的恶补关于软件开发的一切,原始动机很卑微:争取能找到下一份工作,能在深圳立足,靠自己活下去。
有时间就去深南路科技书店和深圳书城找书,厚厚的各种计算机书,不管是讲语言、算法、体系原理,看上去顺眼就买,一本要80到100块,工资微薄买得很肉疼。后来发现八卦岭图书批发市场买书八折,简直是福地。囤货几年的后果,就是每次搬家都痛不欲生的拖着几大箱不舍得丢的“宝典”(最终还是卖废纸了,换到几十块钱)。
各种电子版资料也搜集了一大堆,硬盘装不下就刻光盘,仿佛拥有资料就等同于拥有了知识的世界。“藏而不读”是骗自己,手里所有的书和电子资料即使没有精读,也会快速过一遍,看看有什么知识点,相当于在脑子里建立知识点索引(那时候可没有Google和Github/Stackoverflow),当要用到什么,可以很快的找到资料,学一下抄一下,总是可以解决问题。
我并不排斥什么“21天从入门到精通”,这种书能帮我Step By Step的快速完成一些简单的任务,适合敲键盘时放在手边。但这些书很快就完成使命,可以丢了。留下值得认真的读的,都是一些多次出版的经典大部头。那些基本原理几十年没有太多变化的书(数学、操作系统、算法、网络原理、分布式原理、密码学等等),才是值得深度的读反复的读的。这体现了知识的特征:越基础的,越确定,越持久 ~
(上图只是一些样例,这么多年过去了,“宝典”很多,任君选择)
1.2 读书:从焦虑感到确定感
那时从上梅林城中村到车公庙上班,坐公交车如果抢到座位,我可以晃荡着看一两章书。晚上在家即使开着电视,手上也有一本书,放广告时见缝插针看两眼。搞了两年windows编程,整本winapi基本上背得下来,毕竟那时候编程工具的自动补全很弱、写API全靠记,跟背4级单词似的。
这样的“学习”,有点饥不择食,其中固然有好奇心驱动,更有一种“基础不好,再不学更一无是处”的焦虑感。
对人类来说,纵然生活窘迫前途渺茫,但有书可读,让人感觉自己还有进步的可能,于是心情就没有那么彷徨和空虚,日子也没那么难过了。我想说的是:读书本身,能给我带来一丢丢生活的"确定感"。
直到现在也没太大变化,每天不读点什么就感觉有事没干完。如何有哪门编程语言没有用过,就学一下呗,反正个把月总是能学会,当然学精通肯定还需要大量的时间和实践;遇到什么新潮行业术语不熟悉,就去搜一下,抄个笔记;对什么专题方向感兴趣,就去买书、搜资料读论文,晚上坐到桌前,把微信退掉(很重要),专注的读几个钟头。
二.交流:知己知彼,必有我师
2.1 交流:泡技术论坛的日子
宽泛而漫无目的的学习,让我成为“知道份子”,俗称“杂家”,什么知识点都知道一点,很多问题都知道有什么方案应对,如果要学,也大概知道怎么去学。
但是,现实不是学校,满脑子都是知识点,却不知怎么用,甚至不知道“有没有用”,心里会很虚,很茫然。当遇到挫折,比如找工作被拒(不止一次),甚至惶惶然的有点怀疑人生。
在深圳这个人际关系相对疏离的城市,又身为社恐技术宅,网络帮了我很大的忙。当时类似CSDN、ChinaUnix、JavaEye等技术社区已经活跃起来了,可以去读文章Down资料,在论坛里问问题。我设置了浏览器快捷键,写完一段代码开始编译和跑测试案例时,就一键打开几个论坛页摸鱼:)
(现在再看,ChinaUnix依旧保持了世纪初的页面风格,另外几个都沧海桑田了:P)
世纪初上技术论坛的多是纯纯的程序员,这个群体普遍受教育程度较高且智商不错(情商另说),三人行必有我师。
作为一个初出茅庐迫切想入行的准程序员,得益于密集的交流拟补知识盲区,我逐渐构建出对行业认知的拼图,整个过程键盘怕是敲碎了好几个。有些道理是在书里读不到的,必须和活生生的人(即使在网络里)、哪怕是和观点对立的人思维碰撞、甚至是激烈争执后才会水落石出,有时一两句话就能一针见血醍醐灌顶。
不知道国内现在还有没有氛围比较纯粹的专业社区,也许还是有的吧。其实我还蛮怀念当年的灌水岁月的(并不是鼓励灌水摸鱼:P),比起看网文打游戏杀时间,我更热衷参与能“打醒”我的交流。
然后,我也会去回答别人的问题,因为之前别人帮过我,投桃报李,我也应该去帮别人,一个有效回答能帮人少走半天的弯路。同时,解答问题也等同于在学习:写答案时,有可能发现自己学的还不够深,想得不够透,没有给出最佳的答案...那么我还需要再多看点书多翻资料、写代码验证,然后再去“找回场子”。当时在很长一段时间里,我都在C++版答题榜前三,对一个野路子程序员来说,这样就能收获一点小虚荣了。
这样的日子持续了差不多两三年,我发现在社区里重复的问题层出不穷、自己能回答的问题越来越多,能真切的感觉到,自己和其他程序员差距没有那么大了,有时候仿佛还比别人反应得更快一些,想得更完备一些。
在交流中,人可以不停的探测行业的水位,自己的定位,了解自己的不足,收获必要的“信心”,最终能找到些许确定感:“学过的东西,自己工作中暂时没有用到,别人却用得到,所以,这个东西还是有用的嘛,继续搞!”。于是,对自己“学到什么程度了、还应该学什么、往哪个方向发展”就更清晰,让人窒息的迷惘感也没那么难以承受了。
2.2 交流:输出点儿东西
在淡出论坛后(灌水太累, 论坛人多了噪声也多了),我写起了博客,技术笔记书评影评发牢骚都写一点,比如最近看了本什么好书,写了什么程序有啥心得,玩开源软件遇到什么坑,突然有什么想法小火花,都写到博客里,读者主要是同事朋友同行。可惜当时的博客服务大多湮灭了,只有少量遗迹还在CSDN博客留着。
就像读一本书一样,最重要的是开始读,写东西也不难,关键是:开始写!不用沐浴焚香三省其身再抡圆膀子写,现在走在路上听着歌,想起啥掏出手机就可以写。当动手写起来,你会发现,近乎一半的内容,都是在打字过程中自然涌流出来的。
突然有一天,一位行业前辈给我打电话,他说:“我有在看你的博客,觉得你搞的东西挺杂的,我这有很多系统要搞,来吧”.... 所以,多写东西,终究会有用的,对么? 我现在看简历,如果看到有附带个人博客或github连接,会点开看看,同理。
2.3 交流:在大厂里偷师
于是,在出道7年后,我混进了大厂。“做个正儿八经的互联网码农”这个梦想终于实现了。
对比打野式的猥琐发育,在大厂更像正规军作战:产业和技术是“时髦”的,做个产品上线就是千万级乃至亿级用户,体验和功能快速迭代,开发流程相对规范,团队规模以10倍速发展...在这种氛围里,想躺平都难:不但要写代码、还要分析运营数据,参与团队管理。每天谈需求排版本、被人戳屏幕修BUG,或者参加培训课分组讨论,包括大家吃工作餐时谈天说地,只要用点心,都能向身边的大牛大神们学到很多。
更有趣的是,大老板们半夜三更还在体验业务扣像素抓问题发邮件催版本呢(据说至今还是)。
严格来说,现实中很难会有人愿意开个课,耳提面命手把手教你。如果能遇到倾囊相授、让你不要走弯路的人生导师,那是一种天大的幸运,可遇不可求。总的来说,“偷师”更多的是靠日常观察、倾听、求问、领悟。
在漫长的职业生涯中,我遇到的良师益友很多,给到我的提点和批评我都会接受,许多金句、价值连城的经验教训,我都记得,列出来怕是有成千上万条。重点提一下当年Tony主导的宝典级课程《海量之道》(现在网上居然可以搜到),包含“动态运营,干干净净,柔性可用,先抗住再优化,有损服务,边重构边生活,大系统小做...”等十余条,这批真言奥义足可让人一生受益。
现在我主要工作之一是参与开源项目,每天有一部分时间仍然是投入交流。只要走近广大的社区开发者和产业生态,信息量就像河流,总是有奔流不息的新鲜气息。
三. 搬砖 :会偷懒是程序员的美德
3.1 搬砖: 我的第一块砖
光学不练、纸上谈兵是不行的,码农当然要埋头搬砖。
饮水思源,还是得承认学电子搞硬件还是有用的。大学毕业课题是设备驱动开发,包括汇编、硬件和操作系统细节,触达Ring0底层。这个经历教会我“一切从操作系统、中断、软硬件资源开始思考”,是我对计算机体系认知的基点。
谭浩强版C语言课本虽然有一些争议,但C语言让我写代码时眼里仿佛能看到指针、指针的指针、内存对齐结构、BITs和BYTEs在网络和总线里奔流,有点像黑客帝国那种FEEL。
我的软件思维一直带着这样的原生态,或者说:土味...
工作第一家电子厂是造硬盘的,并没有什么软件开发氛围,每日呆坐流水线中,我决定选一门语言练手。基本思路是“什么最难学什么,那就选VCMFC吧”(最近则是Rust)。为了操练“漂亮的界面”以及“多线程网络编程”,我给流水线写了一套工控系统,代码和界面很丑但好用,远程调度执行各种命令,省了跑到每条Line的工控机上用鼠标键盘操作工序和抄数据的工作量,瘫在座位上就可以干完几乎所有的活儿。
这吹个牛简直可以叫初代的“工业智能互联网”了,从此树立我的软件开发基本哲学:“会偷懒是程序员的一种美德”。那套代码算是蛮完备的练手作品,后来出去找工作面试,我拿这套软件的设计思路去讲,居然挺管用的。这算是我程序员生涯的第一块垫脚石。
3.2 搬砖:纷飞的进度条
后来换过几次工作,世纪初的软硬件公司活儿很杂,常常一个程序员加一个QA就是个项目组(我也当过QA),从需求到开发和售后,除了收钱几乎啥活儿都包了。
我参和过花样百出甚至是有点莫名其妙的活儿,包括聊天室、即时通信、中间件、电商、游戏、债券交易、运营商系统、GPS和物联设备...基本上能想到的技术活多少都沾过。其中最好玩的梗是把GPS+短信模块绑在比赛级信鸽上,分析鸽子飞行数据,就是代码质量没控好,数据多的时候有点崩,十几年过去了我还一直有点耿耿于怀。
那时候忙起来手上几个任务并行切换,有公司的活儿,有我的自修课题。每天下班吃完晚饭后睡一会,9点钟起来,一杯茶一包烟一台电脑肝到午夜,看一两场欧洲杯后咪一会,天亮继续挤公交去上班,从此爱上了一杯就上头的纯黑咖啡(现在已经对咖啡免疫,喝了照样睡沉)。那段时间,特别擅长多线程多任务高并发干活儿,走路都在想设计,感觉是只要醒着就在编程。
从健康生活的角度讲,并不是很推荐这种节奏,会有很多弊病,比如睡眠不足、鼠标手颈椎病和三高,还有知识和技能的碎片化...
怎么管理好自己的时间精力注意力,如何平衡工作和生活,专注于一件事还是满屏幕的进度条在飞,是一种个人习惯,也可能是被生活毒打的结果...找到适合自己的模式就好。当时年轻的我只是简单的享受这个节奏而已。夜深人静时自己写点儿东西那种FEEL,真的很写意呀...
3.3 搬砖:汉堡包式编程
接触大量五花八门的项目,初期不免会做不少重复劳动,那个年代可用的基础库很少,本着“程序员就是要会偷懒”的基本哲学,以及学习“面向对象、设计模式”的初衷,我在干活前往往先写基础库和框架,或者针对最难的核心问题做实现,趟平技术门槛。虽然当时功力有限,那些库现在想起来挺粗糙初级的,像一堆积木,没有开源出去成为牛逼的流行库,但自己的lib自己手熟,用起来够快,可以一边用一边改,每次解决一个小问题,类似“用风扇吹空肥皂盒”以快速解决问题的土味智慧。
现在各种库已经很丰富不需要自己写了,但还是有不少重复劳动可以抽象,或者用别人的库时,点进去代码看看理解原理也是应该的。在LAMP时代,Apache、Memcache等项目的代码,我来回看过N次。
在碎片化的事项里,尝试抽象归纳系统的公约数,在实操中思考如何把异构和琐碎的事务变得模块化、可复用,即使造轮子也只造一次,这样才能更淡定的见招拆招。同时,也要注意怯魅各种高大上的软工概念(尽信书不如无书),这么多年来见过无数种软工方法论,浪花淘尽,至今我还蛮认同RUP的。我觉得RUP是理解角色、场景、架构、部署的全面思考方法论,只要规避瀑布思维,不刻板的去画晦涩的UML图,其本意还是“轻型、敏捷、适应性过程精神"的,所以还是推荐。
本文不是软工专题,对各种喧嚣一时、真伪莫辨的术语的思辨吐槽,就不再过多展开了,要不还能多出一万字。
总之,软工没有银弹,人月没有神话,许多小火花小经验,都是在踩坑填坑中碰出来的,有时候甚至会很痛。为了少给自己挖坑,或者即使掉了坑也有办法快点跳出来,我一贯紧绷两根弦:精确需求理解和追求迭代效率。我管这个叫“汉堡包式编程”:首先,“万事不决,从角色出发”,吃透上层的用户场景,同时在基础层积攒够用的功能库,积累解决难点技术的经验,那么,中间的事务逻辑实现,相当于用胶水代码把上下两层黏在一起,即使错综复杂,开发速度依旧飞快,至少有助于赶Deadline交活儿。
说到胶水代码,近来我最喜欢的“胶水语言”是Python,看技术书、思考架构原型、做验证时,都用Python随手先写一遍,想到啥就能同步写出,速度飞快行云流水,简直是一种享受。
四.认知:从尝试到认命
4.1 认知:先敞开来试试
现在想起来,刚出道时那个没什么成功项目经验的初级程序员,也是贼胆大,遇到什么机会,只要觉得自己“大致能做”,我都会说“好的没问题”,先接下来再说。有些项目开始的时候谁也不敢保证能做好,尤其是有着创新性和技术门槛、知识盲区的,拿出尝试的勇气,好处是首先让人觉得这货比较积极,能扛事。更重要的是,自己能争取到或“捡”到更多机会去接触更广的知识面,并且面对交付Deadline,逼着自己去学习、积累、优化,相对靠谱的完成任务,最终让自己在专业上达到一定的准备度。
世界总是多变的,只有自己的专业准备度是确定的、是自己能把控的。我一直信奉这一点。
关于“准备度”,首先自己要有一点儿自知之明,能成为啥样的程序员,大体和自己的天赋+教育背景有关。如果有“我命由我不由天”的气魄,可以努力去试,不同时间阶段多试几次,于公于私多接触一些技术和业务领域,每次遇到新挑战,都认真的看完一些书读完一些论文,写一些有复杂度的项目,努力跳一跳去摸自己脑力和体力天花板。
人的天赋各有不同,智商和精力总是有限。当真切的觉得,自己脑子真的不够用,看的东西跟天书一样,代码进度慢如蜗牛要耽误事儿了...那就认命吧,让更专业的人来做吧,自己去做自己擅长的其他事儿好了。但做出这个决定,一定是认真的试过,已经没有遗憾 -- 从基本逻辑上讲,既然把“不确定性”排除了,剩下的自然是有着相当确定性的路子了。
就像爬山,一条路如果很难,也努力过,再蛮干就是撞南墙,不妨去另外探一条自己能走的路,山那么大,每条路都有新的风景,没啥不好的。认命并不是终结,只是排除法和换个姿势继续,强调的是没有停步。
4.2 认知:最懂自己的人是自己
比如,我自认难以成为又广又深还博的全才。我能写界面(无论是APP还是网页),但再努力都写得不是很酷炫,我不爱操心事务~所以不擅长项目管理,也没机会去深造再走学术路线,数来数去只有做Server端的开发还比较顺手~~大概是服务框架更强调稳定健壮高速,而前端更需要审美和创意吧。
于是从业这么多年,我一直是个“后台开发”,一直非常尊敬前端/全栈的程序员,且有节操的遵循PM/QA的项目管理质量要求。
回头再看,做个知道分子、杂家,有幸在小厂大厂里摸爬滚打过,对我眼下的工作还是蛮有帮助的。现在手上在做“黑科技”,知识面包罗万象,庞杂且硬核,基本上我以前学的练的多少都能用上一些,过往没有浪费,未来又有许多好奇点探索点,挺有意思。
五.求索:路漫漫其修远兮
5.1 求索:程序员的“确定性”
写代码跟机器打交道,编译能过就是能过,运行挂了就是挂了。做个程序员,可说是个颇具确定性的事情。
我有点庆幸当年在茫然中依旧固执的要当程序员 - 这是一个多么有确定性、风险也不太大的小抉择呢(除了可能长胖、脱发、颈椎痛...)
所以,现在还能继续做和技术相关的事情,还有代码可写,我表示感恩。即使没人给我派需求,我依旧会找茬写点代码发布在开源社区,多少都会有人来用。可以说,至今我还是重复着前面几段的内容,日常学习交流搬砖,没啥新东西,也就是俗称的“一年的经验用20多年”这样子吧。
当然,在写代码之外,我还会写PPT、为工作站台、讲课分享...但我没有办法的告诉别人,如何功利性的“上升”,如何鸡汤式的“成功”,毕竟这不是我的专长,也没资格谈什么个人成就 -- 惭愧的说,我离心目中的极客大神理想境界,自认还有不少距离。
5.2 求索:“这不是个技术问题”
朋友和我聊过怎么看“35岁魔咒”,仿佛我这一把年纪的码农有资格聊聊。回首20多年,那一代码农们遇到了互联网和移动互联网席卷一切的大潮,只要努力浮在水面上,对自己要求严格一点,少犯错误,还是能幸运的托时代和平台之福,挺像那么回事的活下去。
过去和个人化的经历大概率无法重复,讲多了就像鸡汤。但以前总是有人说程序员只能干到30岁,现在不是还有许多资深工程师、架构师仍活跃在行业么。
有些问题,只有时间会给出答案。
无法预测接下来20年会是怎样。如大家所见,当下所谓的WEB2.0疑似已触达增长天花板,但我觉得,整个世界还是会越来越“数字化",这个趋势是比较确定的,体现在数字化新基建、分布式商业、东数西算、虚实结合、履行ESG精神的普惠服务...许多拼图仍未完整,我认为时代还是需要更多会写代码的人。
或许不用担心做程序员会没有机会,但确实不要把时间浪费在纠结“什么语言更好”这种浅显问题上(反正最好的语言就是PHP),而是想想如何把个人的学习和发展与趋势结合起来,也就是说,要成为怎样的、更有竞争力的程序员~这也是自己能把握的核心问题。
再则,在这个不确定性的世界里,纵使投身于“数字化”大潮,还是会确定的面对BUG纷飞内存溢出程序崩溃。同时,生活中一定会有常有突其而来的各种黑天鹅,还有灰犀牛、大白象...由于自身认知局限、性格短板、能力不足,挖坑踩坑背锅都是日常。
对于现实的问题,只能见招拆招。俗话说“功夫在诗外”,考量的除了硬功夫,以及一些Nice to have的“软”技能,包括沟通、倾听、管理、理财、健身....
熟悉我的朋友可能发现,现在我的口头禅是:“根本上,这不是个技术问题”。在很多Case,技术问题往往是最直观最明了的,只要花时间成本脑力体力就能解决,然后还有更多维度更加本质的因素,比如商业、协作、博弈...尤在深水区。
熵增(不确定性)的世界各种Chaos(混沌)是必然。过度的“数字化”有可能将人世间折叠成一台大机器,冰冷、失衡且失控。那么,如何优化技术运用和治理设计,为大机器和相关的人们营造温度、寻求秩序?除了赚钱养家糊口之外,还能做点儿什么,让这个世界还有机会变得更好一点?
试图去回答这些问题,我觉得会更可贵,也更有差异化 ,这个层面的发展也许并不局限于35岁,也不太可能会被“低代码”“零代码”完全取代 -- 话说,低代码平台,也是需要人去设计开发运营的嘛。
总之,可以做IT,但不是“Just do IT”。一辈子很长,技术只是安身立命的技能之一,不妨试着去做个有趣的人,做个对社会、经济、人类、甚至是美学等等有认知的人。
5.3 求索:行万里路、读万卷书
话题越来越大,收一下,闭环呼应第一章:除了做好手头的工作,首先还是要读更多的书,包括STEM系(科学Science/技术Technology/工程Engineering/数学Mathematics)以及更广的书:历史、哲学、逻辑、社会、金融,还有科幻、文学...可以读的“闲书”太多了。
读书可以由兴趣驱动,并探究回溯源头,正所谓:”万事不决,回到原点,让历史照进现实,启迪未来"。举个例,搞区块链之后,我尤其对群体“博弈”感兴趣。有个共识算法叫“拜占庭将军容错”,其来历是什么?内涵是什么?和“刘关张协议”有啥异同?发散一点,博弈和"李约翰难题"又有啥关联呢...想想都觉得有趣。
我之前对历史涉猎不多(光看技术书和科幻了),于是遴选了一批“闲书”,包括世界文明和战争史、罗马和奥斯曼编年史、地中海帝国史、千年金融史...尤其推崇戴蒙德的《枪炮、钢铁和病菌》《崩溃:社会如何选择成败兴衰》、武汉方舱读书小哥带火的福山《政治秩序的起源》,以及赫胥黎、奥威尔、勒彭、亨廷顿、吴迪...等作家的经典好书,几年下来足以初步启蒙解惑。最近遇到“元宇宙”这样的前卫概念时,我会去读脑科学、哲学百家、宇宙起源,温习赛博朋克科幻...简直停不下来,然后憋出2万字阐述思考过程的元宇宙漫谈文章。
时常有人问我有没有书单,其实很难罗列全面,更很难让人认同(为什么不推荐书单),毕竟众口难调,只能仅供参考和举一反三。其实,读书这事,不需要也不应该追求“认同”,边读书边和作者隔空思辨搏斗也是一种乐趣,即便是泰斗哈耶克、硅谷导师凯文凯利,其观点和立场尚有不少可斟酌之处。
读书也不需要苛求“有用”,如果一本书文字精巧故事很赞(比如程序员王小波、毛姆大叔和帕慕克...),那为什么不读呢,斜阳下一杯水一本书,足以拥有几个钟头的小确幸。
读书显然很花时间。我有量化强迫症,尤其是对时间的量化。比如,大部分的书我的统计是平均一页500~700字这样(见下图),读一页大约需要一分钟,那么,拿到一本书我大概就知道要花多长时间能读完,也便于调配每天的哪个时间段能有多少分钟去读书。无论是工作还是学习生活,如果点儿强迫症的话,你会发现,时间并不是没有,时间真的是可以"量化"出来的。
读书帮助明理,明理有助于更好的做事,写PPT也算是做事。经常看到有朋友抱怨写PPT很难,我觉得如果对领域内的东西有足够的辩证思考、提炼抽象,思维有层次且结构化(我有很长时间对“结构化思维”非常着迷),更重要的还是“从角色出发”,换位思考去想想听众究竟想听什么,应该怎么讲,讲多深多广,要不要来点段子...这些想清楚了,然后写个PPT就不会是很难的事情,最多是装个插件(个人推荐islide,或者其它你喜欢的),选择一些现成的模板图标表单,把PPT画到及格分就好(花里胡哨高大上的商业PPT是另一种生物,这里不提)。
如果在手头的事情上已经投入了一段时间,还觉得写个PPT很难的话,那真的不是个技术问题了 ~ 也许,是做得太多,想得太少(程序员宿命式通病:P )
六.结语
全文又快一万字了,快速收敛下吧:总之,读书写字,交流学习、日常搬砖,如此循环。
世界依旧在变,甚至面临巨变。无论如何,个人已命中注定是个码农,只能坦然直面这不确定的世界,顺其自然,写点儿代码,随缘求索一丢丢未来的可能性。且行且珍惜吧。
附录(全为个人博客里的相关历史内容)
9个关键词,2万字漫谈元宇宙
从角色出发
为什么不倾向推荐书和书单
软件工程极端分子之歌
《人月神话》:关于(程序员)职业的乐趣和苦恼
做软件堪比搞装修
关于软件的一些庸人自扰