在2019年,我学会了如何理解技术思维和技术价值。
在2019年,我学会了如何平衡工作和生活。
在2019年,我学会了如何管理一个技术团队。
在2019年,我学会了如何面对工作的沮丧。
在2019年,我沉淀了我自己的行业理解。
在2019年,我提前完成了我的三年规划。
技术思维与技术价值
技术思维
作为一个程序员,说你没有技术思维,可能你会很生气。但是在我看来,技术思维其实是一个很难的过程。首先我觉得看一个程序员是否具备技术思维,是要看他是否能用技术角度去思考需求的本身。例如我让你做一个社区的论坛系统,你一上来就跟我看了一大堆的E-R图,表设计,功能需求,概要设计。但是我觉得这是软件工程的思维。技术思维我觉得是指,能够按照需求场景去确定技术选型的思维,是一种全局的,全面的,最小化的思维过程。例如,让你去做一个分布式系统,你很容易去想用spring cloud 或者 dubbo去实现,这是技术实现思维,不是技术思维。而技术思维是让首先确定这个分布式系统使用的范围和领域,系统规模,用最快的方式去实现的。有时候我们会很纠结这个技术实现的问题,其实不矛盾,先实现后优化,但是你要考虑的是你所带来的的技术实现成本高低。假如你引入了spring cloud 只需引入一个jar即可,那你就用它。其实技术思维是技术实现思维的前提,也是工程思维的前提。
如何锻炼自己的技术思维?
我在2019年看了大概有1200个开源项目,基本上上班我就会打开开源中国,打开GitHub,于是我总结出来几个门道,和大家分享一下。
我不生产代码,只是一个搬运工
投石问路
找到一个你想要的项目
a.输入你理解的技术描述和技术术语,一开始最好用技术术语,因为比较专业,得到的结果会很多。
b.通过不停地迭代搜索,不断完善技术描述,最终得到满意的结果.
c.星多意味着质量好,但不一定能满足你的需求,星多往往是技术庞大而复杂的,如果你是这个领域新手,建议你可以尝试阅读大型项目的ReadMe.md,它能帮你了解更多这个领域的相关技术。
小试牛刀
当我们找到一个觉得靠谱的项目
a.看它的介绍,关注它的文档。
b.看整体的项目结构,如果你是要打算用仓库的代码,那就从代码结构,代码逻辑,代码注释,项目依赖等等,去衡量代码质量。
c.项目活跃程度和技术是否为流行的技术,开源社区的活跃度issue。
登堂入室
拿到一个项目,先不急着让它动起来
a.看测试用例,最快能帮助你了解代码的使用的
b.大胆猜测代码结构以及用途,结合代码注释或者项目文档
c.验证猜想,还原代码逻辑
游刃有余
我们何不放下已有的执念,以欣赏的眼光去看待别人的代码,从他人的代码学习人家的思路,然后再将彼此的思想融合在一起,这样能让工作效率提升好几倍的,因为你取的是别人宝贵的试错经验,可能他人的代码表达方式不是你的习惯,可是代码就像一个活生生的人一样,坦诚布公得诉说着他的思路。
登峰造极
代码融合,合的不是代码,合的是思想,用你的方式去表达融合的思路,这样就能用图的形式去规划你的项目,流程就能再造。
炉火纯青
代码只是工具,重要的是你能否看透代码背后的逻辑和思路,任何一种语言的实现都能在另外一种语言里找到它的缩影,只要它的思路是能够很好地解决问题的。
知识可以很模糊,但却也可以很清晰,重点在思维
一直很想总结一下自己这么多年的网页搜索,今天有灵感了。
假如要你去寻找某一部电影的经典对白你会怎么操作,在不看全剧的情况下。
1.找这部电影的全部字幕,这是最保险的,也是最可靠的,但这不是最经济的,因为你还要花很多时间去看,当然你可以找文本工具查一下关键字也可以。这样问题就变成了寻找某一部电影的字幕了。
百度一下: xxxx电影的中文字幕下载
2.既然是经典的对白,我们能不能从影评中去寻找呢,看一下有没有,万一找到了,是不是解决问题了。所以我们尝试下,换个角度,找影评。
百度一下:xxxx电影 对白 评价 yyy关键字
通常我工作的时候都是用第二种方法,因为这样太快了,很容易找到。第一种是被迫无奈才会这样。
a.第一种强调的是问题的本身,没有做分解
b.第二种强调的是对问题关键点,做了主观的分析,所以会依赖人的经验,减少错误的次数。
技术价值
技术价值在于如何用最低的成本去解决现实的问题,如果技术不是为了解决问题,而是制造问题,那它就毫无价值可言了。程序员也是这样的,之所以你能够值钱,而是因为你能够创造出比你成本更高的价值,假如某一天社会生产力上去了,你还是创造不变的价值,你就会贬值。所以从这个角度来分析,程序员的本质就很容易看透35岁程序员焦虑的困境了,不是因为你不努力,而是整个社会的生产力在提高。那如何才能让自己保持高的技术价值呢?那就是在于你要把技术着眼于现实问题,而你要能看透现实问题,就需要你对现实有分析和理解的能力,或者说是对整个行业的理解,能够解决困难的问题,你的价值就越高,什么样的问题才是困难的问题,分布式和高并发吗,分库分表,读写分离,大数据吗?当然我不否认这里面的知识很深奥,但是你懂这些就能够创造出价值了吗?这些在是技术实现的要点,并不能衡量你所能创造的价值,高并发分布式,分库分表等等的这些技术方法本身就在实现时提出的方案,方案是可以很多种的,在于你选择的方案。所以方案才是技术价值的本身,这个方案里面可能有很多技术要点,同样包括很多非技术的要点。我希望你是一个提很多种方案的人,而不是纠结于技术要点的人,技术只是解决问题的一方面,很多非技术因素同样也很关键。
技术人的跃迁
公司,平台,产品,软件,程序。
老板,总裁,经理,技术,码农。
战略,格局,眼光,思维,见识。
工作和生活
我是一个视工作如命的工作狂,没有办法就是因为热爱,所以疯狂。我可以下了班之后从晚上8点通宵到第二天早上8点,然后正常上班。就是为了解决出一个区域影像的技术实现方案。可是当我发现我在谈恋爱的时候,真的是一点生活乐趣都没有,我没有任何爱好,我没有任何业余技能,个人形象也是一团糟,甚至说我没有正式地和女生交流和相处过,想想自己在工作中可以如此叱咤风云,但是在生活上却输掉了一切。我感谢我的女朋友,跟我分手了,她让我意识到自己的生活一塌糊涂。工作不是全部,生活才是。工作是生活的一部分,假如你把工作当做生活,那么你的成长会慢很多。我们的成长其实就是生活经历,假如我们把眼光锁在在工作上,那自然你的经历内容就会变得狭隘,思维也会变得片面了。
做一个精致的猪猪男孩
于是我开始改变我自己的生活,我每个月都给自己定目标。
我开始去主动社交
我开始去换穿衣风格,改变形象
我开始去健身和运动
我开始学做菜烧饭
我开始去看技术以外的书
我开始去体验以前没有体验过的东西——(旅游美食电影)
(你可曾想过我25年第一次迈进电影院独自看电影吗)
......
我开启了全新的生活方式,这样的生活让我整个人的精力都很充沛,甚至比以前更加有工作激情了,个人的自信也非常得足。诚然我当初做这些事情真的是为了挽回我的前女友,但是我做完这些事情之后发现,其实不重要了,因为我要做的不是再挽回她,而是如果可以偶遇的话,能够让她重新定义我。
其实很多时候作为一个程序员,自己的生活圈子真的很窄,如果你再把自己的生活锁定在工作里面,那么你真的会变成一只山顶洞人了,我们需要是更开阔的思路,更多志同道合的朋友,更充沛的精力,更健康的身体,更开心的生活。
我的技术团队
2019年对于我来说,是一个非常幸运的一年,我从技术岗转到了管理岗,目前负责管理一个小型的技术团队。
这真的是一个很大的挑战,因为我是一个很专注的人,很容易管着管着自己就去实现了,完全不会顾及队员的感受,曾经试过很多次,自己都是累死累活的,然后其他人没事做那种。相信很多人都会遇到这个困境,因为自己也不知道怎么管理是比较合适的。经过这个6个月的适应,我总结了一些要点。
团队目标和部门产品
首先作为一个技术leader,你要让你的队员有事可做,不然他们闲下来了,就想着要跑路了,因此你要明确,团队的目标,首先让你的队员,知道他们在做一件什么样的事情,然后部门产品,就是让他们认识到,为了实现这个目标,我们如何去定义产品的
分工与协作
有些人适合研究技术要点,有些人喜欢沟通交流,有些人专注于技术实现,我们应该尊重他们个性。把喜欢沟通和交流的分配为小组长,吧喜欢研究技术要点的分配为技术主管,把专注于技术实现的分配到主管下。把任务分配到小组长下面就可以,作为一个技术leader,首先要解放自己,你自己是头马,你负责指路,你要相信你的团队能够克服技术难关,哪怕很简单的事情,你可以指导,但是不能亲为,你要让你的队员向你看齐。
技术分享
没有能比技术分享更能引起程序员关注的东西了,每一个程序员都有一个傲骨雄心(我的代码我敌,我的想法最牛),给他们创造一个技术分享的舞台,他们才会有一种内驱的动力,去专研新的技术,赋能整体团队的技术水平,提高团队效率。但是这个技术分享必须有奖励制度,否则会成为一种工作以外的一种负担。
工作关怀
每个团队成员,可能都会在某段时间特别的迷茫,情绪也非常的低落,作为leader你要察觉这个心情,关注团队成员的工作进度,就是对他们最好的关怀,你要让他们知道,他的背后有你。而不是每次来一个新的需求,你就丢给小组长,让他们去抓落实,你就可以安枕无忧了。
个人成长
如今的HR都说留不住90后的员工,管不了他们的个性,其实90后是更有追求的一代,他们的离职是因为你没有满足他的需求,心理上和物质上的,心理上的就很明显是缺乏工作关怀了(想想有多少PPT架构师,把这个技术丢给你了,然后拍拍屁股走人了),其次就是物质上的,薪酬这个也是很关键的一点,但是你如果让他们能够看到自己的成长,有很多时候他们在抉择的时候是会考虑的。你要了解每一个团队成员的发展目标和发展方向,在工作安排的时候为他们量身定做,尽管有时候很难,但是需要你这个leader更多的引导,而不是一味地强调(这个技术实现我不管,我给个时间就行)
团队风险
一个团队成员的离开,可能后面就会有更多人的离开,首先要让这个离开的人对团队的影响是最小的,你要关怀这个团队的成员,而不是把他当做是一个即将离开的外人看待,他的工作,你要合理分配交接对象,及时补充人员。
在平时团队内部交流,尽量让多人轮岗,相互合作,完善文档,预防离职风险。
工作的沮丧
每个人都会有不开心的时候,特别是在工作当中,就会有很多不顺心的地方,我以前经常是一个急性子的性格,一遇到问题,从我的脸就可以知道了。
一个人的成长不是在于他懂得多少,而在于他经历过多少,又能承担多少,愿意付出多少。
很多人自以为懂得很多,在面对困难的时候,总是用各种道理去帮自己解脱,却又在抱怨,没给他机会。
很多人在经历过一些事情之后,就觉得这些事情永远都不要经历了,太痛苦了,却没重头再来的勇气,心理承担不起。
很多人虽然在心理承受着巨大的压力,却年复一年,日复一日地背负着这些压力,却始终不愿想办法去解决他,最终觉得自己很努力,却换来徒劳的伤痛。
医疗行业理解
互联互通成熟度测评
医疗信息化,医疗数字化,医疗智能化。在医疗信息化普及的环境下,医疗数字化已经成了国家战略推进的重点,以互联互通为基础,建设区域健康信息管理平台。
根据这半年的考察和学习,发现目前所谓的互联互通仅仅停留在通过测评阶段,明明可以数据一步给到位,却要拘泥于一个标准(HL7v3)的实现,很多厂家的平台都是一个ESB的转发工具,没有起到将医院业务完全梳理,反而是实现了互联互通之后,这个系统耦合度越来越高了,因为很多HL7v3的标准都是厂家实现的,整个流程还是厂家与厂家之间的对接。我始终认为,标准和数据是一个确定性的,标准是唯一的,而厂家是不确定性的,只要让厂家遵循数据规范即可,标准才是平台的核心。
我看准的不是2020年这波互联互通成熟度测评的机会,而是看到这些信息集成平台要被换掉的那天。
网友评论