潜水了很久,水一个帖子:一个刚毕业的 Java 程序员的迷茫

2017-01-31 21:32:02 +08:00
 davidway
为什么迷茫?之前写 C 的时候,觉的 C 的所有代码都是自己写的,能够知道自己做了什么事情,能够控制;
到后来为了就业,然后选择了 JAVA 。发现 JAVA 很多代码都是已经封装好给你了,开发的过程中,所以我的学习方法是必须得在官方文档那里去看。可惜例子没有啊,很抽象,然后一个片段得去百度找个例子,然后自己总结一下写篇博客,以防后面忘记,可是,这一学习就得 1 , 2 天啊。

而迷茫的原因,是觉的知识实在是太多了,觉的学都学不完。你说找重点的来学,扔给你一个项目,你可能复制粘贴会用,但是要自己重头开始,真的是一脸懵逼,而这种一脸懵逼督促着我不断地去百度补充知识,一百度可能就一天才学 1 , 2 个知识点啊。

Q:
我的目标是很想自己写一个开发框架,类似 struts ,最好是 spring 。每天都感觉很累,但是觉的自己的学习方法没问题啊,坚持是需要时间来验证吗?
6851 次点击
所在节点    Java
61 条回复
sorra
2017-01-31 22:14:25 +08:00
Servlet 也是封装好给你的,也要自己写一个?能写当然鼓励。
你已经毕业了,就怕你没时间没动力哈。
善于学习新东西也是一种能力哈。
zhuangzhuang1988
2017-01-31 22:27:10 +08:00
学会调试。。
a87150
2017-01-31 22:32:41 +08:00
居然用百度,等着被喷吧
Kilerd
2017-01-31 22:37:37 +08:00
一个开发框架,类似 structs ,最好 spring

我,一个非 java 开发者,印象中不是同一个东西吧。 spring 是 web 框架。 structs 是 orm 吧。

你确定你学不是假 java ??


PS 。非专业人士,说错就该被喷←_←
Perry
2017-01-31 22:38:19 +08:00
Javadoc 能看懂的话例子基本不需要
suixn
2017-01-31 22:42:44 +08:00
接 3 楼,用谷歌吧,可能少一半时间。
----
正经说,我也是今年毕业。 8 月份才开始正式写 java ,感觉要学的东西还是很多的,慢慢积累吧。 8 月到现在用到了 maven 、 SSM 框架、 kafka 、 zookeeper 。
两个系统其中一个还是 GO 写的。
然后前端学了 vue 、 bootstrap ,配合部门封装的库凑合写了前端。
感觉真的是又多又杂,但是还都是在慢慢学。
慢慢积累吧,共勉。
likuku
2017-01-31 22:42:59 +08:00
Java 善用先进智能的 IDE.

前天看到个笑话:{ Rails 真好啊 “我还没写代码呢怎么就跑起来了”}
springmarker
2017-01-31 22:53:28 +08:00
初中学化学, c 和 o2 燃烧产生 co2 ,你知道了,直接拿去用,然后解决了一个又一个化学方程式,到大学学化学,你会更深入理解为什么 c 和 o2 燃烧会产生 co2 。
底层的东西多了去了,学不完,所以我习惯自上而下,用多了自然就知道了。
Infernalzero
2017-01-31 22:54:57 +08:00
@Kilerd spring 并不只是 web 框架, web 框架是 spring mvc ,对应 struts 并没错
Suddoo
2017-01-31 23:05:11 +08:00
@likuku 我也在 twitter 上看到那条推文了
ihuotui
2017-01-31 23:32:46 +08:00
你看完 spring 再说吧。
shayuvpn0001
2017-01-31 23:36:57 +08:00
@likuku 笑死我了, Rails ,哈哈
kingcos
2017-01-31 23:43:10 +08:00
@Kilerd 我也不太懂。。。
但是 ORM 不是 Hibernate 和 MyBatis 么(不过好像 MyBatis 不算是完全的 ORM 。。
weiweiwitch
2017-02-01 00:00:52 +08:00
@davidway 你设定的目标太高了!这是你现在面临的最大问题,也是你觉得迷茫的根源。不管是获得掌控感还是写出一个框架。这都不是一个刚毕业或者有 1~2 年经验的程序员可能做到的事情,因为这个领域所需要的知识太庞大了,很少有人能吃下来,并发挥出来。你如果坚持这么做,那么你实际上在走一条地狱模式的路。逼自己在一种长期的没有成就感的路上摸黑一般的走,并且这种走法,自己都不会觉得有多大可能走出来。就像在沙漠中走一样。

之前你用 C 写程序,可以说这些程序的体量应该都不大,才会让你觉得有掌控感。而你以后工作中做的 Java 相关的项目,即使不算上框架的代码,也可能比你的 C 程序大上至少一个数量级。这是不可能获得掌控感的。

你需要调整下目标,拆分下对自己的要求,做一个自己觉得可行的计划表,一个由一个个小目标累计出来的计划表,然后逐步的实现,从而慢慢的让自己成长起来。

如果你不知道怎么做出一个可行的计划表,你也可以在这里或者知乎上发帖。看看别人一步步学了什么,做出了什么后,才慢慢的能做项目的。
RangerWolf
2017-02-01 00:00:53 +08:00
个人的一些想法:
1 :你需要熟悉这门语言, 做到主要 feature 都能熟练使用。 比如要用到数据、列表等等
2 :你需要找一本比较深入的书好好看看, 比如 《 Effective Java 第二版》《 Java 编程思想》,其他还有很多好书,看你口味
3 :如果你的目标是 XXX 框架, 那么就去阅读源码学习学习人家是如何做的。 Web 框架目前我觉得 jfinal 真心好用

2 、 3 可能是循环之中稳步提升你的水平
formulahendry
2017-02-01 00:02:31 +08:00
作为一个程序员竟然用百度,不迷茫才怪
SoloCompany
2017-02-01 00:08:53 +08:00
@Kilerd struct 不是 orm, H 才是
Reficul
2017-02-01 00:59:37 +08:00
非科班码农路过,对于 LZ 说的也有点过往的感觉。
第一门语言是 C ,第一个稍大的代码经验是对着书写操作系统, C 语言。真正入门码代码是 Go ,刚刚接触 Go 的时候和 LZ 一个感觉。以前内存怎么分配,操作了什么都很清楚。但是到了调用标准库,三方框架的时候发现完全是个黑箱,很茫然。那些函数到底干了什么,又抽象又茫然。

其实一段时间之后,比如 web 开发。了解 HTTP 协议那些套路之后,会发现其实那些函数就是协议的一些封装,就不抽象了,自然也就不慌了,就算换别的语言也会对这些套路感觉很亲切。另外习惯调用库之后,不把目光局限在内存,中断,系统调用上之后,思考的更多的是封装和实现了。侧重点转移之后,习惯了就不纠结了。
davidway
2017-02-01 02:01:48 +08:00
看到了那么多人回复,受宠若惊, V 站果然是程序员的天堂啊。
@sorra 嗯,有理,我觉的举一反三是需要从系统再到细节。问题是现在我捉不到这个系统

@zhuangzhuang1988 调试是会的,但是总会碰到框架融合框架的问题,举个例子吧: 1.我在 spring 下要融入
一个 shiro ,发现植入了 shiro 后注解不起作用,蛋疼,这不关我业务逻辑的事情,和 spring
框架的整合有关,后来修 BUG 的时候认真想想,这个项目究竟怎么从 0 到 现在的系统,我真的从没了解过,然后就想认真去理解每个最基础的例子和概念

@a87150 百度和谷歌任由个人喜好,我当然懂 stackoverfolow ,但不要绝对化每一个搜索引擎的好坏,我通常
都是因为官方文档看不懂,然后去必应搜,然后去百度搜。也不能太绝对
@Kilerd Spring 是什么都做了, ORM 他也行, MVC 他也行,容器他也行, struts2 应该是 MVC 框架吧

@Perry 这个有点绝对, javadoc 是最基础的,确实不需要,但是 spring 呢?为什么需要控制反转?
spring 的 doc 适合一定程度的开发人员,感觉不太适合初学者
控制反转究竟是为什么要产生, spring 没说,只能从别的引擎找到
@likuku 用最先进的 IDE 是为了解决什么问题?
@springmarker 这种学习方法感觉是很有用的,但是有一个问题,那就是不系统,就好像你做会了这道题
,你可能这道题的类似你知道了,但是这道题考察你的知识点其实很多的,什么守恒啊,
什么还原性啊,所以我觉的最好是学一个系统,然后再学应用细节。
@weiweiwitch 嗯,非常感谢你的回答,我深受启发。
@RangerWolf 感谢你的指引
@Reficul 没看懂大神的回答
davidway
2017-02-01 02:07:48 +08:00
顺便吐槽一下 V 站为什么没有编辑更新功能。。我很多错别字都不能改。。

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

https://tanronggui.xyz/t/337536

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

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

© 2021 V2EX