专栏首页Crossin的编程教室如何选择一个合适的练手项目

如何选择一个合适的练手项目

最近在组织编程擂台活动(前文:码上行动的同学,你有一个机会等待签收),会帮学员们挑选合适的项目,在实践中提升编程能力。

在选题过程中,有些普遍被关注的问题,今天在这里集中聊一聊,包括我这些年指导学生的一点经验,供各位参考。

1. WHO:谁需要练手项目?

可以说,所有编程学习者都离不开实践的过程。除非你只是心血来潮,仅仅想看下编程是怎样一回事,不打算去用它。否则,不管你是准备成为一名专业的开发人员,还是想在其他领域使用编程提升效率,只要你打算“真的”写程序,那就离不开练习

2. WHY:为什么需要练手?

少数技能是知道/不知道的性质,比如某种工具软件的使用、某种机器的操作,只要经过培训就能上岗;大多数的技能是熟练/不熟练的性质,比如演奏乐器、驾驶汽车。编程亦是如此。你了解基础的语法、类型、常用的函数、模块,就好像你知道如何在吉他上弹出单音、和弦,这离演奏出一首曲子来,还差了大量的练习时间。

编程虽不用像乐器一样需要肌肉记忆,但你同样需要对常用“套路”的熟悉,才能在使用时信手拈来。另一方面,只有去面对实际的问题,才会倒逼你思考解决问题的“大局观”,如何流程化模块化地实现你需要的功能。

3. WHEN:什么时候开始练?

尽管项目实践很重要,但也不宜过早,所谓“欲速则不达”。如果你还没有掌握编程的基础,就急于做出一个可展示的作品,往往事倍功半,说不定还带来挫败感,丧失继续学习的动力。我建议,至少你对基本的语法、类型,常用的数据结构如 list、dict 的使用,函数及参数的原理,字符串、文件、网络操作,如何使用模块提供的功能等方面都有所了解之后,再动手做项目。在此之前,把教程上的例程自己写一遍会更有效果。

当然,也不宜太晚。学会编程,但迟迟不动手,过一阵子这个技能就荒废了,等到下次想起来要用的时候发现又得从头学。很多人表示,我上学时候学过 C 语言,但依然写不出代码,就是这个原因。

4. WHAT:应该选择怎样的项目?

尽可能选择难度在自己能力上界左右的项目。太简单了对能力提升不大;太难了,步子太大,通常都是半途而废。偶尔会遇到有人问类似问题:我刚学 Python,我想做个自动驾驶程序,应该怎么做?这问题我回答不了,答案也没有意义,在你能力还不够的时候,即便答案放在你面前也是理解不了的。高出自己能力一点点,在过程中通过搜索、查阅、询问等方式解决问题,你的经验值才会得到增长

除了合适的难度外,尽量从身边入手,寻找可用程序解决的问题。做一个你平常用得上的批量文件处理小程序,会比千篇一律的抓图片爬虫更有意思。这样的项目目标明确,最终更可能完成。

5. HOW:选好题后要怎么练?

从模仿做起,从核心功能做起。比如你要做网站项目,那就可以模仿一个知乎。开发时,不建议用瀑布式的开发模式一步到位,而是迭代式的开发,例如:1.先完成最基本的问答功能;2.之后增加点赞、排序;3.再增加评论功能;4.实现关注用户功能……迭代式开发可以让你更快获得阶段成就感。永远记住:完成比完美更重要!

当你慢慢已经可以模仿得像那么回事之后,不妨尝试下:1.深入细节,把一两个具体功能做到“像素级”复刻原版的程度;2.增加你自己的功能,甚至完全原创一个项目;3.把你的作品发给别人使用。当做到这几点的时候,你已经离一个程序员不远了。

以上是我对于通过项目实践提升编程能力的一些经验和建议。欢迎留言讨论,也欢迎分享你在学习中的心得。


本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:Crossin先生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何保持学习编程的动力

    但话说回来,关注了一阵子我发现,Reddit 上的讨论真要比贴吧不知道高到哪里去了,甚至比不少知乎回答要有价值。而且感觉下面的讨论氛围也更好些。

    Crossin先生
  • 编程学习中的瓶颈

    刚学习编程的时候,几乎每天都会有收获,昨天会用 if 了,今天会调用函数了,明天又会 get 到新的技能。这时候也许你会觉得自己正在快速成长势不可挡。然而过了一...

    Crossin先生
  • 我在想,究竟是什么让编程“隔行如隔山”

    重要的事情说前面。如果你没有时间读完整篇文章,那么也可以只看下面几句话: 成为程序员有不低的门槛,但学点编程没那么难入门。学不会可能只是你选错了教程,打开的方式...

    Crossin先生
  • 20多年编程经验老手的总结,不可不看

    我从学习编程开始已经累计超过二十年了。截至现在,我开办过的编程入门课程的数量也有半打之多。我在教授编程上花费的所有时间,总数大约是一千多个小时。以下是我的一些...

    机器人网
  • 编程小白 | 每日一练(154)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    C语言入门到精通
  • 中小学编程教育是培养“码农”?北京专家:绝对不是

    小学生在老师指导下进行编程操作 郑嘉伟 摄 中新网北京12月22日电“编程教育绝不是在培养码农,而是培养学生的程序设计能力,而这其中最重要的就是流程,在呈现逻辑...

    企鹅号小编
  • 零基础学编程025:前24课总结

    学会如何学习 2016年12月21日,写下了“零基础学编程”的首篇文章:“零基础学编程”都需要哪些基础?计算机都是从0开始计数,所以就叫第0篇文章了。学习任何技...

    申龙斌
  • 【编程指导】学习编程6条箴言

    1、在学习编程之前,想清楚自己到底想写什么程序。 学习编程基本就是在学习建造东西。如果你知道你到底想造什么,你的编程学习之路将会豁然开朗。如果你的目标只是“学习...

    程序员互动联盟
  • 自学编程该如何入手?

    光讲如何如何怎样怎样学习编程,都不是真正从零开始,针对的都是懂一些语言,有一点语言基础的人。对于一点都不懂的人有点残忍。大多数人都有自学编程的激情,但是如何才...

    程序员互动联盟
  • 【入门必备】不是计算机专业,怎么开始学编程?

    大学都能上,你告诉我编程你不会学,你忒么逗我? 个人觉得编程是不是能学会主要看你值不值得去学编程。为什么要这么说呢? 其一,你有爹妈给的一副好身体,高2.XXM...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券