Tuesday, August 23, 2011

如何通过不编程成为一个好的程序员

daily hack news看到推荐的一篇文章,原文是比较老的,2007年,How To Become a Better Programmer by Not Programming

摘录里面的几句话:

  • 对于Does accumulating experience through the years necessarily make programming easier?盖茨的回答如下:


    • I think after the first three or four years, it's pretty cast in concrete whether you're a good programmer or not.

    • 3-4年既可以看出来你是否是个好的程序员,编程经验的积累并不能让编程更加容易




  • The older I get, the more I believe that the only way to become a better programmer is by not programming. You have to come up for air, put down the compiler for a moment, and take stock of what you're really doing. Code is important, but it's a small part of the overall process.


    • 你需要离开电脑一会,仔细思量你做的东西,代码很重要,但只是整个过程的一小部分


  • To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming.


    • 将热情倾注到编程相关的所有事情上去


  • You won't-- you cannot-- become a better programmer through sheer force of programming alone. You can only complement and enhance your existing programming skills by branching out. Learn about your users. Learn about the industry. Learn about your business.The more things you are interested in, the better your work will be.


    • 加入纯粹靠编程,你不可能成为一个更好的程序员

    • 了解你的用户,了解业界,了解你的生意,你感兴趣的事情越多,你的工作将会越美好


Monday, August 22, 2011

才储分析:您的性格类型倾向为“ ENFP ”

才储分析:您的性格类型倾向为“ ENFP ”(外向 直觉 情感 知觉 倾向度: E70 N52 F83 P52 不假思索指数:19)

热情洋溢、富有想象力。认为生活是充满很多可能性。能很快地将事情和信息联系起来,然后很自信地根据自己的判断解决问题。很需要别人的肯定,又乐于欣赏和支持别人。灵活、自然不做作,有很强的即兴发挥的能力 ,言语流畅。

ENFP型的人充满热情和新思想。他们乐观、自然、富有创造性和自信,具有独创性的思想和对可能性的强烈感受。对于 ENFP型的人来说,生活是激动人生的戏剧。 ENFP型的人对可能性很感兴趣,所以他们了解所有事物中 的深远意义。他们具有洞察力,是热情的观察者,注意常规以外的任何事物。ENFP型的人好奇,喜欢理解而不是判断。 ENFP型的人具有想象力、适应性和可变性,他们视灵感高于一切,常常是足智多谋的发明人。ENFP型的 人不墨守成规,善于发现做事情的新方法,为思想或行为开辟新道路,并保持它们的开放。在完成新颖想法的过程中,ENFP型的人依赖冲动的能量。他们有大量的主动性,认为问题令人兴奋。他们也从周围其他人中得到能 量,把自己的才能与别人的力量成功地结合在一起。 ENFP型的人具有魅力、充满生机。他们待人热情、彬彬有礼、富有同情心,愿意帮助别人解决问题。他们具有出色的洞察力和观察力,常常关心他人的发展。 ENFP型的 人避免冲突,喜欢和睦。他们把更多的精力倾注于维持个人关系而不是客观事物,喜欢保持一种广泛的关系。

您适合的领域有:未有明显的限定领域

您适合的职业有:(倾向度解释、类型盲点及发展建议见MBTI第二步分析)

· 人力资源经理
· 变革管理顾问
· 营销经理
· 企业/团队培训师
· 广告客户经理
· 战略规划人员
· 宣传人员
· 事业发展顾问
· 环保律师
· 研究助理
· 播音员
· 开发总裁
· 广告创意
· 广告撰稿人
· 市场营销和宣传策划
· 市场调研人员
· 公关专家
· 公司对外发言人
· 儿童教育老师
· 大学老师(人文类)
· 心理学工作者
· 心理辅导和咨询人员
· 职业规划顾问
· 社会工作者
· 演讲家
· 记者(访谈类)
· 节目策划和主持人
· 专栏作家
· 剧作家
· 设计师
· 卡通制作者
· 电影、电视制片人

问问自己:我怎样才能更好地服务于人类?回答这个问题并付诸实践。发现你独一无二的天赋,用它来为人类服务,你可以创造出自己所需要的所有财富。当你富有创造里的语言与你的同胞们发生共鸣时,财富就会自动涌现,由潜在的变为实际的,由精神领域的变为物质领域的。

———— 迪帕克

我现在的职业是IT民工,所以只能来计算个相似度了,

· 企业/团队培训师
· 广告客户经理
· 战略规划人员

这些貌似是近的,不过PM之类的我觉得可以有

Saturday, August 20, 2011

下半年要读的几本书

貌似某人说过,要么旅行,要么读书,身体和灵魂,必须有一个在路上。
就我目前的状况,时间和金钱都不允许,于是我只能让灵魂上路,旅行的事情,靠YY了。
入手了如下几本书,预计在下半年看完,提供时间利用率

1.程序员修炼之道,读了前沿等,似乎评价很高,俨然是作为一个IT民工不得不读的书,于是决定拿下,不然说不过去- -,预计耗时2-3周



2.数据挖掘概念与技术,当年学过,可惜没用过,基本上是白瞎了,现在正好可以用到,拾起来最好不过,预计耗时4-5周



3.卓有成效的管理者,该书为老大所赠,被我戏称为effetive management,预计耗时2-3周



4.黑客与画家,这是最近很多人推荐的两本书之一,阮一峰翻译,另一本是浪潮之巅,这个当年在google的黑板报看过部分,有空还是需要拜读一下的。预计耗时2-3周



5.万历十五年,此书为basca和skypath两位同学推荐,目前已经在地铁上看电子书看了一点,主要用来打发零碎的时间,预计耗时几个月

Wednesday, August 10, 2011

LINUX:使用 screen 创建并管理多个Shell窗口

大家平常在linux上开发(通常是开发机或者是测试机)的时候,有没有觉得需要开N多个窗口?a窗口看文件列表,b窗口做代码编辑,c窗口写makefile,d...。每次开始干活的时候都要依次打开这么多窗口,还得进入相应的目录,虽然自动登录和登录后的动作可以部分解决这个问题,但是依然让人不爽。尤其是有的登录处于安全无法完全自动化,而登录后的动作又会经常有所变化。
  使用 GNU Screen 就可以了。screen 可以在一个控制台(如XshellsecureCRT) 登录 shell 中创建和管理多个 shell 窗口。可以从一个 shell 窗口迅速切换到另一个窗口,最重要的是一天的工作完了之后,不必退出这n多shell窗口,而只是将它们detach,然后退出登录,下次登录的时候可以使用screen重新恢复上次连接的多个窗口。可以理解为是一个虚拟的远程主机,假如有一批服务开启了,如果你退出再次登录,他们都还在运行。
  安装就不说了,配置会在后面说,先说下几个简单实用的命令吧,详细的命令man一下吧。

  • screen:第一次使用的时候,输入screen,即新建了一个session,然后默认有一个shell窗口,下面会有状态栏显示窗口的名称,通常是“0 bash”。

  • ctra a + A:假如你想重命名这个窗口,按ctra a,然后A,就可以重命名

  • ctrl a + c:新建窗口

  • screen -t name:新建名字为name的窗口

  • ctrl a + n or p:切换窗口,n next,p previous

  • ctrl a + ":列出所有的窗口,也可以在状态栏观察到

  • screen -S name:新建一个session 名字为name

  • ctra a + d:使得当前的session detached,这个是很重要的一个命令,这个命令使得你临时退出了该session,而下次可以进行重新连接

  • screen -ls:想进行重新连接的时候,你需要知道你的screen session是哪一个,然后使用screen -r id命令,ls列出了所有的screen session的id,当然假如你使用screen -S name创建的session的话,会有一个名字,更便于记忆

  • screen -r id/name:重新连接screen session id/name,即恢复访问你之前打开的诸多窗口

  • exit:退出当前的窗口

  • ctrl a + K:kill当前窗口


  •   这些命令目前对于我来说已经足够了,然后来说说配置,默认的screen的配置是无法在状态栏上显示所有的窗口的,只能显示当前窗口的状态,当然你可以用列表的方式,或者切换来访问其他的窗口。其实可以展示成类似标签的更好的方式,即可以使用状态栏在视觉上进一步区分各个窗口。启动您喜欢的文本编辑器,在主目录中创建包含以下代码的 .screenrc 文件:
    hardstatus on
    hardstatus alwayslastline
    hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a

    然后每个新窗口就会显示在状态栏,包含编号和名称,如“0 econsh”。
      刚刚开始使用screen,虽然只是菜鸟级别,但是确实是个申请神器,因此迫不及待和大家分享一下:)
    参考资料:
    对话 UNIX: 使用 Screen 创建并管理多个 shell
    linux 技巧:使用 screen 管理你的远程会话
    linux下的screen工具配置(针对 string escape)