职业路线的矛盾抉择

经历:两年的电信SP行业打杂,主发垃圾短信,使用的技术方案是PL/SQL,Java。这两年现在回过头来看,起点确实太低了,无论是薪资还是企业层次还是别的什么。但是要说这两年完全是浪费时间却也不能这么讲。从毕业时的一无是处到两年后的略有水准,毕竟有了一个过渡,并且打下了一定的基础。然后又是将近两年的金融IT行业半打杂,使用的技术方案是纯PL/SQL,主要精力花在数据的匹配和核对上。对于金融业务,从完全不懂到略微懂得一些,但在真懂的人面前估计连皮毛都没有。

现状:熟悉PL/SQL,然而并不精通。熟悉Oracle,但是不能处理常见的数据库故障,不曾在DBA路线上投入过什么。熟悉Java,但是基本功不扎实,并且以后也不想再使用Java。其他杂七杂八的知识有不少,但都只是皮毛。会一些Perl,做过一些逆向,对加密解密有些兴趣。因为股票投资收益,对金融也有兴趣。数学功底基本处于没有的状态,算法知识奇缺。

感觉可以走的路线:

1. BI,Data warehouse, Data Mining.

2. Machine Learning,Nature Language Processing.

3. 黑道的外挂,破解,挂马等

4. Quant.

从目前的现状看,这四条路线我都还差距较远。难度从上到下依次排列。Quant 感觉更多的是个美好的梦想,实现可能性甚微。路线2是我兴趣非常浓厚的一个方向,然而目前的基础也欠缺非常多,至少暂时没有可能弥补。这条路线求职的话,甚至可能还需求一个硕士学位。路线3的难度我看不到,没有真正进入这个领域,难以看清深浅,但是至少来说可能得补上一个系统性的Windows软件开发基础。路线1从目前看是最适合我的,需要补充的知识和技能也比较容易补足。でも、本当にそう?

我似乎必须得做出选择,否则各方面牵扯的精力实在太多。要说兴趣的话,我似乎都有兴趣,并没有哪个特别强烈一些哪个特别反感一些。常年的维护性工作已经培养出在随便什么繁琐无味的事情中找出乐趣的能力了。那么就看钱吗?也不是不可以。哪份工作能获得的薪资以及相应所需要的补全的内容以及补完这些所需要的时间之间得作个权衡。可是我所掌握的信息无法支持我做出判断……

另外还有一个路线5,

5. 破罐破摔,发挥民工风格,哪里钱多就去哪,随便做点啥。经历过招聘的都知道,企业招人并不是非要怎样才招的,我现在的水平虽然被自己鄙视,但要找个工作并不难,只不过不理想而已。破罐破摔的话,就往薪资高的去处聚集,彻底无视在“工作中积累”这一条,钱多就去,然后自己抽点时间做点别的。

这似乎也是一个可选项……

 

做好第一件事

我曾做过很多计划,结果都成为了泡影。后来我坚持同一时间只做一件事,以免被过多的思绪所阻挠,但是很遗憾,依然失败了。

现在我依然有许许多多的想法,有许许多多的事情想要做,但是我不敢安排了。然而总是躲避这个性格缺陷也终究不是办法,我的人生会虚度的。

那么,就从做好第一件事情开始吧:早睡早起。

这个作息制度对目前的我来说只有好处,没有坏处。如果我想变得健壮一些,活得长一些,生活更正常一些,就应该尽我所能地实现这个作息。

早睡也许做不到,首先就早起吧。天天早起,必然会早睡的。

设定闹钟,不留贪睡时间!第一次听到就起来,以此作为对拖延症的第一战。

大丈夫当如是也

秦王怫然怒,谓唐雎曰:"公亦尝闻天子之怒乎 "唐雎对曰:"臣未尝闻也."秦王曰:"天子之怒,伏尸百万,流血千里."唐雎曰:"大王尝闻布衣之怒乎?"秦王曰:"布衣之怒,亦免冠徒跣,以头抢地尔."唐雎曰:"此庸夫之怒也,非士之怒也.夫专诸之刺王僚也,彗星袭月;聂政之刺韩傀也,白虹贯日;要离之刺庆忌也,仓鹰击于殿上.此三子者,皆布衣之士也,怀怒未发,休祲降于天,与臣而将四矣.若士必怒,伏尸二人,流血五步,天下缟素,今日是也."挺剑而起. 秦王色挠,长跪而谢之曰:"先生坐!何至于此!寡人谕矣:夫韩,魏灭亡,而安陵以五十里之地存者,徒以有先生也."

 

大丈夫当如是也

需要集中注意力

用了个软件统计了下我在电脑面前时都在干什么,结果百分之六七十的时间都在浏览网页。每天都在点开一个个网页,查看一条条内容,然后刷新,再看新的。上的网站并不多,以至于更新的速度远远赶不上浏览的速度,竟至于百无聊赖。可即便如此,也不愿意动动脑子去干点别的。好像僵死在那里一样,思维都停止了,就是看网页也看不进深一些的内容。

这真是很好的时间杀手。一天一晃就这么过去了,一周一晃又过去了。细想一下什么也没干。没有新想法的产生,没有新作品的出产,甚至没看一部新电影,没读一本新小说。每天回去还头昏脑胀得紧,倒头就能睡着。

不能老是这么分心下去了,必须要集中注意力啊。或者我该试试把浏览器从最顺手的位置上移开?把它埋在一层又一层的目录里,让我十分不情愿去挖出来?可是第一我确实离不开浏览器;第二没了浏览器还有别的会吸走注意力。或者是IM,或者是E-Mail,甚至于Update SVN……

也许我该去练习下剑道。今天看了《最后的武士》,剑道确实有让人专注的功效。也不一定得剑道,插花,沏茶,射箭之类的应该都可以。只要有一颗平静安宁的心。在这信息狂流中行走而不迷失……

 

这几年一直觉得,是时候再次修身养性了。那就开始吧,不再拖了。适当地离开电脑,离开网络,离开信息洪流。我不要那么宅。我希望能有更精致的生活,能有更多点的时间做一些真正有价值的东西,能书写自己的历史——而不是一直做个旁观者。这一切就从集中注意力开始。

先做些冥想,平静下内心,并让快死掉的想象力复苏起来。

武运长久

有一种感觉,学的越多,就觉得不会的东西越多。当我不去看书不去想那些东西的时候,我感觉自己好像都会,都能应对。可是一旦沉下心来投入进去,就发现这也不懂那也不会,还有很多很多听都没听说过。每一个看上去很直白简单的名词,深入进去都能挖出好大一块来。而当这些东西扑面而来之时,我还完全没有做好吸收的准备。

读书要进得去出得来,要由薄到厚再到薄,这点我是认可的。只是我的层次,恰好一直处于在外面徘徊的状态,都还没有进去过。实用主义害死人啊。得到的东西太过散乱而肤浅,串都串不起来。学东西还是要纯粹而耐心一点的。“欲速则不达”,这句话以前一直被我用在制造各种拖延的理由上,但这句话用在这里是确实没错的。不论靠临时的搜索解决了多少实际问题,都不可以忽略了系统的学习,虽然看上去慢一点,但却有实实在在的基础。

学过的东西太多了,却没有深入一门。这是一直以来走的最大的歪路。我可不想成为那种“矮子里面最长的,长子里面最矮的”啊。不要老和业余的比,要竞争就去找真正专业的。

=====================

一会要去迎接这一波的第一场面试了,会遇到什么呢?呵呵。

需要加强科学素养

既要做正确的事,也要正确地做事。一直以来,我都认为我不缺正确的高效的方法,但实际上并不是。不论是学习新技术还是调试老bug,或者就是单纯地浏览rumors,我都缺乏足够的科学素养,并因此不断地走各种歪路,浪费过多的时间和精力。

 

科学素养,首要一点就是逻辑,并且是建立于事实基础之上的逻辑。理解任何东西的根本上也依靠逻辑。程序语言有几十数百种,但学起来并没有什么难度,一方面固然是因为大体上都很相像,另一方面也因为所有的程序语言都建立在数学的严密逻辑之上。只要能理解某个问题的实质,就能一步一步地开发出一个具有逻辑性的解决方案,各种语言的特性都是其次的。

可是实际中却经常忘了这一点。遇到一个问题,便开始做各种无端的推测。可能“无端”倒还并不至于,但是那个“端”与推测之间,完全经不起逻辑推导。总是幻想着依靠“直觉”突然跳到问题所在点并一举解决。这种撞大运的方式,只会掩盖真正的问题,而不会带来任何好处,即便在效率上也是低下的,效果上更是无法保证。虽说应当允许“试错”,但试错也是应当有依据的,应当是“验证”一种解决方法,而不是尝试一种推测。

如果是在做实验,那么应当有明确的实验目的而对结果的评测方法;如果不是在做实验,那么应当真正明白自己在做什么,真正理解每一步的原因以及会发生什么事情。在没有理解之前,即便有看上去可行的解决方案,也不应当采用,因为根本无法做出任何保证。“或许可能行”,也或许可能只是暂时行,或许可能看上去行,或许可能根本就不行。

 

科学素养,应当有探索精神,应当不断进取。学习应当有一定的系统性,而不能满足于一个又一个的“片段”。“够用就好”,这种“实用主义”只会导致浅尝则止,带来平庸。大家都是懒人,但是眼光应当放更远些。不要为了一时的懒惰而牺牲更长远的空闲。从一个个“片段”里得来的东西,只要还在用,总是会不够用的,并且会经常不够用的。但是因为缺乏系统的学习,连提高都变得有困难,陷入迷茫之中。在绕了一大圈远路之后发现,原来事情原本可以非常简单,只要读一遍最基础的教程就可以了。这种悲剧不能一再上演。

Job Requirements

1. 2+ years database related experience. 
2. Proficient at SQL programming and tuning, and store procedures
3. Experienced on Oracle database administration.
4. Experienced on database design and architecture
5. Familiar with Java/.Net. 
6. Excellent at communication skills and teamwork
7. Capable of English writing and speaking
8. Excellent at analytical and system thinking
9. Bachelor degree or above

 

6 and 8 are hard to measure. So the key is 2, 3, 4. I should get to know SQL tuning, or else I can not call myself as "Proficient at". I will get down to practise the database administration sooner, and it will not take too much time I think. But the database design and architecture... it is somehow hard to measure too. Maybe I shall read some books about database design... and that might be enough...

To SQL Programming, I should try to follow the "best practice", get to familliar with all kinds of usage. Oracle SQL tuning must depend on the interpretation of execute-plan. I need to know how it works and how to change it.

Self Discipline

我放纵自己的日子已经太久了。高中三年,大学四年,外加毕业后两年,足足九年放浪形骸的时间啊啊啊啊!!!!!!!!!!!!!如果说之前的日子过得太压抑太辛苦,那么这足足我整个至今为止的人生的三分之一还要多的放纵也足够了吧!!!!!!!!!!!!!!

 

非常非常非常有必要回到很久很久很久以前那种“自律”的状态了!我曾经以为自律对我来说是轻而易举的事情,我曾以为我可以靠着自己的监督就达到最高效率,我曾以为我过去的九年会是灿烂的新生活,最后我发现这些都丢了!!!!!!!!

 

我现在连坚持看书都做不到了啊啊啊啊啊啊!!!!!!!!!!!!!!!每天太晚睡的日子让体质也不行了啊啊啊啊啊啊!!!!!!!!!颈椎病已经很严重了啊啊啊啊啊!!!!!!!稍微撞一下就能晕倒的啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!扛桶水都有困难啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!

 

不论从哪方面看,这种现状必须改变。必须要与自己过不去,不能再这么随心所欲下去了。

Speed up

No more time wasting. Tomorrow is March again.

1.I shall read at least one chapter of "Thinking in Java".

2.I shall buy the button cell battery as quickly as I can. Then deal with the Gentoo. And Oracle. These should not be delayed any longer!!

RSII 进度

Steam模块需要再写。 Preference Editor这块需要给OpenFileDialogue怎么打开文件安排一下。然后是各处的File.Copy,File.Delete操作加上try{}catch{} block,因为不曾验证过文件存在性。Bloom模块需要review一下,因为没搞明白启动方式。

全部写好后需要进行一个测试。

 

功能测试通过后,回过头来处理界面透明以及窗口移动的问题。 还有就是将两个自定义控件的dll给弄到exe程序本体里面去,尽可能不要多出文件来。

 

一切都OK后,看看能否加入背景音乐的播放。

To do list of near future

1.Java:

1.1.Read Thinking in Java. I do not know it will take how much time, but it must be done.

1.2.After finished reading Thinking in Java, study Java Servlet.

1.3.Read the source code of Spring, ibatis and mina.

 

2.C:

2.1. Study C again, using K&R.

 

3.Oracle:

3.1.Compile the kernel of Gentoo and make the system to be usable.

3.2.Install Oracle in Gentoo. Install and uninstall it many times until get familiar with this.

3.3.Learn and test, with the book of Expert one on one.

3.4.Implement my achievements to producting environment.

 

4.Programming

4.1.Finish the launcher of RSII as soon as possible.

4.2. An system of automatically generating daily report and weekly report.

4.3. Read through the code of CallCenter, have a main idea of writing documents in detail.

4.4. The new system of SMS.

4.5. TDD and Design pattern.

4.6. Think more.

 

5. Physics

5.1. Restart the daily practice of press-up.

Discussion and reconsideration

Had a discussion with a classmate of University. I shall admit, it is a great help to make me get out of the confusion about the career in future.

 


He said:
如果要想在技术上一直做下去,然后也想做的好的话  
在设计的思维上很重要
做技术一路下来,你会用到很多语言,很多框架
如果来一个新的就按找新的东西一路学下去会学的很慢
新技术跟起来也会很费力
所以你要学会用自己的思维方式来学一门语言或一个框架
一般一个语言或者一个框架的出现总是为了解决一个或者一些问题,而解决这些问题的方法有好多种,它只是选择了其中的一种
 
I:
你刚刚说的给了我一个启发
我之前一直纠结于到底是做个Java程序员呢还是做个Oracle DBA呢还是做个SA呢还是 去做 操作系统开发。
 
He:
我现在一般习惯于以解决问题的方式来思考一个框架或一门语言,感觉比以前在理解上要深入一些
嗯,然后现在是什么
 
I:
现在我觉得, 我们是工程师,是解决实际问题的。那些语言啊框架啊或者别的什么,都只是采用的解决方案不同罢了
不需要分的太清楚
 
He:
嗯,是这样的,他们只是工具
 
He:
不过话又说回来,你要用好这些工具,就需要对它们有足够的了解
 
I:
工具是不同的,工具上面的思维是相同的。把握住了解决问题的思路,采用什么样的工具完全就看哪个自己用起来最顺手
我需要打的基础就是精通我需要的工具
 
He:
不过当你从上层往下看的时候,你看到的东西会全面一些,这就是看问题的角度不同
另外一个,我现在的想法是,要精通工具并不是一味的看工具本身
因为工具太多了
看不完的,所以要去钻研制造工具的基础
 

 
I have a lot to learn, so having a method to learn quickly is the urgent priority. Gather information, fetch knowledge and make it be my own. This is what I need to think about.

Reckoning

 

Aspects of Current Work
 
1.Oracle Database Admin
2.Oracle Database develop
3.Java develop
4.Server Admin
5.Web Front end develop
 
Is that all?
So why bother?  What I should do is only 5 things.
 
The majority of maintaince is dirty work of Java. But the vital one to make improvements is Oracle. Thinking in Java, and Expert one on one.

Something needs to do and some thinking

 

1.Personal daily report:----Any System change must be recorded. Any bugs must be recorded. Any exception must be recorded.
 
2.Software develop: ----Maintaince one git repository for each project AS Master. Every change build a branch. After test, merge it into Master then tag it and release.
 
3.Software release: ---- Try to use Git or any other branch-cheap Version Control Tools
 
4.Document Build: ---- Basicly include Needs, Structures, some details.
 
 
 
extension:
 
@1: An Online Check System. Every day generate a todo list with blanks. Just fill in blanks after daily system status checking. It should include at least 3 modules: Todo list with blanks; Todo list setup; User control.
 
@1: To record any changes usually we use Changelog. But changelog just put everything in the order of time/version. If we want something, it is difficult to find it from a long long log list. We can mark "important" or some other signs but the importance of the change itself to system is changing. I need to find a way to maintain the system easily, both programs and documents.
Record a change and update the main document at once may be a solution. But most of the time we do not look at the document because reading the full and accurate document costs too much time. Instead, we just follow our memories. "I remember it is ..." How to synchornize the snapshot in our memories with the real system?
 
@2:Is there any tools to revision control a database?

时髦的技术

UI设计,绝对是现下最时髦的技术。一样再古老的东西,经过好的UI设计包装之后,也会让人有耳目一新的感觉。

目前的UI设计,有几个流行趋势:

1.动态平滑;

2.自由拖放,挂靠;

3.嵌套

 

在色彩上,带有质感的大色块给人一种精致而大气的感觉。

Feeling down

I want to do something, to finish my left two projects or just to do something fun, but I can not...  It seems so tired, that I have no energy, no power to do any thinking, even I am not able to do any reading...

Tomorrow is Wednesday. Oh no, Wednesday is today now. I must complete two projects this week. A WebSite built in python with django, and a launcher of a mod of Rome TotalWar. Neither of  them is easy to deal with. I am new to python, and new to C#. I want to try my best, but it seems I will fail, definitely... And I am upset.

Twitter, xiami, clanlong forum, linuxsir, and other Tech websites... I am still trying to avoid the real difficult part, by nonsensical net surfing. That is the way how I fail, just as usual. So many years and so many times, even I know that clearly, still I fail in that way.

 

I am still watching other's life, I am still waiting for death. My own story is still void and null...

WTF am I doing?!!!!

今君が好きで

"Looking for members, Upper Blackrock Spire need."

--"Hey! Need a Rogue?"

--"Nah."

--"Of cource you don't. Who needs a rogue? The most nerfed class in this game..."

"Wait wait wait. You say rogue is the most nerfed class in this game?"

Above is the beginning of World of RogueCraft: Episode I, the third video of this series produced by Mute. Mute is a famouse warlock but  showed excellent rogue skill in this video, in order to prove what imbalance is. Unfortunately, the imba still exists in the game of World of Warcraft, even those bullshit designers give up to make improvements.

One of the background music in this video is Gun N' Rose' s Welcome to the jungle, impressed me much.

 

These days, there are always  lines sounding around me. Games, videos, movies... all kinds of. Sometimes run out of my mind, and I recite them.

 

"Today, we are not only here to defend the mighty capital of ironforge; we are not only here to show the world what the alliance is made of. Today, we are here, to claime the revenge for the ones that had fallen. And I  tell you, do not fear death, for your names shall live in eternality! So I ask you, Will You, Follow Me, Into the Legend?! Then Follow Me!

-- the speech before the final war, by the Alliance leader, Drawf genernal Serphentos, Tales of the Past II

"Did you think an agent of the Lichking would be bested in the field of your pathetic little tournament? I've come to finish my task."

--Black knight,  Tournament of Crusade Trial.

 

 

Something bothered me around. I have lost interests to continue this text...

2011

时间过得很快。20年前不是很记得了,10年前却还历历在目。这10年的真正的青春岁月是一晃而过啊。

可在工位在我身后的大我十岁的同事眼里,我依然是年轻的,有着众多年轻人的特质。的确啊,这十年就跟没过一样,我好像还是只有十六岁,而不是连用十六进制也比“16”要大个3的年纪。

如果什么都不去想的话,如果一切都能永远如此下去的话,倒也挺好的。可世界终究是会变的,我已经缺失了十年,每一日的钟点都似乎在催促着什么,让我再也淡定不了。

年少的时候总会憧憬着未来,各种各样的。因为想想并不费什么力气。可真当到了该为某个未来费力的时候,却再也不想了。各种各样的未来,真正属于我的只有一个,选择什么样的未来呢?没有Save和Load,也没有重练小号的机会。也许是这样的选择太过重大了,所以不由自主地逃避了,尽可能地不去考虑这样的事情,埋藏着埋藏着,直到过期的那天么……

我真心希望“现在就开始,永远不会晚”这样的说法能够应验。忆往昔,不堪回首。所以就不忆了 吧。忘记过去意味着背叛,那叛就叛了,还是砍断了的好,省得心神不宁的。也不要再等待明天了,等啊等,等死而已。从现在开始,从现在开始,想到什么就去做吧,不要犹豫了。成功或者失败,有那么重要吗。要的只是一个中间的过程罢了,反正不论做什么最后的结果都是一样的。

 

这几天的状态还算挺好的,注意力集中地写了不少东西。兴趣依然广泛。结合当前的状况,挑选个几样作为未来的一个方向吧。

1.主要方向:Oracle DBA。 之所以是这个,一方面是听说钱多,一方面是因为目前跟这个关系最紧密。不过老实说,这事情责任过于重大,一着不慎就会闯下大祸。而且是个要“时刻准备着”的岗位,会严重影响生活质量。在技术观点上,也跟我的理念所冲突。我崇尚完全控制,自主开发,而不是被一个商业公司牵着鼻子走。公司如果是Google也就罢了,偏偏还是名声不咋的Oracle……

2.脚本语言。主要是Python,Perl系列。对这些小巧方便的脚本语言一直很喜爱。可以经常做点自己喜欢的东西,也可以用来当作很多程序序列之间的粘合。语言轻松自然,写起来就像是一种很好的休息。

3.Java。 虽然并不喜欢Java,但是现在必须的,必须要掌握与精通这个。恐怕还会是安身立命的根本……

4.操作系统。 这个是兴趣的所在,却不知道从何开始。一直都只是个User而已,偶尔算个不称职的Administrator。将一堆机器变成思想的载体,逻辑电路之上,当属操作系统为根本了。这就是当年选择进入这个专业领域的初衷啊啊啊啊啊。

5. Web前端。 恐怕也会是安身立命的根本……虽然并不喜欢,甚至厌恶编写网页。但是长期的Chrome使用,越来越漂亮与强大的各种Web程序,似乎是整个行业发展的一个方向?

是时候Thinking in Java了

去年初学Java时看这本书,看得吐血…… 完全不知道在说些什么。现在一年过去了,对Java多少也不再那么陌生了,能写代码,能改代码,还能应用框架,只是总觉得自己基础不扎实。是时候研读下这本书了吧。顺带着还需要看看GOF的那本设计模式。

前几个月的Oracle学习,因为上个月写程序的关系,又给停掉了。可是时间不等人,不管我学没学好,使用的时候马上就要到了。我的学习效率似乎太低了点,并且过于无序随心所欲。

不要再想东想西的了,专注一点吧。弄通一个是一个。Java,Oracle,PHP等脚本语言,这几个是当务之急。

标题党真多

订阅了 The Code Project 和 InfoQ 的电子杂志,于是邮箱里基本上每天都能收到几份. 浏览了一下,基本上每份都有一些吸引人点击下去的标题.可是每次读完文章内容后差不多都会大呼上当.完全就是标题党. 以为有些什么真知灼见,结果都是些废话.

"iPad as the new Flash",下面还有一行小字:"Never have so many embraced a great product for exactly the wrong reasons". 我以为这篇文章会说些iPad在技术上的不足之处,没想到全文都是在说些付费啊对传统出版业的冲击啊之类的东西.让人一阵阵的恶心.

"Desktop Linux: The Dream is Dead", 我以为它能说些什么不一样的东西,结果全是现状的罗列,主要观点无非是说在Vista,这个Windows近期最弱的时候Linux都不曾跃起,现状Win7已出,Linux再无机会了.然而这个观点却一直不进行论证.文章最后还提到了移动平台,提到了Android,大意是这个将会是Linux在大众应用上的方向.我所感到恼火的是,这个标题让我以为这会是一篇议论文,完了是篇说明文...

"Programming is for Stupid People",这篇文章是标准的标题党!一看题目,我很自然地产生疑惑,难道不编程才算聪明人?于是点过去看文章,结果完全不是这么回事.它只是在说OO比所谓的"Functional"语言更简单,需要记忆的东西更少,更适合不聪明的人用.完全是篇正确无比的废话.毫无营养.题目里的Programming其实是亲自编码的意思,说的是自己亲手写的东西比Library更容易记住.我就毛了,尽会取些耸人听闻的名字!