0. Before

写在开始之前

一直以来,总是不间断的有人问我:“我想学编程,有什么好的资源可以推荐的吗?”

我也不知道具体应该怎么回答,因为这一条路真的太长太长了,只言片语的推荐起不到什么作用,而且每个方向的学习内容也不同。所以我总是回复:“这要看你想做什么?”

于是对方又会问编程有哪些方向,当我一一回答之后,他又会问每个方向的特点是什么、有什么注意的事项。类似的问题源源不断,而我在这种连续不断的追问下,花了很多的时间,但也只是片段性的回答了他最初的问题。

于是想到了写这样一本书,可以带领毫无编程经验的小白了解一下编程及项目的开发,掌握一些编程的技巧;亦或是给一些编程熟手们提供一些自己积累的个人经验和干货,给未来的开发提供帮助。

本书的定位是一本系统的入门级的经验分享手册,因为主要面向的还是毫无编程经验的小白,所以有一定开发经验的读者们在看的时候可以选择快速翻阅,找到自己所需要的干货阅读即可。

所以,我把本书命名为《编程之前》(《Before Coding》)

本书编排架构

本书以项目为核心驱动,在一个标准的项目流程中主要存在三种角色——开发者、设计师、产品经理。如果是项目中后期,还有市场运营的角色。

Tip:其实,这也是“创业沙拉”中的角色分配——蓝色衣服的程序员、红色衣服的设计师、橙色衣服的产品经理以及白色衣服的市场运营。

基于此,本书的架构也是由“D-D-P”三个部分组成——开发(Develop),设计(Design),产品(Product)。

Part.1 开发(Develop)

开发部分主要从语言、平台、工具这三个层面进行讲解。

笔者非常建议初学者挑选第一门语言最好是简单易懂、上手实用的编程语言,并且最好学一门强类型的语言和一门弱类型的语言,这样学下来才更加系统,未来接触其他语言也更容易上手。

Tip:强类型语言,一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。

与其相对应的是弱类型语言,数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

弱类型的语言首推 JavaScript。强类型的语言考虑从 JavaSwiftPython 这三门比较火热的语言中选择,最终选择了在本书中讲解 PythonJava 是典型的 OOP,初学者学起来会更加系统且收益匪浅,但是初学者学习 Java 的成本略高,本书若重点讲解 Java 篇幅肯定不够。Swift 语法优美,简单易懂,但是目前由于平台限制,虽说现在已经开源,但是应用场景仍限于苹果应用的开发,所以目前并不实用。而 Python 语法比 Swift 更加优美简洁,且应用场景颇多,上到服务端开发、网络应用、游戏开发,下到科学计算、数据处理、硬件开发,遍及多领域,使用场景多样化,所以第二门语言选择讲解 Python

Tip:JavaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器是浏览器的一部分,是一个广泛用于客户端的脚本语言,为网页添加动态功能。

Python 的设计哲学是“优雅”、“明确”、“简单”。Python 开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”(There should be one-- and preferably only one --obvious way to do it.)。在设计 Python 语言时,如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。所以 Python 的程序更加简单易读。

平台会讲解时下比较火的四大平台的开发流程——Android应用、iOS应用、Web开发(HTML5/Web App)、微信开发。

工具会介绍一些IDE、开发工具、代码管理工具等,笔者是一个工具控,尝试过数百软件,所以提供的工具具有参考价值。所谓“工欲善其事必先利其器”,好的开发工具将会使开发之路一帆风顺且充满乐趣。

Part.2 设计(Design)

设计部分主要从规范、工具、技巧这三个层面进行讲解。

规范上,将会讲解不同平台应用的设计要求以及通用的注意事项。

工具上,会讲解 Photoshop、Sketch、Axure、illustrator 等一些UI设计及原型设计软件的使用。

技巧上,会介绍正规的设计流程,包括设计、切图、标注这三个主要流程中存在的技巧和经验。

Part.3 产品(Product)

产品部分主要从需求、部署、上线、管理这四个层面进行讲解。

需求上,会介绍需求分析的主要环节。

部署上,会介绍一些实用的部署工具和平台。

上线上,会介绍一些上线的流程。

管理上,着重讲解项目管理上的经验,并介绍所需要用到的协同办公工具、流程规划工具、资源分配工具等。

另外,每个小节开头会有前瞻的基础知识要求,每个小节后面会有练习供初学者练习,在每个章节中也会穿插一些干货和学习资料,希望这些都可以帮助到初学者们更好地掌握这本书中的知识。

写在最后的序

笔者开发经验较为丰富,在编程界摸爬滚打的四年间,参与的各领域大小项目20余个,且主要作为项目管理者或是开发者,本书的开发产品部分由我来负责。期间虽有几个项目笔者是作为设计师参与的,且在比赛中也获得了一些的设计奖项,所以有一定UE与UI设计经验,但毕竟笔者不是专业的设计师,所以在本书的设计部分,请到了专门做设计的UI设计师——梁志豪来主笔这部分的经验分享。

自知开发经验甚少,本书的内容也只是谈一谈自己的开发经验与见解,编写时恐有疏漏之处,若有指教,不甚感激。


GitBook在线阅读:https://gitbook.com/book/airingursb/before-coding/

作者博客:http://ursb.me

作者GitHub:http://github.com/airingursb

Airing

2016.6.30

results matching ""

    No results matching ""