本文经授权转载自微信公众号“crossin编程教室”(crossincode)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(*本文仅代表作者观点,转载请联系原作者)

在线公开课

推荐阅读:

  • 从0到1:Web开发绕不开的WSGI到底是什么?

  • 24式,加速你的Python

  • 安卓运行Jupyter Notebook操作指南,不用电脑也能做数据分析!

  • 毕业10年后,我忍不住出了一份程序员的高考试卷!

  • Python从入门到精通,这篇文章为你列出了25个关键技术点(附代码)

  • 500行Python代码打造刷脸考勤系统

你点的每个“在看”,我都认真当成了喜欢

经验分享:如何通过项目实践提升编程能力?相关推荐

  1. 11个提升编程能力的小方法

    编程是当今社会最为实用的技能之一.从能够创造一个公司网站到知道怎么修复一个重定向错误,这些技能带来的价值,不管是对雇主还是对程序员自身,都是无法估量的. 但是,保持你当前的状态,停滞不前,那你永远无法 ...

  2. 经验 | 计算机专业科班出身如何提高自己编程能力?

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散   计算机视觉联盟笔记   作者:王博Kings.Sophia 本文内容概述王博Kings好友一些编程学习经验 前言 ...

  3. java怎么提升编程能力_怎样提升java编程能力

    1 怎样提升java编程能力 在互联网迅猛发展的时代,而我们如果对互联网一无所知,那就相当于文盲.所以很多人都想去了解它,去学习他.而作为互联网的产物--java,是一门非常不错的技术,学精通之后,你 ...

  4. 【经验分享】30个使用Python编程的实践、建议和技巧

    2020年,你立了什么新的 Flag?无论如何,只要在学编程,在用Python,我们都是一家人!我们先为大家准备 30 个非常优秀的 Python 实践技巧.希望这些诀窍能在实际工作中帮助大家,并且学 ...

  5. Java学习路线图分享(含项目+面试提升)最全整理

    为大家整理了2022最新的Java学习路线图,从学前准备.学习路线.项目实战.面试提升等四个方面给大家分享一些经验,希望可以给学习Java的小伙伴们一些帮助. 个人学习经验: 我本人是计算机科班出身, ...

  6. 15年程序员经验分享:40个改变你编程技能的小技巧!

    编程如何节省更多的时间,犯更少的错误? 最近,这样一份「心得」火了.这位名叫Kesk Noren的软件工程师在Medium上分享了一篇博文--「40 Tips that will change you ...

  7. 谷歌浏览器手势操作_[经验分享] 2步操作永久提升谷歌Chrome浏览器默认下载速度...

    导语 文章底部点下"在看",多多分享吧.网站:soul88.com 前言: 其实现在从网上下载文件大部分都会使用专门的下载器进行下载,比如迅雷.BT软件.IDM等等,很多时候都不需 ...

  8. springboot 建readme_经验分享:给项目创建和编写README.md文件的步骤

    在项目开发过程中,不仅要注意代码的编写质量,也要为合作开发打好基础,尤其是合作开发的时候,同事直接的代码需要熟悉,这就需要在开发的时候进行注释操作,方便别人维护和熟悉代码.除了上述两个重要的点之外,还 ...

  9. 树莓派项目实践 [1] —— 编程控制继电器组件实现电路开闭(C语言)

    原创首发于CSDN,转载请注明出处,谢谢!https://blog.csdn.net/weixin_46959681/article/details/115145982 文章目录 所用的树莓派与继电器 ...

最新文章

  1. python中json的使用
  2. 用C语言解“用天平找小球”题
  3. 郑州网络推广教你如何“悄悄”做网站SEO,惊艳竞争对手?
  4. Python爬虫入门(5):URLError异常处理
  5. JAVA开发常用类(一)
  6. 石家庄市职称计算机,河北石家庄2010年职称计算机考试报名通知
  7. ES6 (总结篇二)
  8. 宝塔面板 nginx+apache共存 之 KVS服务器运行环境搭建过程记录
  9. tensorflow一维卷积输入_深度学习中的反卷积(Transposed Convolution)
  10. MIT Scheme编译scm文件
  11. html比赛项目,趣味运动会项目
  12. 在Caché中使用正则表达式
  13. Selenium结合HttpWatch进行Web自动化测试(实时获取页面性能)
  14. 照片怎么无损放大尺寸,三种方法无损放大照片
  15. Duplicate keys detected: ‘gggggg‘. This may cause an update error.的解决办法
  16. 如何选择计算机软考科目,计算机软考科目众多 我们该如何选择考试科目?
  17. python二手房使用教程_利用Python对链家网北京二手房进行简单数据分析
  18. 无人驾驶(三)---teleop_twist_keyboard控制底盘运动
  19. 轻轻的、淡淡的,却余味悠长
  20. audition cs6识别不到juce开发的vst3插件解决

热门文章

  1. pdf会签_跟我们做流程管理.pdf
  2. Kettle构建Hadoop ETL实践(六):数据转换与装载
  3. 大象机器人-史上最紧凑的教育机械臂mecharm众测
  4. 计算机科学前沿期刊,FCS|期刊动态:《计算机科学前沿》2021年第一期精彩文章...
  5. C语言从入门到精通——进阶6 C语言文件操作
  6. 160个CrackMe 029 Cosh.3
  7. 深入剖析串口通信数据格式
  8. [KDTree] [BZOJ2716] [Violet 3] 天使玩偶
  9. 2021年广东省大数据技术与应用技能大赛 真题测试数据
  10. Python爬虫新手入门教学(十八):爬取yy全站小视频