前言

这本书里面的知识,不会很深奥.不会涉及到算法,数据结构,操作系统.

可以让人快速上手干活儿.

本书的最终目的在于建立起一套快速培训新员工的知识体系. 基本上就是:

  • 需求分析.
  • 前端开发, 部署
  • 后端开发, 服务器的部署和维护.
  • 各种有用的方法论
  • 职业发展

本书是供给新入行的新人来读的,其中 Titanium 是国内的第一个本中文书, Rails 虽然国内也有中文书, 但是大部分是由 国外文档翻译而成. 希望本书对Rails的描述能有自己的特点.

我对Linux只能算得上熟悉, 书中的内容, 可以让一名初学者调试,操作Linux 入门.

总之, 里面的各种技术, 都只是入门, 进一步的学习,请参考后面的读书清单.

软件开发的个人观点。

要知识面特别广

软件开发是一门技术。 也可以说,是很多很多门技术。

很多公司在招聘时,特别喜欢让候选人做算法题,做SQL题。 这样人也有这样的想法:以为做了算法题目之后,软件就精通了。

实际上,这样的人很可能无法做出像样的东西来。

在我看来,软件从业者所需要的知识非常庞杂: 不但要掌握多门语言,还要对操作系统,数据库,CSS,自动化,版本控制等等很多 内容有涉猎。

软件开发还要有良好的英语基础,不错的沟通能力和情商。

市面上的书籍,大部分都是只针对某一门技术的。例如:某个数据库,某个语言。 学了之后,你会发现,80%里面的内容都很少用。 用的时候现查资料就可以了。 比如说 多线程编程。

在web开发和mobile开发中,算法没那么重要。

很多公司在招聘程序员的时候,都会拿出算法题目。算法固然很重要,但是在当今 的环境下,我不认为我们会有太多机会在算法领域有重大影响。我看到的算法题目的 作用,只是在入门时对候选人的基本功有所考察。

网络开发中用不到的知识

各种算法

多线程编程

网络问题, TCP, HTTP协议等等

操作系统的底层。

程序员是可以快速复制的

但是有一定的条件:

  1. 这个人聪明
  2. 英语不错

聪明是必须的,不能木呐。

英语也是必须的。没有英语能力的程序员做不长久。 在实际的工作中, 我也深切的体会到了这一点。 在任何时候,都要尽量招聘英语好的人。

国内跟国外的差距

目前来看,主要是英语的差距。

国内的程序员的智力完全不必国外的差。 差只差在英语上。

所以,初级的程序员看百度,他搜到的都是中文的知识。 高级的程序员都要google, 因为google出来的内容都是英文的。

找到关键debug信息后, 一搜就搜出来一大堆结果。

另外,英语好的程序员更容易到github上去参加各种开源项目,在参与过程中, 极大地提高自己的沟通能力,动手能力和组织能力。比如 ruby-china论坛的搭建, swift语言的翻译等等。

是否有批量生产软件高手的途径?

有。但是长路漫漫。

一个人,从一张白纸成长为在工作中独当一面的开发高手,一般来说需要:

  1. 有优良的底子(聪明,英语好)
  2. 有吃苦的精神(认真负责,遇事不推脱)
  3. 有大型项目的锻炼(接手一个上亿用户的项目,有一两年就可以了)

所以,一家有远见的公司,一旦时机允许,一定会去坐校园招聘的。

实际效果如何?

在我个人看来,目前培养一个人,如果只考虑web开发,在有老师指导的情况下, 2~3个月就可以入门。做60%的最基础的开发。

最快的案例是1个月就可以开发rails. 2个月左右就入门了titanium 移动开发。

但是从入门到熟练,还是需要比较漫长的时间的。一般来说是一个商业项目, 大约2个月以上。并且有比较齐全的技术知识。

目前组件的团队,用了一年时间。每个人都是我单独培养起来的。时间漫长。 但是团队整体氛围极好。

也可以社招招人。但是很多人都是有习气的。

团队也需要磨合

不是几个人组织起来就能工作。每个技术人员都有自己的个性。这个时候想要带领 一个技术团队做事,就需要:

  1. 有一个lead, 不但可以管理项目进度,还能提供各种技术支持。
  2. 有脚踏实地做事的基层人员。

所以,说到底,软件开发还是需要人。( <>)

如何使用这本书(学习的原则)

官方文档,是最权威的文档。 所以,跟我学了之后, 要以官方文档作为标准。我的文档只是引领大家入门。 只会覆盖30% 最常见的功能。 其他70% 边边角角的功能,都要看官方文档。

results matching ""

    No results matching ""