电子工程专辑互动社区>自由讨论>电子技术基础知识专区>我姐和我女友是如何学编程的zz
大家在做什么

推荐到其他讨论区,赢取4积分

查看网友推荐

作者 问题:

我姐和我女友是如何学编程的zz

发布时间:2012-9-28 上午11:19

作者: Gkk

等级: 武林泰斗

积分: 15888分

发帖数: 804次

网站总积分: 15937分

经验值: 621.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
Eva和Fong(姐姐和女友)来到旧金山跟我学编程。在这篇博文中,我将记录下我教她们的方式,我构建这种学习过程的理由,以及这种学习方式奏效的原因。虽然以时间顺序列出她们在这段时间做的或学习的每一件事再容易不过,但是这毫无用处,而且读者们也会遗漏重点。了解学习过程中的细节并且明白它起作用的原因至关重要。所以我会从基本原则开始讲。本文较长,请做好准备。

请在编程过程中始终牢记这些基本原则。

1)交流沟通

在Eva和Fong开始学习之前,我为她们申请了博客,并请她们记录下她们的编程之旅和学到的东西。万事开头难,你可以问问她们。我大概花了一周的时间跟她们唠叨才让她们写了第一篇博客。但是现在,她们不在博客上写点儿自己投入了大量时间的项目就觉得不对劲。

如果你在项目中使用了API(译者注:Application Programming Interface,应用程序编程接口),发推文或者是邮件给这家公司告诉他们你关于他们的API的想法。当你在黑客马拉松中赢得奖项时,发个不错的推文@他们表示谢意,或写篇相关的博文。每写一篇博文都使它成为一直以来最好的,并怀着它会被放上黑客新闻版首页的期望将它提交(尽管大部分时候这种期望都不能实现)。

健康交流的最大好处就是,它使你对你的项目负责, 由此也引出我的下个要点。

?

2)完成

Fong和Eva都知道,完成一个项目困难,却重要。我声明:除非她们写了一篇关于手头项目的博文,在推特上@了API公司,并且将它发布在黑客新闻网版上,我们是不会开始一个新项目的。尽管她们的第一个项目只是井字棋游戏,但这是她们做过的最好的井字棋游戏。从来就没有人想写一个蹩脚的项目,所以不管这个项目有多简单或者不相关,如果你要着手做个项目,那它必须是你能拿到的最好的那个。我已经见过太多开发者为毫无前景的次要项目工作。如果你在学习编程,你必须从一开始就认识到要珍惜你的时间和精力,完成你的项目证明它的价值。

完成整个项目的最后20%需要花费全部努力的80%。开发者可以在1、2天之内实现一个项目的概念。而测试每种情况并且解决每一种边际情况从而成就一个“完美”的产品则需要两倍的时间。在项目最后的20%花费那80%的精力,将会在许多许多访问中传为佳话。

?

3) 思考

如果你卡住了,不要紧盯住你的代码。出去散个步,呼吸点新鲜空气,再考虑一下。你卡住了是因为你的逻辑中有错误,而修正它最好的方法就是在脑海中或是在纸上一步一步地彻底想通它。程序员靠思考赚钱,问题在你的思考中被解决,编程是个蛋疼的工作。伟大的项目经理通常都有广博的编程背景,并且在思考和问题解决方面接受过出色的训练。

有一种说法:当你被卡住20多分钟时,并且你仍然茫然无绪,请教别人吧。如果在20分钟内没有任何头绪,那么在接下来的一个小时,你也不会有任何进展的。相信Eva。她有一天就浪费了5个小时,因为一个愚蠢的错误——血的教训啊。散个步,做个其他事。然后再回到项目上来。能将自己与问题切断并转移注意力,是个技术活。

?

4)再思考

也许你现在已经明白了,思考,在一个程序员的生活中是至关重要的。不要去复制-粘贴代码,尤其当你在学习如何去编程的时候。如果你想学习怎么编程,复制,粘贴——“看,有用诶!”不会使你有任何成就。相反,无论何时你看到代码,你必须在企图去试运行它之前想清楚它在干什么。当你能轻易看懂别人的代码了,将其简化到你刚好需要的程度,然后写出来。如果从一开始就定期这么做,你会在几个月内成长为一个非凡的开发者。

?

5)谷歌

学会独立解决问题。除非至少被卡住20分钟,不要问编程问题。程序员们必须是独立的。他们是伟大的思想者和伟大的交流者。为了成为他们中的一员,你必须逻辑地思考,想出问题出现的原因。许多年轻开发者面对的问题是,写出他们真正需要的代码对他们来说很困难。我们中的许多人也是这样,明知道问题是什么,但就是不知道要去找什么去解决它。这是个你必须从一开始就培养的技能,它漂亮地联系了第一点,“成为一个交流者”(译者注:疑为博主手误,communication 应为communicator)。

?

现在,有了这五点牢记于心,以下是Eva和Fong学到的东西,以时间顺序排列。

第1-3天:通过Ruby语言学习编程基础

我选择Ruby语言,因为它用来上手是最的。在Ruby语言中,有很少语法限制(space键与tab键,类型声明,等等),所以Eva和Fong能够关注编程的思考过程而不是解决语法问题。她们学习了if型语句、循环体、数据结构,解决了一些编程题目,比如说FizzBuzz(编程初级问题,即满足a条件时输出Fizz,满足b条件时输出Buzz,同时满足a、b条件时输出FizzBuzz),替换字符串中的字符,转换一个数组,找出最大值。关于类别和对象的学习也是重要的。

*注*我没有教她们特定的ruby语法,而是让她们对参数都使用括号,并且以返回空结束每个函数。 这样的话,她们下次学一种新的语言时就能更快上手。

第4天:HTML

HTML或CSS严格上来说不能算是编程语言,所以没必要在这里花上太多时间。Eva和Fong在HTML上花了一天时间,编了几个标签玩儿,快速完成了表单、信息页等内容。这样,对CSS的兴奋感就建立起来了。在这里重点要学的是区分块HTML与内联HTML、标识与分类。

第5天:CSS

在摆弄过HTML后,“如何在那里表达这个,怎样使这个丑陋的HTML页面看起来更漂亮”的问题浮出了水面。CSS就是那个完美的答案。花上一天的时间尽情设计网页(所有HTML页面都已经在前一天建好)。这一块的重点是,相对/绝对/固定定位,HTML浮动元素,以及如何用绝对、固定定位来控制正常的浮动。

第6-7天:通过jQuery来学习**********

jQuery需要花点时间来适应,而且因为涉及到编程,学习jQuery框架需要占用点时间。她们花了几天时间将HTML页面做成交互式页面。

第8-15天:第一个项目- 井字棋

这时,Eva和Fong已经了解了HTML/CSS/J*vascript,但不是特别习惯。这正是让她们开始第一个项目(井字棋)的绝佳时机。虽然她们花了两天的时间来完成这个项目,又用了几天时间来对其进行润色修饰。项目的最后20%要花费精力的80%是个金科玉律。作为一个初学者,学着去完成你的项目是很重要的。

第16-20天:Sinatra框架

在那个看起来永远都不能结束的井字棋项目之后,Fong和Eva迫不及待地想学点新东西。学点服务终端代码对她们已经在做的事来说是个激动人心的全新体验。我选择Sinatra,是因为它是我使用过最整洁、最简单的网络框架,而且这种简洁性让解释网络的工作原理变成小菜一碟。

第20-22天:Photoshop

Photoshop对非凡的设计非常重要。对那些从没用过它的人来说,它有点儿吓人(至少对我来说是这样),但是用Photoshop做出来的网站比典型的bootstrap(译者注:由Twitter推出的一款开源前端框架)站点要高端一个档次。而你真正要知道的只是混合、协调功能就够了。任何一个相当成功的开发者都会需要Photoshop,所以学会它并且在你所有的项目中使用它非常重要。

第20-27天:项目2-Dragpic(译者注:通过拖动图片实现从网页上方便地保存图片的软件)

项目2涉及到J*vascript的大量使用。这个项目涉及到使用ajax(译者注:一种用于创建更好更快以及交互性更强的 Web 应用程序的技术)的需要,facebook的API,以及cookies。这是个将所有网络编程基础联系起来的绝佳项目。这个项目所需要的技术范围比第一个要更广,我觉得这也向更多更复杂的项目迈进了一步。在这段时间里,她们凭借GIT(译者注:分布式文件管理工具)通力合作。这可是一个开源项目啊!

第28-30天:RSpec

这时,Fong和Eva已经能相当自如地构造网络应用了。也正是这时,她们意识到,代码是多么地脆弱,一个细微的改动,就能导致满盘皆输。现在,测试驱动开发就显得有重要意义。我们花了几天时间重温了rspec,Eva和Fong则写出测试案例作为每天早晨的编程练习。我之前提过她们每天早晨都要解决一个技术问题吗?从第28天开始,她们就必须为这些技术问题写出rspec,在她们开始编程之前也不例外。

第30-35天:BackboneJS(译者注:一个开发网络应用的框架,提供了强大的对模型、视图和交互的抽象)

通过负责一个设计技术范围广泛的项目(比如Dragpic),你能学到很多,遇到很多你希望能有更优解的问题。只有这样,你才能这正意识到那些帮助你的框架的价值。我还没有找到任何一个优秀的backboneJS教程,所有教程都一下子提供了太多信息。以下是我教授它的方法:

第一步:学习模型。仅为一个数据库数据库条目创建一个模型。学会如何去修改和保存。

第二步:学习视图。为你已经在做的模型创建一个视图。添加事件接听程式,体会视图如何能够隐蔽地与模型连接,以及这一切组装为一体是如此地合适。

第三步:集合的意义现在就明确了。 你不可能手动打印输出每一个模型,尤其是当你不知道模型具体数量的时候。

我们没有学过常规课程,到现在为止,我也不认为这有什么要紧。

第35-40天:Android

假如你现在还没怎么注意,我们已经在短时间内涵盖了大量的材料了。伟大的程序员适应变化,因此我们最后一个计划就是学习Android系统。在编程中你不能忽视移动设备,这块实在是太重要了。我教她们Android编程,这不是特别难,Android编程与web编程非常类似。在视图上你有XML(译者注:extensive makeup language,用于标记电子文件使其具有结构性的标记语言),同时也有足以和web控制器相媲美的J*va代码。模型-视图-控制!通过用Ruby语言和J*va语言工作,Fong和Eva开始寻找编程语言之前的共同点,成为了编程语言不可知论者。对她们来说,编程语言仅仅在语法上有所不同,但工作起来却是一个道理(其实不是这样,稍后我会对其进行辨析,厘清混淆)。

?

结论:

1)女孩们在编程上天赋异禀。

2)没有获得计算机科学的学位不是个不学编程的借口。

3)在快乐中编程,人人都能学。

继续探索,然后征服编程吧!

?
???标签: android 编程
云夕 编辑于 2012-9-28 上午11:22
引用 回复 鲜花 ( 11) 臭鸡蛋 ( 2) 有新回复时发送邮件通知
电子工程专辑联想Q3财报透露的秘密:同比下跌实为涨
第1楼

回复主题:我姐和我女友是如何学编程的zz

发布时间:2012-9-28 下午4:16

作者: 辛辛Mr

等级: 初入江湖

积分: 116分

发帖数: 8次

网站总积分: 116分

经验值: 0.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
高手哇
一个大学生完成电子设计的全过程 值得一读 (下载2666 次) 书上学不到的~某高手谈开关电源设计心得,经典~ (下载2580 次)
运放和比较器的根本区别 (下载2242 次) 焊接工艺(花了很多时间整理,图文并茂) (下载2674 次)
电子电路制作大全[PDF共6本] (下载128277 次) WiFi模块全总结 (下载4332 次)
引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑新兴的单芯片3D技术可望让芯片“重见光明”?
第2楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-9-30 下午5:28

作者: sgeli

等级: 初入江湖

积分: 142分

发帖数: 64次

网站总积分: 149分

经验值: 20.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
高手啊!
看完这部MCU中的葵花宝典,你就明白为什么说全球没有破J不了的MCU了。。。 (下载19415 次) 书上学不到的~某高手谈开关电源设计心得,经典~ (下载2580 次)
【转】最完整 MTK方案套片datasheet下载全集【5】 (下载5714 次) 黑魔书[中文版]_全 (下载21162 次)
学习美国IPC标准体系!!!!!! (下载3535 次) 【转】NOKIA主流手机原理图(1)! (下载13759 次)
引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑可植入皮肤的磁感传感器,让路痴两眼发亮
第3楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-1 下午6:04

作者: Aoglex

等级: 初入江湖

积分: 93分

发帖数: 4次

网站总积分: 93分

经验值: 0.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
值得学习和思考
高频电子电路考试试题全集(内附答案) (下载1772 次) Cortex M3权威指南 (下载3171 次)
掌握模拟电路设计的几套书 (下载3395 次) 【TI经典】大牛电源设计经验谈-合集 (下载1678 次)
看一个TI老工程师如何驯服精密放大器 (下载5368 次) 完美时序设计 (下载2696 次)
引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑Apple Pay+指纹识别,开启移动支付新时代
第4楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-5 下午6:45

作者: L4569

等级: 武林泰斗

积分: 16120分

发帖数: 2195次

网站总积分: 16141分

经验值: 1227.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
看看
网友推荐
运算放大器设计与应用—电子工程师必备手册(下)????GPS设计全攻略--电子工程师必备手册(上)????
《32位MCU开发全攻略》(上),免费下载中!????元器件封装规格大全????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑工业机器人核心技术上的坚守
第5楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-5 下午6:49

作者: L4569

等级: 武林泰斗

积分: 16120分

发帖数: 2195次

网站总积分: 16141分

经验值: 1227.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
厉害。
网友推荐
绿色照明LED灯具驱动技术????为什么我们现在处于抄袭的时代?????
LED现在替代传统照明是错误的产业方向????ADC和DAC基础(第一部分)????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑盘点三大运营商落马高管,采购岗位最为危险
第6楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 上午7:02

作者: 烟台电子眼

等级: 遁门入道

积分: 203分

发帖数: 1204次

网站总积分: 253分

经验值: 3.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
学习
网友推荐
信号链基础(1):运算放大器????陪美国同事参观金立手机工厂????
锂离子电池管理电路摸爬滚打记(上)????示波器基础知识一百个问答????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑可植入皮肤的磁感传感器,让路痴两眼发亮
第7楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 上午9:23

作者: CHENH

等级: 初入江湖

积分: 148分

发帖数: 104次

网站总积分: 151分

经验值: 1.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
好办法,学习的榜样
网友推荐
功率MOSFET教程(第二部分)????功率MOSFET基础知识????
拆解华为P6:超薄内部设计获赞 多采用国内芯片????功率MOSFET教程(第一部分)????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑盘点三大运营商落马高管,采购岗位最为危险
第8楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 上午9:37

作者: 周长征

等级: 初入江湖

积分: 132分

发帖数: 83次

网站总积分: 153分

经验值: 5.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
希望有些学习编程的方法出来,还有就是能够列举一些编程的必修语言。
网友推荐
拉氏变换与电路设计计算????石英晶体振荡线路误差来源及其回路分析????
拆解华为荣耀6:海思麒麟920三星RAM结合封装????D类音频放大器知识大全????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑解析长虹5.5秒海尔10秒吉尼斯纪录的背后
第9楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 上午11:18

作者: SkyHeds

等级: 学有小成

积分: 510分

发帖数: 156次

网站总积分: 512分

经验值: 2.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
现在编程语言众多,若是没有一个目的性很强的老师做引导,很容易把时间都浪费在对实际用处很不大的编程语言学习过程中。例如:若需要做网页应用的人,将大把的时间花费在C语言、汇编语言、AutoCAD的学习上就会是一种灾难。
网友推荐
拆解红米:与千元机差别不大 低价因多用国产芯片?????详解:英特尔90亿rmb注资清华紫光后将做什么?????
电子工程师必备电子书——ADC/DAC应用设计宝典(...????电磁感应式无线充电系统三大核心技术????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑微软HoloLens和Google Glass会是同样的命运吗?
第10楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 上午11:41

作者: 粉肠

等级: 初入江湖

积分: 156分

发帖数: 26次

网站总积分: 159分

经验值: 0.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
真是高
网友推荐
iPod touch5拆解:修复性不及新手机 HOM...????过压保护及瞬态电压抑制电路设计????
史上16大受争议工程师的反面教材????PCB设计技巧百问百答????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑新兴的单芯片3D技术可望让芯片“重见光明”?
第11楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 下午4:02

作者:广东省珠海市的游客

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
学校可以取消计算机关于软件编程的专业了!本就应该这样!
网友推荐
为什么华为在寂静的笔电市场掀起欣然大波?????赔本赚吆喝 中国智能手机“十大怪”????
电源基础知识????智能手机Flash/DRAM选择、配置与价格大全????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑从教育看印度工程师的培养
第12楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 下午4:27

作者: Louts

等级: 黄金少侠

积分: 1968分

发帖数: 2579次

网站总积分: 2025分

经验值: 50.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
hao
网友推荐
USB3.0 的物理层接收端测试方案????拆解HTC One:400万摄像头背后的芯片力量????
武晔卿:电子可靠性的十大误区????雷军罗永浩新产品骗了粉丝,是不是也骗到了你?????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑从教育看印度工程师的培养
第13楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 下午4:48

作者: Louts

等级: 黄金少侠

积分: 1968分

发帖数: 2579次

网站总积分: 2025分

经验值: 50.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
hao
网友推荐
首款智能手表Pebble拆解????EMI通过介质干扰电路的途径????
混合信号PCB分区设计指南????几类关键运算放大器的基本特性与设计考虑要素????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑解析长虹5.5秒海尔10秒吉尼斯纪录的背后
第14楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 下午7:15

作者: L4569

等级: 武林泰斗

积分: 16120分

发帖数: 2195次

网站总积分: 16141分

经验值: 1227.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
又上来看看。
网友推荐
放大器知识经典问答(第一部分)????您真的吃透了电阻的用法吗?????
小米新品破两千试水高端化 秒杀锤子ROM????C语言数据结构????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)
电子工程专辑Apple Pay+指纹识别,开启移动支付新时代
第15楼 回复主题:我姐和我女友是如何学编程的zz 发布时间:2012-10-7 下午11:42

作者: 富时

等级: 初入江湖

积分: 145分

发帖数: 81次

网站总积分: 154分

经验值: 10.0

查看用户的所有发言

查看用户的个人e空间

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件 关闭
That's impressive
网友推荐
电子可靠性工作的十大误区(电子展讲义)????汽车电子自适应频率调制DC/DC降压变换器的开发策略????
还死啃概念?看得懂的电磁场理论????高边和低边电流检测技术分析????

引用 回复 鲜花 ( 0) 臭鸡蛋 ( 0)

与?android,编程?相关的话题
?
快速回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册 ) ?
标题: * 你还可以输入80
评论: * 你还可以输入10000
分享到: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
验证码: ?*?
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回电子技术基础知识专区 | 返回自由讨论
本论坛仅陈述专家或个人观点,并不代表电子工程专辑网站立场。
返回论坛页首
有问题请反馈