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

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

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

慕女神 2017-05-17 20:10:41
没错,第四期的花式填坑又来了!这期的话题是如何成为Java架构师,当然前提你要是一个高级的Java工程师对架构师不了解的小伙伴,可以马上入坑进行提问了↓Java作为已经存在了20多年的开发语言,在不同阶段总会有一些应用使TA再度青春,JVM也早已不再是Java的专属。那么,对于外延甚广的一门语言和规范来说,作为Java程序员的我们,该如何规划自己的发展路线?如何高效的学习技术?如何根据自己的兴趣特点进行有效的对应选择?欢迎参与话题,与老师共同探讨优秀Java架构师的必经之路。Moocer老师的个人主页,可点击查看--------------------------------------------------------------------话题交流时间:5月19日--5月21日话题交流方式:在下方进行提问,老师会在活动期间一一给大家回复的
查看完整描述

26 回答

?
996木马

TA贡献22条经验 获得超303个赞

老师 学习了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

TA贡献317条经验 获得超240个赞

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

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

TA贡献14条经验 获得超19个赞

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

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

TA贡献1017条经验 获得超1032个赞

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

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

TA贡献2条经验 获得超9个赞

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

查看完整回答
8 反对 回复 2017-05-19
  • 吉首大学第一六爷
    吉首大学第一六爷
    我工作一年,小菜鸟,我建议你多学数据结构,算法,打好基础
  • 红叶斜落我心寂寞
    红叶斜落我心寂寞
    工作一年多,感觉数据结构,算法,设计模式都会影响你编程的方方面面,直接决定你代码的质量,当然外包或者小公司是不考虑这个的,他们只要求实习生半个月内上手干活,想想都可怕
?
D明日边缘

TA贡献13条经验 获得超28个赞

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

感谢回答。

查看完整回答
7 反对 回复 2017-05-19
  • moocer
    moocer
    实践,主要还在在工作中、或者朋友有真实需求,否则自己假设一个项目,很容易坚持不下去;而且假设的项目有明显的缺点,比如:应用场景假设不真实。 建议在实际工作中锻炼、成长,如果实在没有,可以假设项目,但是要有参照物,比如参照淘宝、京东,尽量还原他们的真实使用场景,尤其是在访问量及技术应用上。 项目资源,这个你指的是什么?
  • D明日边缘
    D明日边缘 回复 moocer
    学习提高的资源。
  • D明日边缘
    D明日边缘 回复 moocer
    nice,感觉到了业余项目和专业应用的一般差距,工作应用才能成长。
?
等着给你说晚安

TA贡献2条经验 获得超7个赞

我也是学了java有段时间,经常看到java和php在web方面的性能比较,大部分都说php抗并发的能力强,不知道这样的观点对不对,或者java在更高性能的服务器上才能发挥出它的优势,希望解惑!!!
查看完整回答
7 反对 回复 2017-05-18
  • moocer
    moocer
    在web端的性能,不好评价,在服务端java完胜。只能这么说,好多公司的前端也是用java的,比如淘宝,他们的性能还可以吧。。。
?
筱健

TA贡献2条经验 获得超7个赞

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

查看完整回答
7 反对 回复 2017-05-18
  • moocer
    moocer
    具体问题具体分析,这个不敢说给你的建议都是有针对性的。有几点需要注意一下吧。 1.注重平时积累; 2.多研究原理、源码; 3.在实践中应用自己研究的技能并不断提高。
  • 筱健
    筱健
    原理和源码我大概读懂,就是自己写的时候就蒙了
?
醉侠

TA贡献1条经验 获得超6个赞

老师,请问下如何提高自己的编程能力,感觉公司框架里用到好多东西,redis,druid等好多类似的需要学的东西,入职后这些框架都已经搭建好了,自己没有实践的机会,只能业余时间网上看博客或者视频粗略了解,这样学习对吗?总感觉好多东西看过都是似懂非懂,难以实践或者形成比较清晰的逻辑思路。自己平时也多是写一些业务代码,怎么样才能有搭建全部架构的能力,?这样能搭整个框架的人是不是就算是架构师了呢?请教一下成熟的学习方法。
查看完整回答
6 反对 回复 2017-05-19
  • moocer
    moocer
    公司已经搭建好了,那就了解下公司是怎么搭建的、参数怎么设置的以及为什么这么设置,为什么采用这些框架或者技术组件。 原理当然要了解,这个就得靠自己学习了。 能搭起来,算是向架构师迈出了重要的一步。更重要的是为什么要用这些技术、怎么使用这些技术、针对不同的使用场景怎么调整技术的组合以及开发属于自己的特定技术框架。
?
奶油味的葱

TA贡献6条经验 获得超12个赞

老师 感觉JAVA的各个分支都在被其他语言侵蚀 个个新兴语言个跟加简单化 关于这个趋势老师怎么看
查看完整回答
5 反对 回复 2017-05-18
  • moocer
    moocer
    江山代有人才出,各领风骚数十年。新兴的语言没有历史包袱,可以使用当前最流行的方式,也表现的比较简单,这是优势不可否认。客观的说,java在服务端的优势至今没有任何一门语言可以与之媲美。说java的各个分支都在被其它语言侵蚀,有点夸张。作为一门不算古老的语言,java的活力一直都在,java9也要发布了,对模块化的支持是我最关注的一个点。 每种语言有它的特点,互相之间很难说谁取代谁。
?
erutdioup8556

TA贡献41条经验 获得超27个赞

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

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

TA贡献1条经验 获得超8个赞

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

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

TA贡献78条经验 获得超18个赞


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

查看完整回答
4 反对 回复 2017-05-17
  • moocer
    moocer
    快速学一门技术,最好的方式就是应用于实践,在实践中学习是最快的。
  • 幕附
    幕附 回复 moocer
    哦,感谢老师的回答
?
navysails

TA贡献5条经验 获得超5个赞

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

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

TA贡献6条经验 获得超3个赞

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

查看完整回答
2 反对 回复 2017-05-19
?
慕码人1977389

TA贡献1条经验 获得超1个赞

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


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

TA贡献3条经验 获得超1个赞

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

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

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

谢谢老师


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

TA贡献2条经验 获得超2个赞

为什么有人说,java在服务器端厉害,在web方面不行,在web方面PHP很厉害,难道服务器开发不都指的是web吗?

查看完整回答
1 反对 回复 2017-05-21
  • moocer
    moocer
    一般来讲,服务端开发指的是java的web应用中的service及以下(dao等),不包含页面。
?
忍者无敌1

TA贡献3条经验 获得超2个赞

老师你好 ,已经做几年了一直在写基础代码 ,要怎么才能提升呢 ??

查看完整回答
1 反对 回复 2017-05-20
  • moocer
    moocer
    写代码是量的积累,在写代码的时候要不断的思考怎么提升代码的执行效率、优化代码结构,如果给你机会重新设计某一模块或者整体的技术,你会怎么做,为什么这么做。在技术选型上,你的依据是什么,你技术选型结果的优势是什么? 等等上面的问题,都是基于思考和对比得来的。所以,建议就是多思考、多实践。
?
ai睡的熊

TA贡献27条经验 获得超5个赞

老师我发现double的数据在在减操作的时候会出现在小数位最后加减的情况,经常出现在特殊数字,64 512 1024等等,例如1024.88在减一的时候会变成1023.881,或者1024.888会变成1023.8879,请问这是这什么呢
查看完整回答
2 反对 回复 2017-05-19
  • moocer
    moocer
    double和float确实会存在这样的问题,如果精确计算,需要使用BigDecimal,并且在使用BigDecimal(double val)构造函数时仍会存在精度丢失问题,建议使用BigDecimal(String val)。
首页上一页12下一页尾页
  • 26 回答
  • 36 关注
  • 42206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信