selfteaching / selfteaching/selfteaching-python-camp

Day11 项目思想总结

Open
#1,923 3 comments 12 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

学习心得分享
Dominant language
Python
Stars
151
Forks
875
PR merge metrics
No merged PRs in 30d

Description

通过这两天的任务,和我偷偷瞄了一眼,后面的任务大纲,我大致了解了我们最终形态是一个什么项目了:应该是一个向微信群或者好友提供的一个词频统计服务机器人,这个机器人的功能就是通过好友@机器人的微信号的时候,留下的文章链接和邮箱,我们的程序提供的服务,就会将统计的结果(报告)通过自己预设好的邮箱发送到好友的留下的邮箱当中

我们做一个假设,在我们第一天的时候教员告诉我们要做这个东西,我估计很多人都会怀疑自己是不是最终能做出来,因为这个项目太复杂了

我们来回顾下前几天的任务列表:

  • 第一天 注册并使用github,学会基本操作
  • 第二天 安装编程环境,并测试
  • 第三天 编写一个简单的计算器
  • 第四天 流程控制 99乘法表
  • 第五条 数据容器 词频统计的雏形
  • 第六天 函数 将代码片段封装成函数
  • 第七天 模块 将具有相似功能的函数抽离出来
  • 第八条 异常处理 增强代码的健壮性
  • 第九条 标准库 扩展工具库
  • 第十天 第三方库 再次扩展工具库
  • 第十一天 实战 知识迁移
  • 第十二天
  • 第十三天
  • 第十四天 词频统计机器人
任务拆解

这几天的入门课教员们在我们面前展示了第一个技能就是任务拆解,我自认为对这个概念像有一些认识,现在看来还是认识还是太浅了,现在通过这些天的任务我觉得我对这两个字有了更深刻的理解。

教员们向我们展示了如何通过拆解任务的手段将一件事的难度降到最低,然后具体化为每天需要完成的任务列表,我们只需要按部就班把每天任务清单完成最终就可以做出一个很牛的一个项目。

以解决实际问题去驱动学习

这里隐含了第二个思想就是以解决实际问题去驱动学习,所有学到的知识都是刚刚够用(刚好可以解决现在的问题),先把项目的功能实现了,然后在寻求更好的解决方案,也就是我们经常说的,先完成再完美.

这事在以前是不可想象的,按照以前的思路,在不知道一门语言怎么用的的情况下,首先我需要系统性的去学习这门语言,在学完这门语言之后,好吧,本来是想用这门语言做什么东西的,在学完之后很可能你发现这个东西还是做不了,因为你发现了一些其他的做法可以更好地实现,而更好的做法还需要学习一些新的东西,然后不断的去学习一些新东西,就这样我一直被,"更好的做法"牵着鼻子走

优化

第三个学到的思想就是优化,从第五天起,到项目结束,我们会一直在一段代码上不停的优化,好代码不是一口气写出来的,而是不停的优化出来的,每个程序员都是这样的.

举个例子,就是李笑来的<<自学是一门手艺>>这本书,可以去github中看一下commit的次数,以及每次提交都优化了什么,或者去看下我们使用过的库 jieba 或者 requests 看看原作者是怎样优化一段代码的

为自己设置解决问题的时间红线 & 记录问题

第四个学到的是为自己设置解决问题的时间红线虽然很多人在说读书要有死磕精神,但是在编程方面,既要独立思考,也要学会利用现有的资源,为自己设置时间红线时间一到,就换一种思路解决当前的问题,如果这个问题暂时不影响项目的进度,记录问题然后继续做项目

项目本身的价值

而且就这个项目本身带给我们的价值也是非常巨大的,这个项目是对字频统计,并且已经有人用这种方法写出了一篇文章,其实这也算是一种写文章的一种角度,而且这个技能是一般作者是掌握不了的,也就是我们训练营这些同学们,学会这个技能之后才能掌握的用程序员特有的方式去分析一篇文章,然后得出数据,然后就是做一些总结

比如说张小龙再发一长篇演讲,或者说逻辑思维的罗胖在做跨年演讲的时候,我们就可以用这种方式去统计他文章中的一些词频出现量,我们用编程与写作结合起来,超过前 20% 那些作家们用这种技能来跨过漫长的这个写作训练来写出 10 万+的文章。

如果再对这个程序进行扩展,设置一些网站爬虫,然后去爬一些,10万+的文章,然后自动获取高频词,或者,自己再做一些定制,就是当我们需要了解某些信息的时候,像当年李老师那样输入比特币,然后过滤一些文章,用我们设置这些关键字的文章进行过滤,然后存储到自己的邮箱当中。增加自己获取信息的一些渠道.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue body contains a Chinese Day 11 project reflection about the Python learning sequence and a planned word-frequency robot. Start by reading the reflection; no file, test, or concrete documentation change is named, so the intended edit and definition of done need clarification.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation
Issue type
Documentation
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.