为了账号安全,请及时绑定邮箱和手机立即绑定

【花式填坑第4期】如何成长为合格的Java架构师

/ 猿问

【花式填坑第4期】如何成长为合格的Java架构师

慕女神 2017-05-17 20:10:41

http://img.imooc.com/591c386000012ed407201046.jpg

没错,第四期的花式填坑又来了!

这期的话题是如何成为Java架构师,当然前提你要是一个高级的Java工程师

对架构师不了解的小伙伴,可以马上入坑进行提问了↓


http://img.imooc.com/591c3adc000144b302330077.jpg

Java作为已经存在了20多年的开发语言,在不同阶段总会有一些应用使TA再度青春,JVM也早已不再是Java的专属。


那么,对于外延甚广的一门语言和规范来说,作为Java程序员的我们,该如何规划自己的发展路线?

如何高效的学习技术?如何根据自己的兴趣特点进行有效的对应选择?


欢迎参与话题,与老师共同探讨优秀Java架构师的必经之路。


http://img.imooc.com/591c3c0b0001353902330077.jpg

http://img.imooc.com/591c3c490001b55307200771.jpg

Moocer老师的个人主页,可点击查看

--------------------------------------------------------------------


话题交流时间:5月19日--5月21日

话题交流方式:在下方进行提问,老师会在活动期间一一给大家回复的


http://img.imooc.com/591c3da40001de5307201132.jpg


查看完整描述

44 回答

?
996木马

老师 学习了Java有段时间了 用java工作也快1年了吧    现在有时候也学习其他的语言 学习其他语言的时候 感觉java是一门古董语言 很多语法糖都不怎么好用 而且java更新速度也蛮慢的吧  而且随着人工智能的兴起  Python现在大火  而node也异常火爆  网上说以后做web  可能只剩下一门语言  那就是js  我其实觉得蛮有道理的  不知道老师怎么看 还有 准备学习一门第二语言 老师推荐什么语言啊     哦哦 Google io大会最近将 Kotlin 推荐为android开发默认语言  这个会对java有大影响吗   问题比较多    还请老师原谅

查看完整回答
59 反对 回复 2017-05-18
  • moocer
    moocer
    语言之间是想通的,曾经的Ruby、Ruby On Rails也有要干倒一切的架势。对于语言,我是这么看的,在大方向上处于一个相对平衡和稳定的状态。10年20年内,能撼动java在大型应用以及服务端领域的语言出现的可能性不大,毕竟有那么多的应用都是用java构建的。 Python作为一门胶水语言(官方的说法),它的目的也不是干掉java,NodeJs也一样,不可能成为java的替代者。各种语言都有其适用的领域。 再说一下你觉得java的语法糖问题,java是要保证向前兼容的,这个历史包袱不容忽视,更新速度慢也可以理解,所有语法糖好的语言,都是比较年轻的,所谓年轻气盛,但是java老当益壮。 总结一下,java正值壮年,还会坚挺,至于在学一门语言,我建议看看python。
  • qq_楼主_03153249
    qq_楼主_03153249
    Go语言
  • 996木马
    996木马 回复 moocer
    谢谢moocer老师的指导 更加期待moocer老师的下一门实战带来更多干货
?
yanrun

请问老师,现在微服务很火,老师对微服务的前景怎么看,saas,paas各有什么优缺点,在他们之间小型企业该怎么选择,有什么需要注意的地方

查看完整回答
11 反对 回复 2017-05-18
  • moocer
    moocer
    按照现在主流说法,微服务是SOA架构方式的落地,前景应该很好。 对于saas,个人觉得在国内首先要解决的是信任问题,技术上的障碍应该没有。 paas,这个东西夹在saas和iaas中间,不好评价,现在做paas的企业也有不少,仁者见仁智者见智,既然存在,说明都是有市场的,至于市场空间多大,没做过调查。 个人认为小企业在选择时候,有几点要注意: 1.平台(即公司)的稳定性; 2.技术的成熟度; 3.成功的用户案例; 4.金钱成本与运维成本。
  • yanrun
    yanrun 回复 moocer
    谢谢老师
  • moocer
    moocer
    客气了,欢迎继续探讨
?
第五若雪

大佬好,请教架构应该具备哪些基础条件,一般从初级开始几年可以达到架构的要求?

查看完整回答
11 反对 回复 2017-05-18
  • moocer
    moocer
    没有明确的基础条件,架构范围也比较大。我觉得需要以下几点吧: 1.jdk要熟悉,核心类库原理要知道; 2.三方框架要多了解,使用方式及原理,这样才能够在选择时能够客观的对比; 3.实践,不断的实践,在实践中积累经验。 至于需要几年,这个不好说,有人3、5年、有人7、8年,有人可能一直都到不了,还看个人的努力程度和兴趣所在吧。
  • 第五若雪
    第五若雪 回复 moocer
    谢谢前辈指点,那我就先把JDK,和一些常用框架,插件之类的原理机制搞熟悉
?
望远

老师好,JAVA学习了很长一段时间了,基础已经掌握,但是该如何进阶呢?一位合格的JAVA架构师应该掌握那些技能?望老师解惑。

查看完整回答
13 反对 回复 2017-05-17
  • moocer
    moocer
    简单的说,进阶需要的是从使用到原理的过程,进阶就是要了解原理(jdk原理、框架原理),然后做到灵活应用。看书建议看一些讲原理、讲思想的说, 一个合格的java架构师,要掌握各种常用框架的原理、应用场景、以及在不同场景下的二次处理,特殊场景下还需要自己开发特定的框架;还有就是要结合业务进行技术选型,需要经验的积累。 罗马不是一日建成的,慢慢来,找准自己的方向,不要局限于使用,要多看、多了解原理。 比如说:jvm的原理是不是了解了?Spring的源码看了多少?如果自己搞一个该怎么做?
  • 望远
    望远 回复 moocer
    谢谢老师的指导,我会继续努力的`(*∩_∩*)′
?
qq_想象中_03627814

老师你好,我是一名java爱好者自学java有一年多了,目前本科还没有毕业,我就是想问问我现在的阶段我应该对数据结构与算法,Linux,JVM要了解到什么程度,或者说我应该在什么时候去深入了解这些

查看完整回答
8 反对 回复 2017-05-19
  • 吉首大学第一六爷
    吉首大学第一六爷
    我工作一年,小菜鸟,我建议你多学数据结构,算法,打好基础
  • 红叶斜落我心寂寞
    红叶斜落我心寂寞
    工作一年多,感觉数据结构,算法,设计模式都会影响你编程的方方面面,直接决定你代码的质量,当然外包或者小公司是不考虑这个的,他们只要求实习生半个月内上手干活,想想都可怕
?
DebugLife
老师,现在企业级开发是使用SSH的频率多一些,还是SSM多一些?现在PHP较火,我有些同学已转去PHP,我想问一下,用Java作为后台服务器语言是否还有优势?有点迷茫,希望老师可以解答一下
查看完整回答
8 反对 回复 2017-05-18
  • moocer
    moocer
    企业应用ssh偏多,互联网里面用springmvc、spring、MyBatis的偏多。 可以肯定的说java作为后台服务器语言的优势一直都在,而且会长时间保持。
  • DebugLife
    DebugLife 回复 moocer
    谢谢老师的解答
  • moocer
    moocer
    你好,欢迎继续交流
点击展开后面1
?
D明日边缘

虽然还是学生。对学javaweb感觉越往后走要求越多,从功能实现到分布式到大数据,有时候对于一些小功能实现总是没什么思路,对一些知识原理总是一下迷惑,一下又豁然开朗。我很认同只有实践,操作,项目才能成长的观点。问问对于项目怎么练手,大佬有什么建议?大佬初期和后期是怎么学习进阶的?给点项目资源也可以的吧。

感谢回答。

查看完整回答
7 反对 回复 2017-05-19
  • moocer
    moocer
    实践,主要还在在工作中、或者朋友有真实需求,否则自己假设一个项目,很容易坚持不下去;而且假设的项目有明显的缺点,比如:应用场景假设不真实。 建议在实际工作中锻炼、成长,如果实在没有,可以假设项目,但是要有参照物,比如参照淘宝、京东,尽量还原他们的真实使用场景,尤其是在访问量及技术应用上。 项目资源,这个你指的是什么?
  • D明日边缘
    D明日边缘 回复 moocer
    学习提高的资源。
  • D明日边缘
    D明日边缘 回复 moocer
    nice,感觉到了业余项目和专业应用的一般差距,工作应用才能成长。
?
等着给你说晚安
我也是学了java有段时间,经常看到java和php在web方面的性能比较,大部分都说php抗并发的能力强,不知道这样的观点对不对,或者java在更高性能的服务器上才能发挥出它的优势,希望解惑!!!
查看完整回答
7 反对 回复 2017-05-18
  • moocer
    moocer
    在web端的性能,不好评价,在服务端java完胜。只能这么说,好多公司的前端也是用java的,比如淘宝,他们的性能还可以吧。。。
?
筱健

大神我学习java已经有两年了,为什么我的基础还是不扎实呢?逻辑方面完全写不出来。到底我哪里出错误了。望大神指点迷津

查看完整回答
7 反对 回复 2017-05-18
  • moocer
    moocer
    具体问题具体分析,这个不敢说给你的建议都是有针对性的。有几点需要注意一下吧。 1.注重平时积累; 2.多研究原理、源码; 3.在实践中应用自己研究的技能并不断提高。
  • 筱健
    筱健
    原理和源码我大概读懂,就是自己写的时候就蒙了
?
醉侠
老师,请问下如何提高自己的编程能力,感觉公司框架里用到好多东西,redis,druid等好多类似的需要学的东西,入职后这些框架都已经搭建好了,自己没有实践的机会,只能业余时间网上看博客或者视频粗略了解,这样学习对吗?总感觉好多东西看过都是似懂非懂,难以实践或者形成比较清晰的逻辑思路。自己平时也多是写一些业务代码,怎么样才能有搭建全部架构的能力,?这样能搭整个框架的人是不是就算是架构师了呢?请教一下成熟的学习方法。
查看完整回答
6 反对 回复 2017-05-19
  • moocer
    moocer
    公司已经搭建好了,那就了解下公司是怎么搭建的、参数怎么设置的以及为什么这么设置,为什么采用这些框架或者技术组件。 原理当然要了解,这个就得靠自己学习了。 能搭起来,算是向架构师迈出了重要的一步。更重要的是为什么要用这些技术、怎么使用这些技术、针对不同的使用场景怎么调整技术的组合以及开发属于自己的特定技术框架。
?
奶油味的葱
老师 感觉JAVA的各个分支都在被其他语言侵蚀 个个新兴语言个跟加简单化 关于这个趋势老师怎么看
查看完整回答
5 反对 回复 2017-05-18
  • moocer
    moocer
    江山代有人才出,各领风骚数十年。新兴的语言没有历史包袱,可以使用当前最流行的方式,也表现的比较简单,这是优势不可否认。客观的说,java在服务端的优势至今没有任何一门语言可以与之媲美。说java的各个分支都在被其它语言侵蚀,有点夸张。作为一门不算古老的语言,java的活力一直都在,java9也要发布了,对模块化的支持是我最关注的一个点。 每种语言有它的特点,互相之间很难说谁取代谁。
?
丶似浅

你好老师,请问近三年javaWeb工作经验,接触的一直是些中小型,并发小于500左右的项目,向高级java转型应该具体怎么做?如此工作经验,若是打算面一些大型互联网公司会不会太有挑战。目前本人在研Mybatis源码、java设计模式、以及在读《深入理解Java虚拟机》,老师可否有些其他方面实际点的建议。

//img.mukewang.com/591f15430001f17d05840500.jpg

查看完整回答
3 反对 回复 2017-05-19
  • moocer
    moocer
    当你看完这些东西的原理、源码后,能不能自己写一个呢?这也能够检验你是否真的理解了。 有一句话已经在回答其他同学问题的时候重复说过多次了,那就是学习之后要应用,不断的积累实践经验。 比如说:hashmap的原理,利用这个原理我们可以在实际工作中解决哪些问题?concurrenthashmap的原理,同样应用这个我们能解决哪些实际的问题。
?
qq_昔日曾经_0

大神你好请问学了java开发会有女朋友吗?

查看完整回答
8 反对 回复 2017-05-18
点击展开后面5
?
幕附


需要读什么书?怎么快速的学习一门新技术?

查看完整回答
4 反对 回复 2017-05-17
?
hunterlodge

老师好,我想请教一下老师是如何平衡技术的广度和深度的。作为架构师,无疑需要了解很多方面的技术,从编程语言(如需要在不同的场景使用不同的语言)到算法;从各种工具的使用到框架的原理;从需求分析、技术选型到运维(如服务器的日常监控、数据分析)等等,需要学习和思考的知识非常庞杂。而与此同时,时常会触碰到一些较深(如某个系统调用、jvm的内部实现或者某个框架的深坑)的技术问题,因此也需要在深度上有所把握。但人的精力毕竟是有限的,我现在就陷入了一种焦虑,觉得要学的东西让人喘不过气来,请问老师是怎么解决这个问题的呢?

查看完整回答
2 反对 回复 2017-05-21
  • moocer
    moocer
    你已经考虑的很全了。一个人精力确实有限,这是事实。但是我们可以一步一步的去完善自己的技术,作为一个架构师,广度与深度都要有,缺一不可。jdk及jvm相关内容是基础,各种框架以及其原理是工具,从基础开始、熟练使用工具、掌握工具的各种变形应用于扩展开发。一口吃不了一个胖子,不能着急,也不要焦虑。一步一个脚印的往前走,把目标分解成多个步骤,在执行每一步的时候紧盯着当前目标,这样压力就不会太大了。
  • hunterlodge
    hunterlodge
    谢谢您的回复!我觉得我可能着急了 :)
?
erutdioup8556

老师你好,我今年6月毕业,也快了,差不多实习一年了,学习方法多数是看视频的,也买了慕课的视频,我想问下,工作上的大神,技术经理,高级工程师他们是怎么成长呢?除了工作年龄外,他们会去看教学视频去学习东西的吗?还是直接网上找学习资料和看官方文档直接上手项目的???我问这个问题是主要我现在还是初级水平,很多技术点是看教学视频学习到的,但是我不会一直看视频来通过学习技术,是不是初级刚刚都是这样的呢??

查看完整回答
2 反对 回复 2017-05-21
  • moocer
    moocer
    学习技术的途径有很多,看书、博客、视频等等,但是深化理解只有一条路,那就是使用。所以建议你可以通过各种渠道扩展自己的知识,但无论如何都要将知识应用于实践,在实践中不断的深入理解,这样才能将知识转化为自己的生产力。 初级的时候,肯定会感觉好多东西要学,这是正常的,但是也不要慌。给自己定一个大目标,然后将大目标分解成若干个小的阶段,紧盯着每个小阶段的目标,一步一步的执行、完成。相信你会有大的提升的。
  • erutdioup8556
    erutdioup8556 回复 moocer
    谢谢老师
?
navysails

老师您好!Java已经诞生了20年,自己从事JavaWeb开发刚好三年,而随着人工智能、机器学习的发展,更多、更新的语言、技术出现,并且大火。请问一下Java以后的前景如何?该如何规划自己的发展路线?如何高效的学习技术?

查看完整回答
2 反对 回复 2017-05-19
  • moocer
    moocer
    java以后的前景我不敢妄加评论,只能说我看好java。 路线,这个要看你往哪个方向发展,java也包括服务化架构和数据分析,择其一或者兼具。 高效学习技术的方式,个人感觉是原理-案例-实践-原理
  • navysails
    navysails 回复 moocer
    感谢老师!
?
雲中菩提

老师好, 我的新电商项目中需要用到搜索引擎,但以前并未接触过。在solr和elasticsearch之间应该选择哪个,它们之间各有什么优缺点,哪个可以更快速地上手。另外,Redis缓存和搜索引擎在项目中的功能定位,应怎么划分?有了搜索引擎,是否就无需将商品缓存到Redis中了?

查看完整回答
2 反对 回复 2017-05-19
  • moocer
    moocer
    1.es在接口友好性以及集群部署上要好于solr,两者都是基于lucence的,本质没有区别; 2.缓存是为了快速找到数据,降低对数据库压力的; 3.有了搜索引擎,缓存仍然也是需要的,而且必不可少。举个例子来说,唯品会没有搜索功能,但是缓存是一定有的。
?
weibo_Dave_55004_0

javaweb前后端分离是如何进行的?分别需要哪些技术,目前主流的技术是?哪些逐渐淘汰了,为什么?


查看完整回答
1 反对 回复 2017-05-21
  • moocer
    moocer
    你的问题有点大。我尝试回答一下吧。 前后端分离是通过远程调用来实现的,需要远程调用的协议、数据压缩与解压方式、调用端与被调用端的api等等。主流方式可以通过http协议,如SpringCloud;java语言的dubbo;thrift等等。 到目前为止,没有真正被淘汰的。只有适合不同使用场景的就似乎。
?
漠漠丶轻寒

目前主要是使用java进行电商类的网站开发,如果接下来想继续学习,有哪些方向呢?都需要做哪些准备?

我目前是在考虑读在职的同等能力申硕管理类,还是PMP

不过都还在了解阶段,这方面能提供建议的实在不多

谢谢老师


查看完整回答
1 反对 回复 2017-05-21
  • moocer
    moocer
    学位、pmp、继续深入了解技术,应该是三个方向,当然也可以兼顾。我建议你首先弄清楚自己的目标是什么?这三个的侧重点各不相同。 在找准自己的目标之后,再深入学习。
首页上一页123下一页尾页

添加回答

回复

举报

0/150
提交
取消
意见反馈 去赚学费 常见问题 APP下载
官方微信