大数跨境
0
0

SS14 | 上山吃苦: 一个文科生的 Python 学习之路

SS14 | 上山吃苦: 一个文科生的 Python 学习之路 蟒营
2019-11-24
3
导读:一个你曾有过, 或将会体验的上山修行的故事

这是一个 90 后文科生, 为了学习编程而发愿上山, 吃苦修行(重点是...吃苦?)的故事.


具体呢, 说的是, 这个三步并作一步赶路的年轻人, 在这上山的一路上, 遭逢一劫,  最终如何在一位成熟有担当的大师兄帮助下, 搞定并重新启程...

0. 见色起意


开源潮流下, 年轻人也被洗脑, 以为编程可以改变世界.
天真地以为, 只要参加蟒营, 1 个半月即可习得「穿山遁甲」之技.
于是乎, 伪装需要 GitLab API 的陪伴, 无理要求查看自己个儿操弄 issue 的个数.
满嘴谎话得宣称, 按自然周查看个人 GitLab 发布 issue 个数,即可获得自我学习行为的理性评价.
当然, 这是扯淡... 
好在蟒营开放的氛围, 一向崇尚「犯错是最好的学习路径」,给了年轻人一次检验自己荒唐想法的机会.

1. 鲁莽行事

项目套路不外乎输入/处理/输出. 

和天下大部分没有耐性的年轻人一样, 三步作一步是她的首要策略.

能不能用一行/一段代码, 一次性完成项目需求?

令人惊讶的是, 还真的可以...

比如,目前的需求是,获得按自然周排列的 API 数据. GitLab 提供使用 URL 获取目标时间段的 API. 问题是,URL需要的是用字符串输入的时间段.

年轻人展现了她惊人的沙雕才华,手动搬砖输入大批字符串, 以下为目标时间段——


  1. # 通过收入输入目标时间段字符串,获得按自然周排列的 api

  2. wks=[
  3. 'after=2019-09-01&before=2019-09-21',
  4. 'after=2019-09-22&before=2019-09-29',
  5. 'after=2019-09-30&before=2019-10-06',
  6. 'after=2019-10-07&before=2019-10-13',
  7. 'after=2019-10-14&before=2019-10-20',
  8. 'after=2019-10-21&before=2019-10-27',
  9. 'after=2019-10-28&before=2019-11-03']

  10. for s in wks:
  11. res = requests.get('https://gitlab.com/api/v4/users/4552272/events?target_type=issue&action=created&%s'% s,headers={'Private-Token': password})
  12. _json = res.json()
此招搬砖后, 年轻人得到了颇为穷酸的输出,7 周内她自己创建 issue 的个数.
可是问题是, 一旦需要得到新自然周数据,全部的 URL 又要全部手动输入一轮, 非长久之计...


2. 半路获救


和大多数俗套故事一样, 上山路上, 总会有基础扎实经验丰富的大师兄, 把这群成事不足的沙雕后生们打捞上岸.
大师兄说, 转换日期这事儿不用自己扛, 师傅早有工具.
更关键的是, 三步并作一步, 这心态不好, 山中砍柴是门手艺, 急不来...
大师兄的策略是, 先拿回所有 API, 统计的时候再按自然周进行统计.
而目标时间段的字符串, 可以用函数直接转换为以自然周为标记的字符串.
这两个字符串之间的桥梁可以是 tuple.
大师兄的策略如下——


  1. # 通过 tuple 将原本难以肉眼识别的时间段转为易为识别的自然周

  2. # 输入
  3. >>>from datetime import datetime
  4. >>>date = '2019-10-23'# <class 'str'>
  5. # 处理
  6. >>>date_tuple = datetime.strptime(date,"%Y-%m-%d").isocalendar()
  7. >>>print(date_tuple)
  8. # 输出
  9. (2019, 45, 2) # <class 'tuple'>

  10. # 输入
  11. >>>date_tuple = (2019, 45, 2)
  12. # 处理
  13. >>>year_week_day = "%d年第%d周第%d日"% (date_tuple[0],date_tuple[1],date_tuple[2])
  14. >>>print(year_week_day)
  15. # 输出
  16. 2019 年第 45 周第 2 #<class 'str'>
大师兄一出手, 小团队得以一扫快憋不下去了的苦闷.

3. 蟒营感悟

想必大家也已料到, 年轻人如我, 也是个在参加蟒营前,从未接触过代码实战的文科生.「真小白」一枚.
皓首穷经二十载, 蟒营带给俺无法磨灭的「苦痛」印象(当然,这是黄连苦口利于心的好事).

这种「苦痛」, 大约可以总结为如下三点.
  • 纸上谈兵
    • 蟒营完全实战.用自己个儿直觉的作法,完成真实需求.
    • 深刻体会到,自己的代码虽然能成事, 但经常后患无穷...
  • 闭门造车
    • 苦熬功能做不出的时候, 真需要大师兄的救场指路.
    • 和写书不一样, 团队才是工程质量的保证.
  • 羞于言辞
    • 大部分问题,无论多幼稚,只要能表述清楚,就是个好问题.
    • 自己有啥想不明白的, 立刻吼出来.大师兄只有空救助那些叫声大的鸭子.

所以, 归根到底, 为何学习编程? 以及, 为何应该加入蟒营, 而不是去跟风上那些填鸭式教学班呢? 
因为只有在蟒营, 在你学习的时候, 你面对的是真实的开发环境和有效的项目, 尝试越久, 越能体会到其中的乐趣; 有靠谱的陪练能为你在遭遇特定问题时, 指明方向; 当然 自不必说, 无处不在的大妈一直在看着你上山修行的这一路, 并给予种种提点. 

是也乎

  蟒营何为?  

这就是蟒营哪, 正如隔壁队长说的:

一个十分开放的课程, 开放到它只给你一个框架, 内容完全由自己来填写, 任何形式任何方法都可以得到包容, 也没有人说「哎呀这个应该这样做」, 他完全靠自己实际操作来触发一系列隐藏任务, 而大妈则是「和蔼」的站在背后不时的看看你, 指引你, 帮助你把这个发现的问题狠狠的踩下去, 推动你去弄个明白. 这就是蟒营. 

综合来说, 蟒营可以激发学员获得各种价值 ——
  • 在职非 Python 程序员 <- 实用工程经验, 包含团队管理体验
  • 在校大二/三学生 <- 完备软件经历, 无论是否专业相关, 都能独立用 Python 完成实用脚本开发
  • 真小白无基础人士 <- 切实编程自信, 真正理解什么是编程, 并熟悉 Python 技术生态,能基于工程思维来解析具体问题..
  • 以及所有学员能获得的:
    • 高效问题讨论习惯
    • 实践自学社区协作
而这一切的技能与成果, 都在 6 周里即可达成.
PPS: 14 岁~72 岁都能学, 嘦:
0: 想学编程 
1: 有个人电脑 
2: 每周能挤出10+小时自主学习时间 
3: 英文能查字典看懂

NN3768


精品小班 报名中~

Python 入门班 第三期课程

191102 正式报名

191124 报名截止

191201 正式开课

200112 课程结束

蟒营 Python 入门正式班: 

课程定价: 4200 元 / 人
本期特惠: 1642 元 / 人
另, 学生报名, 可享 88 折, 折扣不叠加 (报名完成, 向助教出示证明后获取)
轻戳下方卡片报名课程~

如果对课程有什么疑问, 你可先进入知识星球咨询: 

点击“阅读原文”报名蟒营 Python 4 期课程

【声明】内容源于网络
0
0
蟒营
人生编程陪伴/你本来就很行;-)原创私塾式课程:大数据分析+爬虫+可视化/人工智能/深度学习/机械视觉/写作/作曲/...只要坚持几周任何新技能获得都将不是问题.
内容 64
粉丝 0
蟒营 人生编程陪伴/你本来就很行;-)原创私塾式课程:大数据分析+爬虫+可视化/人工智能/深度学习/机械视觉/写作/作曲/...只要坚持几周任何新技能获得都将不是问题.
总阅读63
粉丝0
内容64