工做年限:8 年服务公司:4 家(含四大门户中的两家)最近职业:Java 架构师职场关键词:社交平台、高并发系统架构设计、技术团队管理、多款从零到一的产品城市!java
六年间,这位职人呆过四大门户中的两家,完成了工程师到架构师的蜕变。经手多款从零到一产品的开发和增加,也经历国内最大社交平台亿级流量和用户的架构设计及优化工做。工做上思路清晰、认真负责,是同事们心目中优秀 Problem Solver。程序员
问:介绍一下你本身?面试
答:我 2008 年硕士毕业后,前 2 年在一家传统 IT 公司,最近 6 年在互联网公司,历任 Java 开发工程师、高级工程师、架构师等职位。工做内容上,经历过多款产品从零到一的诞生开发过程,也经手过国内用户、内容和流量最大的社交/社区产品的架构改造优化工做,有丰富的社交产品的研发经验,目前在一家创业公司担任技术合伙人。算法
问:你擅长的技术领域是什么?编程
答:擅长的编程语言是 Java、Golang、Scala,熟悉程度依次递减。专一于高性能、高并发系统架构设计和实现。后端
问:平时怎么向家人解释你的工做是作什么的?性能优化
答:通常不详细解释,即便解释了也是徒劳。因此他们会按照本身的理解来描述个人工做,好比修电脑的,好比卖手机的。服务器
问:你以为程序员能够当一生吗?有没有想象过本身 40 岁时在作什么?网络
答:应该仍是会从事开发方面的工做吧,外企中有不少上了年岁的程序员啊。架构
问:合做过程当中,你以为优秀产品经理最重要的三个特质是什么?
答:逻辑思惟能力;对数据敏感;不错的语言和文字表达能力;固然若是能写点儿代码就跟好了。。。
问:你最欣赏的软件工程师是谁?
答:Linus Torvalds 和 Doug Lea
问:在你心目中,具有哪些素质才能称之为全栈工程师?
答:我以为要成为一个全栈工程师首先要有好的学习能力,对新的技术可以摒弃偏见,快速了解它解决的问题以及如何解决的;其次要对技术保有好奇心;最后是有极强的动手能力,不拖延,说干就干。
问:你以为一个优秀 CTO 最宝贵的品质是什么?
答:广阔的技术视野,让先进的技术解决实际的问题;
熟悉所在的业务领域,根据所在领域的实际状况肯定系统架构和系统容量;
团队管理能力,构建团队人才梯队,打造一个技术型团队。
问:你以为世界上存在最好的编程语言吗?若是有,是什么语言?
答:没有最好的,只有最合适的。任何语言都是为了解决某一方面的问题而出现,因此无谓好坏。
问:工做中最喜欢或讨论的设计师分别是什么样的?
答:有产品思惟,可以和产品经理一块儿确认交互细节甚至产品方向的设计师。
问:若是JAVA的软件工程师 3 条建议,你会写什么?
答:
重视基础知识(算法、操做系统、网络等等)
拓宽技术视野。多去参加技术沙龙,看看别人的牛逼是怎么吹的;多关注感兴趣的开源项目
保护好颈椎和腰椎(⊙o⊙)…
问:作了 8 年软件工程师,如今对本身的定位是怎样的,对下一份工做有什么样的期待?
答:目前我对本身的定位是一个架构师或者是团队 Leader;
对于下一份工做,要么是在一个有着浓烈技术氛围和高并发平台的大型公司中作一个螺丝钉;要么是在有发展前景的创业公司作一个领头人;
公司阶段最好在 B 轮或者之后;
行业方面除了游戏,其余都 OK。
问:你当时是怎么学习的?
答:架构师是一个充满挑战的职业,知识面的宽窄每每决定着一个架构师的架构能力,因此在这一点上我比较同意你的学习方式,就是要阅读大量的技术书籍,但我但愿你不要仅限于软件相关的书籍,常常泡技术论坛,一方面能够结交朋友,一方面能够增长本身的知识面,还能够加入一下技术博客,还能够加一个架构群交流。
PS:推荐一个JAVA进阶架构交流群:529722406
一、具备1-5工做经验的,面对目前流行的技术不知从何下手,须要突破技术瓶颈的能够加群。
二、在公司待久了,过得很安逸,但跳槽时面试碰壁。须要在短期内进修、跳槽拿高薪的能够加群。
三、若是没有工做经验,但基础很是扎实,对java工做机制,经常使用设计思想,经常使用java开发框架掌握熟练的,能够加群。
四、以为本身很牛B,通常需求都能搞定。可是所学的知识点没有系统化,很难在技术领域继续突破的能够加群。
5.阿里Java架构师,分享知识,多年工做经验的梳理和总结,带着你们全面、科学地创建本身的技术体系和技术认知
问:你以为Java架构师了解的东西有哪些?
答:初级Java程序员的重心在编写代码、运用框架->中级Java程序员重心在编写代码和框架->高级Java程序员技术攻关、性能调优->架构师 解决业务和技术问题
中级后端程序员提高薪资的重要点在于:
1.项目经验:支付,通知,IM,短信等公用模块快迅实现。
2.代码质量:抽象封装,日志规范,发布流程,快速定位。
3.性能优化:服务器的内存,硬盘,数据增加量,带宽,系统中最消耗性能的地方,一个请求须要调用哪些服务,每次访问DB的时间是多久。
4.架构能力:分布式,负载均衡,读写分离。
5.选型能力:JMS,SOA/SCA/微服务,MongoDB/Redis/Memcache,Java/Go/NodeJS等。
6.管理能力:团队技术分享组织,项目风险控制,任务和工做的分配
7.需求评审能力:很快给出反馈建议,多长时间可以完成,技术风险点在哪,有没有花费时间长,又不重要的需求。
8.Geek能力:对某一个技术点研究的特别深刻,好比说Nginx的配置,设计,构架。ElasticSearch的设计,优点。
问:你之前是如何学习的?有没有Java高级学习资料?
答:我规划了一些资料体系图,能够了解一下。