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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(0)

相关推荐

  • 经验分享:如何零基础开始自学Python编程(下)

    这样做的好处是什么呢?虽然你最终在浏览器里看到的是一个完整的页面,但是在后端逻辑上它们都是区分开的--模型(M),视图(V)和控制器(C)的区分就保证了较高的可维护性--我可以随时修改主页的显示并看到 ...

  • 怎样提高PLC编程能力?

    所谓"天下文章一大抄",想要提高PLC的编程能力,除了基础知识掌握以外,最有有效直接的方法,就是多去看看别人的程序,或者别的公司的程序,特别是那些相似的项目经过多年的优化修补而后沉 ...

  • 程序员提高阅读代码能力的几个方法

    有小伙伴问:如何能快速提升编程能力?这感觉永远没有正确答案,每个人都有自己的套路,今天就来聊聊我对这个问题的看法: 学会高效读代码,就是一个不错的办法.阅读代码,可能和写代码一样重要! 为什么要会读代 ...

  • 【Java练手项目】Java身份证号码识别系统

    项目介绍 本项目是通过学习https://gitee.com/nbsl/idCardCv 后整合tess4j,不需要经过训练直接使用的,当然,你也可以进行训练后进行使用.该项目修改原有的需要安装ope ...

  • 【Java练手项目】Java外卖点餐系统

    傻瓜式外卖点餐系统(无数据库) tips: 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量) 管理员类(管理员id,账号,密码) 客户类(客户id,客户名,性别,密码,送餐地址,手 ...

  • javaweb练手项目jsp+servlet简易购物车系统

    简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...

  • 企业如何选择一个合适的会议直播系统?

    虽然国内疫情已经得到控制,但是国外疫情似乎仍在肆意蔓延,因此会议直播对于跨国或者跨地区的企业来说还是比较吃香的,那么怎么选一个靠谱的会议直播系统呢? 首先,要保证直播平台的稳定和流畅.因为稳定和流畅是 ...

  • 70个Python练手项目列表,看了让你茅塞顿开!

    前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了70个Python实战项目列表,都有完整且详细的教程,你可以从 ...

  • 如何选择一个合适的伴侣,我在星座角度有一个秘诀,你要不要听?

    最近我遇到一件很有意思的事,是一个很善于观察总结的朋友跟我发的私信. 他说,经过他的观察发现,他身边一对对的,相处时间很长,七年往外,相处融洽的组合都有一个特点: "两个人中,总有一个人的长 ...

  • 15.八年级数学:分式化简,怎么选择一个合适的整数代入?常考题

    八年级数学:分式化简,怎么选择一个合适的整数代入?常考题.大家先在草稿本上认真地做一遍,然后再看后面的视频.期待您在评论区留言. 请看视频讲解,觉得不错,请点赞.

  • 问答 | 养鱼如何选择一个合适的水泵?4大因素要考虑

    有很多人常常因为选择水泵烦恼不已,因为选择一个合适的水泵不仅可以很好的带动鱼缸水的循环,还会节省许多不必要的能耗. 什么是水泵? 水泵是输送液体或使液体增压的机械. 水泵的选择要涉及的因素:功率.流量 ...

  • 校园推广如何选择一个合适的校园广告媒介

    近年来,校园市场已成为最具竞争力的营销市场之一.众多品牌和企业对校园市场都十分看好,因此我们纷纷跻身其中. 此时,企业校园推广策划人员应该非常小心地选择校园媒体形式进行校园广告宣传.那么,今天校果研究 ...