两年 Java 生涯回顾 P2 (日常篇)

GotaX 发布于 2016/03/08 22:33
阅读 1K+
收藏 0
非常感谢大家在我第一篇帖子中的积极评论, 或是给我鼓励, 或是提供有用的建议.

所以我就来写第二篇啦 ~~~

第一篇在这儿:  http://www.oschina.net/question/568626_2157079

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
首先, 有些朋友从第一帖中推论出我的知识结构广而不精. 在此我想谈谈我自己的看法.

我承认当时我的知识结构确实如此, 但我并不觉得这样有什么问题, 不如说我原本就希望如此. 因为
理性分析一下: 作为一名普通的应届大学生, 本来就没法轻易精通一门技术. 一方面是因为技术积累
本身就需要大量时间, 没有个三五年谈不上精通. 另一方面是因为没这个实际环境, 并不是说读了
一本 <精通Java虚拟机> 就可以说我精通 Java 了, 只有在实际的生产环境中遇到了性能问题, 并
分析得出调优方案, 最终解决问题并转化为自己的知识积累, 这才算是真正的精通.

所以既然没有办法在大学期间实际精通一门技术, 那当时的我肯定选择尽量多学一些可能用得上的知
识, 毕竟我无法预估将来的实际工作环境. 不过我也不是随手挑着学, 本质上还是围绕着 Java 的,
Groovy 和 Gradle 皆是如此.

综上所述, 我还是鼓励大学生在校期间围绕自己的主攻方向多学几门相关技术的. 比如我从 Groovy
中接触了函数式编程的思想, 就比只会面向对象的同学更有优势.

当然, 这都只是我自己的想法和做法罢了, 还请轻喷.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
好, 下面就进入正题了. 我后来仔细想了想, 一直按时间线写总有种流水账的感觉, 读起来可能会
又臭又长. 所以这次干脆就挑几个典型情景来写吧, 说不定大家平时也经常遇到的说.

我第一个要吐槽的是开晨会. 刚开始的时候我们的办公场地比较小, 甚至没有一个单独的会议室.
晨会开起来也很简单, 拉块白板, 大家围成一圈, 简单总结下昨天的工作, 再讨论下今天的计划,
就此结束, 前后不过 15 分钟, 非常的爽快.

但是好景不长, 后来我们搬到了一块比原来大得多的工作场地, 大概大了 8 ~ 10 倍的样子. 自然
也有了单独的会议室. 然而会议时间也随之拉长, 30 ~ 60 分钟不等. 并且除了晨会外, 其他的会
议也莫名其妙地多了起来.

我至今记得我最惨的一天, 一共参加了三场会, 从上班开到下班 (还有延长). 从会议室出来口干舌
燥, 路都走不稳了.

当然上面这种属于极端情况, 但是就算是每天平均 45 分钟的晨会, 也导致上午剩下的那一个多小时
变成了垃圾时间. 写代码刚刚进入状态, 却到了吃饭时间, 我相信有类似体会的同学一定和我当时的
感觉一样, 那就是 ------ 扫兴.

所以我后来就改变了策略, 上午那一个多小时干脆放弃写代码, 专门用来看书. 效果简直立竿见影,
强烈建议和我一样苦于晨会的同学尝试. 从此往后我基本上能每 2 ~ 3 周读完一本书, 包括技术类
的 <Java 并发编程实战>, <50 Android Hacks>, <Gradle Beyond the Basic>, ... 和非技术
类的 <如何阅读一本书>, <批判性思维指南>, <代码整洁之道>, ... 总之绝对比赶那一小时的代
码值当得多.

第二个我要吐槽的就是官僚主义了, 我是真想知道南京别的单位有没有这样的毛病. 一天我和 Leader
讨论架构, 我指出原来的架构设计里存在隐患: 1, 2, 3; 以及不灵活的地方: 1, 2, 3; 然后我就
顺势提出我自己的设计. 但 Leader 就是不同意, 我也只能把其中每一点都摊开来和他继续讨论,
直到每一点都确认无误. 但让我没想到的是, 到最后的对话竟演变成这样.

我: "这样设计可以接受了吧"
Leader: "不行"
我: "为什么? 有疑点我们可以再接着讨论."
Leader: "不, 就是不行, 因为 Boss 就是这么说的, 没有讨论的余地."

简直了! 我顿时觉得我之前费那么多口舌就是犯傻. 也第一次感受到理性思维在等级制度面前是多么
的无奈. 当然之后此类的情况还是会出现, 关于架构设计上的问题我也还是会提, 只是我最后只能
无奈地表示: "这个隐患就算不管, 到最后还是会暴露的." 然后不了了之, 并做好改 bug 的准备.

最后举个具体点的例子吧. 做一个 Android App. Boss 颁布圣旨: "应用全都用 C 写, 时间大概
两周." 我第一反应就是这不靠谱, 只能向 Leader 反映: "用 C 写业务层太扯了, 还是 Java 写
吧" Leader 依旧是: "Boss 就这么说的, 你就拿 C 先写吧". 哎, 我就知道... 于是在一周内硬
是用 C 写了一份出来, 当然其中参杂了些 Lua 脚本节约时间, 否则你就是让我不睡觉我也来不及
呀. 然而我毕竟不是专业 C 程序员, 因此程序稳定性并没有达到要求. 但两周要到了呀, 最后只能
非常无奈地选择加班, 并在最后的 48 小时里牺牲所有睡眠时间用 Java 把程序重新写了一份.

(讽刺的是, Boss 后来压根就没问这东西是 C 还是 Java 写的)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
哎呀, 不知不觉又写了 2000 多字, 这 P 就先到这儿吧. 最痛苦的出差篇我还是放最后好了.

杭州和上海, 大家觉得我选哪边会有更好的发展呢?
加载中
0
朱宏青
朱宏青

太长不看

上海

(手动滑稽

GotaX
GotaX
每次一开写就停不下来的说 :stuck_out_tongue_closed_eyes:
0
weihuai
weihuai
打工就要有打工的觉悟,你想得太多,, 领导怎么要求怎么做,就行了。
weihuai
weihuai
回复 @GotaX : 你可以保留自己的想法,但是得按照他的执行,只因为他是领导,
GotaX
GotaX
回复 @LAJS : 抱歉我没讲清楚。一个长期稳定的系统不宜轻易修改,这个常识我还是有的。当时的情况是 boss 和 leader 开会讨论新系统架构,完了leader再和我开会讨论架构的实现,也就是说这系统当时还处于计划阶段。 我这样讲就清楚了吧。
护士的小黄瓜
护士的小黄瓜
你也要替你的领导想一下,现在的架构没出问题,突然换架构或者引入新的东西,你要是没有在各种环境下测试过,我觉得还是不要的好,毕竟你们的职责不同,领导不仅要为客户 老板负责,还要为你们程序员负责,要是真出现问题了,这个锅他背定了,要是让你负责一个项目的话,你估计也不会换的。你可能会说不思进取什么的,但很多情况就是这样的
GotaX
GotaX
领导怎么做是一回事,但我该提的还是一定会提。一味听话,人就变麻木了。
0
_
_Tench_
LZ的态度需要顶一个~
GotaX
GotaX
谢谢鼓励
0
MockMan
MockMan
50 Android Hacks虽然“借鉴”android官方的内容比较多,比如数据同步那部分几乎和官方的例子一样,不过大部分章节还是比较有启发性的。
GotaX
GotaX
对,这类小册子虽非高深内容,但对拓宽思路还是很有用的。
0
xpbob
xpbob
其实对这样的领导,你就按照他说的做就行,出现问题后要不联合大家一起反对,要不就让产品失败,起码让他知道自己出问题了
xpbob
xpbob
@GotaX 还要兼容ios啊,你让我想到了qt,他真的可以跨平台,包括手机
GotaX
GotaX
回复 @xpbob : JNI 都没法用的说,因为 boss 希望它像一个普通的Linux进程一样在后台运行。说这样以后就可以直接兼容 iOS 平台了。话说当时要是有 golang mobile 的话就没这么痛苦了。
xpbob
xpbob
@GotaX 搜噶,你多写写jni,这样就满足了他的需求了。下次和他说说c/c++跨平台的问题,或许他就不会很愿意了
GotaX
GotaX
其实boss是做技术的,Linux系统方面的专家,所以一切都想拿C解决。
xpbob
xpbob
@GotaX 我觉得反过来更好,你先照着做,做不出来再找他,起码让他知道下次不能提这种要求,看你的boss也不像做技术的,解释技术可能没那么有用
下一页
0
panda大侠
panda大侠
java好厉害,c2周都不一定能写出来的东西,java48小时就出来了
panda大侠
panda大侠
回复 @GotaX : 资深人士无法用言语表达
GotaX
GotaX
两周是总时间,包含了用C实现一遍,测试过一遍,改bug,改不了又用Java重写这一系列事件。
GotaX
GotaX
也不能这么说,我毕竟主攻Java,所以C写的并不多。
0
ArrayListt
ArrayListt

我在之前的公司也和你差不多的情况。不过我是属于阳奉阴违的。

就拿C那个来说,如果是我的领导要求,我就直接用java写。

因为有的人傻逼,你不能跟他一样傻逼。而且有时候你跟着傻逼了。

最后也会要让你聪明回来(用java在重写回来)

ArrayListt
ArrayListt
回复 @GotaX : 因为我以前也和你一样,上了很多次当,所以后来我就直接无视了。
GotaX
GotaX
可能性格不同吧。我这么做的考虑是,我提过n次结果n次都被我说中了,以后我再提,领导就会重视一些了吧。
0
黑黑的脚后跟
黑黑的脚后跟
兄弟学习能力真强,膜拜
0
码啊码
码啊码
我比较好奇的是,怎么用C去实现一个listview!!!
GotaX
GotaX
是一个纯粹的后台的服务,并没有界面,否则真得上Qt 了。
返回顶部
顶部