• 程序员的呐喊 读书笔记


      摘要:《程序员的呐喊》一文,讲了三个部分的内容,笔者重点阅读的是面试的章节,以及总结,摘录重点之处。

    1 该书的后记翻译部分,言简意赅,但是又突出了个性,说出了程序员该有的态度

    • 软件开发的方式多种多样,不存在谁好谁坏,但是他们互相都看不起  ——笔者注:哈哈哈,这个是程序员的通病,个个都很傲娇。
    • 好的程序员之所以出色是因为熟能生巧  ——笔者注:程序员需要多写代码,写得越多越出色。
    • 只要你愿意,随时都可以学习新语言  ——笔者注:事情不是因为难而不做。而是不做就觉得很难。
    • 如果你想当经理,那你很可能不会是个好经理  ——笔者注:当经验达到一定程度,也就顺理成章了。
    • Lisp很难掌握,但它是唯一能让我快乐的语言
    • Emacs很难掌握,但却是受益终身的投资
    • 离开舒适区,是不是学点新东西为自己写点东西,只有这样你才知道那是不是对的  ——笔者注:人需要一直保持警觉,贪念安逸是退休后的生活,我们还年轻,持续纠偏,或许这也是我写博客的原因了,说出自己知道的,挖掘自己不知道的,时刻保持一个空杯心态。
    • 多笑一点,这很健康,也让人感觉良好 ——笔者注:开心了,笑一笑,不开心,过一会儿,再笑,爱笑的人运气都不差。
    • 记得自嘲,不过不要再公开场合大声自嘲,也不要忘了解释 ——笔者注:拥有乐观的心态,肯定自己独特的一面,也要反省自己技不如人的一面。

    2 作者写到了如何面试,准备很重要,所谓不打无准备之战,要么不战,要战必胜

    2.1 非技术部分

    2.1.1 热身

      长期热身:面试前复习1~2星期,好好读一本讲数据结构和算法的书,或者《算法导论》,至少能够识别问题属于哪一个类型,或者找一个朋友当面试官,充分热身才有最出色的表现。

      短期热身:面试前一晚一定要休息好。

    2.1.2 心理准备

      保持谦逊、开明、专注的态度,要是卡住了,不要害怕问问题,有些面试官通常也乐意帮你清除一些障碍,尽力去完整的解答它。有时候可以和面试官确认自己是不是在正确的方向上。

    2.2 技术面试

    2.2.1 问:什么是算法复杂度,大O是什么?

      答:算法复杂度指两个方面,时间复杂度(执行时间长短)和空间复杂度(度量算法所需存储空间的大小)。大O是时间复杂度中执行次数的一种表示方式。

      扩展:时间复杂度通常用T(n)表示,n指模块规模,由于单次运算的时间与执行的机器有关,但在同一个机器上,单次运算的执行时间是固定的,因此T(n)与执行次数成正比。使用过程中更多的使用O(n)来表达,n指执行次数,一个算法的执行时间还与目标样本和运算的参数决定,因此O(n),一般用三个值表示,最小时间复杂度,平均时间复杂度,最大时间复杂度。一般情况下,平均时间复杂度具备很好的描述算法优劣的标准。

    2.2.2 问:什么是哈希表

      答:散列表Hash table也叫做哈希表。通过关键码值映射到表中一个位置来访问记录。

    2.2.3 问:构造一棵树,如何便利,了解前序、中序、后序遍历,怎么操作二叉树、n叉树、trie树

      答:树是事物经典的结构,几乎无处不在,树表达的哲学思想就是分治,比如:任何一个java对象就是一棵树。

      如果将树中节点的各子树堪称是从左到右有次序的,称作有序树,否则称作无序数。

      每个节点的度均不超过2的有序树,称作二叉树,实际也用的比较多。

      图

      高级算法

    2.3 其他数据结构

      著名的NP问题,如旅行商问题和背包问题

      操作系统:进程、线程、并发、锁的概念、互斥锁、信号量、死锁、活锁、怎么避免他们、进程需要哪些资源、线程需要哪些资源、上下文切换怎么进行、操作系统和底层硬件是怎么触发上下文切换的等,推荐《Java并发编程》,道格.李

      附录:

      《程序员的呐喊》,美 Steve Yegge著,徐旭铭译,人民邮电出版社

      《数据结构与算法(JAVA语言版)》

      

  • 相关阅读:
    parted命令
    parted命令
    Dell R410 上安裝 Debian6
    vmware虚拟机桥接方式ping不通问题解决
    SNMP的应用
    五种方法安装Windows 7 64位系统
    Win7 文件共享
    重装或克隆虚拟机后——eth0改变
    udev 高效、动态地管理 Linux 设备文件
    Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5OEL5
  • 原文地址:https://www.cnblogs.com/guobm/p/10434416.html
Copyright © 2020-2023  润新知