1
sorra 2017-01-31 22:14:25 +08:00
Servlet 也是封装好给你的,也要自己写一个?能写当然鼓励。
你已经毕业了,就怕你没时间没动力哈。 善于学习新东西也是一种能力哈。 |
2
zhuangzhuang1988 2017-01-31 22:27:10 +08:00
学会调试。。
|
3
a87150 2017-01-31 22:32:41 +08:00 via Android
居然用百度,等着被喷吧
|
4
Kilerd 2017-01-31 22:37:37 +08:00 via iPhone
一个开发框架,类似 structs ,最好 spring
我,一个非 java 开发者,印象中不是同一个东西吧。 spring 是 web 框架。 structs 是 orm 吧。 你确定你学不是假 java ?? PS 。非专业人士,说错就该被喷←_← |
5
Perry 2017-01-31 22:38:19 +08:00
Javadoc 能看懂的话例子基本不需要
|
6
suixn 2017-01-31 22:42:44 +08:00
接 3 楼,用谷歌吧,可能少一半时间。
---- 正经说,我也是今年毕业。 8 月份才开始正式写 java ,感觉要学的东西还是很多的,慢慢积累吧。 8 月到现在用到了 maven 、 SSM 框架、 kafka 、 zookeeper 。 两个系统其中一个还是 GO 写的。 然后前端学了 vue 、 bootstrap ,配合部门封装的库凑合写了前端。 感觉真的是又多又杂,但是还都是在慢慢学。 慢慢积累吧,共勉。 |
7
likuku 2017-01-31 22:42:59 +08:00 1
Java 善用先进智能的 IDE.
前天看到个笑话:{ Rails 真好啊 “我还没写代码呢怎么就跑起来了”} |
8
springmarker 2017-01-31 22:53:28 +08:00 via Android
初中学化学, c 和 o2 燃烧产生 co2 ,你知道了,直接拿去用,然后解决了一个又一个化学方程式,到大学学化学,你会更深入理解为什么 c 和 o2 燃烧会产生 co2 。
底层的东西多了去了,学不完,所以我习惯自上而下,用多了自然就知道了。 |
9
Infernalzero 2017-01-31 22:54:57 +08:00
@Kilerd spring 并不只是 web 框架, web 框架是 spring mvc ,对应 struts 并没错
|
11
ihuotui 2017-01-31 23:32:46 +08:00
你看完 spring 再说吧。
|
12
shayuvpn0001 2017-01-31 23:36:57 +08:00
@likuku 笑死我了, Rails ,哈哈
|
13
kingcos 2017-01-31 23:43:10 +08:00
@Kilerd 我也不太懂。。。
但是 ORM 不是 Hibernate 和 MyBatis 么(不过好像 MyBatis 不算是完全的 ORM 。。 |
14
weiweiwitch 2017-02-01 00:00:52 +08:00 6
@davidway 你设定的目标太高了!这是你现在面临的最大问题,也是你觉得迷茫的根源。不管是获得掌控感还是写出一个框架。这都不是一个刚毕业或者有 1~2 年经验的程序员可能做到的事情,因为这个领域所需要的知识太庞大了,很少有人能吃下来,并发挥出来。你如果坚持这么做,那么你实际上在走一条地狱模式的路。逼自己在一种长期的没有成就感的路上摸黑一般的走,并且这种走法,自己都不会觉得有多大可能走出来。就像在沙漠中走一样。
之前你用 C 写程序,可以说这些程序的体量应该都不大,才会让你觉得有掌控感。而你以后工作中做的 Java 相关的项目,即使不算上框架的代码,也可能比你的 C 程序大上至少一个数量级。这是不可能获得掌控感的。 你需要调整下目标,拆分下对自己的要求,做一个自己觉得可行的计划表,一个由一个个小目标累计出来的计划表,然后逐步的实现,从而慢慢的让自己成长起来。 如果你不知道怎么做出一个可行的计划表,你也可以在这里或者知乎上发帖。看看别人一步步学了什么,做出了什么后,才慢慢的能做项目的。 |
15
RangerWolf 2017-02-01 00:00:53 +08:00 2
个人的一些想法:
1 :你需要熟悉这门语言, 做到主要 feature 都能熟练使用。 比如要用到数据、列表等等 2 :你需要找一本比较深入的书好好看看, 比如 《 Effective Java 第二版》《 Java 编程思想》,其他还有很多好书,看你口味 3 :如果你的目标是 XXX 框架, 那么就去阅读源码学习学习人家是如何做的。 Web 框架目前我觉得 jfinal 真心好用 2 、 3 可能是循环之中稳步提升你的水平 |
16
formulahendry 2017-02-01 00:02:31 +08:00 via Android
作为一个程序员竟然用百度,不迷茫才怪
|
17
SoloCompany 2017-02-01 00:08:53 +08:00
@Kilerd struct 不是 orm, H 才是
|
18
Reficul 2017-02-01 00:59:37 +08:00 via Android
非科班码农路过,对于 LZ 说的也有点过往的感觉。
第一门语言是 C ,第一个稍大的代码经验是对着书写操作系统, C 语言。真正入门码代码是 Go ,刚刚接触 Go 的时候和 LZ 一个感觉。以前内存怎么分配,操作了什么都很清楚。但是到了调用标准库,三方框架的时候发现完全是个黑箱,很茫然。那些函数到底干了什么,又抽象又茫然。 其实一段时间之后,比如 web 开发。了解 HTTP 协议那些套路之后,会发现其实那些函数就是协议的一些封装,就不抽象了,自然也就不慌了,就算换别的语言也会对这些套路感觉很亲切。另外习惯调用库之后,不把目光局限在内存,中断,系统调用上之后,思考的更多的是封装和实现了。侧重点转移之后,习惯了就不纠结了。 |
19
davidway OP 看到了那么多人回复,受宠若惊, 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 没看懂大神的回答 |
20
davidway OP 顺便吐槽一下 V 站为什么没有编辑更新功能。。我很多错别字都不能改。。
|
21
davidway OP 顺便推荐一个网站: http://www.tutorialspoint.com/codingground.htm ,很多初学者教程在里面,而且全部代码能跑
|
23
ilumer 2017-02-01 02:52:25 +08:00 via Android
看完这个帖子………我表示你们也不能这么水 Java EE 吧。。。。。。楼上上来就直接瞎说
|
24
woojuno 2017-02-01 06:44:48 +08:00 via Android
我就想说,你觉得 spring 是一个人写的?
|
25
q397064399 2017-02-01 06:52:44 +08:00
记住 Key 就行了,一个框架那么多最佳实践,现代软件工程本来就是大规模协作,
很多东西都变成黑箱了,你要打开黑箱去学,一辈子都学不完 举个栗子 Tomcat 在关闭的时候,如果需要将 Session Cookies 持久化 如何做? 不查文档根本就写不出来,但是我记住那个接口的名称就行了,用的时候再去查 全背下来,还不如杀了我 r#23 @ilumer 另外楼主说的可不是 JavaEE web servlet 等规范是 Javaee 的一部分不是全部 |
26
Cbdy 2017-02-01 07:09:44 +08:00 via Android
抛弃所谓初学者的心态 /不要用百度(不听拉倒)/看软件、技术名著 /去看源码 /调教你的 ide ,或用 idea
|
27
cs419 2017-02-01 07:39:39 +08:00 via Android 1
楼主 你不是应该先写一个 jvm 么
多数的老司机都是先会开车。 车子遇到小问题了, 自己捣鼓捣鼓 一点点的成长。 你很有勇气 刚拿到驾照 就想着造发动机啊! 目前来说 没开几年车的你 想要去造车 对于就业不大现实 |
28
limbo0 2017-02-01 08:03:59 +08:00
lz 还是 c 语言的思想
|
29
misaka19000 2017-02-01 08:41:44 +08:00 via Android
@cs419 不是应该先提炼硅吗(滑稽)
|
30
Kilerd 2017-02-01 08:56:15 +08:00 via iPhone
嗯,我也长见识了。😷😷😷
|
32
wohenyingyu02 2017-02-01 10:50:04 +08:00 via iPhone
小企业不需要程序员,只需要调参狗
|
33
CRVV 2017-02-01 11:00:00 +08:00 via Android
推荐楼主再去学学其它语言,比如 Python, Haskell, SQL ,用这些语言写写最开始学 C 的时候写的最简单的程序,我估计会有些好处
|
34
aabbccli 2017-02-01 11:36:10 +08:00
把 HTTP 协议学好了,什么框架都好上手。
|
35
wyntergreg 2017-02-01 12:27:50 +08:00
主语言 JAVA ,进厂先做三年沉淀再讲别的。
对,就是 leader 让你干什么你就干什么,萌萌哒就可以了。 |
36
sobigfish 2017-02-01 13:12:28 +08:00
开发框架还不如开发应用,歪楼问下:有什么 java 的比较好的开源电子商城么?
jfinalshop 是 gpl 的 而且貌似不适合手机浏览(不是说 html/css 是说适合手机的支付) |
37
NvSylvanas 2017-02-01 14:07:00 +08:00
厚积而薄发
|
38
Totoria 2017-02-01 14:34:45 +08:00
百度和 Google 真的仅仅是喜好问题吗?
|
39
davidway OP 我发现我的方向
@woojuno Spring 确实不是一个人写的。我只是想理解他的概念,然后自己试着写一个 spring @q397064399 就是查了文档后,想自己写一个出来,就这样的想法 @Cbdy 嗯,对,我其实开这篇帖子是想请教学习方法 @limbo0 那不是 C 语言的思想的话那是什么? @CRVV 这些语言封装得更彻底,更追求业务逻辑。更扑朔迷离。其实我问这个问题的愿意是看着 别人的面试题,也是一脸懵逼,不知道他考我的是什么。 |
40
bombless 2017-02-01 16:39:40 +08:00 via Android
一般的项目你要干起来就是比较抽象的,没有文档的时候经常是看着名字猜用途 哈哈哈
|
42
sheep3 2017-02-01 18:49:57 +08:00
不要把框架想的那么可怕,重要的是善于在发现问题的时候去找到出现问题的真正原因。
说白了就是会从源码上追溯就好。慢慢来,先做好功能的实现,代码量积累起来了就好。 |
44
Weixk 2017-02-01 20:00:46 +08:00
C 的完整的项目也是要用很多第三方库文件,对比一下就知道反而是 Java 的项目比较容易理解。
|
45
neoblackcap 2017-02-01 20:20:12 +08:00
编程只是解决问题的方法,不要将编程看成脱离实际的工作,我们绝大多数不是在搞研究,因此我建议是,底层细节等你需要用到的时候再去学,有空才学也可以。努力成为一个领域的专家,比如你是你在开发后台的审计系统,那么你就去研究好审计的业务逻辑,这个才是真正的厉害的的本领。
库跟框架都是平常大家在写业务逻辑抽象整理出来的,急不来。你对业务逻辑不熟的话,很有可能就搞出不符合大家使用的为了框架而作的框架 |
46
davidway OP @neoblackcap 对头,我就是不理解 struts2 帮我做了什么,用了什么做到拦截请求并把请求放到生成类的方法里, spring 我也不知道加了个注解,他为什么就能帮我 new 了出来,而且 new 的都很对头。
|
47
sunsetwan967 2017-02-01 20:55:57 +08:00
@weiweiwitch 说得好,学习一下。
|
48
yidinghe 2017-02-01 21:27:25 +08:00 1
我从毕业算起,做了 11 年的 Java 开发,但毕业之前自己学了两年 .net 。自学编程是有套路的,我个人总结主要是两点,一是找事做,给自己写应用,或者论坛上有人提出来的问题,尝试解决下;二是拓展视野,有的问题牵涉到其他领域的,就系统的了解下,这绝不是浪费时间,比如学习 Servlet 免不了要接触 HTTP 协议,那就系统的了解下 HTTP 。
|
49
davidway OP @yidinghe 我也试着这样做过,发现论坛别人提出来的问题,涉及的很多我不会的知识,然后我发觉确实是自己的知识的系统性不够完善,很多东西在我的头脑很碎片,然后想找到这个系统。这时候我通常会找书,我通常都找下那些经典书,然后至少理解一下书中的每一个小节它是什么。这个算不算一个比较好的了解系统的方法?但总觉的如果没有写成代码不实在,感觉没不确定自己是否有理解到作者想表达的是什么。。。不过书中通常没代码,或者例子。这也是我比较蛋疼的地方
|
50
yang2yang 2017-02-01 22:30:10 +08:00
感觉看 lz 就想在看自己一样。。
|
52
likuku 2017-02-02 02:26:52 +08:00
@davidway JAVA 因为其复杂性 /各种现成包 /代码风格严谨 /便于产业化,实用对 JAVA 优化的 IDE 可以大幅度提高编码效率。
常言道“ JAVA 很多时候编辑个配置文件就可以直接用了“ |
53
ilumer 2017-02-02 04:17:46 +08:00 via Android
EE 这些我也是不是很懂,只是应付学校的学了一个月,但是楼上真的是瞎鸡巴说 @q397064399,抱歉说的准确
|
54
popu111 2017-02-02 06:20:32 +08:00
@Reficul 现在 Golang 用 LiteIDE 简直不能更舒服,不止查文档很方便(毕竟 go 自带 doc ),而且资辞直接 Ctrl 追进标准库代码里面去看实现,麻麻再也不怕我看不懂文档啦~\(≧▽≦)/~
|
55
tajpure 2017-02-02 08:06:21 +08:00
@cs419 JVM 的实现也没有那么复杂,你看别人用 18K 行代码,加几个轮子不就造了个能跑 Tomcat 的 JVM , http://llvm.org/pubs/2008-09-LadyVM.pdf
|
56
ayanamist 2017-02-02 09:26:50 +08:00 1
蛮奇怪,难道楼主写 C 的时候是直接连 libc 都不用的,哪怕全部直接用 syscall ,都一样会有楼主描述的问题呀,各个 syscall 之间的坑都很多,文档也就只有 man 而已,例子更是稀少。
|
57
claysec 2017-02-03 10:53:49 +08:00
我和楼主也一样。。一脸懵逼。只会粘贴复制
|
58
sampeng 2017-02-03 11:12:54 +08:00
不要给自己定目标。。。相信我,程序员给自己定目标的意义就和项目会上估时间一个道理。
换句话说很容易把事情想的特别容易。然后在碰到挫折或者所谓的坑会有挫败感,时间长久成了迷茫。 我的想法是,换个做法。把事情捏碎了去做。 do and done 是最好的解决方案。想做框架。先搞明白这个框架需要解决什么问题,每个问题分别对应哪些 feature 。每个 feature 需要如何去实现,每个实现需要什么样的数据结构和算法。 用设计语言的话来说就是思考要从上而下,做事是从下而上。一个很小的数据结构和算法可能半天就完事了。然后无数个数据结构和算法就可以对应一个 feature 。。堆积多了就成你想要的东西了。 别整天脑子里想着我要实现一个牛逼的框架。没意义,捏碎了去做。 |
59
sampeng 2017-02-03 11:13:43 +08:00
ps 。。。别用百度。。。请用 google +1.。不会翻墙的程序员,并且不想着如何去翻墙的程序员。会被其他程序员尤其是有能力的 leader 内心鄙视 100 遍
|
60
davidway OP @sampeng 对,确实应该要一个知识点一个知识点踏步踏步上去。这些知识点是最好从官方文档那里整成一个系统,然后去慢慢细分去掌握吗?
|
61
crui923779628 2017-02-12 19:42:11 +08:00
楼主可以加个好友交流交流吗?Wechat 923779628
|