
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 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 @davidway 你设定的目标太高了!这是你现在面临的最大问题,也是你觉得迷茫的根源。不管是获得掌控感还是写出一个框架。这都不是一个刚毕业或者有 1~2 年经验的程序员可能做到的事情,因为这个领域所需要的知识太庞大了,很少有人能吃下来,并发挥出来。你如果坚持这么做,那么你实际上在走一条地狱模式的路。逼自己在一种长期的没有成就感的路上摸黑一般的走,并且这种走法,自己都不会觉得有多大可能走出来。就像在沙漠中走一样。 之前你用 C 写程序,可以说这些程序的体量应该都不大,才会让你觉得有掌控感。而你以工作中做的 Java 相关的项目,即使不算上框架的代码,也可能比你的 C 程序大上至少一个数量级。这是不可能获得掌控感的。 你需要调整下目标,拆分下对自己的要求,做一个自己觉得可行的计划表,一个由一个个小目标累计出来的计划表,然后逐步的实现,从而慢慢的让自己成长起来。 如果你不知道怎么做出一个可行的计划表,你也可以在这里或者知乎上发帖。看看别人一步步学了什么,做出了什么后,才慢慢的能做项目的。 |
15 RangerWolf 2017-02-01 00:00:53 +08:00 个人的一些想法: 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 楼主 你不是应该先写一个 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 主语言 JAVA ,进厂先做三年沉淀再讲别的。 对,就是 leader 让你干什么你就干什么,萌萌哒就可以了。 |
36 run2 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 我从毕业算起,做了 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 蛮奇怪,难道楼主写 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 |