我是一名java程序员面试指南,工作一段时间了,感觉每天都在搬运代码,也没有

学Java的,好像我的代码都是抄人家的
曾经一度幻想自己能啪啪啪的敲出来一个系统,现在知道不太现实。自己写出来的代码,其实都是拿人家的过来修修改改,这里大神多,请问你们都是怎么写代码的呢?
共21条回复
所有练书法的人都是从临摹前代大家的字帖开始的。
Java就是个喳
我来看大家怎么喷java的~
从hello world开始,就是抄别人的代码,后来慢慢抄别人的思想。到目前为止,还没有不抄的东西。
千万不要以为我们是写代码的,所以,真正的学问在打字上
你现在的毛病就是,思而不学则怠,你以为什么都是自己写的才是本事,那是最终结果而已,过程是你要大量的学习别人怎么写,学习业界标准的写法,当你的水平达到了正常的程序员的一般水平了,你才有资格谈写自己的代码,才有资格谈创作
大师也不是一开始就设计大师作品的,都是从画蛋开始的,明白了么?
差不多,我现在写c++,修改一个bug或者增加一个feature,都要先找一下别人之前的代码是怎么做的,然后想想怎样把自己的东西融入整个框架,然后就是正确的拷贝黏贴。
我们是代码的搬运工~
上网搜索别人的代码 和 查api , 有区别,但也都是为了了解学习不知道的地方。
java web的
除非能把整个 js
,java api,又或者使用的框架, extjs, jquery,等等有关的所有api背下来我觉得就不用去查别人的代码也不用查api了。
个人现在用extjs4, 一直在查api在搜索别人的代码, 反正extjs的api我背不下来, 估计能背下来。
这两个能力应该很重要:
1 错误定位的能力,
2 解决错误的能力。
不要小看使用代码,能把别人的代码用好本身就是一个很NB的本领。屠龙刀给了屠夫,就只能砍砍骨头,砍砍肉,说不定还被抱怨不好用,要是给了武林高手,那就能称霸武林了,但至于屠龙刀是怎么打造的,有那么重要吗?
我们不写代码,我们是优秀代码的搬运工。
本帖有21个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。给Java程序猿们推荐一些值得一看的好书 - ImportNew
学习的最好途径就是看书
“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:
1、能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料
2、对着书上的代码自己敲的时候方便
“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。
很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。
/java-my-life/
首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友。
目前市面上讲解的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客。这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是:
1、开篇点明该设计模式的定义
2、图文并茂讲解该设计模式中的结构
3、以详细的代码形式写一下该种设计模式的实现
4、补充内容
5、讲解该设计模式的优缺点
对于一个设计模式我们关注、学习的知识点,不就是上面这些吗?
不过我要重点提醒一下网友们,同一种设计模式的写法有多种,并不是说只有按某种写法来写才是这种设计模式。比方说适配器模式,我们关注适配器模式一定要关注的是什么是适配器模式不是怎么写适配器模式,不要认为某段代码不是按照适配器模式的写法写下来的它就不是适配器模式了,记住这一点,你在学习设计模式的时候一定会对代码中用到的设计模式有更深入的理解。
《深入理解Java虚拟机:JVM高级特性与最佳实践》
如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧:
1、了解Java代码的底层运行机制
2、定位性能问题
3、对整个系统进行性能调优
4、解决各种奇奇怪怪的线上线下问题
5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机
那么Java虚拟机是你必学的一门技术。《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理解Java虚拟机:JVM高级特性与最佳实践》此书里面的。
另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。
《HotSpot实战》
所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。
我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用”java -version”命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。
最后提一句,如果有兴趣的朋友,不妨先去网上下载一个openJDK,HotSpot的源码就在里面。
这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。
《Java并发编程实战》作者是Brian Goetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是:
1、文字多代码少
2、讲解多实践少
我觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和透彻的。翻开这本书看,多线程什么用、什么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。
无论如何,作为一本常常位于Jva程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。
《Java多线程编程核心技术》
《Java多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。
此书和《Java并发编程实战》相反,这本书的特点是大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。
有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。
不过这本书的缺点就是对于Java并发包下的一些类像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都没有讲到,重点的CAS和AQS也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。
《中文版》
这是唯一一本我没有买的书。初识这本书,是在我的博文里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。
《》的作者是Joshua Bloch,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度以及其作者的来头来看(多提一句,这本书也是Java之父James Gosling博士推崇的一本书),我相信这一定是一本值得一看的好书。
好的代码是每个Java程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护—-无论从时间成本、人力成本还是风险成本来说,这都是非常高的。
《深入分析Java Web技术内幕》
《深入分析Java Web技术内幕》,作者许令波,淘宝工程师。
这本书我用一个字概括就是:全。真的非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些Java Web使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。
不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或者说师傅领进门、修行在个人的感觉。
《大型网站技术架构 核心原理与案例分析》
一个字评价这本书,屌;两个字评价这本书,很屌;三个字评价这本书,非常屌。呵呵,好了,再说下去可能别人以为我是水军了。
《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。
Java的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?
关于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。
《大型网站系统与Java中间件实践》
《大型网站系统与Java中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少P8的级别了吧。
这本书的部分内容和上面一本李智慧的《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。
本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。
因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与JMS的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。
《从Paxos到ZooKeeper 分布式一致性原理与实践》
《从Paxos到ZooKeeper 分布式一致性原理与实践》,作者倪超,阿里巴巴工程师。
这本书是我最近在研读的一本书,和上面的《大型网站系统与Java中间件实践》一样,属于分布式组件的范畴,属于有些深入的内容,当然也是我自己的个人兴趣。当然,如果有志向做一个出色的大型网站架构师、公司的技术总监之类,这些知识当然是必须掌握的。
本书从分布式系统基本理论开始讲起,讲到Paxos算法,最后慢慢引入到Zookeeper,循序渐进。当然,更多的我目前还不方便发表什么看法,因为这本书的第二章Paxos算法我都还没有弄懂(Paxos算法确实有些难以理解和不太易懂),接下来的章节还没有看下去。
如果网友们所在的公司在使用Zookeeper,并且你又对Zookeeper感兴趣想要研究一下它的原理的,这本书将是不二之选。
《MySQL5.6从零开始学》
《MySQL5.6从零开始学》,作者刘增杰和李坤。
作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。
目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点:
1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可
2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司
MySQL学习我推荐的是这本我自己学习看的《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗?
《Spring源码深度解析》
《Spring源码深度解析》,作者郝佳。
Spring这个框架做得太好了,功能太强大了,以至于很多开发者都只知Spring,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用Spring,出了问题,可能是Error、可能是Exception、可能是程序运行结果不是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。
研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:
1、理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人
2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高
3、研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你
总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。
Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。
以上就是我推荐给Java开发者们的一些值得一看的好书。但是这些书里面并没有Java基础、Java教程之类的书,不是我不推荐,而是离我自己学习Java基础技术也过去好几年了,我学习的时候看的什么也忘了,所以我不能不负责任地推荐一些我自己都没有看过的书给大家。对于Java基础知识的学习,我提两点建议吧:
1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的
2、可以去尚学堂下载一下马士兵的视频来学习一下Java基础,还挺不错的,如果尚学堂官网上下载不了可以底下回复,我的电脑里有
最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。
=================================================================================我不能保证写的每个地方都是对的,但是至少能保证不复制、不黏贴,保证每一句话、每一行代码都经过了认真的推敲、仔细的斟酌。每一篇文章的背后,希望都能看到自己对于技术、对于生活的态度。
我相信乔布斯说的,只有那些疯狂到认为自己可以改变世界的人才能真正地改变世界。面对压力,我可以挑灯夜战、不眠不休;面对困难,我愿意迎难而上、永不退缩。
其实我想说的是,我只是一个程序员,这就是我现在纯粹人生的全部。
好奇import new只是一个爬虫网站吧,没人审核文章质量
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2017 ImportNew程序猿,你在挑起战争...
是不是要把JAVA的一个点都拆成一棵树~~
大写的牛!
哦不,COW!
哦不,OX!
哦不,EXCELLENT!
都是吓唬人的,?
赞成 最爱php
厉害了....
你们都是牛人
我才Get到Java基础的那一个枝桠,好伤心的说。技术之路没有捷径可言
这是一片森林。。。。
大神呀,建议楼主,出个视屏教程,让小弟们更加膜拜。
大写的难过!
多线程与实践,设计模式
无能的人爱用php黑java
胸弟们,冒个泡,我是php初学者
java,php。这些排第一的除了还没用分布式的框架,其他的都在用,还是linux大法好
这个linux分支实在太多了
画得好漂酿~~~
这张图牛,光看他们的发展史就够呛
structs2是不是有点过时了
但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。
楼主写错了 是strucs2
二楼 你也写错了 是是strus2
三楼你也写错了,是strust2
4楼你写错了,是strutssss2
五楼你不按常理出牌啊,是四不是4,而且strutc2,看好了
你们继续,我就看看
楼上的几位,你们是来搞笑的么~~给你们搬个终身搞笑奖
Java 相关的知识技能点太多了,本人就列举出自己从刚开始接触Java 到目前为止真正用过的一些技能以及知识点,详细的内容我就不具体描述了,只大概个图
相关细节若要细分,Java基础 就有很多,后面还分有前端工程师所需要了解掌握的前端框架,样式、布局等,web开发人员了解的SSH Spring MVC框架,DBA的数据库,服务端工程师的Linux,集群等。以及目前互联网用到的一些分布式架构框架,缓存,开发工具等,细细数来,感觉还真不少,向所有坚守在Java开发岗位上的同仁们 致敬!
你们辛苦了,清明节了,多烧点纸 ~~!
要看职业的,有网页端、客户端、服务器、DBA等职业,打团战不同的位置都需要人
DBA一般刷SQL
mongoDB ETL python或perl
网页前端:html div css form表单 javascript,可以选jsp或php
服务器端:socket套接字 掉包处理 核算 数据库
客户端: UI 控件 通信
手机端:OC/ANDROID相关技能
最近公司一直在招聘java软件工程师,我就大体说一下公司对java软件工程师的一些标准吧:
1、java基础,主要集中在concurrent包的使用以及理解
2、多线程知识,锁机制
3、动态代理底层原理
4、redis相关知识
5、分布式事务
6、mysql相关知识,包括mysql的分库分表相关知识
7、RPC的一些知识以及底层原理
8、异步IO相关知识
9、对业务的理解(感觉挺重要的)
10、ES、Hbase、hive等大数据相关知识
11、MQ相关知识
正在使用的
Spring框架
Spring框架是一个分层架构,有7个定义良好的模块组成
spring模块构建在核心容器智之上, 核心容器定义了创建、 配置、和管理bean的方式
组成spring框架的每个模块(或组件)都可以单独存在, 或者与其他一个或多个模块联合实现
1--核心容器
核心容器提供spring框架的基本功能,核心容器的主要组件是BeanFactory, 他是工厂模式的实现.
BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性与实际的应用程序代码分开
2--Spring上下文
是一个配置文件,该配置文件向spring框架提供上下文信息
3--Spring AOP
通过配置管理特性,Spring AOP 模块直接将面向切面(方面)编程功能集成到spring框架中
4--spring DAO
JDBC DAO抽象层提供了有意义的已成层次结构, 可用该结构管理异常处理和不同数据库抛出的错误信息,极大的降低了异常代码数量
5--Spring ORM
spring框架插入了若干个ORM框架, 从而提供了ORM的对象工具,其中包括了Hibernate, Mybatis
6--Spring Web
web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供上下文
7--Spring MVC
该框架是一个全功能的构建web应用程序的MVC实现. 通过策略接口,MVC框架变成高度可配置的. MVC容纳了大量视图技术. 其中包括JSP、Velocity和POI
Spring 框架的好处
spring是最大的工厂
spring负责业务逻辑组件的框架和生成, 并管理业务逻辑组件的生命周期
spring可以生产所有实例, 从控制器、 业务逻辑组件、 持久层组件
Spring特点
1--降低了组件之间的耦合性, 实现了软件各个层之间的解耦
2--可以使用spring容器提供的服务, 如: 事务管理, 消息服务
3--容器提供单例模式支持
4--容器提供AOP技术, 利用它很容易实现权限拦截, 运行期监控
5--容器提供了众多的辅助类, 能加快应用的开发(org.springframework.jdbc.core.JDBCTemplate 等)
6--spring对主流的应用框架提供了集成支持, 例如: hibernate,JPA, Struts, Mybatis(IBatis)
7--Spring属于低侵入式设计, 代码污染度极低
8--独立于各种应用服务器
9--spring的DI机制降低了业务对象替换的复杂性
10--spring的高度开发性, 并不强制应用完全依赖于spring, 开发者可以自由选择spring的部分或者全部
主攻java,因为项目的需要,点亮spring boot,spring mvc、nginx、openresty、docker、mysql、elasticsearch、logstash、jenkins等技能,至于maven、git、shell、sql那是必备的,去年研究过nodejs、react以及ant design,最近在学习netty,好吧,我就是大乱臭,啥都会点,不过开发效率还可以,至于质量,那是一个持续优化的过程
学习栈推荐:/akullpp/awesome-java
这是什么看不懂?
学习JAVAweb的学生党,现在还在学习ssh框架中,别人都说要学ssm,不过无所谓啦毕竟ssh仍然占有很大的量,而且对我来说ssh框架还是能教给我很多东西的,打算学透了它再去看其他的,今天刚学完struts2还在沉醉于拦截器设计的如此巧妙,等学完ssh给自己做个个人博客再看它的源码然后再解决ssm。感觉学框架重要的还是学习它的实现方式,设计思想这样对自己提升快,就是struts漏洞百出,它的源码还是大牛写的反正都值得我去学习。
自古程序员爱黑Java,不黑不痛快的说,最近一周在V2EX上至少看到过不下5个黑Java的帖子,而且都是顶的老高,一共点开看了一个感觉好无趣啊。我到现在为止已经写了4年的C了,主要是做嵌入式驱动的开发,这一块的水很深,所以我平时更多的空闲时间都是用在其他方面,之前回忆了一下本科的基础数据结构和算法知识,期间对Mathematica也产生过不太浓厚的兴趣,后来发现IDEA太好用了,所以我就开始玩Java,虽然懂不懂的人都在黑。以下是我自己已经点过和最近想点的Java方面的技能树:
已点技能:
1.J2SE,Java语言基础,Java基本类库的使用;
2.Android应用层开发,四大组件,SQLite使用以及其他基础知识,可以自己开发Android应用;
3.IDEA的熟练使用;
待扩展技能:
1.Java8的新特性以及今年的Java9;
2.Java并发编程;
3.Java网络编程,如果懒得玩SSH可以尝试下Play框架;
4.Jvm学习;
5.Java性能优化;
6.学习下Scala和Groovy;
目前正在巩固以下Android的应用开发以及重读《Effective Java》,不过最近没什么好点子,也就之前写了个数独游戏,后来考虑的碎片时间完成了一小部分,现在没动力了。这个完了之后打算研究下Jvm和Java并发编程,这块完了之后可能是Java8的新特性研究和阅读JLS,后续是Groovy的研究和Java网络编程,Scala就放在后面了,因为暂时没有需求。
这是真的?
strust2是有点过时,但是很多二次开发的小公司和一些老项目还在用,比如我所在那个
还有 比如我所在的这个 哈哈
需要做一个大规模的网站,但又不是非常大的,数据库用mysql,现在是会.net mvc,java没学过,感觉.net mvc在语法、IDE方面特别好,但是服务器windows server真是让人很郁闷,应该怎么选择呢,重新学java?需要学的内容太多了.....,.net?服务器让人很崩溃......
我也是.net,但是服务器是租虚拟主机的。
以下是出现次数超过100的一些技能,大家可以做一个参考。
Spring 299
JavaScript 216
非常庆幸,排前三位的常用技能,我基本算会操作。这说明我是合格的程序员吗。
所有的技能都熟悉,也都是我们iskyshop产品体系所用到的,现在很多同学仅仅是知道一个概念求职时候基本都会说很精通!
成长的因素有很多,你知道知识图谱的作用吗?本文GET了当下最热门、最火爆的技术知识点,让你一库在手,技术全有!
众所周知,我们的每个知识库都是邀请专家精心绘制图谱,并依据每个图谱的知识结构,筛选该技术分支知识点下的优质资源,经特邀编辑一一审核、精心挑选后,形成该技术点的知识库。节省开发者学习时间和成本,最大化的满足和解决大家的日常技能问题,开发者还可以在上面绘制专属于自己的技能图谱(图谱+干货)。
成长的因素有很多,你知道图谱都作用吗?
这里写图片描述
管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
这里写图片描述
下载操作系统知识图谱高清大图
计算机网络
利用通信设备和线路将地理位置不同、功能独立的多个计算机系统互联起来,以功能完善的网络软件实现网络中资源共享和信息传递的系统,它是计算机基础知识的重要分支。
这里写图片描述
下载计算机网络知识图谱高清大图
算法与数据结构
数据结构是计算机存储、组织数据的方式,精心选择的数据结构可以带来更高的运行或者存储效率。算法是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。两者均是研发工作的基础。
这里写图片描述
下载算法与数据结构知识图谱高清大图
Linux是一个免费的,基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,且继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
这里写图片描述
下载Linux知识图谱高清大图
嵌入式开发
嵌入式系统开发,即对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机、掌上电脑、机电系统等。常用嵌入式系统包括WinCE、Linux、Android等,编程语言可采用C、C++或汇编语言。
这里写图片描述
下载嵌入式开发知识图谱高清大图
信息无障碍
信息无障碍,即任何人在任何情况下都能平等的、方便地、无障碍地获取、利用信息。其包括两个主要范畴:电子和信息技术无障碍及网络无障碍,并遵循国际标准WCAG2.0。
这里写图片描述
下载信息无障碍知识图谱高清大图
微信开发即微信公众平台开发,将企业信息、服务、活动等通过微信网页的方式表现。开发者利用微信开放的技术接口可进行二次开发,将公众账号由一个媒体型营销工具转化成提供服务的产品。
这里写图片描述
下载微信开发知识图谱高清大图
虚拟现实(VR)
虚拟现实是一种可创建和体验虚拟世界的计算机系统,它综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。
这里写图片描述
下载虚拟现实知识图谱高清大图
中国已在2016年进入直播时代,这种成本低廉、互动性高、部署便捷、稳定可靠的方式,最初局限于游戏直播和在线聊天,而现在泛生活类、娱乐类直播开始逐渐流行。
这里写图片描述
下载直播技术知识图谱高清大图
大型网站架构
剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,全面介绍大型网站架构需要的方方面面知识/技术。
这里写图片描述
下载大型网站架构知识图谱高清大图
区块链(Blockchain),比特币背后的技术,无需中心服务器,可实现各类存储数据公开、透明、可追溯。
这里写图片描述
下载区块链知识图谱高清大图
深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是一种深度学习结构。它是机器学习研究的一个新领域,模仿人脑机制来解释数据。
这里写图片描述
下载深度学习知识图谱高清大图
机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。
这里写图片描述
下载机器学习知识图谱高清大图
软件测试是在规定条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。它是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程。是SQA的重要子域。
这里写图片描述
下载软件测试知识图谱高清大图
Android是一个基于Linux内核的移动操作系统,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发,主要设计用于触控荧幕移动设备如智能手机和平板电脑。
这里写图片描述
下载Android知识图谱高清大图
iOS是由苹果公司开发的移动操作系统。原名叫iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010 WWDC大会上宣布改名为iOS。
这里写图片描述
下载iOS知识图谱高清大图
.NET Framework是微软用于Windows的新托管代码编程模型,是一个 Microsoft Windows组件,用户可通过各种分发渠道获得它。
这里写图片描述
下载.NET知识图谱高清大图
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
这里写图片描述
下载C语言知识图谱高清大图
C++是在C语言基础上开发出的一种面向对象编程语言。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一。
这里写图片描述
下载C++语言知识图谱高清大图
C#为由C和C++衍生出来的面向对象的编程语言。其综合了VB简单的可视化操作和C++的高运行效率,凭借强大的操作能力、优雅的语法风格、便捷的对面向组件编程的支持,成为了.NET开发的首选语言。
这里写图片描述
下载C#语言知识图谱高清大图
Scala是一种多范式编程语言。它继承了多种语言中的优秀特性,它既支持面向对象的编程方式,也支持函数式编程。它运行在Java虚拟机上,轻松实现和丰富的Java类库互联互通。
这里写图片描述
下载Scala知识图谱高清大图
Java中动态Web资源开发技术统称为Java Web。其最大用途就是Web应用的开发,可以不用考虑系统平台的差异,在一种系统下开发的应用系统,不加任何修改就能运行在另一种不同的系统中。
这里写图片描述
下载Java Web知识图谱高清大图
Java EE,全称Java 2 Platform Enterprise Edition。该平台使用分布式多层应用模型来创建企业级应用,主要用来开发“分布式应用”以及“互联网应用” 。
这里写图片描述
下载Java EE知识图谱高清大图
Java SE是Java平台标准版的简称,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。
这里写图片描述
下载Java SE知识图谱高清图谱
Go是Google开发的一种编译型,可并行化,并具有垃圾回收功能的编程语言,并且它还是开源的。使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
这里写图片描述
下载Go语言知识图谱高清大图
Swift是一门新的编程语言,用于编写iOS和OS X应用程序。它结合了C和Objective-C的优点并且不受C兼容性的限制。它使用安全的编程模式并添加了很多新特性,使编程更简单,扩展性更强更有趣。
这里写图片描述
下载Swift知识图谱高清大图
Objective-C
Objective-C是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。
这里写图片描述
下载Objective-C知识图谱高清大图
PHP是一种通用开源脚本语言,语法吸收了C、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。它支持几乎所有流行的数据库以及操作系统,并可使用C、C++进行程序扩展。
这里写图片描述
下载PHP知识图谱高清大图
Python是一种面向对象、解释型计算机程序设计语言,语法简洁清晰,具有丰富和强大的库。在设计上坚持清晰划一风格,使得它成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
这里写图片描述
下载Python知识图谱高清大图
Rust是Mozilla公司推出的一门全新的编程语言,并希望成为一门系统编程语言,运行性能高、避免几乎所有的段错误和保证线程安全。这意味着该语言可以用于建造高效可靠的系统。
这里写图片描述
下载Rust知识图谱高清大图
Html5是HTML最新修订版本,2014年10月由万维网联盟(W3C)完成标准制定。其设计目的是为了在移动设备上支持多媒体。它简单易学,且增加了很多有趣新特性。
这里写图片描述
下载HTML5知识图谱高清大图
JavaScript
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
这里写图片描述
下载JavaScript知识图谱高清大图
AngularJS是一款优秀的前端JS框架,已被用于Google的多款产品当中。该框架有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
这里写图片描述
下载AngularJS知识图谱高清大图
jQuery为一个兼容多浏览器的JavaScript库。它免费、开源,使用MIT许可协议。其语法设计可使开发更加便捷,提供API让开发者可编写插件。利用它,开发者可轻松开发出功能强大的静态或动态网页。
这里写图片描述
下载jQuery知识图谱高清大图
Node.js为基于Chrome JavaScript运行时建立的平台, 可用于搭建响应速度快、易于扩展的网络应用。它使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。
这里写图片描述
下载Node.js知识图谱高清大图
React是一个Facebook和Instagram用来创建用户界面的JavaScript库,用于构建“可预期的”和“声明式的”Web用户界面。 该框架的推出主要为了开发随着时间数据不断变化的大规模应用程序。
这里写图片描述
下载React知识图谱高清大图
React Native
React Native是一款基于JavaScript框架React.js来开发iOS和Android原生App的开源框架,着力于提高多平台开发的开发效率——仅需学习一次,编写任何平台。
这里写图片描述
下载React Native知识图谱高清大图
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
这里写图片描述
下载Hadoop知识图谱高清大图
Docker是一个开源、可以将任何应用包装在”LXC容器”中运行的工具。如果说VMware、KVM包装的虚拟机,那该工具包装的则是应用。它是一个实至名归的PaaS。
这里写图片描述
下载Docker知识图谱高清大图
Spark是当前最流行的开源大数据内存计算框架,用Scala语言实现,由UC伯克利大学AMPLab实验室开发并于2010年开源。以通用、易用为目标,高速发展后成为最活跃的Apache开源项目。
这里写图片描述
下载Spark知识图谱高清大图
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
这里写图片描述
下载Hive知识图谱高清大图
Oracle Database简称Oracle,是甲骨文公司的一款关系型数据库管理系统。具有系统可移植性好、使用方便、功能强等特点,适用于各类大、中、小、微机环境。
这里写图片描述
下载Oracle知识图谱高清大图
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。其特点是高性能、持久存储,适应高并发的应用场景。
这里写图片描述
下载Redis知识图谱高清大图
MySQL是最流行的关系型数据库管理系统,在Web应用方面是最好的RDBMS应用软件之一,作为开放源码软件,可大大降低总体拥有成本。因其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
这里写图片描述
下载MySQL知识图谱高清大图
Unity3D是一个可以让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
这里写图片描述
下载Unity3D知识图谱高清大图
cocos引擎是由触控科技推出的游戏开发一站式解决方案,包含了从新建立项、游戏制作、到 打包上线的全套流程。开发者可以通过Cocos快速生成代码、编辑资源和动画,最终输出适合于多个平台的游戏产品。
这里写图片描述
下载Cocos知识图谱高清大图
OpenCV为基于BSD许可(开源)发行的跨平台计算机视觉库,可运行在Linux、Windows和Mac OS上。它轻量级而且高效,提供了Python、Ruby、MATLAB等语言接口,实现了图像处理和计算机视觉方面的很多通用算法。
这里写图片描述
下载OpenCV知识图谱高清大图
Bluemix是一种开放式标准的云平台,用于构建、运行和管理应用程序与服务。它建立在Apache开源项目Cloud Foundry之上,并提供了IBM及其合作伙伴开发的高质量的服务供IT从业人员使用。
这里写图片描述
下载Bluemix知识图谱高清大图
敏捷是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发、管理。它是针对传统的瀑布开发模式的弊端而产生的一种新的模式,目标是提高生产效率和响应能力。
这里写图片描述
下载敏捷知识图谱高清大图
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。与常用的版本控制工具 CVS、Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
这里写图片描述
下载Git知识图谱高清大图
还有一大波知识库正在制作中……当然,建什么库,由你说了算——攒库!
被你刷屏了
我们公司要求:webx,rocketmq,redis,storm,mongodb
为webx点赞!
java核心知识点:jvm、常见的jvm分析工具jstack,jmap。 java并发编程模型。sql性能
是啊,文中没提到jvm也很疑惑啊,看来底层的东西只有应聘才问……最近在看深入理解java虚拟机,感觉以前代码丑爆了
好复杂 宝宝还年轻,我想退休。总的来说学无止境 ,当年我以为学会ssh就行了 可是越往上学的越多 什么离线数据,什么分库分表,我想退休。
登录后可参与话题,请
一个程序员,欢迎骚扰!!!
在云上签发Symantec、WoSign、CFCA证书,实现网站HTTPS化,使网站可信,防劫持、防篡改、防监听...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...

我要回帖

更多关于 java程序员 的文章

 

随机推荐