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

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

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

Q:
我的目标是很想自己写一个开发框架,类似 struts ,最好是 spring 。每天都感觉很累,但是觉的自己的学习方法没问题啊,坚持是需要时间来验证吗?
6798 次点击
所在节点    Java
61 条回复
davidway
2017-02-01 16:41:33 +08:00
@bombless JAVA 还比较好,业务的东西基本上能看到源码
sheep3
2017-02-01 18:49:57 +08:00
不要把框架想的那么可怕,重要的是善于在发现问题的时候去找到出现问题的真正原因。

说白了就是会从源码上追溯就好。慢慢来,先做好功能的实现,代码量积累起来了就好。
davidway
2017-02-01 19:37:31 +08:00
@sheep3 嗯,我后来也想明白确实是这样的,谢谢你
Weixk
2017-02-01 20:00:46 +08:00
C 的完整的项目也是要用很多第三方库文件,对比一下就知道反而是 Java 的项目比较容易理解。
neoblackcap
2017-02-01 20:20:12 +08:00
编程只是解决问题的方法,不要将编程看成脱离实际的工作,我们绝大多数不是在搞研究,因此我建议是,底层细节等你需要用到的时候再去学,有空才学也可以。努力成为一个领域的专家,比如你是你在开发后台的审计系统,那么你就去研究好审计的业务逻辑,这个才是真正的厉害的的本领。
库跟框架都是平常大家在写业务逻辑抽象整理出来的,急不来。你对业务逻辑不熟的话,很有可能就搞出不符合大家使用的为了框架而作的框架
davidway
2017-02-01 20:34:23 +08:00
@neoblackcap 对头,我就是不理解 struts2 帮我做了什么,用了什么做到拦截请求并把请求放到生成类的方法里, spring 我也不知道加了个注解,他为什么就能帮我 new 了出来,而且 new 的都很对头。
sunsetwan967
2017-02-01 20:55:57 +08:00
@weiweiwitch 说得好,学习一下。
yidinghe
2017-02-01 21:27:25 +08:00
我从毕业算起,做了 11 年的 Java 开发,但毕业之前自己学了两年 .net 。自学编程是有套路的,我个人总结主要是两点,一是找事做,给自己写应用,或者论坛上有人提出来的问题,尝试解决下;二是拓展视野,有的问题牵涉到其他领域的,就系统的了解下,这绝不是浪费时间,比如学习 Servlet 免不了要接触 HTTP 协议,那就系统的了解下 HTTP 。
davidway
2017-02-01 22:21:05 +08:00
@yidinghe 我也试着这样做过,发现论坛别人提出来的问题,涉及的很多我不会的知识,然后我发觉确实是自己的知识的系统性不够完善,很多东西在我的头脑很碎片,然后想找到这个系统。这时候我通常会找书,我通常都找下那些经典书,然后至少理解一下书中的每一个小节它是什么。这个算不算一个比较好的了解系统的方法?但总觉的如果没有写成代码不实在,感觉没不确定自己是否有理解到作者想表达的是什么。。。不过书中通常没代码,或者例子。这也是我比较蛋疼的地方
yang2yang
2017-02-01 22:30:10 +08:00
感觉看 lz 就想在看自己一样。。
davidway
2017-02-01 22:53:38 +08:00
@yang2yang 哈哈哈,现在也是一样的迷茫吗
likuku
2017-02-02 02:26:52 +08:00
@davidway JAVA 因为其复杂性 /各种现成包 /代码风格严谨 /便于产业化,实用对 JAVA 优化的 IDE 可以大幅度提高编码效率。

常言道“ JAVA 很多时候编辑个配置文件就可以直接用了“
ilumer
2017-02-02 04:17:46 +08:00
EE 这些我也是不是很懂,只是应付学校的学了一个月,但是楼上真的是瞎鸡巴说 @q397064399,抱歉说的准确
popu111
2017-02-02 06:20:32 +08:00
@Reficul 现在 Golang 用 LiteIDE 简直不能更舒服,不止查文档很方便(毕竟 go 自带 doc ),而且资辞直接 Ctrl 追进标准库代码里面去看实现,麻麻再也不怕我看不懂文档啦~\(≧▽≦)/~
tajpure
2017-02-02 08:06:21 +08:00
@cs419 JVM 的实现也没有那么复杂,你看别人用 18K 行代码,加几个轮子不就造了个能跑 Tomcat 的 JVM , http://llvm.org/pubs/2008-09-LadyVM.pdf
ayanamist
2017-02-02 09:26:50 +08:00
蛮奇怪,难道楼主写 C 的时候是直接连 libc 都不用的,哪怕全部直接用 syscall ,都一样会有楼主描述的问题呀,各个 syscall 之间的坑都很多,文档也就只有 man 而已,例子更是稀少。
claysec
2017-02-03 10:53:49 +08:00
我和楼主也一样。。一脸懵逼。只会粘贴复制
sampeng
2017-02-03 11:12:54 +08:00
不要给自己定目标。。。相信我,程序员给自己定目标的意义就和项目会上估时间一个道理。
换句话说很容易把事情想的特别容易。然后在碰到挫折或者所谓的坑会有挫败感,时间长久成了迷茫。
我的想法是,换个做法。把事情捏碎了去做。 do and done 是最好的解决方案。想做框架。先搞明白这个框架需要解决什么问题,每个问题分别对应哪些 feature 。每个 feature 需要如何去实现,每个实现需要什么样的数据结构和算法。
用设计语言的话来说就是思考要从上而下,做事是从下而上。一个很小的数据结构和算法可能半天就完事了。然后无数个数据结构和算法就可以对应一个 feature 。。堆积多了就成你想要的东西了。

别整天脑子里想着我要实现一个牛逼的框架。没意义,捏碎了去做。
sampeng
2017-02-03 11:13:43 +08:00
ps 。。。别用百度。。。请用 google +1.。不会翻墙的程序员,并且不想着如何去翻墙的程序员。会被其他程序员尤其是有能力的 leader 内心鄙视 100 遍
davidway
2017-02-05 00:52:01 +08:00
@sampeng 对,确实应该要一个知识点一个知识点踏步踏步上去。这些知识点是最好从官方文档那里整成一个系统,然后去慢慢细分去掌握吗?

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

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

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

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

© 2021 V2EX