自学从青铜到王者是什么体验!

自学java最起码学到什么程度?估计很多人的都有这样的疑问,尤其是初入社会的学生们准备找实习工作的小白们,那今天我给你看一下一个初级程序员到高级需要学习哪些东西,看完这些你应该会有个清晰的认知!

我虽然不是什么技术大佬,但是我对自学方面、实习方面还是颇有研究,以及混迹在各种论坛的一些经验,与大佬的交流体验,总结出来了青铜到王者要经历些什么?

企业微信截图_16279583907509.png

倔强青铜—编程摸索

大学期间基本上都会有可么一门课程—《计算机基础》

企业微信截图_16279584166247.png

在计算机基础中我们会学到计算机的历史、计算机的特点、进制转换、内存管理、线性数据结构、网络请求协议等等。

计算机基础真心很重要,因为里面涉及的计算机知识还有很多网络协议的知识,大家以后一定会用到,我可以负责的告诉你,面试也一定会问,什么Http、Https、Tcp/Ip、三次握手、四次挥手面试不要太常问。即使是大厂的面试也是会提问很多非常基础的内容的比如:求二叉树的镜像,内核态和用户态的理解,计算机的缓存页等。学完计算机基础你基本上对计算机的整个知识体系都一知半解了,对于编程或许还是很懵懂,但是你现在已经要踏入编程的门了。

秩序白银—编程入门

计算机基础学了,后面就要编程的入门课程了。

我大学学习的时候总是课上就跑神我就自己课下自学,也是看书加上视频进行学习,书籍看的就是学校发的java教程      视频是在B站找了好久找到的java300集,现在他们都有 2021年最新版本了感兴趣的小伙伴们可以去看看

java300集>>>>>

企业微信截图_16279584659769.png

我想所有的语言都是语法基础开始的,而且编程语言的基础语法也都是大同小异的。

If、For、While等关键字,List、Set、Map等集合,Int、float、Double等基础类型,这些关键字将会陪伴我们很长很长的时间接下去就难一点比如JDBC、IO、文件流啊什么的学到这里,你可能觉得你JavaSE无敌,出去可以找工作了,但是你还不知道自己其实才刚刚入门。

这个时候我们就应该去做个简单的不能再简单的的页面,进行简单的交互了,你这个时候要学HTMLServletMySQLJavaScriptTomcatCSS等。目标呢就是写出第一个动态网站,也许只是个登陆功能,只能展示下个人资料,但这是很重要的一步,你要弄清楚的是,一个用户的点击产生的请求,是从哪里发起,哪里接收,哪里处理,哪里返回,你得理解浏览器和服务器的关系和分工,CookieSessionRequestResponse

在大学期间及时我们的能力还不是那么到位但是我们还是要多参加学校举办的一些编程活动等,没准那个一个活动就能给你的简历上增加一些闪光点!

荣耀黄金-初出茅庐

企业微信截图_16279584922156.png

上面的只是WEB开发的学习初级阶段,这都是些JAVA诞生以来最原始的最官方的WEB开发技术,当然现在真正的项目很少直接采用这些技术了,现在都是前后端分离了,Vue、Node.js、React等前端的语言更新迭代速度非常快

为了不断提高技术的易用性、开发效率和可维护性、可扩展性,无数开源项目都是在这些原始技术的基础上封装、改进。

所以这个阶段不要盲目乐观地跑去找工作或者对实习挑三拣四,你会被打击到的,又或者找个小公司浑浑噩噩几年过去感觉跟新的技术栈脱节。

有人跟你说小公司学的东西多,他害你的,刚开始能去多大的去多大的,越大越好,你想你去了大的你想去小的分分钟的事情,但是你小的要去大的就相对难了。

好,初始阶段完成,开始进入WEB开发的正题,首先是传说中的框架,SSM(Spring SpringMVC Mybatis)成为熟练的增删改查程序员是必须的,在这个阶段你还要理解为什么要用这三而不是那些Jsp、Servlet、Jdbc,你要体会到写MVC、三层架构的好处。这个阶段不要轻易质疑框架的价值,也许刚开始你会觉得麻烦,觉得他们有时候是多此一举,等过一两年后回过头来你会觉得少了这些框架你已经很难干活了,没有分层清晰的系统。

不过要提醒大家的是,这个阶段还要避免的心态是,能熟练地增删改查了,就自认为写程序不过如此,然后往简历上填个精通,这也是新手面试被批得体无完肤的原因之一。

浅尝即止,是新手的大忌,为啥这么写,这么写有啥好处,有啥坏处,多问几个为什么,这是进步的表现!!!

如果你学得好,这会应该能熟练地写个博客啊,小论坛啊之类的WEB项目了,也就是达到了就业的基本要求。

尊贵铂金-仍需努力

这会是程序员生涯的一个转折点,把握好了人生起飞,把握不好全盘皆输

慢慢的你会发现数据库性能实在不行,出于不甘现状,或者赶时髦,你该去了解NoSQL了,MemcachedRedisMongodb等非关系型数据库眼花缭乱,没关系,试着用用,能很好地缓解MySQLOracle之类关系数据库的压力。

你可能会钻研一个特定技术领域,比如全文搜索技术ElasticSearch(以下简称Es),那你了解了Es,你又要想到数据库的数据怎么同步进Es呢?

你可能会接触到LogstashCanal等中间件,然后发现可视化也是个问题,那Kibana就应运而生,用的时候发现欧洲人的分词习惯跟我们不一样,那Ik中文分词器又得了解啦。

使用之后你还会发现他底层的Lucene有很多坑要怎避免,时间多你还可以了解Solr等等。

总之知识就是一个体系,你知道的越多,你不知道的越多,这个阶段需要更加的努力了,不努力可能就安排别淘汰出局

只能在自嘲为屌丝和码农的无奈中黯然转行。

企业微信截图_16279585233601.png

永恒钻石-扬帆远航

你要读读优秀开源项目的源码,你要搞懂一些当年不懂的基础知识,你开始理解 《thinking in java》 的精髓,你能写一些底层的代码,有时还会觉得自己封装的比某些开源工具更好用更简单。

当年看不懂的《深入分析JVM虚拟机》现在你已经可以对里面的知识点如数家珍张口就来,并且能够将大量知识点带入到项目中优化,并且能够看到实质性的变化(暗示KPI)。

WEB的难点和重点永远都在于性能、负载能力上,而现在网络的发达造成了数据量和操作密度的大大上升,硬件却没有相应的进步。

你得试着更好地运用更多的服务器来协同工作,从WEB端到服务端到数据库,全都需要集群,需要分布式,需要合理的控制数据的流向,掌握好网站上下,一大堆机器的平衡,找出性能的瓶颈,找出稳定性和安全性的瓶颈,硬件出现故障,第三方技术出现错误,将被当成家常便饭融入到你的系统和代码里仔细考虑。

企业微信截图_16279585477877.png

这个时候你要关注架构知识,不能再满足于SSH三层架构到底, 但关键时刻你得知道如何去选择技术,并快速掌握它。

你还会去考虑尝试下别的语言,这里不是说转向什么C++ C#之类的,那和JAVA程序员不相干,我说的是一些运行于JVM之上的语言,比如scala和groovy,初识他们时你会觉得Java真的老了。

你能把这个阶段实践好,胜任项目经理,乃至中小公司的技术总监,大厂的小团队Leader都是可以的。

至尊星耀-登峰造极

其实写到上面这个阶段的时候我觉得,这是很多人满足的地方了,都是小公司技术总监了,那我图啥?

但是未知的人生还在那等着你呢,挑战自我吧谁也不知道哪里是自己的终点,那为啥不多做点尝试,新的环境,新的技术栈,新业务场景挑战新的自我。

这个阶段你的一举一动可能都关系一个项目的生死存亡,一个错误或者正确的决策就可能改变整个项目的命运,水能载舟亦能覆舟,我想用在这里也恰到好处。

这就是强者的世界,我所向往的世界,当然我知道这样的世界,只有一步一个脚印才能涉足。

企业微信截图_16279585987465.png

荣耀王者-泰山之巅

最后王者其实我不会写任何内容,能到这个领域的人本身就是屈指可数了,但是我觉得大家自己体会吧,一般就是人脉,交际,能力都到了一定的高度了,这个阶段的事情不是一般人可以体会的到我想只有James Gosling(java语言之父)、、Dennis Ritchie(c语言之父)等才能了解这个高度

企业微信截图_16279586321977.png

总结

以上是我个人眼中Java程序员的一般开发路线。它的全面性并不局限于话语。由于工作内容不同,个人的实际成长路径可能会有很大差异。有些人更喜欢底层研究,有些人更喜欢商业需求设计,有些人有很强的行业色彩,除了技术,很多知识也很重要。java并没有简单的方向,但是一个对技术感兴趣的人仍然会对开发充满热情,并且在他的技术生涯中写出好的项目。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C是计算机编程语言中的一种,也是目前使用最广泛的一种编程语言之一。C语言于20世纪70年代由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室创造,最初用于开发UNIX操作系统。 C语言以其简洁、高效和灵活的特点而受到广泛使用。它提供了丰富的数据类型和运算符,并且具有高度可移植性。C语言支持低级的操作,可以直接访问内存,因此适用于编写底层的系统程序和嵌入式系统。 C语言有丰富的库函数,包括数学函数、文件操作函数、字符串处理函数等等,这些库函数使得C语言在各种应用领域有着广泛的应用。C语言的语法简洁清晰,易于学习和理解,也为后续学习其他编程语言打下了坚实的基础。 C语言在应用开发中的使用非常广泛。它被广泛应用于系统软件的开发,如编译器、操作系统、网络协议等。它也被广泛用于应用程序的开发,如数据库管理系统、图形界面的设计、游戏开发等。此外,C语言还被用于嵌入式系统的开发,如微控制器、传感器、智能设备等。 虽然C语言已经发布了多个版本,但其核心的特性和语法基本上没有改变。C语言的简洁、高效和可移植性使得它成为了广大程序员的首选语言之一。 ### 回答2: 思維是人類最特殊且獨特的能力之一。它是人類大腦的產物,通過對外界信息的分析、處理和組織,使我們能夠進行推理、判斷和創造。思維可以分為不同的類型,包括邏輯思維、創造性思維和臨場思維等等。 邏輯思維是一種基於邏輯和講究合理推理的思維方式。它通過觀察事物的關係和規則,對信息進行合理的分析和推斷。邏輯思維常見於解決問題和判斷真偽的過程中,它能夠帶來正確和確定的結果。 創造性思維是一種通過重新組合已有知識和信息,找到新的關聯和思維方式的能力。它的特點是靈活、多元和非線性。創造性思維經常出現在藝術、設計、創新和創業等領域,它能夠帶來新的觀點和解決問題的方法。 臨場思維是指在時間壓力下迅速做出判斷和決策的能力。這種思維方式通常出現在應急情況下,需要在短時間內做出反應和行動。臨場思維要求我們具備快速思考和處理信息的能力,以便迅速做出正確的判斷。 綜上所述,思維是一種重要的認知能力,它能夠幫助我們理解世界、思考問題和做出決策。不同的思維方式在不同情景下發揮不同的作用,如邏輯思維帶來確定性,創造性思維帶來創新,臨場思維帶來應急能力。因此,我們應該培養和發展多種思維方式,以提升自己的認知和問題解決能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值