至今约10年的工作经历。刚毕业的头两年,是在工控领域做自动化工程师,用PLC编程。之后,兴趣使然,做了软件工程师,用Java编程。曾在互联网公司担任过技术专家,管理过技术团队。随后又在创业公司做过架构师、技术总监等职位。
不能说经验太丰富,多少也可以提供一些视角,供大家参考。
关键词一:解决问题
很多零基础学编程的文章,都列出了“劝退清单”,要入门就得学这些:数据结构、算法、Java、Spring、MySQL、缓存、消息队列、数仓、分布式,极其各个细项,一大堆东西。别说零基础,十年基础看得也要慌。我认为如果一个人不出于解决实际问题,而整日看一些概念的技术书,是一个非常不人道的做法。
当然,当代程序员不得不看,因为厂里招人就是这个要求。一旦内卷,那大家都没法好好生活。这是现状,没有办法,我们也许只能接受,但是我希望的,在你接受现状的时候,你也要眼里有光。编程到底是一个应用性很强的学科,它的目的在于“解决问题”!自己念三遍吧。
如果你看完这篇文章,甚至于我假使写了无数篇文章后,只想让你记住的四个字,那么就是“解决问题”。
比方你大学前端后端人工智能统统都学了,靠年轻之力记住了非常多的细节,你面试通过了,随后你做的是后端工程师。那么,基本上你可以忘掉所有前端知识,只要记得那是在展示,即可。这是在做什么?是在基于抽象层级地学习。我们总说要搞明白抽象层级,基于接口编程,迁移到学习中,也是一样的。你要相信你的接口,相信自己不用去深入跨领域的每一个细节,相信不用去搞明白底层的每一个细节,也能解决你的实际问题。
另外,我是一个平常心看待中间件的人,认为这也是另一种业务开发,不过它们的业务是某个中间件罢了。我们可以“去心中神”,不是做了某个底层领域就一定很厉害。事实上,每个领域的专家都厉害,每个领域的菜鸟都不厉害。我更喜欢这样的工程师,知道世上新出了某些技术,随后使用好这些技术,解决了某些实际的业务问题。至于要多么地深入这个工具的底层,就取决于场景是否需要。我们都知道不断有新技术出现和淘汰,但又万变不离其宗。
我自己来到创业公司后还有个感悟,中间件团队一定不是中小厂的必备,甚至在资源有限的情况下,往中间件多投入一分都是错误的选择。因为你投入小了不会有成效,投入多了没这个资源。那怎么办,缓存,队列,都要用啊?答案很简单,买。现在各种云服务非常多,他们提供的服务也远比一些二线互联网公司自建的中间件团队要稳定。在当代,如果仍在坚持自建IDC机房,那很可能都过不了等保审计。比如这个问题——你如何容灾备份。
说了以上这些,就是希望你重视“解决问题”,解决问题是需要有“场景”的,而非闭门造车的。这是我们的第一个“关键词”。
关键词二:完整理解。
我们已经知道了要学什么,是有一个限定范围的。但是我们依然需要具备对问题的“完整理解”。
也许你会问,那这不是矛盾了吗?刚才还说要有限定的学习和理解,怎么现在又要“完整理解”了,这不就是啥都要学吗?
不是的,打个比方,公司的CEO知道基层员工在做啥吗?大概率是不知道的,但是影响他管理好这个公司吗,不影响的。
我给出的编程领域的“完整理解”,是需要你知道这一点——编程所做的一切,都是关于信息及对信息的处理。
拿一个公司技术团队的标配来说,包含前端工程师、后端工程师、算法工程师、测试工程师。这些岗位,拿到的是同一批“信息”,但是大家对这些“信息”的“处理”不同。前端负责信息的展示,后端负责信息的逻辑,算法负责信息的洞察,测试负责检查大家的工作。
再从中间件的角度去看信息的处理。大厂有专岗负责中间件。常见如,应用服务器、数据库、缓存、消息队列、数仓等等,还有很多。同样,它们拿到的也是同一批“信息”。应用服务器负责计算,数据库负责存储,缓存负责热点数据的加速,消息队列负责缓冲,数仓负责分析。其中一些中间件的功能会有交集,但是他们擅长的领域不同,比如大学篮球队队长和我都会打篮球,队长和我也可能都会编程,但篮球比赛就是得他去打,编程的事就得我去做。
如果你还是有些迷茫,很正常。因为现在说的还是太抽象了。我给你的完整理解的具体行动是这样的:
找到所有常用的技术中间件,列一个清单,随后通读他们的介绍,找到这几个问题的答案——他们叫什么,应用场景是什么,即可。
如果是从零开始,列这么个清单就有点难,那么我抛砖引玉,来给你这么一个清单。
以上,是一些通俗的写法。如果需要非常准确的定义,教科书里有一大把。但我自己的学习过程中,往往是通过教科书中的阅读,随后总结成这么一句简单的话。尽管不一定准确,但很实用。并且,你也不要用我的总结作为你的总结,如果你能总结的更好,为什么不呢?
这里,我想到了一个《三傻大闹宝莱坞》的场景,非常的生动,建议大家有空可以看一下。
再来看一眼表里的内容。你能看到,其中大部分都是中频,甚至对于这些中频的技术,都可以通过封装的方式屏蔽其中的复杂度,对你来说只需要无脑调用即可。那么,剩下的,就是如何学会那两个高频,Java和数据库。问题是不是简化了不少。
关键词三:哲学三问
你从哪儿来?现在在哪里?要到哪儿去?
我觉得我们务必要搞明白这些,这样才会有行动的动力。拿我自己来说,我曾经是一名科幻爱好者,最喜欢的小说是《三体》,喜欢的电影有《星球大战》、《星际迷航》等。既喜欢里面的科幻元素,也喜欢里面关乎勇气和 探索 的故事。我自己也曾写过一些故事,感动了自己,也感动了一些我强行投喂的朋友。
在写程序前,我是一个非常喜欢写故事的人,写程序后,终日在恐惧和不安中学习,满眼所及,永远是学不完的知识。而学技术的过程也不再能体会到乐趣,只有焦虑,时刻担心被职场淘汰。这些焦虑下的学习,不见得提升了我的价值,反而让我倍感疲惫,忘了初心。如果你一生大部分的时间都是焦虑的,那么你一生就是不成功的。
所以,现在的我相信人是最终的意义,我们所做的一切,都是为了让自己过的开心。而我们的价值,也不是能解多少面试题,而是能处理多少的实际问题。从人出发,满足人的需求,将这些需求层层细化,就成了你手里的业务问题。这也是获取财富的逻辑。
人生苦短,愿我们现在和以后,都能开开心心地工作和学习。
首先说一下目前日常的生活工作安排,每天7点40的闹钟,起来洗漱吃饭(如果起不来就不吃了,8点半差不多出门)上班。
因为距离公司比较远在北京要横穿半个市区才能到公司,大概10点左右刷公司卡,然后买早饭买水。
上图是公司大门,那天去的很早(
我不喜欢喝白水,基本每天一瓶快乐水或者气泡水。然后10:30大概正式开始工作。
上午的工作时间是到12:00整,基本上有1个多小时的时间可以专注工作,上午基本是处理昨天的任务,做当天的工作安排,小本本上列出来一天要干的事,如果跨部门合作就尽量上午处理完,写一下邮件之类的。
到了12:00准时去食堂吃饭,12:30吃完,我有午睡的习惯一直睡到1:30,就在工位上。(下面是一般的食堂餐食
1:30到6点整个时间段都是写代码的时间,目前因为人不多基本也就没什么管理的职责,基本上IM就能解决不用开会,所以下午可以开开心心的喝着快乐水写自己喜欢的代码了。
这里就要说一些题外话,因为我个人是非常喜欢写代码的那种程序员,是真心的可以从中获得成就感和乐趣的人,所以我整个下午会觉得时间飞快,一般3点多有个节点就是去上厕所或者打水,基本上就可以纹丝不动的写到6点吃饭。
下午快乐水喝完就换枸杞养养生…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)