工程师的缺德行为:叫朋友去学C/C++

常常看到非信息背景的朋友问工程师:我最近想学写程序!该怎么入门?

通常他们会得到很多糟糕的答案:「先了解演算法」、「先弄懂资料结构」、「先认识物件导向」。

这些答案都够糟糕了,但最糟糕的答案莫过于「从C/C++开始入门」。

(我看过最扯的建议是「去找C++ Primer Plus来看」。这本砖头书绝对不适合一般人自学)

照着以上建议去做的朋友,大概会在两周之内就得到满满的挫折感,然后认为自己「果然不适合写程序」,也不好意思再去跟工程师讲自己的状况,最终再也不想踏入programming领域。

这些建议真是害人不浅。

信息相关科系,是因为要接续到之后的资料结构、作业系统,所以大一从C/C++开始入门会比较连贯、才能完整学一次计算机的基本知识。

而这些想学coding的朋友,大部分只是这两种情况:

A.最近觉得写网站好酷,想试试看自己能否写个blog、或是个人网页

B.对工作上某些人工流程不满意,想试试看自己能否学写程序、用电脑解决问题

他们的愿望仅此而已,并没有打算成为计算机专家、黑客,实在没有必要从C/C++入门。

就像点火一样,先从零星的火苗开始、小心保护不要让它熄灭,接着慢慢加东西进去、让火焰慢慢成为大火。学习,除了知识/技能之外,培养成就感与热情也是很重要的。而从C/C++入门,会让正要萌芽的小火苗直接消灭殆尽。

我对程序设计入门的建议很简单。

如果你是状况A,去学PHP&MySQL,先弄一个丑丑网页出来就可以了。

如果你是状况B,去学Python,先弄一个能执行、能显示几个文字的程序就可以了。

一般人想到程序通常只想到「图形化界面」,如果能写出一个有界面的小玩意会非常有成就感。

那样的话,学PHP来写个网站、直接就是界面,绝对有趣;学Python很快就能把玩内建的tkinter函式库、做出按钮做出选单,乐趣无穷。

话虽如此,你到市面上找PHP或是Python的书,大概还是会落得「满满的挫折感然后正式放弃」的下场。

别担心,这不是你的错,是那些书写得不够好。没有一本是真正的程序设计入门书。

那些书只想着给你知识/技能,没有想到要培养你的成就感、保护你的热情。

要找书的话,我只建议两本。

状况A,去找欧莱礼的「深入浅出PHP与MySQL」(Head First PHP & MySQL)。

状况B,去找欧莱礼的「深入浅出程序设计」(Head First Programming)。

国外的在线开放课程也可以考虑。

Coursera的

人人都懂的编程课(Python)

(https://www.coursera.org/course/pythonlearn)

学习编程:基础

(https://www.coursera.org/course/programming1)

麻省理工的

Introduction to Computer Science and Programming

(http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/)

A Gentle Introduction to Programming Using Python

(http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/)

全部都是用Python入门。

我对程序设计入门的建议就只有这样。你不需要知道什么演算法、资料结构、物件导向。

什么狗屁名词都不需要知道。那大多只是工程师下意识地想让你觉得他们很厉害而已。

你只要想办法写出一个会动的程序就可以了。所有伟大的东西都是这样开始的。


Q1:但是状况A还要面对HTML/CSS耶..好像很难?

每个技能深入下去没有不难的。但是HTML/CSS要入门实在不怎么难。

就从随便写几个表单或按钮、弄个丑丑的静态网页出来开始吧。

Q2:我是工程师,我能怎么帮助朋友?

帮他们搞定环境设定吧!帮他们把最基础却又最给新手挫折感的环境给设定好!让他们能用记事本跟几个小工具就开始写code!给他们成就感!

Q3:那写手机app呢?你怎么没提到?

我觉得手机app还满难入门的,实在给不出有建设性的建议。不知道。不过,上面的连结也许有一些手机相关课程,不妨试试?


文章来自轉個彎日誌

你可能感兴趣的:(工程师的缺德行为:叫朋友去学C/C++)