zoukankan      html  css  js  c++  java
  • Learning how to learn

    今日英文:

    http://docs.oracle.com/javase/tutorial/jaxp/index.html

    Java API for XML Processing (JAXP)

    • javax.xml.parsers: 通用接口

    • org.w3c.dom: DOM

    • org.xml.sax: SAX

    • javax.xml.transform: XSLT

    • javax.xml.stream:  StAX

        jdom,dom4j

    sax:

    // Parser calls this for each element in a document
        public void startElement(String namespaceURI, String localName,
                                 String qName, Attributes atts)
        throws SAXException
        {
            String key = localName;
            Object value = tags.get(key);
            if (value == null) {
                // Add a new entry
                tags.put(key, new Integer(1));
            } else {
                // Get the current count and increment it
                int count = ((Integer)value).intValue();
                count++;
                tags.put(key, new Integer(count));
            }
        }
    // Create a JAXP SAXParserFactory and configure it
            SAXParserFactory spf = SAXParserFactory.newInstance();
    
            // Set namespaceAware to true to get a parser that corresponds to
            // the default SAX2 namespace feature setting.  This is necessary
            // because the default value from JAXP 1.0 was defined to be false.
            spf.setNamespaceAware(true);
    
            // Create a JAXP SAXParser
            SAXParser saxParser = spf.newSAXParser();
    
            // Get the encapsulated SAX XMLReader
            XMLReader xmlReader = saxParser.getXMLReader();
    
            // Set the ContentHandler of the XMLReader
            xmlReader.setContentHandler(new SAXLocalNameCount());
    
            // Tell the XMLReader to parse the XML document
            xmlReader.parse(convertToFileURL(filename));

     

    技术区:

    Learning how to learn:

      是否能加速理解?

        经典的学生求学之路,就是听讲座,读书;如果还不懂,只好枯燥地做大量习题(题海)或重看笔记。没有系统的方法,想更快地理解似乎是天方夜谭。理解的本质,像洋葱的层层表皮,从最肤浅的领会到深层次的理解,逐层巩固对科学革命的认知。

        加速学习的第一步,就是揭秘这个过程。如何洞悉问题,加深你的理解,取决于两个因素:

      1. 建立知识联系

      2. 自我调试排错

      钻研(The Drilldown Method)

        这个方法可以加速逐层增进理解的过程。这个方法是 MIT 一年修了 33 门课的神人总结的,至今已用于各科目的课题,包括数学、生物学、物理学、经济学与工程学。只需些许修改,它对掌握实用技能也效果很好,比如编程、设计或语言。这个方法的基本结构是:知识面、练习、自省。下面将解释每个阶段,阐明如何尽可能有效率地执行它们。

      第一阶段:知识面覆盖

        你不可能组织一场进攻,如果你连一张地形图都没有。因此,深入研习的第一步,就是对你需要学习的内容有个大致印象。若在课堂上,这意味着你要看讲义或读课本;若是自学,你可能要多读几本同主题的书,相互考证。

        学生们常犯的一个错误,就是认为这个阶段是最重要的。从很多方面来讲,这个阶段却是效率最低的,因为你每单位时间的投入只换来了最少量的知识回报。加速完成这个阶段,很有好处,这样,就可以投入更多时间到后面两个阶段。

        如果你在看课程讲座的视频,最好是调到 1.5x 或 2x 倍速快进。如果在读一本书,不要花时间去高亮文本。这样只会让你的知识理解停留在低层次,而从长远来看,也使学习效率低下。更好的方法是,阅读时只偶尔做做笔记,或在读过每个主要章节后写一段落的总结。

      第二阶段:练习

        做练习题,能极大地促进你的知识理解。但是,如果你不小心,可能会落入两个效率陷阱:

      1. 没有获得即时的反馈:研究表明,如果你想更好地学习,你需要即时的反馈。因此,做题时最好是答案在手,天下我有,每做完一题就对答案,自我审查。没有反馈或反馈迟来的练习,只会严重牵制学习效率;

      2. 题海战术:正如有人以为学习是始于教室终于教室,一些学生也认为大多数的知识理解产自练习题。是的,你总能通过题海战术最终搭起知识框架,但过程缓慢、效率低下。

          练习题,应该能凸显你需要建立更好直觉的知识领域。一些技巧,比如将会谈到的费曼技巧(the Feynman technique),对此则相当有效。对于非技术类学科,它更多的是要求你掌握概念而不是解决问题,所以,你常常只需要完成最少量的习题。对这些科目,你最好花更多的时间在第三阶段,形成学科的洞察力。

        第三阶段:自省

          知识面覆盖,与做练习题,是为了让你知道你还有什么不懂。这并不像听上去那么容易,毕竟知之为知之,不知为不知,难矣。你以为你都懂了,其实不是,所以老犯错;或者,你对某综合性学科心里没底,但又看不确切还有哪里不懂。

        费曼技巧(The Feynman Technique)

          “费曼技巧”,将帮助你查漏补缺,在求知路上走得更远。当你能准确识别出你不懂的知识点时,这个技巧助你填补知识的缺口,尤其是那些最难以填补的巨大缺口。这个技巧还能两用。即使你真的理解了某个想法,它也能让你关联更多的想法,于是,你可以继续钻研,深化理解。

          这个技巧的灵感,源于诺贝尔物理奖获得者,理查德·费曼(Richard Feynman)。在他的自传里,他提到曾纠结于某篇艰深的研究论文。他的办法是,仔细审阅这篇论文的辅助材料(supporting material),直到他掌握了相关的知识基础、足以理解其中的艰深想法为止

          费曼技巧,亦同此理。对付一个知识枝节繁杂如发丝、富有内涵的想法,应该分而化之,切成小知识块,再逐个对付,你最终能填补所有的知识缺口,否则,这些缺口将阻挠你理解这个想法。

        费曼技巧很简单:

        1. 拿张白纸;

        2. 在白纸顶部写上你想理解的某想法或某过程;

        3. 用你自己的话解释它,就像你在教给别人这个想法。

          最要紧的是,对一个想法分而化之,虽然可能重复解释某些已经弄懂的知识点。但你最终会到达一个临界点,无法再解释清楚。那里正是你需要填补的知识缺口。为了填补这个缺口,你可以查课本、问老师、或到互联网搜寻答案。通常来说,一旦你精准地定义了你的不解或误解,找到确切的答案则相对而言更轻松。

          对付你完全摸不着头脑的概念时我可使用费曼技巧,但翻开课本,找到解释这个概念的章节。我先浏览一遍作者的解释,然后仔细地摹仿它,并也试着用自己的思维详述和阐明它。如此一来,当你不能用自己的话写下任何解释时,“引导式”费曼技巧很有用处。

        学习各种过程

          你也能通过费曼技巧去了解一个你需要用到的过程。审视所有的步骤,不光解释每一步在干什么,还要清楚它是怎么执行的。

        学习各种公式

          公式,应该被理解,而不只是死记硬背。因此,当你看到一个公式,却无法理解它的运作机理时,试着用费曼技巧分而化之。

        对付需要记忆的内容

          费曼技巧,也可以帮你自查是否掌握非技术类学科那些博大精深的知识概念。对于某个主题,如果你能顺利应用费曼技巧,而无需参考原始材料(讲义、课本等),就证明你已经理解和记住它。

        形成更深刻的直觉(Deeper Intuition)

          结合做习题,费曼技巧能帮你剥开知识理解的浅层表皮。但它也能帮你钻研下去,走得更远,不只是浅层的理解,而是形成深刻的知识直觉。直观地理解一个想法,并非易事。它看似有些许神秘,但这不是它的本相。一个想法的多数直觉,可作以下归类: 类比、可视化、简化

        类比:你理解一个想法,是通过确认它与某个更易理解的想法之间的重要相似点

        可视化:抽象概念也常成为有用的直觉,只要我们能在脑海为它们构筑画面,即使这个画面只是一个更大更多样化想法的不完全表达;

        简化:一位著名的科学家曾说过,如果你不能给你的祖母解释一样东西,说明你还没有完全理解它。简化是一门艺术,它加强了基础概念与复杂想法之间的思维联系

          你可以用费曼技巧去激发这些直觉。对于某个想法,一旦你有了大致的理解,下一步就是深入分析,看能不能用以上三种直觉来阐释它。期间,就算是借用已有的意象喻义,也是情有可原的。例如,把复数放到二维空间里理解,很难称得上是新颖的,但它能让你很好地可视化这个概念,让概念在脑海中构图成型。 DNA 复制,被想象成拉开一条单向拉链,这也不是一个完美的类比,但只要你心里清楚其中的异同,它会变得有用。

        学得更快的策略

          在这篇文章里,描述了学习的三个阶段:知识面、练习、与自省。但这可能让你误解,错以为它们总在不同的时期被各自执行,从不重叠或反复。实际上,随着不断地深入理解知识,你可能会周而复始地经历这些阶段。你刚开始读一个章节,只能有个大概的肤浅印象,但做过练习题和建立了直觉以后,再回过来重新阅读,又会有更深刻的理解,即温故而知新。

         

        非技术:

        sdf

        sdf

      1. 相关阅读:
        算法每日一练
        golang 基础笔记
        python面试问题
        《高性能mysql》阅读笔记
        Day4 -- Most Frequent Subtree Sum
        Day3 -- Find Eventual Safe States
        Day2 -- Shifting Letters
        svn提交代码出现被锁住的情况(已解决)
        springboot 日常小bug:java.sql.SQLException: Parameter index out of range (5 > number of parameters, which is 4).
        如何使用ideal工具给朋友发邮件
      2. 原文地址:https://www.cnblogs.com/gcg0036/p/4276174.html
      Copyright © 2011-2022 走看看