• 技术文章 >后端开发 >Python教程

    作为程序员,女朋友想学习编程,我该做些什么?

    2016-06-06 16:11:06原创954
    我是个Python 与 Node 的粉丝, 是否从中选择一门来教女朋友?如何来教女朋友?
    如果选一门新的语言,好处是可以和女朋友一起学从0开始,但是会增重我的负担。
    如果选择一门新语言,Ruby合适吗?因为我也喜欢Coffee,也喜欢Ruby的code for fun。

    回复内容:

    之前试着教过自己的女朋友写代码,事情发生在一年前。当时她正在写《极客爱情》,一个中文女和一个工科男的故事。当时我觉得可以教她写代码,就先从几个点开始:

    1. 先找一个她的兴趣点——如某个应用。
    2. 选定一门简单的语言,No Java, No Lisp。最好是JS,或者Ruby/Python之类的动态语言,考虑到Python的Logo是一条蛇,我觉得JS会好一点。
    3. **手把手教她写代码这点很重要**
    4. 带她把她的应用的原理过一遍,或者做一遍。

    之前,还写了一篇文章介绍了一下:

    原文链接:为何开始教中文女友学编程

    过去编程这种事只有专业的人才能做,见过不同的人掌握着很好的编程能力,有学美术的,有学金融的,应该也会有学中文的。学编程这种事情需要一种动力,对于不需要以编程为生的来说。编程可以训练人的逻辑思维,相对于数学来说,编程更容易加强人的思维能力,数学已经被教材和大多数的老师教得枯燥乏味。


    事情的起因

    简单地说事情的起因就是:

    接着便拿女友的iPhone(我用的是Lumia 920),试用了下APP,感觉了下大致就是把词的平仄都存在数据库中,再读取出来一个个做比较。于是拿着她的Windows(自己的电脑主板坏了,用的是借的一台古董级的西门子,装的是Ubuntu)找了个手机助手下了个APP,解压完发现果然有一个sqlite3的db文件,再一看数据库的内容,教她理解这个逻辑应该不难(难的应该是UI和用户体验)。


    蛇或者宝石

    \”Python是蛇,Ruby是宝石\”,你会选择哪一个。


    大部份人应该都是传统课堂过来的,也就是学C语言的,C语言最强大的是指针,于是很遗憾的是这造成了一种编程很难的错觉。考虑到此,我便将选择放到了Python和Ruby之间,两者感觉起来似乎难度不大,但是这是对于程序员来说。

    于是在蛇和宝石之间选择了蛇。而且

    于是上了亚马逊买了本《Head First Python》,可以翻译为《深入浅出Python》,意思就是可以很简单地学Python。书中后面讲的是移动开发,以及WEB开发。


    目前的结论

    两个晚上的三个小时过去了,演示了一个基础版的汉字到平仄的转换,有兴趣的话可以在稍后的内容中关注。主要难度:

    另外的结论便是:

    如果你打算教你的女友学编程:

    我所做的大致就是:

    当然如果你不会试着那样做的原因可能是,带有点歧视的大男子主义,编程这种事男生可以的,女生也不会有问题的。脑子不用是容易生锈的~~,现在的想法便是简单地做一个demo出来,在亚马逊的平板上用QPython,直接上手APP有点难,当然除此之外可能需要更多的语法。逻辑上能理解的,语法上便也不过来。


    附上她写的极客爱情:



    01.爱它,还是爱我
    02.去实验室约会吧
    03.我真的不是修电脑的
    04.我的编程养成记
    05.极客的神逻辑
    06.我们的战争
    07.和电脑的亲密接触
    08.邋遢IT民工拯救记
    09.当情书遇上技术博客
    10.技术宅不解风情
    11.和不会聊天的人谈恋爱
    12.不想加班的程序员不是好程序员
    13.技术宅的网购属性
    14.找女朋友难,找工作更难
    15.极客的文艺情怀
    16.二十二岁开始的初恋
    17.当爱情遭遇远程调试
    18.基友一生一起走
    19.梦想还是要有的,万一实现了呢
    20.待我代码编成,娶你为妻可好 (完)
    番外之一:爱情中的那些碎段子
    番外之二:程序员如何邂逅真爱之伪攻略篇
    番外之三:极客男友的情人节礼物大作战

    和她弄的微信公众号:



    然后我也陪她搞微信公众号:


    教咯,你会什么教什么,题目做不出来就惩♂罚♀她。 1. 如果你们不在一个地方,你通过聊天教她,呵呵,教了一会儿话风就完全变了。。。
    好难呢!不会呢!⊙︿⊙
    这都是什么鬼!(⊙0⊙)
    我不要学编程,你们这帮变态的程序猿!~>_<~+(喂,窝还在读书啊,怎么就成程序猿了!)
    不会呢,怎么办呢!
    2. 如果你们在一个地方,不是家里,你教她,呵呵,教了一会儿话题就变了。。。
    好饿,咱们去吃东西吧!└(^o^)┘(尼玛,明明才坐下来不到十分钟)
    这些东西好无聊啊,咱们去吃东西吧!\(^o^)/(是谁说要学的来着,是谁来着)
    好难啊,我们去吃东西吧!(☆_☆)(为什么又是吃东西。。。)
    3. 如果你们在一个地方,是在家里,你教她,呵呵,教了一会儿,欧麦噶,这也是编♂程♀?(ˉ﹃ˉ)

    所以,作为一个过来人,我跟你说啊,你能做的也就供一些参考资料了 你不觉得,纠结语言是非常不程序猿的表现么

    程序猿应该纠结于字体和编辑器
    所以你可以试试先教一下如何使用vim和emacs
    然后选择一门像是ML或者Oz这种有道理的语言去教导一下,顺便讲点type相关的或者设计模式相关的

    然后就可以啪啪啪了
    说起来,每次我和别人讲Linux的时候我总是想从谓词,名词和副词/形容词成分开始讲起怎么破 你是python和node的粉丝,又觉得学一门新语言是「负担」。。。所以想学、教ruby,突然又开始喜欢coffee,但又觉得ruby是code for fun

    我看到了一颗对cs满怀期待最终被狠狠击碎的❤️了

    如果非要你来教的话,教java php吧。。 稍微更新点~
    我就在跟男票学习中。

    因为本人是新媒体专业(以前是传媒狗),跟互联网的关系还算紧密。
    然后越发觉得没有点技术性的本领不太行,就想学点简单的编程。
    目前只是带点兴趣了解,并不会说靠这个来吃饭什么的。
    只因为自己智商有限(像大学里java学得很烂,差点挂掉ʕ •ᴥ•ʔ )。
    男票不是计算机专业的,他学的是控制,然后硕士学了CE,没有学CS

    我以前有点点编程基础,HTML算是比较所见即所得,能调动点兴趣,所以我本身最开始只是想学点HTML。
    然后我想要有点动态效果,所以又加了CSS

    每次他会做好ppt,然后音频加共享桌面来给我讲解。
    当然PPT很简单啦,就是这样:
    然后这样:

    很基本的概念讲,然后是例子咯。留点课后思考题,下次由我回答。
    因为两个人都很忙,加上异国时间差,所以现在才上了两次课呜呜。(异国狗的忧桑

    从我的角度:
    如果不是将编程作为职业来学习,妹子只是对编程好奇。
    那心态大概跟我一样,只是想知道
    “哇,那个点上去会变颜色是怎么实现的!”
    “那个下拉菜单又是怎么实现的!”
    ……
    然后如果自己也能够做出来那成就感满满哦~
    你在给她讲的时候,可以更多地给例子,不要讲一堆概念。
    用一些生活中的简单例子类比,这样比较好理解

    另外,建议可以手把手教妹子自己搭个博客!


    嘛近期我发现这种上课方式效率太低 远没有我自己看书练习快ˊ_>ˋ
    毕竟编程这种还是实践来得快
    于是只在有问题的时候询问他
    不匿啦 这事儿我明白,老婆跨专业学CS,以前没有编程基础。入门语言是Python和Java。

    说说好多CS专业的人习以为常但是对初学者非常困惑的概念吧

    1. 什么是function?和数学上的函数有什么关系?
    2. method又是什么?和function又有什么关系?
    3. static method又是什么?和普通method又有什么关系?
    4. instance是什么?class是什么?还有啊你都没跟我说面向对象是什么还是从头说说吧
    5. lambda是什么?(不要想着介绍清楚什么是closure…)

    所以真的想入门的话,学一门functional programming language吧。我没有开玩笑

    我敢肯定,教着教着不是你死,就是她亡。不要教老婆学任何东西这个道理难道你不懂?她要学, 就花点钱让她去跟培训机构学,或者让她看视频教学。 手把手教,迟早要吵架。跟教老婆学开车一个道理。题住谨记 正在学习前端的少女飘过……

    这个得先确认你女朋友想要学的方向是什么。
    确认好后就可以把目前比较流行简单易学的编程介绍给她,让她有个大概的了解,然后自己选择学哪样。
    如果她还是不知道该选哪个,你就先教她Python或Node。反正你懂,有人讲解她理解的快,开始学简单的以后就有信心学更难的,然后自己独立看书学习。

    我男票就基本是这么带我的,虽然有些他也不懂,但他会自己先搜索了解然后教我,我自己也乐在其中( ̄▽ ̄) 作为女程序猿,第一语言是java(中学)不喜欢,导致很久没有考虑过编程什么的。我觉得ruby用来教很不错! 在北京等城市还有Rails Girls的活动,一般免费,她可以去参加。Rails Girls一次活动就可以弄出一个web app,有教练/师资,有助于培养兴趣, 而且在初级阶段可你给你这个老师省心不少。尽管不是专门教ruby coding,但是有了更明确的目标coding学的也快,再说rails也是比较程序员友好的框架。

    我觉得Python可以教,而且教学难度要小,外面资源也多,code academy, pyGirls等等。但是刚开始学,能用来直接做的东西比较虚。画个图啊算个数据啦甚至实现一个复杂算法还算比较快学会,但没有那种。。。看得到用的来的东西,不像到处都用的web app (难道教Django?!),看喜好了吧。

    Node.js嘛...嗯,我觉得一开始学“编程”就写一层一层的callback,感觉怪怪的,不大对。需要更多recursion theory,写点functional program才会理解得更好吧,我觉得。我也一直不是很喜欢javascript,水微深,安全性也不高,但Node.js大势所趋也算是从了。我用的[这个](github.com/rvagg/worksh)学的Node.js,还算循序渐进,但是样子不敢恭维,看她愿不愿意这种形式了吧。

    我倒是听到有很多在说用前端甚至图像的代码来教小孩子Javascript,因为更视觉一些。你也可以考虑一下。

    利益相关: Rails Girls coach-to-be (但总是没时间>______<)
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Ruby Python Coffee Node code
    上一篇:Python有哪些黑魔法? 下一篇:Python 在网页爬虫、数据挖掘、机器学习和自然语言处理领域的应用情况如何?
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 一文详解python生成器• Python自动化实践之筛选简历• 图文详解Python冒泡排序算法• Python 3.11中的最佳新功能和功能修复• Python接口自动化测试必备基础之http协议详解
    1/1

    PHP中文网