date: 2016-03-16 11:03
Bachelor of Wuhan University, Computer Science
PHP Senior Developer, pre-Architect
Mail: 1252409767@qq.com(qq+wechat)
Blog: blog.daydaygo.top(power by farbox)
github: daydaygo(coding.net)
用c++写算法, 用java写oo, 用go写服务器, 用php改变世界. Anymore, c 是最好的语言, 没有之一.
practice make perfect.
keep learning, work first
仰之弥高,钻之弥坚
工欲善其事, 必先利其器
死有余辜, 活有余罪
天行健, 君子以自强不息。《周易》
士不可不弘毅, 任重而道远。《论语》
修学好古, 实事求是。《汉书》
越来越喜欢现在的自己, 不用过多思考就喜欢上, 然后毫无节制. 在不久后, 就又多了回忆.
工匠应该专注于作品的创意,不应该浪费精力,没限制地在折腾自己的工具
你不上心, 你就无法解决一个不太熟悉的问题, 任何细节的忽略都可能将你的一知半解引向死胡同
文档查看工具: zeal(win) , dash(mac), devdocs(浏览器)
excel方便查看: 左上角全选, 然后在分栏的地方双击
show the code
编程语言, 数据结构, 算法, oj题解, 相关读书笔记: https://coding.net/u/daydaygo/p/leetcode/git
最佳实践 best practice
- 铭记于心: 时间飞逝, 尽量让每天多一点意义.
this is why you call yourself daydaygo
- 承上: 「日结」算一个好习惯. 先使用 farbox 自带的格式, 以后再自己设计.
- plan: 定好计划, 持续完成, 不要轻易定计划, 也不要轻易放弃.
- blog: 大话不多说, 至少一周一篇.
- 教育的重要性不在于知识, 而在于训练. 那么读书呢?
fun
- 谁TM再问我 php5.4 和 php5.3 的区别, 我就问你 php5.4 添加的垃圾(内存)回收算法, 让你TM和我装.
- 和我拼算法么: 我确实忘了快排的具体实现思路了, 但是你要是用 c++, 难道会不用
sort()
函数而自己写么?
我能一口气balabala的数据结构: 数组 / hash / 链表 / 环 / 队列 / 优先级队列(是不是没听过, 去刷oj吧) / 栈 / 堆(堆排序) / 树 / 二叉树 / 二叉搜索树 / 红黑树(亿级ip怎么搜索) / b+树 / b-树 / 图(别问我怎么实现)
我能一口气balabala的算法: 时间复杂度 / 空间复杂度 / 查找 / 排序(拓扑排序有接触过?) / 贪心 / 动态规划 / 背包(0-1背包) / 最短路径 / 树的遍历 / 图的遍历
more: 请用 c 实现一个大数A+B
, 无论哪个oj上面都有, 你要是能3次内 AC, 请收下我的膝盖. - 程序员的三大情怀: 算法, 汇编, 操作系统. 终于发现我还能和情怀扯上点关系了, 好歹玩了一年算法.
- 有一次被虐的面试经历是这样: 先问了一下php类的自动加载(我直接回答出了类的自动加载的演变过程), 然后 nginx 出现大量502(这个就是要考察nginx + php-fpm + mysql 这样架构的原因), 然后就问我了解操作系统不, epoll 知道不? 然后很鄙视的说居然 epoll 都不知道(当时确实感觉自己是不是知道得太少了, 不过看swoole的时候, 知道了这个东东, 大家可以关注一下 rango 的 blog).
- 现在发现毕业那会做的类似
++i
之类的面试相当的可笑, 良好的开发实践都是避开那些弯弯绕绕容易产生歧义的用法. - 离别不可怕, 可怕的是即便不在一个宿舍了, 那货还是会拉你一起打游戏, 而且还坑你
- too much java: 少一点套路, 多一点真诚
职业规划
<程序员跳槽全攻略>
职业规划是职业生涯的一部分, 职业生涯是人生的一部分, 所以没有好好的思考过自己的人生, 就更不可能做好自己的工作了.
人生是一场没有终点的旅行, 意义是需要自己寻找的.
道理都懂(听了那么多道理, 依然都过不好人生), 那么有一个简单的方法: 多赚点钱, 等你找到的时候, 肯定用得上.
持续(薪资, title, 不可能是跳动的, 都是日积月累得来的)
犯的错误(跳槽)和花过去的时间不能重来
- 职业价值论
雇主角度; 供需(钱多人少, 细分, 新兴); 信息透明度(尽所能获取更多的信息, 进行选择而不是判断)
- 职业路线图
雇员象限(e, 管理/技术, 项目管理, 沟通能力)
soho象限(s, 小老板, 独立开发)
创业象限(b, 自己做/成为其他创业公司的核心人员)
列表叙述法(让沟通更加条理清晰): 1. 按照1234划出重点; 2. 给每个重点找到中心句, 然后寻找支撑内容; 3. 检查点与点/句与句之间的逻辑
沟通: 和 程序员 和 非程序员 之间的沟通需要不同对应
专家线: don't repeat yourself; 正交性设计(单元测试)
技术瓶颈: 对于个人是技术的深度不够, 对于工作就是对业务的了解不够
创业和创造是不同的, 很多人可能实际是有创造冲动
CTO是低风险的创业通道, 可以在公司失败的时候平级跳跃
blog
2016-3-22 20:10:11 总算把以前的blog稍微清理了一下, 大部分都放到 history 里面了, 太多 简单而且没有深度
的文字了, 原来学习就是这样一个 不断鄙视过去的自己 的过程呀.
我的csdn: http://blog.csdn.net/czl1252409767, 主要是刷oj(离ACM还有距离)时记的, 包括 poj + zoj + hduoj + woj
我的百度空间 + Google code: 主要是 woj(因为在百度俱乐部的关系, 算是第一批知道 百度空间支持代码高亮 的, 虽然复制功能比较蛋疼)
我的新浪博客: 不支持代码高亮, 然后就没有然后了
骑行
自行车: 推荐 死飞(远行还是 公路或者山地 吧)
优点: 简单 / 炫丽 / 速度快 / 轻便 / 倒刹 / 释放双手
缺点: 爆胎(换真空胎) / 倒刹伤车轴(带前刹, 最好用碟刹)
项目文档
几乎在每份工作中都尝试好好写文档, 甚至在第一份工作离职的时候还特地做了视频, 但是目前看来文档功底还是很烂, 只能 持续集成 了
这个充满黄段子的欢乐世界
又加班到12点了, "叫鸡" 吧? (实际是 肯德基)
code
如果可以的话, 使用 if-return 替代 if-else 多层嵌套, 这样代码逻辑性更强, 不容易被各种条件集合给绕晕
一定要好好检查 条件语句/循环语句/逻辑预算, 特变是边界条件
有时会遇到一些奇葩的问题, 想想会不会是 缓存 造成的
估时间是为了: 1. 把需求都弄清楚; 2. 实现可能遇到的技术问题; 3. 评估风险, 是否进当前版本
return: 静态语言在return的地方使用 error code, php这样的脚本语言, 就要考虑加 log, 这样才能在出错的时候方便查询, 不至于那么被动
每当你发现难道问题是超出了之前的'常识'的时候, 那就一定要小心了, 因为你肯定在某个小点上面进入死胡同了
开发不要急, 一步一步来, 也许某的时候就出问题了, 只是没发现, 导致之后做的都是无用功
解决问题的方法: 找不同; 找相同
开发是很 strict 的: 正确的路只有一条; 注意数据类型; 一个字符的差别 sprintf/printf
, elseif/elsif
程序中可以优化的地方, 最好优化掉, 也许你感觉没必要, 但是可能以后的修改就会带来成倍的工作量
手册非常有用: 很多难的问题, 大部分都是基础不够好造成的
版本控制: 更新自己改动的文件, 而不是更新所有
- 解决问题
太过于极端, 比如电脑遇到问题, 我就喜欢直接重装, 因为这个做过很多次, 感觉很简单
我认为是最重要的, 解决问题就是一个用已知挑战未知的过程, 看来我对未知还是存在潜意识的恐惧, 进而影响自己整个的心态(我tm还为这个抑郁了2天), 所以以后一定要敢于培养自己解决问题的能力
- to better learn
- 好好的记笔记
- 笔记 -> blog, 记录思考的过程
- 社区: 那些你踩过的坑, 别人也许也经历过; 那些你没有经历过的精彩
- 语言学习: 简单, 大部分都是共通的; 复杂, 语言是 strict 的
-
daydaygo
, 时间很重要, 哪怕你是一个死宅, 也尽量多花点时间, 也许你从小白到入门只要一个星期 / 一天 / 甚至 几个小时, 但是你想要熟练, 就需要很多很多的时间 -
修身齐家治国平天下
, 希望提高的不只是技艺 - 多学习: 简单入门可以看视频教程, 视频教程基本都是现场比划; 遇到的小问题可以多百度, 基本都能在别人的blog或者社区找到答案; 想要向专家迈进, 那就好好的找本书看看(请原谅我一直深信书永远会讲得十分非常的详细来增加字数)
- 补充要多学习的理由: 很多东西都是知道了很简单, 不知道遇到的时候会感觉很蛋疼, 还是知道好点
tool
- 工欲善其事, 必先利其器
- 仰之弥高,钻之弥坚
- 好记性不如烂笔头 - wiz
- 能装插件的软件, 才是好软件
- 我们应该更专注于写作, 而不是排版 - Markdown
- xshell5