软件的一点经验之谈——java

相信一些小伙伴听说java使用的挺多的,遂抱各种培训班想要入坑学习;
借此,穿插java来说说,想要入坑的一些注意。
很多,甚至可以说是非常多的,包括一些相当可观的行业外的人涌进来想要学习java,并且其中相当一部分的人甚至没有系统的接受过计算机学习。
希望,在学习的时候清楚一点,也就是学习的目的;相信大多数的小伙伴是抱着想要拿到高薪的目的去学习。毕竟学习的最终目的是就业,就业的目的是赚钱,这无可厚非。
也有的人可能是单纯抱着喜欢的目的去学习,这非常好,善于钻研的性格非常适合在软件行业工作,毕竟多数行业没有软件行业面临的更细速度和学习成本大。一个聪明的程序员除了在编程的时候逻辑清晰,学习迅速,更善于将软件逻辑转换成客户真实需要的软件产品,这会是一个很成功的程序员必备条件或要素。
首先,根据这一阶段的求职,学习对想要入坑的小伙伴们提一些建议吧:

1.软件行业,学历相对于其它行业来说,比较重要。
在当前极力鼓吹学历无用论的当下,软件行业刚好是一个相反的例子。怎么说?就比如,你向往去阿里,华为等包含国有体制的单位内应聘软件工作,本科算是底线。无论你技术多一流(除非达到非常非常nice的水平),要不然,人一定是不给你机会的。又有一种说法:大专工作3到5年经验的java工程师,相当于本科工作一年的标准(薪资上体现);虽然这句话有些以偏概全的感觉,但是第一步,在企业招聘上,确实多数存在这样一种情况。
2. 评估自己的学习能力,以及对于逻辑事物的理解能力。
这是必备条件,任何从事于软件开发行业的人来说,对于逻辑事物的理解能力是基本要素。如果你对于逻辑事物的理解能力有些差,不过可以面对一般编程,虽然说可以在编程行业混口饭吃,但是长久以往,你会学习的越来越吃力,尤其涉及到算法(未来编程中少不了的一步),就会有要求数学功底了,虽然说你能应对基本的java的排序算法,甚至可以死记硬背,但是如果将它放在复杂的业务中,你还能游刃有余么?因此,想玩透程序,必然对于逻辑事物的理解能力是要有很高要求的。
3.数学运算能力
上文部分提到,要具备数学能力,虽然这不是必选(大多数java开发都是借助框架开发的web程序,相信大多数的学习者最后就职也都是b/s开发了,就比如springboot之类的框架,上手很快,也不需要太高的编程能力)但是多年之后就不一定了。我们都知道一些软件的发展趋势,比如当下很火的人工智能,物联网,大数据,区块链等等,无疑对于程序员的数学底子要求极高;也就是说,不是之前的简简单单搭个框架就能生产代码的时代了,更需要一些科学家型的程序员,举个栗子,就比如EOS区块链dapp的开发者,就要懂得什么是椭圆算法,怎么生成随机数,对于复杂区块链事物如何处理,如何编写底层C并编译运行等等。因此,在软件行业大背景并不怎么好的当下,更是要求程序员的基础,尤其是数学能力的深厚。
4.沟通能力
相信我们都看过很多程序员“怒怼”项目经理的例子吧。其实关键在于,沟通。在不同职位上的人对于事物理解上存在差异,因此,程序员发展的好坏,就是沟通。有相当一部分的经理,或许并不懂程序原理,就会提出一些让你觉得难于登天的代码实现。这时候,聪明的程序员就会使用沟通这项技能为自己避开这些问题,那么如何有效避开这些沟通雷区呢?就要换位去理解,经理是怎么想的,一个优秀的程序员,你的思维一定是超过经理的,无论是对于程序的理解,还是对于客户使用思路,业务逻辑的理解。如果你能充分的理解,那么古铜也就不在话下。
5.人
不得不承认,在这个行业工作久了,慢慢对于“人类”的沟通上存在一些问题;这是非常不好的一种情况,必须要避免。假设你是java后端工程师,工作上你需要知道如何让前端的同事展示出你需要展示的数据。如何让上司知道你干了多少工作,如何联系更多的人(志同道合的开发者或者未来跳槽的公司人),如何找obj(这就是综合实力的比拼了),人际圈广泛的程序员不会担心自己吃不到饭,他们通常可以借助自己的圈子顺利找到“吃饭”的地儿,而不至于冒险跳行业求职。
6.其他能力
或许你刚毕业,或许你刚转行,当下不知道理财观念,不知道危机观念,不知道年龄焦虑;那么相信我,终有一天,这些问题你都需要考虑。当你获得了一份不错的工资薪水,希望你不要贪玩,纯粹攒钱,或者投资;相信绝大多数从事软件的开发者不是土豪,也都知道外人眼中的高薪毕竟是996搞出来的,毕竟你的“高薪”也不会让你在当下工作的一线城市获得一套你觉得不错的房产。所以攒钱吧,借助这部分钱,你可以创业,投资(比特币等虚拟货币就算了,当然,十分喜欢可以少量投资,并不建议把过多的钱放在这里),甚至可以通过这些钱做些自己的小买卖,切记,不要认为你进入软件行业,当前高薪就万事大吉了,通晓投资,有多个领域或行业的专业能力才不会被发展所阻碍。
7.学习,学习,学习
重要的事情说三遍!
如果是你不想持续的学习,又对新鲜事物感觉没有兴趣,那么劝你还是离开吧。
以上纯粹是个人观点,下面来说说,java相关的。
1.在当下,3到5年的java程序员最受市场欢迎!
为什么呢?亲测的!本人毕业1年,在一个java后端开发工作,已离职,然后开始在南方某big city找java开发工作,投了非常多的简历结果石沉大海,其中部分有反馈的HR提到,具有3到5年的java程序员才招。其实某招聘软件上的搜索结果已经说明了一切,3到5年工作经验的要求已经占到了大多数!咱也是很受伤,在看看,则然就转行了~所以亲测,如果你想跳槽,琢磨一下有没有3到5经验,(当然技术牛掰的可以忽略)。
2.实习也要勇于“谈条件”
相信多数的实习生所持有的一种心态,包括当初我也是,就是:我不要那么高工资了,只要有实习单位要的就行!虽然这样可以降低自己寻找工作的难度,但是之后,你会发现,多数的企业也是在“利用你”在实习期创造的高效价值,却可以光明正大的给你开很低的工资,甚至没有应得的福利,因为你是“实习生”,我们不缺你这个人。多数情况我们也就“忍气吞声”了,虽然说无妨,但当你做出的贡献,或者在职期间创造出很高价值(或许是一些专利),那么就要勇于谈资,心理学上,勇于谈资,是一种自信的体现,前提是,对于自己要正确的估值!
3.搞清楚自己开发的是啥
很多大厂出来的程序员,可能在职业生涯内都不能完完全全的熟知自己开发的是啥,这样,在跳槽的时候对于自身的定位也就不够清晰,只知道自己是从事java开发,擅长什么?不知道,了解什么新框架或者技术?也不知道,这是很可怕的一件事情。相对于大企业,中小企业对于你的要求或许会更多,横向技术的了解需求更多,同样是java开发,大企业的程序员知道编程标准,经理分配任务就去做,不问为什么以及这样做的好处和成果。中小企业则是,程序可以了吧?编写后测试完了没?完成了给你公司服务器地址,自己把软件部署一下,测试通过了和客户说一声!慌不慌?这大概是大厂和小厂的区别吧,大厂规范标准高效,小厂应变全能沟通。各有优势,互为补充。其实最建议的是,对于刚入行的小伙伴,建议先努力进入到大厂看看规范(可以通过你强大的培训班,或者自己的各种联系,如果觉得自己水平不错就直接拿项目说话),如果环境,人都很好的话,一直留在大厂发展也未尝不可。发展一段时间后在到小厂去试试,小厂会有很大的挑战和风险,所以去之前一定要考虑和考察清楚。
4.学java的时候,你通常要学习相关的一整个技术栈
就比如你用的是springboot开发,你多数就会接触到它的相关技术,比如mybatis,maven,git,thymeleaf,shiro,或者一些容器比如Tomcat,操作系统Linux,虚拟化容器docker等等……还有一些其他语言,比如javascript基础以及一些前端框架,比如bootstrap,jq,layui,vue等等,或者一些命令行操作。请相信,这些技术都是触类旁通的,如果用心理解和学习,都会容易掌握。

总结:想抱着学java获得一份不错薪资工作的时代已经过去了,正是由于学习的人很多了,所以企业在也在不断筛选和淘汰“不合格”的人才,从而优化团队。总之,对于java的要求越来越高,找工作也相对难了不少,希望入坑小伙伴要有心理准备~

以上全部个人观点,欢迎下面评论你的观点,谢谢。

你可能感兴趣的:(java)