聊一聊程序员应该如何入门

最近有一起玩lol的朋友,他今年21岁,想要入门编程,毕业后想当一名程序员,报了培训班1w多从基础学起,简单的了解过后,感觉现在的培训班质量参差不齐,有些可能只是赚快钱,浪费了学员宝贵的时间。为什么这么说呢?我的这位朋友想要做后端学习Java开发,但是学习的内容是涉及全栈,包括html、js等,这样出现一个问题,我想从业后端做Java开发,有必要学习Js吗?我从事java开发近四年,有近三年大厂的工作经验,今天想聊一聊我的看法,小白想学Java,应该怎么入门呢?

抉择期

相信很多大学生,或者想要转行程序员的朋友们都经历过“前端还是后端?”这样的选择,其实这个主要看你想要什么。是兴趣爱好,是薪资待遇,还是更注重发展前景。

追逐兴趣

其实如果你选择了兴趣,我想说一说两种工作带给人的成就感聊一聊。因为我觉得工作中一个个成就感是你从事这项工作的动力。

前端:前端相较于后端可能稍微简单一些,带给人的成就感更强,前端可以直接带给你视觉体验,你能很清晰的知道用户看到的是什么,app上多了什么功能,哪个页面或者模块是自己做的。在我看来,一个页面分成了很多的模块,每个模块相当于一个小房子,前端程序员就是负责装修,布置房间的摆设。如果扣起细节,可能比后端更杂一些,其实也并不简单,前端工程师主要负责网站的前端设计和开发,需要掌握HTML、CSS、JavaScript等技术,设计页面的交互、动画效果等,使用户能够愉快地浏览网站。

后端:相对于前端,后端带给不了你最直观的来自页面的成就感,后端的成就感来自于一个复杂逻辑的实现,来自于某个技术优化,基础组件的使用等。比如一个接口因为你的优化有效降低了延迟,你写的基础组件被其他人使用并好评,你在一个项目中使用了合理巧妙的算法,这都是你的成就感的来源。你为别人提供了便利,你为你开发的应用提升了用户体验。

所以就兴趣而言,我的建议是不论你选择了前端还是后端,保持思而求学的热情,那工作就是快乐的。

向钱看齐

在计算机行业中,前端和后端是两个不同的方向,其职责和薪资也有所不同。就整体而言,后端的薪资相对较高,但也要看具体情况。根据我的从业认识的人和从公司所了解到的实际情况来看,工资的差别主要体现在个人技术上。无论前端还是后端,想要拿高薪水,都要不断的提升自己的实力。

对于新手来说,前端入门是最容易的,现在很多人直接从主流框架开始学习前端,react,vue看一看就可以直接开始项目开发了(但是不推荐,还是从HTML,CSS,ECMAScript基础学期)前端入门容易,但是比较容易陷入API型程序员,各类框架和库都会用,但是都不够深入。服务端入门相对难,但是时间长了,比较容易构建技术壁垒,拉开差距。现在AI大语言模型的出现对前端也有不小的冲击,基础前端程序员的可替代性更强,需要坚持学习让自己保持竞争力。

后端开发主要做的是逻辑功能等模块,是用户不可见的。后端开发以java为例主要用到的是包括但不限于spring、springmvc、ServletTomcat服务器、网络编程等技术。后端适合重逻辑,逻辑思维强的同学,技术难度相对是要比前端深的,虽然会基本的CURD就能从事后端开发,但是在云计算时代,只会CURD是迟早会被淘汰的,docker容器技术,istio等云原生新技术和新架构出来,需要很长时间去慢慢学习和积累,后端的学习是一个漫长的过程。

发展前景

其实发展前景离不开个人的能力,薪资待遇和以及前途发展,主要看你的技术达到了哪个层级,所以,想要有一个好的发展前景,就要脚踏实地的去学习,在工作中锤炼自己的技术,提升个人实力。

入门建议

因为我是后端Java开发,所以我说一下后端如何入门,前端的同学也可以参考。

从我的个人经历来说,我大学是网络工程专业,学校学习的是C语言,面向对象编程语言是C++,从业后因为公司需求学习的Java。

对于想要入门的小白,第一份工作很重要,它决定了你以后的薪资待遇的起点,一定要意事到这一点并采取行动:撸代码

撸代码

撸代码换句话说就是原理结合实践,并且时常练习,撸代码包括三个步骤:

  1. 怎么使用:我知道了某个数据结构、基础组件怎么使用了,并且会在代码中使用,能熟练的手写运用的代码,熟知使用场景、使用技巧、注意事项等。
  2. 实现原理:会使用了就要知道为什么要这样用,要学习这个工具的实现原理,比如HashMap为什么允许空键,ConcurrentHashMap的key为什么不允许为null。实现原理自己能阅读源码并刨析,看源码是学习原理的最快途径。
  3. 手撕代码:学会了原理接下来就是手撕代码了,比如自己实现一个hashMap,这个过程可以从抄写源码开始,在写代码的过程中就会发现它为什么这么实现,以及哪里可以改进,哪些机制或者技巧可以在其他项目需求中应用,这个学习过程印象深刻。

最后学过的知识要时常复习,时常反复的去敲代码。最后我要强调的就是一定不要停留于使用上,要去深入挖掘原理,在写代码的过程中考虑是否有值得改进的地方。

回到开头那个问题:学习Java开发有必要学习前端技术吗?

我个人认为是没有必要的,只要专攻前端或者后端就可以了,一方面因为招聘全栈开发的公司很少,或者说大厂全栈工程师岗位很少,前端和后端的技术都是不断变革的,专心钻研一门技术就可以了。另一方面即使你学习了前端,从事了后端的工作几乎没有机会写前端的代码,如果写也不是核心功能,可能是后台之类的,现在完全可以借助AI,gpt等模型协助完成,还是比较简单的。没必要花精力去学习JS(手撕JS的公司很少了,这种脚本语言有点落伍了)。

面试宝典

免费分享一下我的面试宝典,都是精髓:

 
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 共1条

请登录后发表评论