楼主:
HZYSoft (PCMan)
2015-02-20 23:51:10※ 引述《NightMoon33 (夜月)》之铭言:
: 先说一下,小鲁虽然是理工科的,但不会写程式语言
: 不过发现台湾写程式语言的人蛮多的
: 国立大学有教,科大也有教,私立大学也有教,外面补习班也有教
: 市面上程式语言的书超多
: 写程式语言门槛到底高不高?
简单回答的话,就只有四个字:“易学难精”
入门门槛在今天算很低,但要写到精通,并不容易
程式本身只是工具,工具都是肯花时间学就会用了,
重点是你拿他来做什么,这个工具对你要完成的事有没有帮助
程式语言入门只需要基础的英文和逻辑,所以没有什么门槛
不是科班出身买本书看看,也都可以来个两下
但是要深入研究到各个领域的话,就会牵扯算法、
作业系统、计算机结构,还有大量数学
只会语言本身,或是只会使用一堆很炫的 library 就不够了
如果你要解决的是特定领域的问题,那需要的是 domain knowledge
只会程式语言是写不出来的
这问题就好像:学习英文门槛高吗?学会基本单字和对话不高
要可以流利的跟外国人对话,听说读写,就更高
要写一篇可以登上 Time 杂志的文章,难度就高非常多
而要写一篇登上国际期刊的英文论文,难是难在科学研究本身,
英文反而是最简单,最无关紧要的部份。
所以这问题其实要看你打算拿程式做什么
: 大家都会写程式语言,怎么知道谁比较强?
看你怎么定义强。能写出很艰涩、很神妙的算法是一种强
能设计出很容易看懂,很好维护和扩充的程式,是另一种强
能够做出很好的 user experience,也许背后只用了很简单的技术
但是这并没有比较简单,也没有比较不强
好的功夫不分男女老幼,看谁在打
程式语言本身没有哪个比较强,要看你的用途,做在哪个领域
每种语言有他适用的范围,用对了就会特别有效率
你觉得会做法国菜的厨师,跟会做川菜的,还有做意大利面的
哪个比较强啊?不一样的东西,本来就不能一起比较啊
能够用适合的工具,有效率的解决问题,就是好,
会捉老鼠就是好猫,不用浪费口水去战谁比较强。
重要的从来都不是谁程式比较强,或是哪个语言比较强
而是哪个工作适合给哪个人做,哪个工具适合解决哪个问题
: 写程式这块好像薪水高低也蛮悬殊的
: 刚出社会第一份工作,有听过年薪百万的,也有听过领22k的
画画不是也一样吗?有挂在罗浮宫的,也有丢在垃圾桶的
写作不是也一样吗?当厨师不是也一样吗?
这现象在各行各业都存在啊
你想学的动机是什么?是因为兴趣的话,就不用管别人怎样
扯远了,回到正题。如果都没有基础,初学的话,可以考虑 Python
上手快,需要的工具少,软件又是免费,资源也多
国外很多学校以往都是从 Java 先教,但是现在已经改用 Python 了
语法本身很简单,只需要基本的逻辑概念,对系统不用有很深的了解就能上手
可以先忽略一些底层细节,对于快速学习程式的结构和逻辑很有帮忙
而且丰富的程式库,几乎可以完成日常需求大部分的工作,是很好的起点
可以很快速的抓到比较抽象,比较 high level 的 overview
之后熟了,可以换学 C,这是和系统底层比较有关的语言,
比较低阶一些,又不会太过低阶,可以帮助了解比较底层的细节,
和作业系统的相关知识互相配合学习,也可以作为学习其他语言的基础。
这两者一高一低,搭配起来应该是很好的。
扯半天,其实我自己学习的顺序是非常乱的,很没效率 XD
我是 Basic => C => C++ => pascal (只有略懂一点点)
=> x86 asm (只有略懂) => 学习各种图形界面 toolkit 使用
=> php & SQL (略懂) => Javascript (略懂) => python (略懂)
=> Java 和 C++ 11 (都刚开始学...)
结果最后真正有在用的只剩下 C++ & python :P
总之,选一样先开始吧! 到后面就会发现不同语言很多地方都相通的
祝学习愉快!