为什么想写程序?
通常想接触程序的人, 大部分是觉得, 可以找到一份好的工作,
可是基本上, 能够走下去的都是对于程序的目的有热忱的比较多,
举个简单的例子, fb 的共同创办人, youtuber 的共同创办人, apple 还有微软都是不少都是程序起家,
因为这些平台创办人往往不只一个, 有些人可能会反驳他们并不会写程序,
但这得追朔到源头, 他们通常对于计算机或者科学有一定的涉略, 这也是我想表达的.
首先, 写程序其实并不是因为热爱写程序而去写,
在我认识得大部分程序的高手, 基本上都是 "为了什么去写",
譬如你想做一个网站, 想做一个 App, 想开发人工智慧等, 其实都是符合 "为了什么去写?" 这件事情.
如果你想写程序, 通常个人会认为, 最好是有一个目的性在加入,
因为, 软体工程师的工作不是只有写软体而已,
程序涉略得相当得广泛, 写程序只是一个起头, 最后还是以目的为主.
而目的性其实很多多, 以不碰硬体来举例就好, 像是爬虫, 游戏, 系统, 都可以去写,
程序就只是这些东西的一个基础而已.
简单说如果你想要做这些事情, 虽然可以透过工具, 但是不熟悉基本的程式,
想做出多样化的东西时, 就会非常受到限制.
用个简单的想法, 现在流行手机游戏跟大型社群网站,
但是在几年前则是单机游戏还有电脑网页游戏当道,
其实这些都建立在程序的基础上, 这也包含你我现在在用得这个网页,
换句话说, 基础不变的状况下, 其实可以产生出来的东西也是千变万化的.
至于所谓的基础是什么呢?
万物基本上都符合一个原则, 就是循序渐进, 相信这个道理大家都知道,
程序也是一样, 更是强烈得符合这个原则.
说穿了, 就是教你正确的思考方式.
难道其他方式不是正确思考吗? 或许有人这样疑惑,
举个例子, 两个人组合同一种机器人, 假设这台机器人只有一种组装方式,
结果一个人组出来, 另外一个人组不出来,
你们觉得谁是正确的呢?
换个角度, 今天程序作用在无生命的物体上 (电脑), 是否这个物体也只能明白它所能明白的东西呢?
这跟我们赚不赚钱, 能不能中乐透的原理可是差很多,
然而再把机器人组出来的状况下, 就是一种正确的思考方式.
换句话说, 程序的思考就像组机器人的过程,
所以大家应该有发现为什么世界都在推崇写程序吧?
写程序其实不代表比较聪明, 而是教你正确思考的方式.
回归正题, 所以, 学习程序只是基础的思考,
有了基础的思考你才能做游戏网站之类,
重要的在于你想用程序做什么.
这就是为什么要写程序, 你的目的虽然是想做游戏想做什么, 可是,
在那之前, 程序只是一个起源.
这一段是要告诉想踏入程序的人, 如果你没有想用程序做的事情,
其实很难走下去, 所以建议先以 "想用程序做什么" 为出发点.
为什么学程序?
要先有想用程序完成的事情, 例如游戏, 网页, 系统等,
有想用程序做的事情学程序才会容易.
而程序是建立在思考上, 有了程序才能完成你想做的事情
程序学的是思考, 而思考透过程序去实践出目标.
怎么开始写程序?
有了目的之后, 你也知道要先有基础思考, 下一步就是要怎么开始学习程序,
新手最常问的问题不外乎就是, 我要学什么语言? 我该上课吗? 我可以买书来看吗?
就个人经验, 语言没差, 看书你很难看下去, 上课要很认真.
那岂不是直接叫人放弃呢?
不是, 我前面有先讲到第一点有一个重点在
你想用程序做什么?
这里就直接延伸, 首先你要先清楚你要写什么,
常见的就是网页, 游戏, 系统, 大数据, 爬虫, App 程式等等,
如果问我说哪种语言可以办到, 我会回答其实大部分语言都可以办到这些,
差别在于哪个语言比较好做到.
如果你只是想做 ui 设计, 那么就从 CSS,html 下手, 进阶一点 JavaScript,
如果你是一个前端网页, 那么就从 CSS,HTML 然后专精 JavaScript,
如果你要写安卓系统, 那就得从 java 下手,
如果你想写游戏, 那可以从 c# 语言下手,
其实每种语言都有自己的特性, 而这些语言在市场都有一定的价值,
有些程序人会建议新手去学 JavaScript, 个人认为, JS 虽入门容易,
但对于什么都没有的新手, 其实很困难, 或者说是易学难精.
我个人认为, 最好可以从 java 或者 c# 这两个语言入门. 当然, 如果是想做网页为目的, 或者前端, 就挑 JS 或 PHP 入手也可以. 而我推荐两个语言是因为这两个语言是所谓强型别语言, 很多规定, 但是可以减少新手的失误率, 强制让你一定要照 "正确思考" 的方向前进. 对于基础其实有很大的帮助, 当然如果再拿 java 跟 C# 比, c# 语言是比较好学习得, 工作机会也不少, 或者有些人很有自信, 直接挑战 typescript(JavaScript), 这是一个很强的语言.
在学语言前你可以分析两个方向
第一个是你想做什么? 什么语言适合你要到的目标?
第二个是你的语言市场性与是否好学, 参考资料多不多?
然后, 选好语言, 入门则推荐
1.C# 语言 : 概念清楚, 但是又很好写, 跟微软绑定所以很好操作
2.JavaScript : 万用语言, 要入门很容易, 精通稍微难
3.java : 市场性强, 架构物件导向清晰, 缺点是比较不好学习
最后怎么写程序?
看线上课程或者实例, 一步一步了解并且把那样东西做出来,
不用挑太难的, 从最简单的开始,
像我们第一个程序通常都是 99 乘法表然后在计算机,
最后生出一个登入画面, 基本上你的基本功就差不多了.
这三个语言因为很热门, 网路上资源非常的多,
可以选择去上课, 或者免费的线上课程其实都足够基础,
但是不建议一开始直接看书不实做, 比较难掌握到重点,
不可否认的一点是, 有蛮多人慧根很好, 看书就会, 这也是一种方法.
我关键则是多练习, 像我不太会读书理解力又差, 个人就是靠不断练习,
当我先做出九九乘法表, 在做出计算机的时候, 就会慢慢熟悉,
然后生出一个简单的登入系统, 就会很有感受.
先决定要学的语言, 以想做的事情为基准, 再决定语言要什么,
如果没特别, 就以 c#,java 或 JavaScript 为入门,
再来可以选择看线上课程, 然后边实做边练习, 一步一步的扎实训练,
重点是要好好实作与练习, 弄懂每一步, 多写最重要.
来源: http://www.jianshu.com/p/b2fb3e300c2c