入职近半年的程序员应该怎样提升?

2021-03-13 09:58:26 +08:00
 CyberShadiao
去年十月份入职了一家外包公司,不做民用项目,要出差驻场开发。面试的职位是 Java 开发,但是来了公司除了刚刚几天看了下文档,其余时间一直都在写页面,layui+JQuery 这些。现在 Java 快忘光了。自己的基础也不是很牢,纸糊的一样,框架(只会 SSM)也忘得差不多了。
在公司半路加入项目组,做了一个项目,是拿之前做的一个系统改的,入职的时候后端改完了,只要写页面。
目前这个项目只等验收了,然后我又不要出差,所以每天有时间可以带薪学习,请教一下各位大佬,我现在的情况是把基础补好还是复习框架?还有 Java 基础有哪些内容(看网上那些机构的视频感觉都差不多,都是教怎么用)?什么样才算基础比较好或者说什么才是 Java 基础?请各位前辈大佬不吝赐教。
5555 次点击
所在节点    Java
27 条回复
zengming00
2021-03-13 10:15:41 +08:00
趁早转行,写程序这行业已经不行了
securityCoding
2021-03-13 10:34:34 +08:00
1. 系统性的学习数据结构与算法。这个非常非常重要,不然很多源码根本看不懂,这是搞懂很多高级组件的前置条件。比如:ArrayList/LinkedList/HashMap/AQS/epoll 不懂数据结构和算法基本上是看了也白看,看也看不懂

2. java 底层知识 jvm 。比如 java 内存模型,jvm 运行时数据区, 有 jvm 相关的知识储备你才能看明白。像 volatile 为什么能保证内存可见性不懂内存模型是真的很难理解这玩意。还有垃圾回收,gcroot 等等

3.计算机体系,这块的东西很多很杂,老实说这块知识我也非常碎片化。比如你说你要学习 netty,你得把 bio 、nio 、selector ( select,poll,epoll )这几个 io 模型演进过程搞清楚吧?上来就 nio+多路复用容易把人搞懵逼

对于学习我自己一般遵循:
1.背景。前因后果搞不清很多概念会显得很突兀难以理解
2.怎么用。计算机领域不缺高级词汇,不要停留在纸面上,结合实际好好理解和运用。
3.总结。不写总结根本不明白自己到底搞懂了没有,总结就是考试,你说你学的非常好了,来,我们来考试一下
steveEvan
2021-03-13 10:53:16 +08:00
本人双非一本,非科班出身,目前就职于某独角兽公司,可能我的经验会给你一点帮助
可以用思维脑图列出 Java 需要的技术栈,比如 Java 基础,并发编程, 分布式系统,MySQL,网络,中间件等,每一块涉及的知识点列得越细越好,然后一段时间专攻某个点,这样逐步形成由点到面的思维,我把我的一些学习路线总结在了这里: https://github.com/allentofight/easy-cs,希望对你有些帮助
steveEvan
2021-03-13 10:54:43 +08:00
上面的链接没有写好,重发一下: https://github.com/allentofight/easy-cs
L0lita
2021-03-13 11:29:32 +08:00
写代码写到头秃 你在公司就可以呼风唤雨了 有人狠不下这个心 认为颜值很重要 但是过来人告诉你 钱更重要 那些劝你转行的 只是不想让他人来抢这块蛋糕而已 切不可听信谗言 半途而废
CyberShadiao
2021-03-13 11:32:24 +08:00
@securityCoding 加入了一个群,和群友一起做算法题,签到题都不会做。学习新知识就是看视频,视频里怎么做我就怎么做,没有主动思考过,过一段时间就忘了。现在也开始做笔记,把每天学的东西总结,之前都没有做笔记的习惯,很多东西看了就忘,也没有形成体系。非常感谢老哥的指点。
CyberShadiao
2021-03-13 11:36:12 +08:00
@steveEvan 前几天把一些公司用到的 主流技术做了个思维导图,按照上面的去学习。之前学习就是要用了哪里不会就去看一下哪里,过了几天就忘了。
CyberShadiao
2021-03-13 11:41:32 +08:00
@zengming00 我感觉还好吧,我在的城市还行。
NexTooo
2021-03-13 12:02:40 +08:00
@CyberShadiao 做笔记很重要,看的时候会感觉“我懂了”,落到笔记上就是“额……?”,然后把学到的东西梳理整理成起码自己觉得有条理的能看懂的笔记(都不要求可阅读性),是个很痛苦的过程。
一般痛苦完了憋出来了一块东西才算真懂了,我个人是这么觉得的。。。学个新东西很快,能写出笔记很久。
虽然一样会忘,但是写笔记过程中思考的东西才是真正属于你的,短时间没感觉,日子久了真会感觉出和以前不一样
myBatis
2021-03-13 12:41:42 +08:00
@zengming00 #1 再几把搁着宣传自我危机我打死你
myBatis
2021-03-13 12:43:24 +08:00
@zengming00 #1 你自己一条菜狗学啥啥不会底层又不懂怪这个行业?
geekaven
2021-03-13 12:58:32 +08:00
光看没用的,还要多练习和复习,要不然过段时间一样忘记。
zengming00
2021-03-13 15:17:28 +08:00
还抢蛋糕,我就直接告诉你们,别说 35 岁退休,就是 30 岁现在都难找工作,现在的互联网公司里面那些技术有什么难的,多少没学历的人照样可以做,人家培训几个月就可以做事了,要的钱还比你少,加班人家还比你积极
花精力去深耕的人有几个能出头? 1000 个程序猿里面有几个能熬到最后,你会是这里面的一个?

别不承认,初中生培训几个月同样能写得了程序,而且人家不一定比名校出来的人差
别不承认,送外卖同样拿上万工资
别不承认,现在在职的公司再牛逼,出来后公司和你没半毛钱关系
别不承认,创业公司很难活过三年,什么股份期权最后啥都没有

红利已过,如果不是真的喜欢编程,真不建议做这一行,去看看现在那些三四十岁的人做什么赚钱,什么职业越老越吃香,往那个发展才是正确的道路
raaaaaar
2021-03-13 15:25:25 +08:00
最重要的自然是基础,计算机的基础就那么几个东西,哪个不足补哪个。然后就是深入你自己工作中用到的技术,这点很重要,也能提高你的工作能力,技术也自然提升。

说起来,我在没有上学校的课前,只是实践开发也会有这些问题,就是一头懵逼,不知道自己不知道哪些知识,也就是没有一个知识最基础的架构,现在学了不少课后,视野就慢慢建立起来了,虽然同样有很多东西不懂,但是知道自己不懂在哪里,自然知道怎么去学。

所以如果不是科班的,还是建议慢慢补基础吧,那几个东西我想只要在这个行业里吃饭,总是逃不掉的。
vincexu
2021-03-13 16:01:09 +08:00
上面那个没事吧,受啥刺激了
MoHen9
2021-03-13 20:01:09 +08:00
要看目标,比如短期目标是跳个好点的公司,就看大公司的面试,会学到很多。

长期目标就要系统学习,以系统的看书,看文档,梳理源码为主,看文章或博客太单一,且不系统。比如你要学 MySQL,可以先看高效能 MySQL,学 Redis 可以看看 Redis 技术设计与实践
L0lita
2021-03-13 20:20:42 +08:00
@zengming00 培训几月就能超你 自己不努力怪不得别人 培训完也就入个门而已 你要是以为培训完直接满级 那你还是送外卖去吧
eternitym31
2021-03-13 21:39:22 +08:00
思考下当前的商业模式,可以想想怎么出去单干。
jones2000
2021-03-13 22:15:16 +08:00
能力提升是靠项目和代码堆出来的,什么教程,刷题都扯蛋。 没有真实的应用场景项目给你实践, 今天看了过几天就忘了。
zengming00
2021-03-14 12:34:08 +08:00
@L0lita 我觉得你应该再仔细研究下我说的,任何行业都不是你努力就能成功的,企业里面有一两个挑大梁的就够了,当然不努力是一定不会成功的,运气的成分要远大于努力,到头来一场空,还不如趁早深耕其它行业,有相当多的程序猿工资是和其它行业持平甚至不如其它行业的,有意义吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/761234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX