
时间静止不是简史
2022/07/22阅读:34主题:萌绿
阿里p8问与答
该文是前两年因为机缘巧合和阿里的一位p8 在一场经验分享会上所得. 原来是语音, 然后将其翻译成文字. 并且进行修正. 但仍有部分语句, 因为自身能力水平有限, 请各位读者见谅.
这里主要从学习, 面试, 工作三方面讲起, 结合其自身经历来分享一些经验看法, 希望能够帮到大家.
学习篇
-
要不要吃透sql范式?
sql 范式
不要纠结范式 ,经验与设计原则 少使用join 使用冗余来提高查询性能
使用场景考虑
-
要不要吃透restful编程,命令式编程?
restful编程,命令式编程 ,只需掌握概念 ,实际工作中没有意义 冗余设计 ,自行取舍
-
关于Mycat学习是否有必要?
mycat 小公司不要 ,大公司用 ,借助mycat实现的能力 mycat 学的是思想,分库分表思想
-
我们学习语言的方向
语言类(java,go...) ->数据结构 ->设计模式 数据结构与算法多看多学
-
自我反省 是否高效睡眠? 学习方式是否有效?
-
大前端介绍
真正意义上来说, 我写一套代码可以再各种各样的一个前端的一个复杂的环境上面, 去做一个适配和使用的东西. 其实这就是所谓大前端的这种概念
-
不要纠结到底使用什么语言
学语言本身还是看他所应用的一个场景或范围,但是呢,如果说排一个优先级的话,语言的优先级可以是最高的,也可以是最低的,你确定了什么样的语言,学会了他,然后深入的理解,它用它做一些项目,然后再反过来去看你是否还要去学别的语言。
-
一前端多端什么概念, 值得学习不
然后呢,这个所谓的一前端多端使用的这个技术肯定200%是会被普及的,而且呢,现在许多大公司正在做这样的一个事情,所谓的大前端的技术总监对吧,这种薪资都是很高的上百万的级别,这种样子的形式势必就造成了是说我们要统一一个所谓的一个技术栈去做这样的一个解决方案,而且呢,这种技术现在是可以落地的. 并不是一个虚空的概念, 是可以落地落地的,所以说呢, 走前端这条路线的同学从大前端入手绝对是靠谱的. 但是呢,就像我说的前端的技术本身就是由各种各样的技术栈堆叠起来的一个大前端的概念,如果说没有办法完全的去理解这样的一些东西的话,其实它的一个路是走不长的,所以说走前端路线要快也要稳。
-
学设计模式——看书
我举个例子,要你要学设计模式, 那毋庸置疑买书是最好的选择,因为第一他没有官方文档给你看,对吧? 第二你在视频当中会发现一些录制视频老师虽然讲解了一些东西. 但相对来说还是比较肤浅的,因为它对应的并不是一个偏应用型的东西,而是一个理论家应用型的这样一个能力,那可能看书是一个最好的选择。
-
选择适合自己的学习方式
那我呢,总结一下,就是说如果说你要学习的一些东西是一些开源的组件上面的一些应用,比如说redis,比如说sql,那你肯定是优先通过官方文档的方式掌握他的一个大部分的一个应用层的一个能力,然后再配合一些书籍,包括csdn, 博客园等博客网. 然后去深入的学习它内部的一些原理性的内容,最终掌握它,这是针对那种中间件或者外部组件第三方插件这种样子的一个学习方式。 带着问题去啃官方文档
然后如果说你要学习的是一种纯理论式的一种东西的内容,比如说像一个设计模式. ** 然后MySQL内部的一个索引的什么原理什么东西,那这种样子东西肯定是要买书. 那这个书的话,我建议大家不要买老的,要买那种最新版本的. **因为老版本的,比如说现在MySQL已经出到8了,对吧? 你可能就看一下,这种样子啊,不要去看他MySQL5.6这种样子的一些东西。
然后呢,如果说是另外一种体系的是一些创新类的,比如说最近刚刚兴起的一些什么概念,然后呢,要是你想去了解一下. 那我建议是通过一些视频的方式专门去找那些大厂出来的那些大佬. 去看一下他们分享出来的一些视频方面的一些资料跟经验,然后配合一些文档自己去玩一下,那这些文档可能就是csdn blog这种这样子的一些东西。
-
关于自己技能树问题
那这个问题你学习的所有技能树里边有什么大数据, AI乱七八糟的这种东西对吧。 没有任何一个东西能够回答对应的这样的一个问题,也就是说你的技能树的深度是不够的,你的技能树的广度,OK,深度是不够,那面试官可能会有一个最直观的印象,觉得学校不行,学的太杂, 需要不仅将大部分的时间浪费掉了,那这个人的培养的潜力跟我另外一个候选人专门对比,花了一年的时间去深度学习了秒杀相关的所有的知识点来说,你觉得我们这个职位会选择哪一个同学呢。
我不否认知识点学的越多对应的个人的竞争力提升的越多,但是在有限的时间下,人是不可能能够学到学的生那么多的知识。我个人是不太赞同这种就是相当于广撒网的这种方式, 因为毕竟是说在你去寻找工作的过程当中肯定是某一个固定的岗位,那其他的另外两个岗位的话,可能就是说跟你的面试, 是完全没有关系,即便你告诉他说我懂这一块东西,其实面试官也会觉得你懂得,其实也不是特别深入,而且的确也是这样的肯定不会是很深入的,因为单纯的靠一些理论知识,并且在一个很短时间内是不太可能有很深入的一个表现的。
-
刚毕业时不要总想要想着学习新技术
针对大家这种所谓的刚毕业或者是刚刚选择工作的对吧,不要去浪费时间,想着要弯道超车. 从业去赶在一个所谓的好时节上想去弯道超车,这个东西很多时候呢,你可能会成功,我不否认啊,可能会成功,但是大部分情况下会去失败,白白浪费自己的这些宝贵的时间。
-
关于人工智能
人工智能 有瓶颈 可持续性有待商榷. 然后呢,关于人工智能这一块呢肯定毋庸置疑,机器学习吗,Python肯定是个王道,不管是对应的一个之前的一些python的库还是tensorflow,这种样子一个python的集成框架
然后关于就是AI这个问题是这样子的吧,就是说,哎呀这个东西呢,它本身呢,虽然说是人工智能,但是他本质上来说呢就是一个算法工程师,然后呢,并不是说java不能做对应的一个算法,假如对应的一个spark的库也可以做算法,然后呢python的库也可以做算法,但是呢,单纯的人工智能这方面的一个行业,这样的一个就相当于技能树的一个竞争力,其实是我个人感觉是比较比较弱的。
-
答者献身实践
因为为什么呢,我先说一下这种就是, 作为一个我个人的话,其实是一个Java程序员, 在五年之前还是一个java程序员. 后来我们电商的话,其实要做一个所谓的猜你喜欢这种样子的一个推荐的一个模块,然后呢,我就像同学刚才说所说的我持续学习做了对应的一个推荐算法,那其实呢,就是说算法这个东西跟工程这个东西, 在绝大部分的公司当中是隔离. 也就是说算法工程师只做算法,他不关注其他,这一方面是做数学家对吧,另一方面是利用一些开源的算法库,比如说像python的那个类库,然后呢,Spark的吗,现在leetcode去做对应这个算法选取. 然后做一些数据处理,然后特征加工处理模型训练,然后最后训练出来的模型,然后把预测方法写好,那这个算法工程师的这个任务就算当时完成了.
然后呢它会把这个模型最后提交给所谓的一个算法接入团队, 也就是推荐系统的本身的一个推荐系统团队的一个推荐系统的开发,那推荐系统的这个开发呢,有可能压根就不懂算法,他只需要知道这个模型怎么样子调用, 他把对应的那个特征的数据灌进去获得一个预测的结果,然后做到排序就行了,那其实呢这两个职位来说的话,真正意义上是一种职位,也就是说算法的人才叫AI开发工程师。
-
自学三种方式
然后关于那个培训机构啊,我看了一下大家提了三个问题,我先回答一下,最后一个问题就是关于那个自学方式的这个问题,那同学们也提到吗,自学方式,其实我总结一下可以分为三种: 第一种的话是所谓的看书,第二种是看视频,第三种的话,我们把它总结一下,就要看官方文档,当然这个官方文档是打引号的,比如说我举个例子: 这些看官方文档,他有专门的官网那比如说要学go语言对吧,它有官网的一个教程,但是呢,这个官网教程不一定是全的,有可能配合CSDN的一些blog,这个百度一些问答社区去学习对应的,这样的一个东西。
-
看文档建议看英文版的
然后之前呢,我跟我们内部的一些架构师也在聊这个事情. 就是说其实呢,有一个观点: 就是说当我们的一个工作年限到达了某一个阶段的时候,最好的一个自学的方式就是看官方的文档,因为官方的文档是最权威最全的,而且是最专业的不会让你走弯路的对应的. ** 但是呢,官方的文档呢,也势必会有一些问题,就是说他的一个实用性上面,因为有的人学习当中,可能会有一些经验的积累,帮你少走弯路,或者更快速的上手,所以说呢,这三种自学方式都是OK的,并没有说你绝对的好绝对的不好,但是呢,适用场景不一样。**
面试篇
-
面试
面试阿里 : 基础很重要,记笔记, 面试之前看一下非常重要
锻炼一周三次左右
坚决不去外包公司 , 尽量进本部
简历: 技术关键字一定要思考简历写的项目如何做? 碰到哪些问题? 怎么做
自身干货一定要够
-
关于面试刷题
刷题呢,我觉得呢是还是有必要的,因为一个面试官对应的一个考试的题目, 其实还是有一定的范围,然后呢,就跟考试一样吗,如果说你平时的一个相对来说积累并不是特别到位,然后靠最后临时抱佛脚,或者去刷题,或者去什么也能得到高分,如果说单纯从蔑视的角度上来看的话刷题还是有必要的。
-
面试问答 .基础很重要
然后进入对应的一个面试的一个问答的环节,这里边第一个问题我觉得很好,就是关于那个阿里面试. 这个东西,我没有办法给一个确切的答案,因为不同的部门不同的面试官不同的风格,其实都不一样. 但是有一点是肯定的,不管是校招还是社招基础都很重要,如果说基础面不过, 那不论你的项目经验再怎么丰富,然后能力再怎么强,做过什么分布式的设计,再怎么样子多, 都会被面试官打上待定的,
那什么叫基础呢,比如说JAVA对吧,JVM内存模型,SQL优化HashMap 等数据结构,数据结构与算法排序的一个时间效率是什么样的,就是这些基础的 东西非常非常非常的重要,这也是为什么我告诉大家说平时一定要记工作笔记的这样的一个习惯,因为你一般来说工作很多年之后. 平时用不到. 但是面试的时 候往往就会问你这些基础的用法, 比如如何去手写String? String常用的方法有哪些?
-
关于面试中问到我们所做项目的细节 (重点 ,重点)
做哪些对应的一个优化,比如说你的商品详情页对吧,可以多级缓存的方式做哪些优化,那你的一个所谓的下单的时候对应的一个库存的行锁的一个热点问题,怎么样子去解决,然后这些项目的问题会让你先去讲你做的一些项目,那这些项目的过程当中,面试官会不断的去深入问你当中有没有遇到过什么样的问题,那这个问题你是怎么解决的啊,千万记住一句话,如果说你都遇到过问题都解决过,那肯定这个就不算什么问题的,你肯定能答出来,**那一旦面试官肯定会问到一些你没有遇到过, **
甚至于你一时半会解决不了这个问题,千万不要说千万不要说你没有也就是说你没有思路, 因为面试官一般来说问你这些事情的时候肯定是要考察你现场解决问题的一些能力啊,当然知道你搞不定,对吧,那你可以试想一下我你可以直接说,我之前没有遇到过,但是呢,我现在去想一下,我会以什么样的方式去解决这些问题,一定要这样子去说,然后尝试用不同的手段去解决,即便是达到最后是错的东西也没有关系, 因为面试官会觉得你对应的去会去做一些思考,然后呢之后呢,可能会问的是说哎呀,你最近在看一些什么书啊,是不是有持续学习,这个时候你一定要把自己压箱底的那些本事全都给搞出来. 你哪怕是不是最近看的, 是以前看的你也得说我最近在学一些什么样的东西,而这个时候,面试官就会觉得你是一个我刚才所说的一个持续学习这样的一个人。
-
面试内容举例-java基础 数据结构 中间件
关于面试的话, 我就大概介绍一下我自己个人挑选候选人的标准,包括我出去面试, 也是背面试题这样的情况. 首先就是刚才所讲的技术能力,一定要过关,就是我们所谓的一个Java开发的基础. 但是我以Java8举例子,因为阿里内部都是Java8的,java的基础,然后数据结构和算法,然后对应的一个互联网的常用中间件, 比如说像rabbitmq. 然后是数据库那分库分表,然后是分布式的事务. 首先是单体项目的事务,然后是分布式的事务,然后对应的这种配置中心,这些中介上面的东西首先要会用, 这个是根本. 如果说用都没用过再讲不清楚他怎么用那就完蛋了,会用,当然这个会用肯定不会让你现场写代码去接入. 他要说就比如说list知道他的几个常用的方法,我说的这个命令绝对不是普通的get,比如说还有list push ,然后set这种样子等等,然后最好深入的理解一下它内部的一个原理,比如说我举个例子,我们对应的Redis 里边是一种有一种set 这种样子的一种结构呐,set 这种样子结构,它内部的一个实现原理是怎么样的,然后呢,今日头条这种样的公司还会问,比如说人家是里边的bitmap这种样子一种不常用的数据结构对吧,只有迫于这种不常用的数据结构是怎么样的,那你只有比别人理解的更多,用的更多才可能脱颖而出。
-
面试-电商秒杀
电商项目 ,秒杀 然后这些东西搞定之后呢,他会问你一些项目的经验那比如说我们之前一般做电商的都会关注的秒杀这个东西对吧,那秒杀这个东西的话,你怎么样子去说,所谓的说秒杀这个东西你怎么样的去用对吧。
-
举例-大数据
拿推荐商品的推荐系统举例子,为什么要推荐因为我数据太多了,对吧,淘宝上千万上亿的SQ对吧,那么多的SK,我怎么推给用户,他想要的促成对应的用户的交易呢,对吧,数据量大这是第一个问题,那然后呢,数据量大的情况,下面,你要针对大数据去做一些工程化的处理,首先你需要具备大数据开发的能力,我们所说的oa的开发的能力,那大数据的开发就包含很多了,首先你的大数据的一个数据采集,就是我们所用的一个俘虏的那套对吧,数据,通过什么样的方式采集过来,有可能是前端的买点通过服用丢上来有可能是后端的数据库,通过hive的数据库挡那大数据的一套知识体系,在这边也就是hadoop的那一套啊,对吧,最基本的mapreduce,然后HDFS对吧,这两套东西必须得要有对应的概念,但是一般来说很少会有公司直接在这两个东西长开发一般都会选择比如说类似于CL的害我这种样子的一个害我的一个开发的方式也有类似于对应的一个我们可用sparksq去做做遇害,五再去做一层封装spark的家族,我们有18个stream可以通过对应的一个前端的买点的方式,把数据线过来,然后我们有时候我们当然我们也可以不用送对吧,用spark自身的一个bug吗,新闻列表去做对应的一个算法模型的训练,所以说,首先一个真正有能力的一个人工智能的一个所谓的一个科学家,他必须得要对大数据有对应的一个知识的能力的储备。
-
举例-算法
然后大数据搞完之后才是所谓的这个算法的一个模型训练,那为什么我说大数据算法,这两个东西非常非常重要,必须得要放在一起的,我们之前有一个做算法的同事,他写的算法的确是非常的精妙,但是问题是他搞到现在上去之后挂了搞不出来,结果为什么呢,他的一个算法的实现,完全没有考虑工程的问题,没有使用APP的这种药的设计思想,将所有的一股脑的一个训练数据,搞到内存里边,那自然就挂了单机的一个训练模型,对吧,那在大数据的情况下,根本就用不了,所以说推荐比如说巴克的吗,兄弟立本采用对应的流失的处理方式,用mapreduce的方式分片的去处理对应的,这样的数据,那就是说要把算法当作一个功能,能够工程落地实践可实现的最重要的一个数据结构去做对应的这样一个模型训练,然后掌握了这个东西之后。
-
关于掌握 了解 熟练
按照我刚才说的必须要有掌握和熟练掌握了解这些三个维度吗,对吧,了解的话就是大概会用一下掌握的话呢,就是用的比较好,那熟练掌握呢,可能知道它内部的一些原理,甚至于能够改造他的那些东西,那这个材料熟练掌握,然后呢,像springboot, springcloud. 我假设以这两个东西举例子,他必须得需要熟练掌握这种维度的,然后呢,像那种 release对吧,这种东西的话,那可能他要做到掌握就可以了,如果是做业务开发的话,就是说一个公司内部呢,都是讲究的是, 说你对原理性的一个了解是你拉开跟别人差距的一个很大的一个差距的问题。
-
专精
我举个例子,比如说我们还是拿秒杀这样的一个内容去做,你说你做了一个秒杀的项目,OK,我就问你秒杀秒杀的过程当中,你一个商品详情也比如说把它放到redis里边去减缓它的一个数据库的一个读操作的压力,那一旦我们的数据量把对应的一个redis本应服务器之间的一个网络带宽达满的时候,那你这个时候该怎么办。
-
jsp 会应用即可
工作篇
-
毕业后优先去大公司还是小公司?
刚毕业,多学 小公司工资再高也要去大公司
学习大公司体系 标准化能力以及做事方式
-
刚出来工作我们需要做什么?
刚出来工作 ,拓展知识面 ,融会贯通
确认发展方向 java?大数据? 并加入对应部门
将工作的知识点做好吃透
钻研某领域 12小时 7-9小时工作. 将工作做好,剩下时间学习
-
确定未来方向
目前的技术栈, 比如 Java, 大数据,人工智能的技术其实是分开的,如果说大家都想学的话可以, 如果说经济允许的话也可以. 但是为了就像我说的,为了自身后面更稳固的一个发展,必须要选定一个方向,然后坚持下去。
-
想要进入阿里的成长路线
然后呢,想进阿里. 这个成长路线这个东西,其实我刚才已经说了很多了,就是关于我们所说的面试当中的一些问题对吧: 基础算法,数据结构中间件,然后还有那个项目,然后还有自身的那种可现场可解决问题的一个能力, 架构方案的取舍, 设计模式,然后还有就是那个持续学习的那些能力,就这些东西,如果说都能做的很好,并且面试表现很好的话,那至少在阿里当中,做一个P6应该是没什么太大问题。
-
老技术短时间内不会被替代
这个讲到对应的这个区块链的问题,刚才漏讲了区块链这个技术呢,本质上来说,我的看法当中来说是没有任何的技术创新的它本质上来说是一个模式的创新对吧,他的加密解密链式算法,然后分布式协议,本质上来说是一个模式的创新,而并不是一个技术能力的创新。
-
对做过的项目进行深刻的思考
思考能力是非常非常关键的,也就是说就算你做了很多的项目,但对这个项目没有一个深入的一个思考,然后面试官会问你各种各样的一些问题都答不上来,而且也没有自身的一个思考突破的一个能力,那这个的话肯定是不行的。
-
工作和自我提升的平衡
首先把某个领域的知识点做好做透. 然后, 根据自己的时间安排来确定. 假设一天除去吃饭睡觉之外, 你至少要给自己留12小时时间. 然后在这12小时里, 你至少要花6-7小时在你工作上面. 不要想着先去学习或者拓展那些与工作无关的事情. 你作为企业的一份子. 首先要得到企业的认可. 因此需要将大部分精力也就是上班的的6-8小时的时间, 甚至在加班的九个小时以上的时间都花在工作当中. 将工作做好.
然后在剩下的三到四个小时时间, 不要偷懒. 去学习跟自己工作相关的一些知识. 比如我举个简单的例子, 你如果进去做的是电商业务的开发. 首先要将你负责的业务领域. 比如你做电商的一个商品模块, 你要把这个商品叫什么商品, sku, spu等相关技术专业词全都搞懂. 然后领导会给你安排商品相关的基础接口开发, 一个sql语句的这种模型, 你需要把这种模型做透. 然后另外的三四个小时把类目属性的代码都看一遍, 然后逐渐深入. 甚至把公司的框架的代码再逐步看一遍. 但一定要是跟工作相关的, 这样你的进步才可能快
总结: 工作为主, 业务为辅. 熟悉项目, 了解业务
-
只做一个面,一个点,对自己的成长十分受限
-
关于人工智能考研
我是觉得完全没有必要. 因为市场瞬息万变,你参与的对应的那些研究生这种样子的一个课题,可能在目前的市场上面已经被淘汰了,所以说完全没有必要。
-
将设计模式融入自己的代码习惯中
比如说去和第三方机构去做对接,你会发现你的业务代码越来越臃肿,很难维护, 那这种情况作为业务才能开发同学肯定就会很头痛,觉得这个业务定制化的东西越来越多了,那我当时就问他一下你为什么不用一个工厂类的一个设计模式,将这些商品通用的,比如说商品名商品属性,这种样子一个通用的逻辑放在一个杯子的,那里边处理,然后将不同的逻辑写不同的handle了,去做对应的不同的方式的一个处理这样的话就可以做到说你改了一段的代码,至少不会影响别的商品的体系,然后你的代码逻辑也非常非常的清晰,不用怕改错该漏在各个节点不会出现这种的问题,那这种就是我们使用设计模式去解开我们对应的, 一个业务的一个结构的一种模型. 这样我们的效率更高。
-
是不是代码敲的越多 ,技术越好?
如果你去为了做这个商品的模型写了几百万行的if-else, 做了各种各样定制化的逻辑搞得代码非常的丑陋,自己心情又不好,后来维护的人也觉得你这个人代码写得很挫. 跟你去写一个抽象的工厂类相对应的不同的操作封装掉这个代码量绝对是天差地远,但是明显就是后者的代码更优雅更好,而且对自己对业务的理解和思考更深更深入,然后后面的话我就会给对应的第二种同学以更多的一个所谓的薪资也好,或者是绩效考评也好的一个奖励,那他未来的发展,也就更远. 所以说最重要的不在于代码量,而是在于是说你在不同的一个阶段,对代码的一个思考.
那回到你说做中间件其实也是一样的中间件,有的时候甚至于代码量越少越好,因为哪怕是一个变量的命名,大家去看JDK这边里边对应的阶梯的代码,它的变量全部都是看不懂的,为什么会是那种可读性很差的代码呢,因为他追求的是效率, 追求的是你这边的一个运行的速度,因为它是基础框架. 当然业务层代码,不要这么搞,但是基础层的框架就是这个样子,所以说要看业务场景区分对应的所需的不同的技术或能力。
-
996技术栈有限,大厂可以坚持,小厂建议离职
-
如何看待30岁的程序员没有什么项目经验技术什么又好 然后呢,关于所说的30岁的程序员没有什么项目经验技术什么又好,我觉得呢,这个东西呢,本身是一个矛盾的一个过程啊,就是说没有什么项目经验,他的技术能力的好是怎么提升的这个其实是一个很大的一个问号,那如果说他的一个技术能力的好仅仅限于说他理论很好,比如说他把前面那些东西都搞得很通透,对吧,然后呢,比如说他把那些算法也都吃的很通透,但是呢,他怎么样子做到的呢,对吧,可能还是通过一些理论方式, 还没有一个项目的实战这种东西. 在阿里内部不会把它定义为技术哪里好,这是第一,第二考虑那个问题,就是所谓的30岁跟20岁的这样的一个差别,虽然说我之前讲究的是说,哎呀,对吧,
如果说你的一个能力只要不断的提升,你对应的那个技能树不断的丰富,那对应的疾病,年龄不是问题,但是试想一下,如果说一个人都没有什么项目的经验,他跟同等的一个20岁的一个程序员相比的话,它的一个优势到底在哪里,对吧,首先技能好不好没打上一个问号,那对应的项目经验好没有跟20岁刚毕业出来的几乎没什么区别,那然后就看企业要一个成本,对吧,要一个所谓的一个薪资对吧,那如果说这个30岁的程序员薪资要的还比那个20岁调高一点,让它的价值又在哪里,就算是薪资要的一样,甚至于比他还低,这个时候企业会考虑另一个问题,一个所谓的一个潜力问题,这很明显所有的东西都一样,那为什么不要一个20岁的程序员, 要一个30岁的. 毕竟20岁的一个可发掘性和一个潜力肯定会比一个30岁的要高对不对,所以说这个东西是一个要考虑的一个问题。
-
全栈和精栈的取舍- 小公司全栈 ,大公司精栈
然后关于全栈和和一个所谓的精栈这种样子的一个哪一种方式更加的一个吃香,那我个人是觉得是说首先第一点,如果说你所带的一个企业是一个需要多面手的企业,比如说创业型公司,那肯定是全在自强,然后你如果在大公司当中全暂时没有任何意义的,因为肯定需要一个专精的一个人才。
但是,凡事都有讲,但是哪怕你在一个需要专精的一个岗位上,如果说你拥有全栈的一个知识能力也就是我们所说的, 知识面的广度很高的话,那你就比别人更有可能做一个升职的对象,因为你比如说你一开始是做后端出身的,你做了后端的脸,然后做了后端的技术总监,你要做一个CTO这种级别,那你试想一下,如果说你对前端的技术完全不了解你怎么样子去管理对应哪个团队呢,所以说他是一个所谓的一个充分的一个条件,但是不代表他是一个必要的一个条件,所以说还是那句话,在有时间精力的情况下面尽可能的深度,然后再去拓展他这个广度,两者都是需要的所有的一个技术知识的情况是越多越好。
-
深挖技术!!!
创业这个东西呢,It的创业风口呢,很明显,最近几年来说都不行啦都不行了,因为五年前我是自己创业了,当时创业还比较容易,但是最后还是失败了,然后呢,关于程序员创业这个东西更是一个天方夜谭,很少有人通过技术创新,能够在我们的一个中国这种大市场的创业企业来说,去做稳定的那如果说要通过业务或者产品创新的方式,你就必须得要有一个很靠谱的,这样的一个合伙人,那这种样子的人才其实是少之又少,真的是少之又少,风险会非常非常的大,所以说呢,我建议希望大家现在刚毕业出来,或者说怎么样的,一定要先深挖技术,不要去创业公司浪费时间,也不要想着跟着同学同事一起去创业,因为这种成功的概率非常非常的小很可能就把自己最美好的就是技术,能够最接近的快速经济的那几年给荒废掉了。
-
关于技术好接私活问题
技术好接私活的,是不是对的这个东西呢,其实呢,答案肯定是对的,就是说你技术的很好,你接私活接到的概率就比别人更高,但是接私活成功与否呢,本质上来说,还是看你的一个人脉的问题以及你对客户的一个幸福,关于接私活这个事情呢,我是觉得如果说大家手上特别的缺钱可以去接一下,然后如果说呢并不是特别的缺钱,我个人感觉,不要把时间浪费在接私活这种事情上面,有些人可能觉得接私活可以锻炼自己的技术,这个其实全是扯淡的, 为什么,因为其实和这个东西呢,可能在短时间之内能够锻炼自己的技术,但是大部分的时间都是浪费的会再做一些重复的一些劳动对你的一些技术没有任何的提升,有这些时间点不如去看一些自己没有涉足过的一些领域。
-
就业最好先选择java
然后关于下面那个同学问的那么一长串的问题啊,就是说数据开发和对应的一个Java开发,我个人是感觉啊数据开发这个东西呢,最近呢也比较火,也比较好, 之前就很火,当然没有人工智能那么火,但是呢,就业择业面上来说的话肯定是java的路更宽,那就看你个人的一个喜好啊,我个人建议还是坚持java这条路走过去,如果说你想进阿里的话,然后呢,它内部呢,那些什么外企不外企呢,肯定是要英语好嘛,对吧,这个是肯定的,但是呢,外企对应的一个互联网当中所用到的一些技术其实实在是不太敢恭维, 对应的一个自身的一个发展,反正至少我带过的那些外企用的技术都是很老很老的,然后呢对自己的一些个人的发展并不是特别的好,我不清楚,为什么你可能偏向于进外企, 但是其实整个一个互联网行业上面来说的话,但是在中国的企业内部发展还是会好一点。
-
服务网关
就是他们内部还在做一些service,不是说不理他啊,是service也就是无服务端的,这样的一个东西,那什么叫无负担,那就是你要上一个功能,对吧,你什么都不用干你,那就搞一个前端就完了,那对应的,为什么呢,会有这种无服务端的东西呢,不代表他真的没有负担,而是呢,他们把对应的阿里内部的所有的资源整合,做了一个中台化的这样的一个服务的能力,也就是说这个中台化的服务的能力,具备了阿里内部所有的一个中台服务的功能,比如说商品啊,订单啊什么的啊,都在这个中台那提提供出来了,然后呢,你要做一个新业务开发的时候呢,完完全全可以从周覃当中抽取一些模块做一些组装,做一个简单的前端就可以把这个东西上线了,那这种药的方式呢,可以很大画的一个节省一个人力成本,这也是软件开发行业啊,不断追求的对应的这种这种嗯就相对来说这种实现的模式吗,对吧,就是说做得更好,做得更快,当然呢,这现在的设想是很好的,但是呢,其实呢还是要投入巨大的一个人力成本去做的,这也是呢,为什么呢,我说大家一定要追求大厂,追求大公司,因为只有在大公司内部不光是为了一个稳定的薪水和收入. 只有在大公司内部才能让你有机会可以去玩到这些东西,因为小公司的内部的话,他其实更关注的是业务的一个发展和生存吗,大公司其实也关注. 但是呢,大公司会做更多的一个创新的尝试,能够拓展你的一个眼界。
-
自己刚步入工作时----多听,多听别人讲
刚入职的时候,如何快速提升这个事情是这样的啊,首先还是要看一下,就是说你做的这一块的东西,我拿业务举例子,如果说是业务类型的开发的话最好的方式就是多参与项目多听同事去讲, 看源码的话只能是辅助,你想一个阿里这样的大公司几万个系统,你肯定不可能去看源码,看得出来的更多的是说你在跟别人合作的过程当中,比如说我做商品模块,你做订单模块那然后的话,我们在合作的过程当中肯定会去聊我们的接口的适配方式是怎么样的,你可以去问一下同事说你这个订单的模型是怎么样啊,你也可以把你商品的模型去跟同事讲一下. 很快的就能把业务对应的这个方向串起来,然后结合对应的这个产品业务的理解再去看源代码,这样的话,他的一个提升方式就很快。 那另外一方面,比如说你是做中间件的,那这个东西的话,就是说靠源码靠实战这样的方式去多做一下,但是就是说看源码这个东西相对来说是比较慢的,如果说在没有场景的情况下面去看源码会非常非常的累,要快速提升自己的东西就是要多做项目,然后多跟同事交流。 没有做过大型的项目没有关系,就算是做过小型的项目能够把小型的项目当成那些技术点说清楚,然后对应的一个技术方案,弄透也是一个非常非常好的。 那我还是拿对应的一个秒杀,举个例子,大家可以去关注一下对应之前我录的对应的一个课程,那他其实也没有什么很大型的一个项目的能力,他也是单机的一个应用,然后用了release用了对应的一个PDF的消息队列,但是他的一个设计思想是放在里边,比如说我们怎么用多级缓存的方式去解决对应的一个性能瓶颈的问题,然后怎么解决数据行锁的问题啊, 对应的这种样子的一个技能的一个应用的一个能力是一个通用化的并不一定要项目很大,关键的是说你对这个项目有没有一个深刻的理解,然后不断的在他上面做改进。
-
35岁为什么是程序员的分水岭 一定要有一个立根之本 ,花时间自学 ,记笔记!!! 技能树 ,价值,年龄 35岁年龄精力跟不上 切记:你能为公司创造多少价值才是公司是否决定保留你的原因 ,而不是年龄 确定目标 ,为实现目标努力 ,不断成长 能力?精力对企业的价值是否一直是上升的? 保持充足的睡眠 ?多多锻炼身体
-
为什么都在讲35岁会被淘汰?
那这个又回到之前, 我说的那个问题. 关于技能树进而自己的价值和年龄的这个问题. 就是说一个人的技能的成长就是一开始比较快, 然后到了35岁这个年纪就会放平缓甚至于下降. 但是个人的薪资又会不断会增长, 不管是通过跳槽还是通过其他什么方式. 随着一个人年龄的不断增长, 生活琐事会不断增多, 比如刚毕业的前几年, 因为不是单身, 没事就去学学技术. 但是过了几年之后, 结婚并且有孩子了, 生活的琐事就自然而然的增多, 自己的精力也会慢慢的跟不上.
-
紧接上面举例
我自己是八八年的一个程序员,然后现在的话也32岁,但是呢,其实呢,在阿里内部,35岁以上的程序员一抓一大把一抓一大把,包括之前我其他的公司的84年82年的都是35岁以上,那我其实觉得这个东西本身来说不是一个太大的一个问题,因为对应的一个技术人才的一个稀缺性,虽然说现在行业不景气,但是对高端人才的一个稀缺性来说是非常的要好, 是非常的高的,但是如果说你到了40岁还是一个普通程序员. 所谓的真正意义上的油腻年人,那他可能就比较麻烦. 那一般来说呢,如果说到40岁程序员还没有做到管理层或者哪怕做到了管理层也会面临一些职业危机,比如说转战产品,对吧,转战架构师或者转行都有可能都有可能,但是呢,我是觉得就目前来看,没有必要去太多的扩散对应的,这样的一个恐慌的情绪。
-
最后忠告
忠告就是外包公司能不要去尽量不要去或者说是一定不要去耽误前程,没有任何意义。
作者介绍

时间静止不是简史
一个兴趣使然的程序员