Blog

  • 学习语言的路线

    http://www.yangzhiping.com/tech/learn-program-psychology.html

    阳志平的个人网站::技术
    文章存档

    回到首页
    如何学习一门新的编程语言?——在学习区刻意练习
    如何学习一门新的编程语言?
    答案是:在学习区刻意练习,每天500行。什么是学习区,就是那种,你刚刚够得着,但是还是需要付出一点努力的。
    1. 如何寻找学习区
    1.1 经典教程
    一般某门新语言的图书,在豆瓣排名比较靠前,口碑都很不错的,挑一本带课后练习的就行了,放弃那种虽然写的很好,但是不带练习题目的,那种书作为备选就可以了。Ruby社区,我常常推荐日本Ruby学会会长写的这本:《Ruby Programming》课后习题。
    1.2 笨方法系列
    Ruby与Python双修的怪才Zed Shaw,推出了笨方法学习编程的系列教程。里面已经有了Ruby\Python\c系列。Zed Shaw开源了相应的方法论、资料,你也可以将它改为自己要学的版本,比如java、Arduino等。
    网址:http://learncodethehardway.org/
    Ruby中文版
    Python中文版
    1.3 社区英雄设计的练习题目
    任何一个社区,都有一些英雄人物,乐意传承自身的知识体系,因此,设计了大量的练习题目。比如,Ruby社区的以下材料都很适合初学者。
    http://rubykoans.com/
    http://kidsruby.com/
    http://rubymonk.com/
    1.4 人气较旺的程序员问答社区
    个人比较推荐:http://stackoverflow.com/
    可以去这里回答别人的问题,如果时间有限、可以先下载stackoverflow的top问题电子书
    别急着看最佳答案,自己尝试写下答案。然后再与最佳答案对照。
    2. 在学习区刻意练习的辅助工具

    初学编程,最应该记住的是在学习区刻意大量练习,千万少看书,要多练习。当年我从管理咨询行业继承的陋习,先看大量资料,才进入某个领域,并不适合学习编程。

    jpuyy note: 先从问题下手,然后找资料,后一阶段是看书,看书才能有深入

    刻意练习时,有以下重要的工具。
    2.1 TextMate的Bundle
    windows下的朋友暂时缺少,通过bundle可以快速掌握一门语言的核心语法,并自由扩充自身的知识库。
    2.2 cheatsheets
    cheatsheets类似于考试时的小抄,将某个需要学习的东西精华整理在一页或几页纸上。
    http://cheat-sheets.org/,找到里面的Ruby cheatsheets或者你自己所用到语言的小抄,有多个版本,找一个最适合自己的版本 ,然后下载并打印出来。一张纸囊括核心内容。
    cheatsheets,还有很多在这里:http://refcardz.dzone.com/
    2.3 FlashCard
    FlashCard是一种学习方法,先将题目呈现,然后心中默想答案,再翻看答案。
    将与学习相关的FlashCards下载在手机或者打印出来,然后等车等无聊时间,予以默想。
    比如:http://www.yoyobrain.com/cardboxes/103
    以及一个特别针对Ruby on Rails的app
    网上有大量的关于Flash Card的社区。可以特意去搜索自己所学习的语言的。
    3. 如何提升行动力:人类行动心理学的有效Hack
    人为什么会拖延、人为什么行动力很差。近些年心理学已经取得了突破性研究成果。普通人思考目标的时候,使用的是目标意图, 是:
    我要做什么….
    但是,有位天才心理学家Peter Gollwitzer发现目标意图这样的思考范式,反而很难达成目标,于是,他对自己的实验对象,使用了一种替代范式。强迫实验对象,使用一种称之为:执行意图的思考范式来思考。结果令人惊讶,人们更容易克服拖延症、达成目标。
    什么是执行意图?就是使用if…then…的思考范式。比如, 不要再说,我要学Ruby。 而是说,如果我要学习Ruby,那么,今天晚上就装上环境。
    当你关于行动与目标,长年累月这么思考,最终建立自动化机制,那么行动力慢慢就变强大了。如果…那么…成为生命中的一部分。我要…这种句式,就从自己的语言体系中死掉了。
    4. 编程始终是个人行为
    刚开始,不要:
    忙于去社交
    泡各种论坛、发无聊帖子
    下载各种盗版电子书(自己花钱买来的你才会格外心疼)
    争议哪种语言更好
    每个人的世界都是如此不同,不争议,用它做点作品,或者是送给自己的女朋友,或者是赚点外快。慢慢地,就成长了:)

  • 查看django版本

    >>> import django

    >>> print (django.get_version())

    1.7

  • json使用总结

    如果是字符串,key value 都需要双引号

  • 五笔

    难用字记录

    逐 epi
    垂 tga
    羽 nngy

  • 查看 ssd 寿命

    安装必要的软件

    yum install -y MegaCli Lib_Utils

    得到 device id

    /opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -aALL | grep -B 30 'Solid State Device' | grep 'Device Id' 

    我这里得到的是 1, 下面用 smartctl 的时候跟上 ,1

    smartctl -a -d sat+megaraid,1 /dev/sdc  | grep Media_Wearout_Indicator

    Wear Levelling Count(颗粒平均擦写次数):最后一列为 0,即这块硬盘的全盘写入/擦除(P/E)数为 0 次,显示还有 100% 的寿命.

    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
    233 Media_Wearout_Indicator 0x0032   100   100   000    Old_age   Always       -       0
  • python打印list为空格间隔的一行

    my_list = [2193, 2192, 2191, 2204, 2203, 2202, 2201, 2200, 2199, 2197]
    print(" ".join(str(x) for x in my_list))

    输出结果

    2193 2192 2191 2204 2203 2202 2201 2200 2199 2197