Just relax, take it easy..

0%

上海 Hypers(Python后台开发) 每周总结

在Hypers宏路数据 HFA组(HyperS For Advertising)开始人生第一份工作, 职场小菜鸟的磕绊前行~~.
转眼一周就过去了, 特写下这篇日志记录总结一下每周的总结和反思.

(DESC, 持续更新中...)
完结, 跳到第一周

2018.03.31 - 还是要说再见

在Hypers HFA的旅程可能就此告一段落了, nice的leader, 热情的同事, 说再见的时候, 还真的有一丝的伤感.

March 2018

完成的工作总结:

  1. Nielsen Dar 日志导出工具

个人感想

  1. 第一次面试别人
    最大的感受就是发现面试者会说很多很多的废话(看到了自己),比如
    • 这个说实话我也是猜的,巴拉巴拉..
    • 因为我以前经常编程到两三点,所以实习想做些和编程无关的工作。
    • 谈到在阿里实习时,可能之前阿里的人也很懒吧,所以页面做的很简陋。
    • 请问你还有什么问题吗? em..你们大楼里有开空气净化器吗?要注意保护身体哦
      面试官其实很讨厌听到这些主观的观点,因为完全无法信服,所以如果你提出了一些观点,一定要举例或者用其他方式增强你的说服力, 所以还是要冷静,多思考,少说话,说重点。
      还有一个感受就是,今天来面试的女生简历看上去非常优秀,但面试过程中稍微有些失望便造成了很大的落差。所以这种的是一个很有趣的问题, 这也是为什么很多牛逼的程序员, 总是自称弱鸡...
  2. 突然想到,如果说一个人总是对公司不很满意,是不是因为他自己不太适合这个公司?
  3. 维系两个人感情的诀窍?, 个人觉得并不是每日腻在一起,加深亲密度。而是努力变强,变得独立,增强抗风险的能力。
  4. 一个人永远是无知与渺小的,唯一能做的事就是保持谦逊(humble)
  5. 做什么都要趁早, 唯一无法改变的就是你所剩的时间. 主动一些, 当你在犹豫要不要做一件事的时候, 就先做了再说。
  6. 人群素质,坐扶梯时,会站在右边,左边流出一条道,这是我在悉尼才学会的,没想到在上海已经慢慢的变成了一种常态。
  7. 条条框框?: 刚毕业时,天真的想 不喜欢大公司的条条框框,可那些规范才是一个公司做大做强的根本。
  8. 前后端分离,在Hypers做的最重要的一份工作就是将整个项目进行前后端分离, 但我最近在想一个问题. 这个前后端分离, 对项目最大的提升或者改进是什么?
    • 说实话, 用户体验并没有提升很多, 原来一些很棒的前端设计(比如自定义报表的选择), 可能由于新框架样式或组件的限制, 做了一些简化.
    • 对于后端来说, 个人觉得最大的好处就是.. 代码几乎80%被我重写, 至少后人在看时, 逻辑和注释会很清晰.
    • 等等...
  9. 这份工作中最大的收获:
    • 沟通:
      鼓起勇气主动的去沟通, 当看到前后端交互的一个参数reportType有五六种兼容的写法. 还有, 面对面交流, 是最高效的沟通方法.
    • 面对复杂的需求:
      先构思后写代码, 代码只不过是把思路转化为位置文字的一种形式罢了.
    • 阅读源码的能力.

February 2018

完成的工作总结:

  1. 前后端分离: 共享设置/用户管理/实时采样/重置密码
  2. 多域名支持: TODO, 一定要把所有的设计细节都想清楚, 写好单元测试, 再开始开发.

个人感想

  1. 新年: 两年春节没有回家过年了, 可今年的假期显得格外的短暂. 还是要多陪陪家人吧.

第四十六周 (29 January 2018)

完成的工作总结:

  1. 用户管理: 用户管理界面的api编写, 前后端分离后其实就是User和UserGroup的retrieve/update/create/list方法. 用的TDD开发, 感觉写出的代码稳稳的.
  2. 测试提速: 说起TDD, 测试的执行速度就变得格外的关键了. 看了一些文档和博客, 提升了一下单元测试的速度(博客).
  3. 添加出错接口的测试: 因为修改了一个通用的方法, 导致测试环境的一个接口(用户视图)返回的数据不太正确. 于是添加了用户视图的单元测试(考虑了共享Account和Campaign的情况.), 虽然编写测试花费了一个小时左右, 但个人感觉是很值得的.
  4. 年会: 抽中了四等价, jd的五百块充值卡/(ㄒoㄒ)/~~, 但超级喜欢公司logo定制的交通卡, 大爱😍😍

个人感想

  1. 跑步🏃: 周二都穿好跑鞋准备放飞自我的时候, 一周都是雾霾..我也是醉了, 生气.
  2. 每周鸡汤: If you are loser — you will lose no matter what

第四十四周 / 四十五周 (15 January 2018)

完成的工作总结:

  1. TDD: TDD初尝甜头. 先写测试再开发, 确实大大提高了效率, 并保证了代码质量.
  2. 单元测试: 单元测试的维护一直是个很头疼的问题. 上周终于抽空实现了之前构思的解决方案, 就在测试环境每次构建时执行单元测试并发送邮件, 如果失败就不去重启container.
  3. VIM: 很难想象在两次尝试和放弃之后, 我竟然终于慢慢地习惯并开始享受用vim写代码. 个人感觉VIM这么多年保持强大生命力的原因: 一是无与伦比的可定制化, 二是永无止境的学习周期, 上周沉浸在阅读中, 不断汲取新知识的感觉真的是程序员的*点.
  4. : 不管大学时最令我不屑并觉得无趣的软件工程/项目管理课程, 还是某个下午抽风在图书馆看的<代码简洁之道>, 其实对我的影响其实十分深远. 最近开始在读的也是令人感触颇深. 我们都会遇到让人觉得很不靠谱的程序员和专业有职业素养的程序员, 那到底是哪些因素决定了一个人, 看作者以自己的亲身经历一一道来还是挺有启发的. # TODO: 写一篇blog记录自己的读后感.

个人感想

  1. 毅力: 去年定了好多计划, 却被自己的惰性完全打败, 最后陷入自责里无法自拔. 但上周二突发奇想下班后在寒风中一路跑到了北外滩, 第二天竟然罕见的早起了. 突然间感悟到毅力这种东西是不是也是完全可以自己锻炼并提升的呢?
  2. 坚持: 是一直悔恨自责懒惰的自己, 还是尝试用各种方法慢慢的去改变自己. “Be like a postage stamp — stick to one thing until you get there.”
  3. XMind: 思维导图真的是个好东西, 自己对图形化的展现形式还是更加敏感一点. 下周可以深入一点学习一下这个软件.

第四十二周 / 四十三周 (02 January 2018)

完成的工作总结:

  1. fix bugs: 两周都在陆陆续续修bug.. 这个延期很久的新版本在下周, 终于终于要发布了. 希望一切顺利吧.. 但人的天性就是容易犯错误, 所以寻找有效的途径或工具, 帮助避免潜在的问题才是王道.
  2. fix 线上的bug..: 今年刚开始就遇到了一个线上的bug, 批量导入创建XX时, 每个XX和自定义属性的对应关系混乱了. 也不知道是以前的代码写的太晦涩了, 还是因为自己对代码不够熟悉, 看了两三个小时才搞定, 真的是痛苦 :(
    之后看代码的时候, 还是要整理思路到笔记里, 这样每次需要解决问题时, 才能快速的获取思路. 就像DP一样, never repeat yourself.
  3. 学习: 最近上班没事情干时喜欢看看源码, 并画出流程图, 例如看Werkzeug - run_simple的流程:
    感觉未来还是要找一个MacOS上的流程图工具. 虽然创建时会耗费更多的时间, 但是对于未来的修改和维护的好处还是显而易见的.
  4. 提交PR: 上周给pypinyin库提交了一个PR. 说实话被它完善的单元测试, 代码规范和文档震撼到了. 再一对比每天工作的开发, 感觉心里挺不是滋味的..

个人感想

  1. 2018学习目标: 阅读源码/官方文档 + 读书 + 算法加强. 但是..重点还是如何去有效执行(The best time to plant a tree is 20 years ago. The second best time is now.). 例如利用打卡的app监督自己🤔🤔🤔.

初步计划:

- 睡前看书
- 上班空闲时看看优秀源码, 最好能给一些项目写写PR, 或参与到开发中.
- 其余时间在家看看算法, 用app统计了一下, 发现在家的时间真TM多, 还是要好好利用起来.   
- ...   

第四十一周 (25 December 2017)

完成的工作总结:

  1. fix bugs: 大多数还是业务细节上理解偏差的一些bug, 修起来也都很快. 但主要是心疼我们的测试组, 公司规模越来越大, 但测试还是全靠人力, 说实话挺不科学, 而且作为一个开发, 有一股深深的羞愧感.
  2. Oracle数据库: 公司新接了客户(XX), 但要求使用Oracle数据库. 说实话挺头疼的, 因为感觉oracle还是有些不人性, 只能在本地写好Dockerfile, 调试成功后, 直接部署到测试环境. 过程虽然有些波折, 但至少结果目前还算成功.

个人感想

  1. 同事离职: 一个看了四五个月机器学习的同事, '明目张胆'的找了一两个月的工作后终于要离职了. 不明白的事情是:

    • 公司对一个毫无作为的员工百般容忍, 当勤勤恳恳的员工提加薪时, 却显得有一丝吝啬.
    • 为什么会有这样的程序员, 写代码从来不交流, 实现了功能便万事大吉? 不管他觉得自己写的再怎么好, 脱离了项目原来的体系, 可读性和可维护性都是灾难级别的, 这样长远看来真的只是帮倒忙. 自己用尽全力, 将房间打扫的干干净净, 却有人随手乱认垃圾, 你说生不生气.

要是他一直找不到新工作, 就这么混下去, 可能离开的人就是我了(╯﹏╰).
2. 新年快乐: 连着两年元旦跨年和春节都一个人在异国他乡啃着薯片喝着啤酒度过. 今年独自跨年, 心中竟没有一丝的波澜.
3. 碎屏: iPad不小心调到笔记本的屏幕上了, 小小的失误, 4000大洋就没了. 但当不幸发生时, 除了发出来让大家开心开心, 还能做些什么呢?


第三十九周/第四十周 (11 December 2017)

完成的工作总结:

  1. 代码:

    • fix bugs
    • 重写了从HWA/HMA批量导入活动(事件).
    • 调用外部API(其他产品)时, 统一用一个方法封装, 并加上详细的log信息.
    • 艾瑞对外api的整理 & postman的自动化测试.
- Django REST框架的源代码阅读和整理. 2. **我是做什么的?**: 经常被人问起这么一个问题: 你是做什么的? 最开始的时候, 我竟然会一时语噎, 于是我慢慢开始思考, 我到底是干什么的? **第一版: **
- ad(创意) → imp&clk 代码 → **基础指标**(点击/独立点击/展示/独立展示/点击率)
- 不同维度的**数据报表**: 实时/地域/人口属性/频次/归因/可疑流量, etc.
- **转化效果**: ad → jd.com/安装app  →  到站/App激活
- **HWA/HMA** → web/app监测 → 流量指标.  

给下周的自己一些建议

  1. 试用自家产品:
    已经在http://unsw.co上部了广告监测代码, 下一步准备在modal上添加一个指向自己博客的链接, 尝试做一个转化和归因的测试. 有时候虽然亲手开发了一些功能, 但对业务一窍不通. 所以要尝试去试用自己的产品, 会瞬间豁然开朗.
  2. 提前做计划: 上两周开始尝试在行动前, 做好完备的计划. 计划好每天, 每个小时做什么. 仅仅将todo list中的事一件件消灭的成就感, 让自己事半功倍.
  3. 意义: 说实话, 最近工作并不是很开心. 慢慢会陷入思考工作&人生意义的漩涡. 放空的双眼, 连写出的代码都是绝望的.
  4. 🎄Happy Xmas!

第三十七周/第三十八周 (27 November 2017)

完成的工作总结:

  1. VIM: 尝试了几天Pycharm里的ideavim, 并看了"vimtutor"和"pratical vim", 深深的被vim的魅力迷住了, 然而.. ideavim和原生vim的体验还是有些差距吧, 要是自己在大二第一次接触vim就开始用就好了.
    最后还是返回鼠标无脑点点点的模式了. 哎~~
  2. 发布: 上周终于独立给nielsen发了一个版本, 只能说还算顺利吧.
    但有一个明显的提升点就是:
    是否可以添加一个预发布的环境, 这样一些明显的错误就能在正式发布前被测出来. 毕竟测试环境的配置和线上还是有很大差别的. 这样就能形成:
    线上 <--> 预发布 <--> 测试

给下周的自己一些建议

  1. 与人打交道: 自从上大学的几年来, 我一直在思考如何让自己的技术变得更强. 但我忽略的一点就是技术只是一个程序员能力的一部分, 与人相处的能力并不比技术的重要性低.
  2. 看书: 上周末去宁波的时候, 等gf的间隙走进了一家精致的书店, 顺手拿起一本<腾讯传>, 坐在地上看了起来. 看着看着, 常年不看书的我竟然被内容深深吸引了, 恍惚间回到了小学趴在床上看科幻小说的时光.
    大学四年, 无聊时几乎把高分的电影看了个遍, 看似最浪费时间的行为, 却成为了我这一生最珍贵的宝藏. 那时的每一次感动和震撼都打磨着我的世界观和价值观.
  3. 努力: 下午去同济打完球, 在麦当劳解决晚餐时, 随处可见有学生带着耳机, 专注地做着作业. 心里忽然被触动了一下.

第三十五周/第三十六周 (13 November 2017)

完成的工作总结:

  1. 发呆: 六个后端一个前端的后果就是: 六个后端老大爷每天无事可做. 然而我自己也是不争气, 除了解决一堆零碎的事情, 也没有什么突破性的进展.
  2. 分享: 虽说上两周大部分的时间在发呆, 但也在一直整理项目中写过的代码和逻辑, 于是分享了几篇笔记:

给下周的自己一些建议

  1. 优势: 有时候评判一个人重不重要的标准并不是他有多强, 而是他有多么的不可取代. 有时候也要多想想, 自己的核心竞争力是什么, 要往哪方向努力. 高中物理就学过, 力的方向和前进的方向一致时, 才能达到最好的效果. 就和努力一样, 有多少人每天拼了命的努力着, 其实只是感动了自己.
  2. 改变: 上两周由于事情不太多, 有点浑浑噩噩了, 有时候竟然发着呆等待下班, 这种状态说实话, 是挺让人无法接受的. 所以下周需要作出的一个重大的改变: 很简单, 就是做计划, 每天来公司前, 想好今天要做什么. 做一件事情前, 闭上眼睛, 思考十秒钟, 想清楚, 为什么做这件事, 怎么做, 把每个步骤都想清楚, 再动手. 加油~~
  3. 改变 Plus: 这里的改变是指遇到不对的事情, 还是要尽力的去改变. 比人配合前端升级新框架时, 看到一坨坨杂乱无章的代码, 我是绝望的, 当然我可以完全可以不去动它, 改下输入输出, 草草了事. 可是这样, 一是以后每次出了bug, 我要付出成倍的时间去修复, 二是如果草草了事了, 我也不就成为垃圾代码的贡献者之一了?
  4. 编程能力: 一个人的成就是由努力还是天赋决定的呢? 努力可以让你不断的向上爬, 可有时候总觉得上限好像早已被天赋给写死了.
  5. 迷茫: 很幸运加人HyperS, 有无限活力, 有正确的价值观, 有很多优秀的同事.
    可公司急速扩张, 暴露出的一些问题, 还是让我有一些迷茫.
    比如:
    • 意见箱: 之前公司做了一个意见箱, 你敢相信吗? 在一个自称很COOL的互联网公司, 做了一个实体的意见箱, 怎么感觉有点自欺欺人.
    • 同事: 有一些同事真的难以沟通, 甚至还在工位打电话谈找工作的事情. 公司能一步步发展壮大, 个人认为最重要的原因是因为有一群优秀的人, 一起做出了很棒的东西. 可要是现在连hire slow, fire fast都没法做到, 感觉还是挺致命的.

第三十四周 (6 November 2017)

完成的工作总结:

  1. 看书: 最近每天早上都会抽一个小时出来看书, 看的是我第一天来公司就在工位旁边的<计算广告>. 说实话虽然有些枯燥, 有些地方也是一知半解, 但还是有很多收获的~
  2. 团建: 周末公司组织了去崇明岛团建(原来tb是team building的意思), 虽然个人没法喜欢这种团体活动, 但还是要多融入集体哦~

给下周的自己一些建议

  1. 迷茫: 突然像失去了方向的船舶, 有些迷茫🛶🛶🛶

第三十三周 (30 October 2017)

完成的工作总结:

  1. 重构: 感觉自己还是不够勤奋把, 明明在配合前端框架升级的时候, 把大部分的接口都重构了, 但自己对产品的了解却总是没有更深一步.
    今天想了一个办法, 把adtracker的跟踪代码布在了自己的网站上, 还是个很不错的尝试, 很多报表有种豁然开朗的感觉. 还是要在使用中努力地去深入了解各个功能的实际意义.

给下周的自己一些建议

  1. 抱怨: 晚上陪女朋友去逛街, 累了被寄存在甜品店. 刷着知乎等她回来的时候, 听到旁边的女人对着同伴不停地抱怨, 比如体质内开发的弊端, 领导的总是假装不记得她说的话, 等等等等, . 感觉挺奇怪的, 无论走到哪里, 总会有人不断地抱怨工作, 抱怨生活, 可是如果有什么不满, 不是应该努力去改变吗, 而不是这么消极地逃避. 但忽然想到自己, 似乎也没有积极地去面对生活中的不满, 瞬间陷入沉思..
  2. 靠自己: 急着上厕所, 面对纸巾贩卖机, 却一个硬币也没有的时候. 那种绝望才让人瞬间明白, 虽然这个世界上有很多无条件对你好, 帮助你的人, 但做人最终还是要靠自己.
  3. 产品经理: 今天打球的时候, 很巧认识了一个在同一幢楼上班vipjr的产品经理. 打完球一起吃了麦当劳, 聊了会天. 突然就让我想起在读master时认识的那位, 之前在触宝的当产品经理的小兄弟. 无论从气质, 性格, 谈吐都极为神似. 但这不是重点, 重点是感觉自己还是要和这些产品经理一样, 多去接触人, 至少让自己成为一个很容易相处的人, 程序员代码能力是很重要, 但更重要的还是做人.
  4. 需求: 我之前做过一个课程点评的网站, 一直不温不火, 但在上边提到有门课的past paper倒是有不下二十个人给我发邮件, 向我索要所谓的past paper. 所以深深地感慨做一个产品之前分析需求的重要性.
  5. 算法导论: 这个星期学习的步伐貌似有停滞了, 对自己有一点失望. 希望还是要保持火力全开, 吸取新知识的状态吧.

第三十一周/三十二周 (16 October 2017)

完成的工作总结:

  1. 重构: 在配合前端升级新框架的过程中, 把前端获取表头(好多报表呢..)自定义报告相关的代码重写了, 虽然写的不怎么样, 过程也是充满痛苦和绝望. 但写完之后还是长舒了一口气. 可以拍拍胸膛对孩子说, 爸爸以前可牛逼了, 遇到一团糟的代码, 说重写就重写了.

给下周的自己一些建议

  1. 心灵鸡汤: A calm and humble life will bring more happiness than the pursuit of success and the constant restlessness that comes with it.
  2. 无奈: 工作中也会有一些无奈的地方, 比如当初放弃更高的工资, 更稳定的工作加入Hypers, 是看到它的潜力和活力. 可惜在现实工作中, 并不是每个人都尽力想把产品做到最好. 钱对我很重要, 但更重要的是做出最优秀的产品的成就感. 所以还是那句老话: Hire slow, fire fast.

第三十周 (9 October 2017)

完成的工作总结:

  1. 重构: 配合前端升级新框架, 前后端分离API重写, 写到报表那块, 本来想大干一场, 但现在有些绝望了, 哎~ 感觉还是把剩下的工作分一点给每个人, 不然我的工作量有点大. 但他们的主要工作并不是修改返回格式,

而是看原来的代码, 把所有需求写成文档(比如我重写了新建Campaign的接口, 我就把所有的参数校验条件, 新建逻辑总结一下).

给下周的自己一些建议

  1. 心灵鸡汤: I've missed more than 9000 shots in my career. I've lost almost 300 games. 26 times, I've been trusted to take the game winning shot and missed. I've failed over and over and over again in my life. And that is why I succeed.
  2. 每天早上去图书馆看看算法导论把, 监督自己的打卡记录:
周一 周二 周三 周四 周五
打卡 打卡 打卡

第二十九周 (25 September 2017)

完成的工作总结:

  1. 继续修bug中: 修(xie)bug狂魔, 看着都可怕, 反思*3
  2. 发布 2.1.0: 周五周六第二次按下了发布的按钮🚀, 虽然之后的过程有些曲折.. 庆幸的是默默记下了一些需要改进的细节.
    虽然发布大约一个月一次, 但凡事还是要努力精益求精把.

给下周的自己一些建议

  1. 学习: 下午去图书馆看了两小时的算法导论: 1) 做了拖了很久的课后题 2) 撸了一个分治法(max sum subarray)的算法. 那种学习数学和写算法的赶脚还是很爽的.

最近总是问自己怎么样才能变强呢?
最近给自己的答案: 不懈地去坚持挑战原来做不到的事情.


第二十八周 (18 September 2017)

完成的工作总结:

  1. 无限的bug: 毫不夸张的说, 修了一个星期的bug. 1) 一部分是以前留下来的锅, 比如说操作日志无数遗漏了, 都开给我bug让我补上了🤷♀️ 2) 另外的是找不到负责人的bug都分给了我了. 其实我也不是很抵触, 多去接触自己不了解的领域才能快速提高(例如修了某个bug就能了解rabbitmq和supervisor). 3) 但罪魁祸首还是自己的双手, 要像上上周一样反思一下, 如何尽可能地写出robust的代码. 加油~

给下周的自己一些建议

  1. 工作为了什么?: 对于我而言, 那一丢丢工资只是上班意义的一小部分. 我真正想搞清楚的是:公司是如何评估员工的?(如何淘汰不合格的员工,嘉奖努力上进作出贡献的员工。)
    因为对于我而言,和一群优秀上进谦虚的人一起工作,才是我工作幸福的全部来源。但公司并没有做到hire slow, fire fast,这才是让我最无奈的地方。
  2. API Star ✨🚀✨🌟: 加入公司的前几个月, 自己学习和成长还是很迅速的, 但虽近一段时间有些停滞. 主要表现在上班太忙了, 下班躺在床上就不想动了. 所以下半年的两个目标: 1) 努力参与到API Star的开源开发中. 2) 去图书馆读<算法导论>, 在家实在是..动也不想动.

第二十七周 (11 September 2017)

完成的工作总结:

  1. 批量导入&操作日志的整理: 说实话, 这些接口实现的是真的复杂, 但当自己去重写一个的时候, 发现一个悲哀的事实, 自己竟然也没法写得简单一些. 个人觉得还是整体设计的锅.

第二十六周 (04 September 2017)

完成的工作总结:

  1. bug如潮水般涌来: 虽然对所有接口做了单元测试, 但一提测, bug还是如潮水般涌来. 说实话, 自己还是要好好反思一下:
    • 单元测试的覆盖率再提高一些? 但这又会大大增加单元测试代码的复杂度, 加大维护的难度. 头疼, 还是要优化一下单元测试(这真的是个好东西).
    • 多参照测试人员手工编写好的测试用例, 不要盲目自信, 既然标准答案都有了, 为什么不好好利用起来呢?
    • 不要自己一个人想破脑袋, 多去查查资料, 开阔眼界, 看看别人是如何保证代码质量的.
  2. 请假: 请了三天假, 和女朋友出海去寻找one piece, 哈哈😆. 最近常常思考人生存在的意义, 但说实话有些迷惘. 人生短暂, 还是要多出去走走看看. 而不是渐渐安逸于平淡的生活, 沦陷为一只井底之蛙.
    这两天可以抽空写个游记分享一下~~

**链接: ** /blog/20170914/quantans-of-sea-summary/

给下周的自己一些建议

  1. 对bug的反思: 对于测试人员手工测出的bug, 不要机械式地去为了解决而解决, 然后就万事大吉了. 多思考为什么会出现这个bug, 如何在未来尽量避免相似情况的再次发生.
    晚上看到知乎上一个不错的回答: https://www.zhihu.com/question/59318151 `代码质量`不是写代码时小心一些就能提高的, 是要靠`完善的开发流程, 高效的测试, 等等`慢慢积淀出来的. 路还很长, 慢慢摸索吧, 加油~

第二十五周 (21 August 2017)

完成的工作总结:

  1. 统统重写: 继续配合前端框架升级, 重写所有旧的过时的api. 但说实话有些迷惘, 尽力把代码写的再好(努力考虑可读性, 健壮性, 低耦合, 未来的可扩展性, 等等). 可又有谁在乎呢, 因为在现实中, 对api的要求确实是只要能用, 不要慢的太过分就OK了.

给下周的自己一些建议

  1. 脸上写着IT!?!?: 周末去打球的时候, 遇到个小哥打的还不错. 结束时互换了微信, 他也是做广告营销的, 然后他问我是做什么的. 我说是做IT的, 然后他大笑了三声后, 说道:"我就知道, IT都写在你的脸上了." 哈哈, 这么夸张吗,虽然自己有社交恐惧, 但还是要多出去交交朋友, 变成一个阳光宅男, Yeah~
  2. 算法导论: 其实很久之前, 就提到今年把<算法导论>读完的计划, 但总是没有坚持下来. 想了想还是要把这个计划执行起来(因为书的内容挺适合我的, 不会很简单也不会太难), 所以做了这个每周计划(全书一共有35章, 距离2017结束还有16周, 那就一周读两章, 不过分吧, 并完成所有的课后练习. 之后会写在每周的总结中.)
    计划真的是个很神奇的东西, 说实话它并不能实质性的提高你的效率. 它最大的功效就是把一个看似庞大的目标分割为无数个小目标, 然后让完成小目标的成就感, 一点一点地push你去抵达看似遥远的终点.

第二十四周 (21 August 2017)

完成的工作总结:

  1. REST万岁!!!:
    这个版本的需求有: 工具菜单的前端框架升级(属性管理, 媒体管理, 第三方平台, 操作日志, 数据导出).
    这周主要做的工作: 添加了属性, 媒体, 频道, 广告位第三方平台的REST接口, i.e. list/create/update/retrieve方法, 以及对应的单元测试!!!(转眼都做了四十多个单元测试了)

用REST和之前陈旧的写法相比, 有无数的优点: 比如
- 统一的序列化方法
- 参数校验并自动生成API文档(提供给前端)
- 便捷地编写测试用例
- 清晰的结构(list/retrieve/update/create), 更小的代码耦合度和可读性
- 等等. (有时候想想自己也挺傻的, 原来的api功能也都可以用, 只是改变返回的格式, 为什么我要全部重新写呢? 可能因为那颗追求完美和不愿平凡的心吧.)
2. 去除AccountPermission表..: 之前做共享功能的时候, 由于各种原因, 把User和Account的关联关系存到两张表里做兼容, 但从这段经历最大的收获就是尽量不要去做兼容... 总会有考虑不周和意想不到的事情发生.
上周一咬牙, 把这个历史遗留问题解决了, 将所有的AccoutPermission表相关的代码都改为PermissionSharing了, 一共改了100+的occurrences😓.

给下周的自己一些建议

  1. 好好休息, 多出去走走:
    上文提到的REST API虽好, 但若自己效率太高, 代码写多了也有一种要写吐了的感觉. 有时候还是要劳逸结合, 读读源码, 思考思考改进的地方, 出去走走散散心, 趁空气好跑跑步, 不然真的好压抑.
    下周至少出去跑两次步! 身体是革命的本钱(吃着烧烤外卖说出这句话真的是, 23333).
  2. 更加努力一些: 每天看到送外卖的害羞小哥鼓起勇气, 大声说"你好, 祝您用餐愉快, 给个好评, 谢谢"; 保洁阿姨认真仔细地打扫卫生, 遇到你也充满热情的搭讪, 知道你离开时才不好意思地说可不可以给个好评; 呷哺呷哺的那个不会笑也不会说"不客气"的耿直服务员, 却总是最勤快的.

或许努力有时候是最没用的东西, 但至少比不努力来的有用, 加油~~~


第二十三周 (14 August 2017)

完成的工作总结:

  1. 层级关系的可视化:
    周二闲来无事做了一个小功能 层级关系(user→account→campaign→adgroup→ad)的可视化.

灵感来自于很久之前做的第一个需求: HFA-3168 [推广计划级别的数据共享]页面后台. 当时为了理清思路, 在纸上画出了各个对象之间的共享关联和权限, 怀念~

但周一的晚上灵机一动, 想到上边这张图为什么不能通过程序来自动生成呢? 于是周二下午午休之后撸起袖子说干就干, 一个小时就把代码写好咯~~
来看看效果图, 后端生成多叉树(json)格式, 前端是由d3.js的tree diagram来实现的:

效果个人觉得还是挺很不错的(优点有这么几点):
- 功能:
1. 权限的显示:
在link上标识了权限(0和1分别代表共享的可读和读写, 2表示自身创建, -10代表因共享campaign而存在的虚拟account). 个人认为权限的显示是整颗树中最有意义的信息, 因为account和campaign的共享关系是整个层级关系中, 最易让人困扰的地方.
2. 结束层级的控制:
显示层级结构方法的一个参数是stop, 用来控制结束的层级, e.g. stop=account的时候, 就只会显示user和user下的所有account.

3. 输入可以为任意节点:
该程序输出是一棵树所有子节点(一个用户下的所有账号, 推广计划, 等等..), 但输入并不限制于根节点(用户的id), 只要输入这棵树中的任意一个节点, 就可以画出整颗树.
4. 平日的默默耕耘:
之前在实现第一个需求(推广计划级别的数据共享)的时候, 我不仅仅是实现需求, 我还完善和抽象了整个权限系统和关联关系. e.g. user.has_permisson(...), user.users()|accounts()|campaigns()..., 所有对象的blong_to()方法, 等等等等.
这些平常日子的默默耕耘(整理和抽象), 才是这个功能能在一个小时完成的重要原因.
- 性能的苛刻要求:
在读研究生阶段, 对我影响很深的一门课是数据压缩和搜索(COMP9319 - Web Data Compression and Search, 在这门课, 除了各种经典的算法和数据结构, 我最大的收获是对内存和性能的认识和追求. 写这个新特性的时候, 我也很早的就考虑到了性能这个因素, 因为和数据库有很多交集, 所以我在开始就一次性从数据库中拿出了 所有我需要的数据. 而不是在构造最终的json结构时去做查询. 并且在完成之后做profile, 去掉重复的sql查询 & 尽可能的优化瓶颈.
- 算法设计:
最后的输出其实是一个树形结构. 而形成这颗树的过程: 从最高的一个root节点(User), 一层一层的自顶向下找出所有节点, 直到没有孩子的节点为止(终止条件). 为了简化代码, 我写了一个递归完美的实现了这个功能. 除了逻辑清晰, 用递归还有另一个好处, 就是可以轻松地控制结束的条件(上边功能中提到的第2点: stop参数).
2. Fix bugs: 终于发布v2.0了, 各种修bug中, 代码质量还待提高呀.

给下周的自己一些建议

多看看算法: 一个程序员的核心价值不是他能干多少活, 而是他的不可替代性(能干一般人不能干的活). 所以感觉还是要多看看数据结构, 看看算法, 写一般人写不出的代码.
有时候用到, 例如上边提到的小小的递归, 就感觉化身艺术家, 特别的爽. gege.


第二十二周 (7 August 2017)

完成的工作总结:

  1. 优化批量跟踪代码: 我们有一个活动导出ad代码的逻辑, 但是如果同时导出很多ad(例如一万个ad)的跟踪代码, 就gg了. 周一对此做了优化, 感觉这种有挑战性的内容做起来才比较有激情~~
  2. 填坑, 坑坑坑: 之前有个同事上一条的逻辑做了修改, 但至少少考虑了三四个地方,
    周二帮他填坑填了一天 /(ㄒoㄒ)/~~.
  3. S3配置: 熟悉了一下公司S3的配置, mac上用了三四个客户端都连不上, 最后还是用命令行查看的, 可怜..
  4. Git Hooks: 以前上学的时候, 组队做一个小项目. 有次一个来自战斗名族的小哥, 和我们吐槽说他不明白为什么有人, 总会把连项目跑不起来的代码提交上来. 最近当群里有人说测试环境502了, 我就知道我们组的小伙伴们可能也做这样的傻事了.
    于是乎, 我便写了一个git hook, 每个人执行commit命令的时候**(per-commit)**, 会先强制执行我上上周写的单元测试. 以防止他们, 也包括我自己做傻事.
  5. 被表扬了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄: 我自己做开发的时候, 会把所有的接口先放到postman里整理清楚, 自测一遍, 再移交给前端和测试. 没想到被表扬了, 害羞.

给下周的自己一些建议

  1. 行动胜过一切: 前段日子我总是在沉思 到底该如何去提高自己, 看源码? 看官方文档? 看算法? 自己做些小项目? 但直到最近都无疾而终.
    想了想才发现上边提到的都是非常好的方法, 问题在于自己一直没有行动起来. 于是这周我开始看python的官方文档, 虽然只看了一章但也收获颇丰, 并写了这篇关于python format方法的博客: https://changchen.me/blog/20170810/python-format-summary/.
    希望下周继续加油~~
    Now is better than never.
  2. 不能穿拖鞋?: 说实话当初来hypers有这么几个原因吧, 之前在面试总结也提到. 其中有两个就是喜欢穿着拖鞋写代码, 喜欢不打卡. 对我来说, 前者其实是一种包容, 后者更是一种自由的感觉. 可是这两点在新出的公司规定中都被ban了, 有些迷惘.
  3. 业务: 感觉自己有时候或许把太多的精力放到代码上了, 多去了解了解业务也是很有好处的. 比如这周我就去熟悉了一下HWA, 用它来监测一下自己的网站. 其实这个想法在面试hypers的时候就萌生了, 哈哈. 更重要的原因其实是HWA和HFA是有很多关联的地方(例如最近重构的转化管理那块, 就有个从HWA批量导入活动的接口), 我是想趁这个机会, 多去了解业务层面的东西, 而不是写代码写到走火入魔.
  4. 死宅?: 今天周六, 转眼夜已经深了, 拿起手机看了一眼自己的步数. 尼玛.. 只有二十步?!?! 没想到又在家宅了一天. 感觉这样下去不行, 本来就社交恐惧, 还是要多出去见见阳光吧.
    突然好怀念在悉尼跑步的日子, 下午黄昏的时候, 从家跑到沙滩, 精疲力尽吹着海风~~ 可惜现在连呼吸一口新鲜空气的权利也没有了...

第二十一周 (31 July 2017)

完成的工作总结:

  1. fix bugs: 修复对外api的一些bug.
  2. 静态文件: 对静态文件的整理, 我们现在项目有三个文件夹: static(最早的前端文件), static1(当前的前端框架), front-end(最新正在做升级的前端框架), 哈哈哈, 那天明白static1这个文件夹的含义我也是笑了.
    并将测试环境nginx上的配置更新了, 使得帮助文档和Rest框架自带的接口返回结果页面能够正常显示.
  3. trackcode: 对整个跟踪代码逻辑的整理. 有时候想去改旧的代码, 一是看到一些不合理的地方实在难以忍受, 二是想主动深入的去了解一些原理.
  4. 转化管理的报表: 新的我们新的报表的url是这种格式的: \{\{url\}\}/user/105/actionpara.(json|chart|xlsx), 把一些旧的报表的逻辑放到新的报表基类中了, 简化了很多公用的代码.
  5. 偷偷吐槽同事(反选): 改了同事的一段代码, 看到的时候难受的像吃了一坨大便.
    因为和黄俊的一起努力下, 我们现在写接口已经变成这个样子, 写的时候真的很享受: 可同事写的代码还是停留在**上个世纪**, 真的是头疼☹️, 这也无所谓努力改正就行了. 可还有个同事写的代码还停留在**远古时代**, 真的是没救了.

给下周的自己一些建议

  1. 兴趣使然: 这周一直在修bug(填坑)的折磨中度过了. 周五看着桌子上散落的些许头发, 突然有些悲伤, 发现自己对写代码的那一丝热情, 竟然也就被一点一点的消磨殆尽. 有时候晚上回家总想着努力去提高自己, 可一躺倒床上就累的动弹不得. 思考了一下, 发现自己从小到大能做好的事都是自己感兴趣的东西, 因为兴趣就是坚持的动力和天赋的体现.
    今年的计划本来是想把算法导论那本书看完, 但想了想, 有计划虽好, 但也不能太强迫自己. 还是努力去寻找自己感兴趣的东西.

第二十周 (24 July 2017)

完成的工作总结:

  1. 单元测试: 个人觉得单元测试还是个挺重要的东西. 上周提到我把以前大部分的旧接口都整合到新的rest框架中. 这周对rest接口的retrieve/update/list/create写了通用的单元测试: 第一步是测试接口返回的状态码是否200, 第二步是assert返回的数据的准确性.
  2. VPS: 周末买了个香港的vps, 把自己的博客, 小网站unsw.co, 和s-s都放上去了. 希望之后可以在上边多学学nginx, docker等等

给下周的自己一些建议

  1. 感冒: 这周又感冒, 喉咙发炎了. 下周还是要多注意休息和自己的身体.
  2. 井底之蛙:周末在家宅了一天, 突然发现自己唯一的好朋友是我的小笔记本电脑, 还是要多出去走走下点好电影看看吧, 不然真的会慢慢变得狭隘.

第十九周 (17 July 2017)

完成的工作总结:

  1. REST: 前段升级新框架, 把转化管理那块的接口重写一下. 主要把分散各地的方法整合到REST中去, 再配合检查参数和权限的装饰器, 这代码写起来, 真的是轻松愉悦♂.
    REST是个好东西, 因为百分之九十的接口都是对一个特定资源做增删改查操作, 然后把这些操作都集中起来, 就可以避免写很多重复功能的接口.
    比如对user的retrieve操作:
  2. 生产环境:第一次去生产环境上修了bug, 感觉现在才接触生产环境晚的有些过分了, 还是应该主动多去接触自己未接触的领域.
  3. 搬家~: 公司搬家咯, 感觉瞬间高大上了, 秀一张图:

给下周的自己一些建议

  1. 核心竞争力: 最近总是在想一个问题, 自己的优势(核心竞争力)到底是什么. 想出了一丝头绪, 希望未来的日子继续努力~~

第十八周 (10 July 2017)

完成的工作总结:

  1. 这周drinksober请假了, 感觉项目突然就停滞不前了, in a chaos, people just want to make their job done, instead of making it excellent.
  2. 在解决一个nginx配置的问题上, 深深的感到自己的无力感. 还是要去培养一下自己快速学习一个新技能的能力.
  3. 下周就要搬公司了, 希望有新的开始吧.

第十七周 (03 July 2017)

完成的工作总结:

  1. 生病😷: 哎,请了两天假,因为得了急性肠胃炎,吐得快怀疑人生了。慢慢的开始思考身体的重要性和工作的意义。
  2. OAuth2: 开始做oauth2的开发,今天做了的工作就是把原来对外接口的token验证, 换成统一的拿access token去auth拿用户的方式。
    希望这周能把剩下的工作做完。
  3. OAuth2 sdk: 还不错, 把OAuth2.0 sdk写完了,打包传到PyPI上了: pip install hypers-oauth2
    从README.md截的图:

给下周的自己一些建议

  1. 学习: 最近有一个明显的发现, 就是自己更博的速度急速下降, 侧面说明学习的脚步渐渐的放缓了。
    所以还是要在课余多学习提高自己,多去看看优秀的代码, 才会有提高。

第十五周 (19 June 2017)

毕业典礼: 请假了一周零一天回学校, 参加了毕业典礼, 带爸妈去澳洲玩了八天。


adtracker v1.15 开发结束:

我完成的任务:

这个开发周期做了好多任务, 主要还是熟悉报表的流程, 并参与了设计用pandas做报表的新逻辑:

但感觉慢慢的沦陷为一个增删改查的熟练工, Ahh, 不知道自己的优势到底在哪了.
还是要多去学习吧, 不断获取新知识, 追求更好的代码质量。


第十三周 (05 June 2017)

完成的工作总结:

  1. 周一: 完成了关键词报表用pandas的重写, 写过一个报表后, 再写新的报表会轻松很多.
  2. 周二: 关键词报表的大致完成, 抓紧测试.
  3. 周三周四周五: 修复了一些bug

给下周的自己一些建议

  1. 慢慢的每天陷在赶需求, 补bug的泥ze里, 还是要在平时多去学习新知识吧, 不然只会变得越来越平庸.
  2. 买了一本<算法导论>慢慢看, 因为看了一下目录, 说实话每一章都接触过, 但却都没有完全掌握.
    打算用Python把里边的算法都实现一遍, 打打基本功, 第一章关于排序的笔记.

第十二周 (30 May 2017)

(只有三天, 略..)


第十一周 (22 May 2017)

完成的工作总结:

  1. : 前端升级新框架了, 一直配合weiwei做对接, 写一些新的接口, 改一下老接口的输入输出格式.
    当去看一些老接口的代码的时候, 有一种打开一个十年没动的箱子一样, 满满的一种历史尘土的味道. 会发现其中有一些写的很坑的地方, 但又不敢大改:
    这也是我最近比较烦的地方, 新来的同事写的代码先不说写的好不好, 固执的不按我们新定的pandas报表逻辑走, 真的让人很头疼. 写代码完成需求其实是最最基本的要求, 代码的可读性, 健壮性, 扩展性, 可维护性, 还有性能等等都是要仔细考虑, 尽力去追求的地方. 像我写第一个需求的时候, 我知道我写的不好, 让黄俊给我一起看了三四遍, 要是像这样虚心求教态度和基本沟通的能力也没有的话, 在同一个团队里, 真的会让其他人很头疼.
  2. 学了一下ipdb, pycharm的debug模式, 重新加载的时候确实有一点慢, 如果只是简单调试的话, ipdb也是挺方便的(cai guai)

给下周的自己一些建议

  1. 路见不爽就重写: 之前就有想法, 趁前后端分离的机会, 重写项目中不科学的那些代码, 但上两周实在有点忙, 就没有做起来. 下周碰到之前的坑代码, 还是要尽力去重写的好一些.
  2. 学习学习学习~~ 有吸收才能有进步! fighting~~

第十周 (15 May 2017)

完成的工作总结:

  1. 第二代报表: 在正确的道路上
  1. 对各个部分模块化, 减少耦合度. 从而将报表重复逻辑的地方抽出来写成基类, 写出清晰简洁的代码.
  2. 利用pandas处理数据的优势, 配合queryset处理数据.
    自定义属性报表的EChart和表格部分的写完了, 但当然还是有一些问题, 迫不及待的想去解决了.

给下周的自己一些建议

  1. 报表部分:
    • queryset_by_register的优化.
    • 生成的query_paras, 忘记放到filter了.
    • 最后生成的seg是pandas Timestamp, 还是需要用sublist 格式显示 --> 在_after处理?
    • 在sort之后, 返回pagesize大小的row? 竟可能的处理分页的优化.
    • 有些地方写的太复杂了, 简化增加可读性.
    • 单元测试
  2. 有空还是要去仔细看下Numpy和Pandas的官方文档, 对库的多一份了解才能写出更简洁高效的代码.
  3. 去django的google group问个问题, 我是应该看算法导论, 还是Expert python, 或者python或django的官方文档.
    最近的一些事情还是挺让我受刺激, 感觉自己还是要更努力一点把, 只有这样才能掐住命运的喉咙.

第九周 (08 May 2017)

完成的工作总结:

  1. 报表报表: 主要看了报表那一部分的代码, 昨天晚上整理了一下上周看的成果和下周的计划, 希望下周可以早点把这部分搞定.
    临时写在注释里...(点击显示大图, 来自未来的我被自己的努力打动了)

给下周的自己一些建议

  1. 公司对程序员的核心吸引力?: 今天在网上看到说什么无限零食, 办公环境对程序员都是很肤浅的吸引. 非常赞同, 因为最核心是吸引力, 个人觉得还是 给力的同事 和 给力的项目.
    希望有一天也能像drinksober一样挑起大梁, 一起把项目打造成自己喜欢满意的样子.

第八周 (02 May 2017)

完成的工作总结:

  1. 新版本: 开始进行下一个版本的迭代了, 了解需求, 慢慢做起来.

给下周的自己一些建议

  1. 在课余时间还是要再努力一些, 例如和黄俊一起看看asyncio, 或者去跑跑步, 出去走走参加活动认识新朋友, 都比在家躺在床上刷微博来的好.

第七周 (24 APR 2017)

完成的工作总结:

1.学习: 主要研究了一下django performance and optimization[笔记], 然后利用这些技巧把一个用的很频繁的方法, 从100多ms降到了20ms.
结果看到别人写的代码, 一下子就把数据库的三四万条数据拉出来放到内存里, 然后逻辑还有问题, 我的内心是奔溃的.

给下周的自己一些建议

  1. 跳出comfort zone: 之前刚接触项目的时候, 代码看起来也是很困难的, 但慢慢啃下来也没有那么可怕了. 还是要跳出自己的舒适区, 积极地去接触自己对于项目不熟悉的地方, 快速的提高自己.
    其实阅读源码也是一种能力把.

第六周 (17 APR 2017)

完成的工作总结(尝试用提前做计划去督促自己):

  1. 周一(计划): 看一下python是如何处理hash table的冲突(散列表), docker的系统学习
  2. 周二到周五: ><

给下周的自己一些建议

  1. 文档: 自己做了共享campaign的需求, 改写了一些权限判断的代码, 打算写一下文档.
  2. 学习: 专研一下Django orm那块的performance 和 optimization.

v1.14 开发结束:

我完成的任务:


第五周 (10 APR 2017)

完成的工作总结(尝试用提前做计划去督促自己):

  1. 周一: 完成共享界面的接口与前端的对接
  2. 周二(提前定的计划): 1. 测试对ShareAccount表兼容的测试. 2. 完成 account list 页面. 3. 完成campaign list的三个影响.
  3. 周三到周五: 测试反馈的bug的修复.
  4. 看了一遍python的内置方法的官方文档. 笔记
  5. 学习了一下docker的基本操作.

给下周的自己一些建议

  1. 提前做计划: 这个方法还是挺好的, 提高了自己的效率.
  2. 这周比较闲, 可以多利用时间去提高自己, 加油~~

第四周 (3 APR 2017)

完成的工作总结:

  1. 修bug
  2. 修bug
  3. 修bug

给下周的自己一些建议

这周只有三天, 忙碌却收获颇少. 原因在工作总结里可以看到:
就是把所有时间都花在修复之前写的代码的bug上了, 自己给自己挖了很多坑.
给自己的两点建议:

  1. 不要过于消极, 尽力就好: 明明知道要在写代码前做好设计, 但总是做不好, 是不是其实因为的能力有问题.
    努力去在每次碰键盘前用一张纸把每个细节都想清楚, 慢慢提高, 不着急.
  2. 花一个小时在纸上写清每个细节: 出bug是因为需求有些复杂, 光靠凭空想很难考虑到全局. 最好在纸上写下每个细节, 想清楚所有前后关联.
  3. 不要写太复杂的测试.. 在测试中修复bug也是一个很痛苦的事情, 不要问我是怎么知道的..

第三周 (27 Mar 2017)

完成的工作总结:

  1. 最主要的就是, 在黄俊的手把手下, 完成了公司逻辑比较复杂的一些新需求, 并完成了测试.
  2. 写了一个自动生产API文档(function的__docstr__)的小程序.
  3. 阅读了一下django的ORM many to many的文档.笔记
    因为在公司的逻辑中, 一个用户有多个账号, 一个账号又可以共享给多个用户. 原先的逻辑是用一张表去关联用户和账号的这两张表.
    我在想能不能用django ORM自带的many to many relation代替, 但把文档读了一下, 发现还是不行.
    原因是公司的业务逻辑中用户对账号的关系还有一个permission的属性, 自带的ORM好像实现不了这个功能.
    虽然这个想法最后作罢了, 但这种思考和尝试还是很棒的, 应该在编码前多去做这样的思考.

给下周的自己一些建议

  1. 测试的正确姿势: 测试是很重要的, 但还是要去了解专业的测试逻辑应该是怎么样的, 多去学习而不是一味的埋头写代码.
    规范的测试和文档对于软件开发来说还是很重要的.
  2. 别忘了学习: 不要总是着急的去写业务代码, 这周花在学习提高自己的时间还是太少了.
    例如可以多花点时间去搞清楚这个request来前的来后做的封装细节.
    好处是万一有什么奇怪的bug, 会更顺手的去解决. 还可以多去学习如何写出Pythonic的代码, 提高代码的可读性和合理性.
  3. 不要让懒惰侵蚀自己: 差点忘了这最重要的一点: 就是上周下班后一回家, 自己就钻到被窝里. 刷刷微博看看直播, 到一两点然才睡觉.
    其实我可以去咖啡馆静下心来看看书学习新知识, 去逛街买些新衣服小玩意, 去接触新的文化和人群, 去健身.
    躺倒床上只会让人越躺越累. 在上海一个这样的大都市, 要珍惜提高自己的每个机会.
    这是我下周最需要做出的改变.

第二周 (20 Mar 2017)

完成的工作总结:

  1. 把REST框架的tutorial游览了一下, 大致了解了一下.
  2. 周二把RabbitMQ 官方的tutorial读了一遍: 笔记
  3. 对重构的API那部分写一下单元测试.

给下周的自己一些建议

  1. 这周慢慢开始写一些公司业务部分的代码了, 但还是要时刻提醒自己, 要多花点重心在学习上, 而不是着急者想把任务尽快完成。
    例如需求是写django的一些测试用例:
    • 尽力把django的测试机制原理搞清楚。
    • 研究对REST的create retrieve list update四个方法 测试的正确逻辑。
    • 等等..
  2. 每日总结: 感觉这周过的好快, 以后还是每天抽十分钟写一下每天的总结吧, 这样写每周总结的时候也方便一些.
  3. 思考后再行动: 这么多年编程的经历, 最重要的一个真理就是: 在开动编码前, 一定要把整个流程或实现思路想清楚. 换句话说就是: 编码只是占一个"项目"中maybe 30%的比重, never rush to code.
  4. 学习清单: 例如一些基础知识: http协议, tcp/ip协议, epoll/select模型 的深入学习, etc.
    从俊哥身上看到的一个很有趣的&很棒的优点就是他很喜欢看书, 在工作外的时间买些书来看看, 而不是刷刷网页一天就过去了. 我之后要慢慢做起来的.
  5. 人情事故: 就像女朋友说的我有些自闭吧. 但有时候, 我只是不喜欢故意去讨好一个人。 举个小小的朋友圈例子: 我知道多给别人点点赞, 或许和那些平时接触不是很多的同事朋友能变成点赞之交, 但我真的太懒了, 不太想去维系这些'友情'。 比如我不太喜欢一个人, 我真的就会表现出来我的冷淡和疏远。 换句话说, 我更喜欢去交真心的朋友, 而不是'friend with benefits'(笑)。
    但和我的性格也有关系吧, 太敏感了, 有些社交恐惧症. 不太喜欢人与人之间的那种压力, 所以我常常更愿意去选择逃避和独处.
    当然有些地方还是需要做出一些改变滴, 例如是自己要变得更加positive和open一些, 和别人相处的时候可以稍微找找话题, 遇到同组的同事, 主动打打招呼。 至少不要让别人觉得你是一个很难相处的人.

第一周 (13 Mar 2017)

完成的工作总结:

  1. Ubuntu工作环境的搭建 和 HFA项目的配置.
  2. Python MRO(Method Resolution Order)笔记
  3. 初步了解adtracker项目的业务逻辑.
  4. Django Class-based Views了解 笔记
  5. Django REST framework了解 笔记
  6. Django middleware了解
  7. Django 源码深入阅读, 了解如何创建Server和处理Request的整个过程. 笔记

上班亲身经历总结

  1. 迷惘的开始: 第一天去报到, 填了资料, 签了协议卖了身, 就屁颠屁颠的去上班了. 刚到的工位时候, 其实是有些小失望的: 办公的设备实在是有些简陋. 配的笔记本和显示器都有些旧了. 不是都是标配MBP和Dell 2K显示器的吗, 哈哈
    所以个人觉得办公设备还是自己选比较好, 比如显示器. 公司可以给新员工配1000的基础款, 但新员工如果不满意的话, 想要2000的显示器. 没问题, 剩下的差价一人出一半呗, 我自费五百, 公司再出五百, 给新员工配2000的显示器.
    感觉这样的话还是比较科学一些.
  2. 友善的同事: 虽然心里有些迷惘, 但同事人都挺好的. 特别是无所不知黄俊小哥哥, 帮我换了椅子拿了本子, 第一周也是耐心回答了我无数的问题. 感覺自己运气总是很好, 能遇到耐心厉害的老师. 这些也是我在公司能待下去的最重要原因吧.
  3. 保持效率: 第一周的效率其实还是可以的(打个85分吧), 感觉学了很多东西. 但今天(第二周的周一)效率就有些雪崩了, 不要因为工作久了就混日子. 要努力保持清醒的头脑, 知道自己在学什么做什么, 多去虚心问问题.