二八定律与长尾理论

Read more   2017/9/19 posted in  Writer

诗经 <<伐檀>>

fatan

Read more   2017/8/23 posted in  Writer

学习摩尔斯码

摩尔斯码由点和划组成,也就是2个符号.这两个符号编码可表示一切.

Read more   2017/3/3 posted in  Writer

17年阅读书单

书单很多,思考却不多.我们总是以为有了书单就有了知识一般.静下心来,好好看书吧!

优秀的程序员应该具备两方面能力

  • 良好的程序设计能力:
    • 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列);
    • 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络);
    • 熟悉至少两门以上编程语言(例如C++,Java,C#,和Python); <!-- more -->
  • 专业的软件开发素养:
    • 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码;
    • 把握客户需求,按时交付客户所需要的软件产品;
    • 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。

入门书籍

程序设计

  • 基础理论:编码:隐匿在计算机软硬件背后的语言
  • 编程语言:
    • Java:Java核心技术(第9版)
    • Python:Python基础教程(第二版)
  • 编程语言理论:编程语言实现模式
  • 程序设计:程序设计方法
  • 算法与数据结构:算法(第4版)
  • 程序调试:调试九法——软硬件错误的排查之道

软件开发

  • 编程实践:程序设计实践
  • 面向对象程序设计:Head First设计模式
  • 重构:重构
  • 软件测试:How to Break Software
  • 项目管理:极客与团队
  • 专业开发:程序员修炼之道:从小工到专家
  • 大师之言:奇思妙想:15位计算机天才及其重大发现
  • 界面设计:写给大家看的设计书
  • 交互设计:通用设计法则

个人成长

  • 职业规划:软件开发者路线图
  • 思维方式:程序员的思维修炼:开发认知潜能的九堂课
  • 求职面试:金领简历:敲开苹果微软谷歌的大门
  • 英语写作:The Only Grammar Book You'll Ever Need

必读书籍

程序设计

  • 基础理论:深入理解计算机系统(第2版)
  • 编程语言:
    • Java:Effective Java(第2版)
    • Python:Python参考手册(第4版)
  • 编程语言理论:程序设计语言——实践之路(第3版)
  • 程序设计:计算机程序的构造与解释(第2版)
  • 算法与数据结构:编程珠玑(第2版)
  • 程序调试:调试九法——软硬件错误的排查之道

软件开发

  • 编程实践:代码大全(第2版)
  • 面向对象程序设计:设计模式
  • 重构:修改代码的艺术
  • 软件测试:xUnit Test Patterns
  • 项目管理:人月神话
  • 专业开发:程序员职业素养
  • 大师之言:编程人生:15位软件先驱访谈录
  • 界面设计:认知与设计:理解UI设计准则(第2版)
  • 交互设计:交互设计精髓(第3版)

个人成长

  • 职业规划:软件开发者路线图
  • 思维方式:如何把事情做到最好
  • 求职面试:程序员面试金典(第5版)
  • 英语写作:风格的要素

最后

正是有前辈们无私的分享自己的经验,我们才能少走弯路,思考自己的职业生涯.

如何成为一个优秀的程序员而不是码农

  • 基础理论包括了程序员应该掌握的计算机基础知识;
  • 编程语言对软件开发至关重要,我选择了C,C++,Java,C#,Python,和JavaScript这六门主流编程语言进行介绍,如果想进一步理解编程语言,可以阅读编程语言理论里的书目;
  • 在理解编程语言的基础上,优秀的程序员还应该了解各种程序设计技巧,熟悉基本的算法数据结构,并且能够高效的进行程序调试。
  • 良好的程序设计能力是成为优秀程序员的前提,但软件开发知识也是必不可少的:优秀的程序员应具备良好的编程实践,知道如何利用面向对象,重构,和软件测试编写可复用,可扩展,可维护的代码,并具备软件项目管理知识和专业开发素养;
  • 就像我们可以从名人传记里学习名人的成功经验,程序员也可以通过追随优秀程序员的足迹使自己少走弯路。大师之言包含一系列对大师程序员/计算机科学家的访谈,任何程序员都可以从中获益良多;
  • 为了打造用户满意的软件产品,程序员应当掌握一定的界面设计知识和交互设计知识(是的,这些工作应该交给UI和UX,但如果你想独自打造一个产品呢?);
  • 专业程序员应当对自己进行职业规划,并熟悉程序员求职面试的流程,以便在职业道路上越走越远;
  • 软件开发是一项需要不断学习的技能,学习思维方式可以有效的提升学习能力和学习效率;
  • 软件开发是一项国际化的工作,为了让更多的人了解你的代码(工作),良好的英语写作能力必不可少。

谢谢Lucida

  • 正是看了Lucida大神的博客,我才更清楚接下来如何更好的提高自己的能力.让自己成为一名优秀的程序员而不是一名普通的码农.
  • 书单和内容是Lucida博客里面的程序员必读书单 1.0里的,这里我摘出来作为我接下来的书单.
  • 虽不认识Lucida大神,但真心谢谢你的无私分享.
2017/3/2 posted in  Writer

浅谈逻辑

问题

  • 写着写着,突然写不下去了
  • 被外界打断了,不知道怎么写下去
  • 写完之后,逻辑不通发现自己都看不懂
Read more   2016/11/12 posted in  Writer