Java程序员如何提升自己,有什么网站推荐,GitHub够用吗

本人10年开发培训经验,期间经历了Java Web,Android,H5,大数据,PHP等多个不同的方向的开发,也做过软件培训公司的金牌讲师,很有兴趣回答你这个问题 。
IT行业是可以说是一个需要不停学习,不断充电的行业,如果不能够及时的更新自己的技能和知识储备,那么离淘汰也就为期不远了 。
我说一下自己的学习充电的地方吧 。
Android技能提升:Android开发者论坛,安卓巴士;
Java技能提升:csdn论坛,开源中国,github,还有各种框架自己的官方网站,比如Spring Boot与Spring cloud官网 。




我从事互联网开发10年,主要的研究方向集中在Java web微服务架构领域,Android移动端研发,HTML5前端方向,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信你一定会有所收获 。
如果有Java,Android,H5等开发方面的问题,或者是开发求职方面的问题,都可以在评论区留言,或者私信我 。
最好的的提升方式就是实战!
一直以来都想学Java,看了不少书,视频教程,但是真的要动手,就举步维艰!
今年年初刚好有个需求,ANDROID 的PDA 扫描二维码后,随即通过蓝牙的方式打印标签;当时不知哪来的勇气居然敢报价(2w+),竟然中单了[捂脸].
高兴半秒后,接着就是紧张,之前没有任何实战经验,这个软件要求忙高,用在医疗行业. 接单之后一点也不敢怠慢.
第一步:把项目的技术难点找出来;
第二步:难度分类,先易后难 。对于基本的增删改查都要网上找例子的新手,只能投入时间,不断找实例练手;
第三步:解决高难度问题:app 蓝牙连接sewoo 便携式蓝牙打印机(类似斑马便携式打印机),并且打印标签.
第四步:软件完善:经过前面几步的历炼,对java已经有了一定的功底,线程,消息这些都已经熟练了,但是软件的仅仅停留在能用的水平,真正交付给用户还需要打磨升华;
1.设备开机自动连接蓝牙打印机;
2: 获取蓝牙打印机的电量;获取打印机状态(就绪、缺纸、机盖是否合上);
3:扫描引擎参数设置(Mobydata,zebra 两款PDA测试;
4. 最高难度还是处理打印中文字体 。PDA扫描二维码,此QR code特殊至极,把中文字体以二进制的形式存存储,PDA需要解码,参照24点阵的显示,之后把解码内容再转换为 打印机指令 CPCL,这一步真是呕心沥血,翻阅了无数前人资料,研究汉字点阵字体,24x24,12x12.... 历经无数次失败,当第一次终于打印出汉字时,那种喜悦是就像[爱慕].
要提升自己就要历炼.
首先有提升自己的观点是非常棒的,根据我的实际情况简单说一下:
1. JDK源码
在会用的前提下,去学习原理 。其中线程池、Future、并发包里的线程安全类、以及锁的根基AQS、volatile,synchronized的原理等等都要去看 。源码部分能用到的就要去看下实现原理 。
2. JVM层面
写程序一定要知道程序在内存中是如何存放已经管理的,各种回收机制,利弊,使用场景,如果优化,好好的去研究
3. 设计模式
业界有一句笑话“搞JAVA的人天天加班在想怎么设计”,足以看出设计模式在Java中的主要性 。针对设计模式我也要多说几句,不要只看,要讲学到的东西应用到自己的实践中 。
4. Java优秀的框架源码学习
spring,springmvc,mybatis,tomcat,netty,dubbo 任何一个就够自己研究几个月的 。
5. 数据存储层Mysql相关的知识
一般对于Java程序员来说,DB的相关知识特别的薄弱 。对于DB的索引、隔离级别、优化以及底层原理都需要搞懂
6. 中间件相关
分布式内存数据库-Redis,MQ-Kafka,RPC-dubbo,服务治理-Zookeeper 。像redis是C++写的,可以去了解实现原理,Kafka很庞大也可以只学习原理 。dubbo啃代码吧,写的很好 。
7. IO方面的知识
Java最擅长的领域就是Web开发,与网络打交道IO只是是缺不了的 。比如可以从《Netty权威指南入手》学习,Tomcat中除了容器也是与IO相关的知识 。
可以看书,当然书一定不要只看一遍 。我一般是一本书至少看两遍 。第一遍粗略的读,知道有这个回事就可以 。第二遍精读,钻牛角尖的读,碰到不了解的知识点就要去研究 。(为什么要读两遍,我一直有一个观点就是,作者在写的时候整本书的知识点就已经都掌握了,先粗略看一遍对全局知识点有了大概的了解后再来看书肯定有不一样的见解)一段时间过后,再返回来读一遍,绝对会有不一样的收获(自己掌握知识水平不同,看书的理解也会不同) 。
差不多先这些吧,够研究几年的了
我觉得首先作为一名程序员不要局限于一门语言,至少我个人认为提升自己有两个方向,一个是技术流,技术流又有两种,一种是某领域深度技术研究,比如你对流媒体技术有所了解并且想对这一领域进行深入那你可以制定你的学习路线专攻这一块,另外一种技术流是掌握技术面多,比如说会多门语言,服务器知识,容器虚拟化等等,另外一种不想走技术流的那就走业务流,对业务分析需求提炼的把控分析,对项目的理解和运用到的技术进行妥协,说完方向,那就说下如何提升自己:
1.上自学网站学习(极客学院,慕课,51cto,github)
2.领会和揣摩现实工作中你上级童鞋的做事办法和思路
3.要相信自己可以改变自己
以上就是道和术的一个小范围解释,希望你以后会遇到真正口述这个哲理的人
对程序员来说,github确实是一个非常好的选择,很多优质项目都在github上托管,通过github确实可以阅读到大量的优秀代码,但是个人认为只依靠github还是远远不够的 。推荐网站主要有两类,一类是各种交流平台,如:CSDN,Stack Overflow等;另一类是各优秀项目的官方文档 。另外还可以结合GitHub和自己熟悉的IDE工具阅读项目的源码 。
除网站之外,阅读和实践也是必不可少的,我自己阅读的书籍有:《深入理解Java虚拟机 JVM高级特性与最佳实践》、《Java并发编程的艺术》 。
我觉得程序员写到最后拼的还是思想 。
因为代码写来写去还是那样,倒是一个编程思想一个架构这就是个人想法问题 。
为什么同样写代码你只能写业务逻辑,别人却能写出框架 。这就是思想的不同 。
所以我觉得程序员提升还是多看看别人先进的设计思维,github这个网站有很多优秀的开源项目足够提升了
这个问题要看目前处于什么“段位” 。
如果目前的段位属于初级,最缺的是知识的丰富程度和实战经验,那就通过多练习,多磨练来不断提升自己的水平 。这个阶段可以通过CSDN等网站来多学习一些经验 。同时还得多看一些框架性的书籍 。
如果目前属于中级段位,说明基础知识都没问题了 。这时需要对Spring全家桶、Hibernate等进行系统性学习 。还得熟练掌握Redis、MQ等中间件软件的,不断提升自己架构级能力 。
如果目前已经出于较高段位,那就可以通过GitHub等网站多多了解Java语言的底层原理、Java各类衍生产品的底层原理和实现方式 。还可以自行设计或者参与到很多产品的设计和实现工作中 。这样就会越来越牛了 。

秒懂知识为您整理更多相关内容。
我是胡子哥,结合我的经验我从以下三个方面回答你

    确定自己的职业规划和未来发展方向如何提升自己网站推荐
一、确定自己的职业规划和未来发展方向为什么要确定自己的职业规划和未来发展方向?如果你没有明确的发展目标,对于未来需要掌握的技能也不会有明确的规划,就像瞎子走路一样,你会很迷茫,会产生焦虑感 。虽然你可能可以到达一定程度的目标,但是这个过程的时间成本是巨大了,而且进步是最慢的 。其实对于个人的定位发展和企业定位发展是类似的,从战略规划—目标分解—执行—结果反馈—优化每一个环节都不可少 。一步错步步错,到了一定的年龄就失去核心竞争力,届时得不偿失 。在我们走向远方的路上一定要停下了深度思考,如果你觉得你很勤奋努力,但是没有深度的思考,你的方向就会有缺失,从而迷失了方向 。深度思考是保障你向正确的方向发展,勤奋努力是保障你把正确方向相关联的任务执行到位,从而达到你想要的预期目标 。比如你是Java程序员,你未来可以是架构师、可以是研发总监、可以是CTO、可以是产品经理、可以是产品总监、可以产品VP等 。你有了规划和目标,结合你自身目前的情况找差距,你会很清楚的了解自己如何到达目的地 。二、如何提升自己上面我们说到要确定自己的职业规划和未来发展方向,希望你读到这里的时候已经有了大概的方向感 。那首先祝贺你,你离你要实现目标的距离不远啦 。做为一名Java程序员工,如何提升自己的技能,你可以从以下方面做起,希望能帮到你 。
    熟读和深度学习源码的相关知识
你可能会问,我已经会用了为什么还要这么做 。源码涉及的知识要点还是非常广泛深入的 。你会用很好,你还要学习的是里面如何实现,以及架构涉及的设计模式 。里面的架构和实现是非常优美的,比如有线程安全的,也有线程不安全的,哪些适用于并发设计,哪些不适合,如果你不熟悉,你的代码可能会一团糟 。熟读和深度学习源码的相关知识对于未来实现中间件架构、业务架构、代码优化、原有组件扩展都会有很大的帮助,这也是未来发展的基础 。你可能会问要读哪些代码,比如JavaSdk,Spring,SpringBoot,Mybatis等,JavaSdk是最基础也是最重要的 。
    掌握架构设计思维与应用
架构设计思维和你的职业规划也是一个道理,没有掌握架构设计思维的人会永远停留初级阶段 。架构设计为业务服务,是为了让服务扩展性、稳定性、可靠性等有良好的支撑,服务走的更远,支持更多业务的开展 。整个系统得不到合理的架构设计规划,随着业务的增长,在不远的将来系统就会变的臃肿,维护性差,冗余不可复用,Bug多,运行过程可能会导致系统崩溃 。如何掌握架构设计的思维,给你推荐几本书,架构之美、UML和模式应用、面向模式的软件架构 (一共5卷,每卷都值得读,分别是模式系统(卷1),并发和联网对象模式(卷2),资源管理模式(卷3),分布式计算的模式语言(卷4),模式与模式语言(卷5))、重构、代码大全 。以下是分布式架构、微服务架构、性能优化的相关知识点汇总希望能给你带来更多方向和收获,如图 。
Java程序员如何提升自己,有什么网站推荐,GitHub够用吗

文章插图

Java程序员如何提升自己,有什么网站推荐,GitHub够用吗

文章插图

Java程序员如何提升自己,有什么网站推荐,GitHub够用吗

文章插图

Java程序员如何提升自己,有什么网站推荐,GitHub够用吗

文章插图
    掌握项目管理和开发工具
当你处于一个产品或者项目团队中,掌握项目管理的技能很有必要,产品或项目开发是一个相对复杂的过程,涉及产品需求对接、UI、架构设计、开发测试、发布等流程 。对于如何建立沟通技能、优先级安排,开发进度安排、问题如何协调解决、激活战斗力也变的很重 。可以推荐一本书人月神话 。目前很多公司都采用敏捷开发,可以深入学习了解下 。现在团队高效协作离不开工具的支持,需要掌握配置和使用技能 。比如Maven、Gradle、Jenkins、Sonar、Git、Jira等
    建议坚持写技术Blog
作为一个理工科的程序员来讲,可能不愿意去写作 。建议养成写作的习惯,真的很好,知识的沉淀需要有一个承载的地方,它可以帮助你进一步思考和总结,对于代码实现、架构、技术问题的解决能力都会有一个质的飞跃 。当你回头看的时候,你发现写Blog真是一件好事情,非常有价值 。
三、网站推荐
Github有很多开源的好项目,作为拿来主义肯定省时省力,但对于你练好内功完全不适用 。所以说只靠Github完全不够用 。可以学习的网站还有CDSN,stackoverflow,iteye(javaeye),infoq,ifeve(并发编程)等向你推荐下 。
就回答到这里吧,希望能帮到你,觉得不错的话请给个赞或评论,您的助力都是激励我前行的动力,感谢!
有了这10个GitHub仓库,开发者如同buff加持
除了作为互联网上一些最有趣的开源项目的主页,GitHub也是一个分享各种资源的好地方,从免费书籍到公共的api,从技术路线图到项目想法和项目 。但是由于数量庞大,很难找到你认为不存在的最有用的仓库 。
因此,我列出了10个极好的仓库,它们为所有web和软件开发人员提供了巨大的价值 。所有这些都将为你增加价值,帮助你成为一个更好的web或软件开发人员 。
1. Free Programming Books
GitHub : 183K+
地址:https://github.com/EbookFoundation/free-programming-books
在各种不同的语言中提供的免费编程书籍无疑是GitHub上最受欢迎和最受欢迎的资料库之一 。尽管它的名字里有“书”,但它提供的远不止这些 。它包含了免费在线课程、互动编程资源、问题集和竞赛性编程、播客和几乎每种编程语言的学习列表 。
2. Developer Roadmap
GitHub : 155K+
地址:https://github.com/kamranahmedse/developer-roadmap
卡住了吗?或者需要一些建议来开始你的开发之旅?这个仓库将指导你完成整个过程 。如果你想成为一个前端、后端或DevOps工程师,它有你需要知道的所有技术 。
3. OSSU Computer Science
GitHub :81K+
地址:https://github.com/ossu/computer-science
如果你没有计算机科学背景或学位,并希望同等的知识相同的计算机科学学位,那么这个仓库是为你 。它适用于那些希望对所有计算学科的基本概念有适当的、全面的基础知识的人 。它提供了所有的资源,以帮助你成为一个自学的计算机科学研究生等效,并有一个世界范围的学习者社区 。
它是根据本科计算机科学专业的学位要求设计的,减去了通识教育(非计算机科学)的要求,因为它假设大多数学习这门课程的人已经在计算机科学领域之外接受过教育 。这些课程本身是世界上最好的课程之一,通常来自哈佛、普林斯顿、麻省理工等,但都是专门为满足基本标准而选择的 。
4. Awesome
GitHub : 158K+
地址:https://github.com/sindresorhus/awesome
正如它的名字所描述的那样,它有一个非常棒的列表,包括各种有趣的话题,从计算机科学到媒体,从游戏到商业,这个列表还在持续更新 。
5. Build your own X
GitHub : 103K+
地址:https://github.com/danistefanovic/build-your-own-x
【Java程序员如何提升自己,有什么网站推荐,GitHub够用吗】如果你是一个相信**“边做边学”原则的人**,那么这个仓库有可能成为你在GitHub上的每日浏览的地方 。它有链接到资源,帮助你建立自己的加密货币,数据库,机器人,BitTorrent客户端等方面的知识 。
6. Coding Interview University
Github : 165K+
地址:https://github.com/jwasham/coding-interview-university
编程面试大学有一个为期数月的学习计划,目标是成为谷歌、亚马逊、Facebook、苹果或其他软件公司等大型科技公司的软件工程师 。它提供了如何学习成为一名可靠性工程师或操作工程师的建议 。
7. Public Apis
GitHub : 118K+
地址:https://github.com/public-apis/public-apis
公共api有一个internet上所有可用的免费api的集合列表,供您在个人或专业项目中使用 。它提供了广泛的应用程序编程接口(api),如商业、动漫、动物、新闻、金融、游戏等 。
8. Tech Interview Handbook
GitHub :51K+
地址:https://github.com/yangshun/tech-interview-handbook
《技术面试手册》中有所有你需要的技术面试的资料 。它有各种各样的资料,关于如何准备编程面试,问你的面试官的好问题,对简历有帮助的建议,等等 。
9. System Design Primer
GitHub :127K+
地址:https://github.com/donnemartin/system-design-primer
《系统设计入门》对于软件工程师来说是一个很好的知识库,它将帮助你学习如何设计大规模的系统 。这将帮助你成为一个更好的工程师 。回购为这个广泛的主题提供了有组织的资源集合 。
因为系统设计在许多公司通常是一个必需的技术面试过程,这个库还可以帮助你准备那些采访学习指南,建议如何处理面试,面试问题与解决方案 。
10. Design Resources for Developers
GitHub :25K+
地址:https://github.com/bradtraversy/design-resources-for-developers
这个仓库有一个精心策划的设计和UI资源列表,包括图片、web模板、CSS框架、UI库、工具等等,可以免费在你的项目和应用程序中使用 。
本文分享自华为云社区《所有开发者都应该知道的10个GitHub仓库》,作者: Ocean2022。