V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ijustdo
V2EX  ›  随想

十年了 😄 最近准备做些总结 欢迎提问!!

  •  
  •   ijustdo · 2017-03-26 23:50:23 +08:00 via iPhone · 4375 次点击
    这是一个创建于 2586 天前的主题,其中的信息可能已经有所发展或是发生改变。
    睡不着 好多年没总结了 貌似 干过的挺多 准备总结下
    想到的第一块 要不从搜索引擎 和商品搜索 商品个性化 推荐 用户兴趣爱好分析建模开始

    当然大家也可以下面提需要知道的知识 我干过的也可以总结下 😄

    相关总结会慢慢填坑 发个预告先
    47 条回复    2017-04-14 11:19:41 +08:00
    Camile
        1
    Camile  
       2017-03-27 07:54:57 +08:00 via iPhone
    沙发,期待
    hzwei
        2
    hzwei  
       2017-03-27 08:06:16 +08:00 via iPhone
    当初踏入程序员的路是从那一块开始学的?
    Shura
        3
    Shura  
       2017-03-27 08:09:46 +08:00 via Android
    十年内换过技术方向吗?
    isb
        4
    isb  
       2017-03-27 08:45:34 +08:00 via iPhone
    十年职业发展跟自己当初计划的是否大致相同?
    Yourshell
        5
    Yourshell  
       2017-03-27 09:20:04 +08:00 via Android
    十年前和十年后解决问题的思路有什么不同?纯粹的编码能力在当中扮演什么角色 /地位?
    语文不太好,感到不清晰的麻烦回复下。
    EchoUtopia
        6
    EchoUtopia  
       2017-03-27 09:25:34 +08:00
    请问你现在使怎样平衡生活和工作的?现在你对未来的生活和工作的规划是怎样的?
    Yourshell
        7
    Yourshell  
       2017-03-27 09:30:10 +08:00 via Android
    上面说到的纯粹的编码能力感觉不是很妥当,感觉编程并没有纯粹的编码能力吧!不知道该怎么问了,我所学到的已经不能表达我想知道的了。
    acoder2013
        8
    acoder2013  
       2017-03-27 09:33:08 +08:00
    学习历程?
    viko16
        9
    viko16  
       2017-03-27 09:33:19 +08:00
    有什么事令你后悔过?(技术路上的、非技术路上的)
    91mikechaos
        10
    91mikechaos  
       2017-03-27 09:33:52 +08:00
    头像是娜美么?
    R18
        11
    R18  
       2017-03-27 09:34:23 +08:00 via Android
    怎么结婚的
    ii4Rookie
        12
    ii4Rookie  
       2017-03-27 09:34:55 +08:00
    @R18 问到重点了。
    ijustdo
        13
    ijustdo  
    OP
       2017-03-27 09:47:14 +08:00   ❤️ 1
    首先回答职业发展问题?
    1. 10 年前作为 python 程序员入职,那个时候 python 的境地跟现在 golang 差不多,用的公司还不是很多
    2. 我的特别感谢公司一来作为新人,有技术大牛带,第一个项目就是大约 10w 或者跟多的一个分布式 python 爬虫项目
    3. 让我学到了很多东西,多线程,多语言混合编程,任务调度,正则表达式(曾经一段时间每天写几个小时)
    4. 初期做垂直搜索,后期做网站和电商,公司原来很多都是传统软件开发转过来的,我也跟着公司不停的换方向
    5. python-->php 公司中途有我见过的最牛的 java(被称为或者的 java 手册), 纯记事本手写,指法飞快
    6. 公司中途做过针对特殊行业的输入法,那哥们也牛人, 学化学的在 07 年做带显示的,模拟实景的跑步机,产品出来了没钱推广,来我们这,现在应该是其它公司合伙人

    7. 我一直从事开发,转了好多方向页转了好多语言,初期么有方向的时候 不断对模式尝试。
    8. 中途经理过技术经理甚至到过技术总监,但是我觉得我的性趣还是在代码上, 只是到后期不习惯写那种体力型代码(更多愿意写一些有难度,有成就感的代码), 但是以我这种性格不太适合做管理(不强势,脾气很大 [可能别人认为很难得,我觉得很简单,就喜欢骂人] ), 所以后期基本是公司需要哪方面的东西我觉做哪方面,用什么技术什么语言自己把握。。。 头衔不太在乎,并且对于技术部从来没超过 20 人左右的团队,那些都是虚的,毕竟出东西第一位。。。

    9. 现在个人学 golang 在 呵呵 我觉得这个很有前途 现在的境地有点像 2006 2007 那时候 python 的境地,其实还有一个原因,保持不停的学习新东西,避免学习能力下降和脑子退化(反应慢,健忘)

    首先说怎么学习新知识 古语有云 后面忘了原话, 要学习知识首先自己得分得清好的和坏的,还有就是你碰到的问题,肯定不是第一个碰到,但是任何问题到一定的程度还得自己研究了, 当时我决定用 rabbitmq 做消息队列,财务里面,第一是看上有证券交易所用这玩意做每天交易监控核算(米国), 说明了在金融上的 可靠, 其它的问题 我们另说, 然后测试了 我台式机做了 1500w 左右的离线消息堆积 以及模拟断电 发现没有任何数据丢失, 就决定用它了, 但是我们财务要用到延时消息,当时找网上发现好多人因为这个功能放弃 rabbitmq ,我的做法是,把他手册全都看一遍,呵呵 找到了 消息又生存时间按 使用了那个 到到生存时间自动转发 完美实现 也没碰到什么问题


    其实一直做技术没有什么不好,不好的是心态,或者是自己认为自己已经写不动代码,那是因为你写的是重复劳动, 找不到接着写下去的乐趣。。。
    ijustdo
        14
    ijustdo  
    OP
       2017-03-27 09:48:41 +08:00
    2. 我的特别感谢公司一来作为新人,有技术大牛带,第一个项目就是大约 10w+ 行的一个分布式 python 爬虫项目
    ijustdo
        15
    ijustdo  
    OP
       2017-03-27 10:48:19 +08:00
    这是初稿 大约花了半个小时左右写的,不对或者错误地方, 有时间在填坑

    如果转载 标明出去呢 MIT 协议 吧

    ----------------------------


    #### 商品:

    + 类别
    + 各种标签属性
    + 继承来的卖家属性 及标签
    + 继承来的店铺属性及标签
    + 如果是 B2C 还会有继承来的供货商属性及标签
    + 其它分类
    - 一次性或者购买周期很长的商品(床,电视,基本大件,或者房子, 车子), 购买后会形成新的购买需求的
    - 周期性商品(手纸,日用品...)
    - 礼品(比喻生日。。,情人节。。。)


    #### 用户:

    - 基本标签及属性
    - 属于自己的动态兴趣记录
    - 用户购买兴趣会变, 可能最近买了个车,然后就产生需求
    - 或者最近对明清的古玉有兴趣。。。
    - 这个记录应该是一个动态的改变


    #### 商品搜索接口:

    - 关键词搜索
    - 按标签搜索过滤
    - 提供各种聚合及聚类分析
    - 支持自定义公式排序 这点很重要
    - 我要多少天内的,被点赞多少以上, 以及买家收藏到了多少,曾经售出多少,卖家信誉超过多少 的商品
    - 几百万或者几千万商品+ 毫秒的聚合和 这是必备基础啊


    #### 怎么搞?

    1. 我们认为用户的行为会反应他的习惯
    2. 我们认为用户的习惯会发生改变
    3. 我们认为我们的分析结果还可以改经(设计结构预留后续可继续进行)
    4. 设计若干场景, 当然这些场景模型以后可以加
    - 用户收藏一件商品 我们可以记录 uid , 商品 id , 行为
    (这里不记录商品标签,我们认为我们商品分析在后期可能还会进步,所以是直接记录一个商品 id 引用商品)
    - 用户周期性看某一类商品 记录 uid , 类别
    - 一段时间内重复看 某一件商品 这里是不是侧面说明购买这个可能性大 但是还在犹豫 价格或者商家地域 物流等因素。。。

    5. 用户的购买过的订单数据挖掘
    - 比喻最近购买床,大型家电,那么很可能买房子了,这个时候推荐家装家具。。。。
    - 没到一个月或者多久买姨妈巾,只要数据足够 你可以得到很多背后的信息
    6. 用户收藏的商品兴趣挖掘
    - 收藏的商品的个性
    - 收藏的商品的共性
    7. 基本思想就是用户行为 产生数据, 我们在对数据异步分析得出爱好,再根据爱好和其它因素推荐商品
    8. 推荐商品的时候我们以用户最近的需求,和性趣为主,慢慢向上回溯
    9. 我们好可以挖掘用户兴趣之间的距离 这样防止冷启动, 对于第一次来的用户, 比喻好多都浏览过什么, 我们就找跟他性趣类似的推荐
    然后他的进一步的幸会产生数据了 呵呵
    10. 我们尽量一我们能把控的确定数据及标签来操作,不确定的慢慢来

    #### 关于机器学习挖掘兴趣?
    1. 我们可以看到 好多地方可以聚类,但是当我们结果可以肯定的时候 为什么要那么暴力去用也许我们现在还无法可控的机器学习
    2. 我就是要个自行车,你非得搞得一堆。。。, 有时候选择多了并不是好事,直接命中最关键
    3. 你看九几年的 神经网络到最近换了个马甲出现的深度学习, 多少年了,让科技再发展伙,先解决问题先
    4. 文本挖掘有时候 没有一堆各种情况下的正则实在, 起码正则出来的就是这个正则匹配的我要的,然后机器学习聚类出来的
    你怎么去掉不需要的干扰 又是个问题


    #### 相关工具
    1. 自行脑补热力图
    2. 我们可以页面部分使用新推荐口, 然后根据热力图,逐步调整策略
    3. 搜索引擎的一些技术,自行脑补 文档矩阵, 倒排索引相关知识
    feather12315
        16
    feather12315  
       2017-03-27 10:58:13 +08:00 via Android
    支持
    ijustdo
        17
    ijustdo  
    OP
       2017-03-27 11:00:44 +08:00
    上面问道怎么结婚的时候个好问题
    同事介绍 然后结婚 然后生孩子 然后买房子 感谢同事介绍了有北京户口又不是北京人的媳妇 呵呵

    学习知识的路线
    一般是工作中要用到什么 就去学 然后不太懂或者无法把握之前不要用
    比喻 bdb 当时做搜索引擎离线存储的时候 发现这玩意单个文件 100w 后性能下降 但是那时候早也许现在的版本或者 ssd 早不存在那些问题


    大道至简 越简单稳定性越高,特别服务级别的程序,还有饼不要摊太大,一块快来,我们只需要考虑 这个小饼子旁边后面还要加其它饼子就 OK 起码先有的吃
    ijustdo
        18
    ijustdo  
    OP
       2017-03-27 11:05:38 +08:00
    再开一个 要不来大批量商品 自动裁剪商品图
    也可以说是图片主题(主体)识别
    ijustdo
        19
    ijustdo  
    OP
       2017-03-27 11:15:05 +08:00
    图片主体(主题)识别

    如果转载 标明出去呢 MIT 协议 吧

    ----------------------------

    + 背景是 B2C 会有大量的拍摄图片需要修图然后作为商品的图片

    + 我们这里确定几点先
    - 假设都是相同或类似的背景
    - 我们认为图片里占图片面积最大 或者次大的为图片主体 或者是商品
    - 这里你基本可以理解了 只要识别图片上最大联通区域 的面积基本就搞定

    + 实施 直接 opencv 当然 pyopencv 貌似比 cpp 直接来的简单
    - 输入图片
    - 确定图片联通区域面积
    - 按照联通区域面积排序 得出图里 要取的图片矩形坐标
    - 从这些矩形里区域 生成新的图片 哈哈
    - 这里没有想像的那么难吧

    + 代码在这里: https://github.com/ghostwwl/ghostlib/blob/master/maxarea.py
    ijustdo
        20
    ijustdo  
    OP
       2017-03-27 11:17:03 +08:00
    那个代码是 10 年的呢 那时候 opencv 版本还很低 有的函数还有内存泄露问题

    现在估计你改吧改吧 还可以跑吧 呵呵
    ijustdo
        21
    ijustdo  
    OP
       2017-03-27 11:22:10 +08:00
    在写点撒 还没想好 大家可以提供方向, 这么多年没好好写过文档,没咋总结,一下没头绪。。。

    或者你们想知道撒 技术方面的。。。
    ijustdo
        22
    ijustdo  
    OP
       2017-03-27 11:35:43 +08:00
    在来个文本自动分类的呢


    文本分类

    如果转载 标明出去呢 MIT 协议 吧

    ----------------------------

    + 初期公司做垂直搜索,所以怎么区分行业内的文章和非行业的文章是个问题

    + 我们的做法但是基本达到 90%或者更高准确度,取决于我们的阀值

    + 具体做法呢
    1. 收集行业内所有的专业词 并分类, 现在更简单了 国家图书馆可以注册账号查各种资料了 当时我们可以人工 + 行业内专家
    2. 构建分词服务器 使用这些专业词分类
    3. 构建判断标准
    a. 专业词条在文章中的密度到多少 百分比
    b. 所有命中关键词的分类投票概率 得出文章的类别概率
    4. 这里我们可以得到 分类和关键词了 哈哈
    5. 初期人工选择行业内专业文章对结果不停调整
    6. 简单 粗暴 有效

    + 再来说说可以改经的地方
    1. 这个时候暴力的机器学习里面 TDIDF 和 kmeans 实际上可以用上
    2. 文本相似度也可以用上
    3. 这些算法很大成都上在于去掉干扰数据和提高运行效率上

    + 闲下来的时候 kmeans 测试的代码呢 https://github.com/ghostwwl/machine_learning/blob/master/%E6%96%87%E6%9C%AC%E8%81%9A%E7%B1%BB.py
    lanoche
        23
    lanoche  
       2017-03-27 11:39:56 +08:00 via Android
    跳过几次槽,分别在什么阶段选择跳。是怎么安排工作与自己学习时间的。
    ijustdo
        24
    ijustdo  
    OP
       2017-03-27 11:46:00 +08:00
    给一个作文本里面我比较喜欢的库呢

    其实一直想做基于语义的分词 虽然这玩意在很多很多年前就有 但是也不是想做就那么容易出来的

    下面这个是测试哈工大语言云 他们开放出来的库 其实原始库是 cpp 的 但是他们也出了 py 的
    https://github.com/ghostwwl/machine_learning/blob/master/ltp.py

    其实分词并非简单的分词

    - 实际用途
    - 在用户的输入或者搜索的时候 基本都是用户的条件变成词条去匹配的
    - 很多时候可以优化 比喻输入的包含类别名 或专业词条
    - 基于语义有好处就是 更好的猜猜用户的搜索意图 或者需求

    - 搜索引擎搜索过程中的 xx
    - 数据库搜索会有注入
    - 搜索引擎也有脆弱的地方
    - 他会把输入初始语句分词去倒排索引查
    - 如果没有限制输入最大长度 我一堆并发给你搜索口 post 大文章, 你会发现搜索服务器 cpu 很 happy



    上面看到问跳过多少次 不好意思 没有跳过 哈哈
    以前年轻 一直认为 最痛苦的时候 就是离成功最近的时候 好多时候咬牙过来了 就长进了
    ijustdo
        25
    ijustdo  
    OP
       2017-03-27 12:12:26 +08:00
    再说一些 关于带人方面的话题呢

    刚好在一个群里 哈哈 应该是 2006 年的群 人数不多 也不会加不认识的人

    一哥们他们上市应该。。。 出来搞了个。。。。 聊起带人的话题

    别人的发言我就不截取 就截取我发的吧
    这的感谢我的老大 当初就是那样把我带出来的


    应届生如果肯定 不是太笨 应该可以带出来 但是踩坑可定避免不了的
    像这种 我一般都是 给东西 让他自己写 然后 codereview 甚至让他搬个椅子坐旁边 看着我重写

    这样带人很累 但是 好处是 带出来的 基本代码风格和思路 很容易一致

    初期基本就别指望太能做太大的东西 或出东西 基本得带的人抗
    慢慢开始 给项目的部分小功能

    其实应届出来 因为代码或者撒的 都还没形成自己的风格和 作风 这个时候手把手带 对谁都好 对公司也好
    如果是一来就自己搞自己的让出结果 很多个新人容易受打击 承受力好的还好 不好的 容易跳来跳去

    找应届毕业生 不一定非要名校 我见过很多非名校的 就是因为非名校 他认为起点就比别人地 自己很努力

    实习生初期可以大压力 扛得住没走的 再放缓节奏培养 筛一下

    这样的好处是 免得耗费彼此的时间 耽误公司也耽误别人
    ijustdo
        26
    ijustdo  
    OP
       2017-03-27 12:19:16 +08:00
    关于开发语言问题, 这个问题我们这里初期一直保持开放态度

    只要结果 什么语言都可以

    其实到一定的年纪 开发语言你会觉得不是那么重要了

    好多时候 合适的语言用在合适的地方 考虑开发周期成本 。。。。

    不管语言写的不好一样出乱代码

    写的好效率也并不一定低

    这个 php 面向对象的 是不是可以垫付好多写 php 老码农的认知
    https://github.com/bshaffer/oauth2-server-php/blob/develop/src/OAuth2/Controller/TokenController.php



    实在不知道 写撒了 歇歇
    ijustdo
        27
    ijustdo  
    OP
       2017-03-27 12:57:18 +08:00
    要不来个好玩的 我这里有一个基于博士论文实现的 资讯文本摘要

    帖咨询链接 我出跑的结果 跟大家 pk 赢过我的 我公开源代码 哈哈
    panlatent
        28
    panlatent  
       2017-03-27 13:05:52 +08:00
    @ijustdo

    '这个 php 面向对象的 是不是可以垫付好多写 php 老码农的认知 '

    那个,这段 PHP 代码有啥不一样的吗?是指区别于 wordpress discuz 和类似的面向过程风格为主的么?
    codeyung
        29
    codeyung  
       2017-03-27 13:33:03 +08:00
    占坑
    ijustdo
        30
    ijustdo  
    OP
       2017-03-27 13:34:43 +08:00
    @panlatent 你把他整个项目代码读一遍呢 基本很面向对象呢
    panlatent
        31
    panlatent  
       2017-03-27 13:38:35 +08:00
    @ijustdo 现在比较新的 PHP 开源项目项目基本都这么写吧 。 = =
    SourceMan
        32
    SourceMan  
       2017-03-27 13:40:06 +08:00
    10 年还是程序员吗,有没有打算转管理岗,或者现在已经是管理岗,那是打算继续往上做还是出来自己创业呢?
    ijustdo
        33
    ijustdo  
    OP
       2017-03-27 13:43:52 +08:00
    好了 panlatent 你赢了 我接触过好多老的写 php 还是函数式的 比较多 他们好多不太命名空间 还有 你看银联在线老的 php 接口 甚至在 php5.3 以上的版本上都报错 呵呵


    至于创业还是转管理 确实是个问题, 但是我希望一直做技术, 创业容易创利难 好的项目或许会去搞
    blacklee
        34
    blacklee  
       2017-03-27 13:44:35 +08:00
    我 11 年了。两个问题:
    1. 打算上班到几岁?
    2. 不上班以后怎么度日?
    panlatent
        35
    panlatent  
       2017-03-27 13:47:45 +08:00
    @ijustdo = = 当然是因为您经验多。

    因为我一直在鼓捣 php 开源项目 虽然没人用 但是基本上越写越像 java... 现在 php 代码真的是越来越规范了, PSR 规范和草案加起来快到 20 个了 Symfony Laravel Yii 这些都是很好的范本,组件化, Composer ,我觉得这才是现代的 PHP 。
    ijustdo
        36
    ijustdo  
    OP
       2017-03-27 14:09:44 +08:00
    你要知道 yii 的作者现在 写 go 了 我上面列举的那个例子是 那种及简的思路及代码风格

    我从没说我代码写的好 我也不认为我代码写的好 哈哈 你说哪个语言好 我都同意 不做表态

    有时候不是只有代码 还有代码 结构和思路

    1. 上班到几岁 这是个问题 钱永远页赚不够 也不会嫌多 (现阶段我没钱, 哈哈)
    2. 不上班干什么 着看心态了, 说不都学点金融投资理财, 或者做点小生意, 或者去培训机构, 或者碰到好的机会和合得来的人并且碰到好的项目 自己创业
    ijustdo
        37
    ijustdo  
    OP
       2017-03-27 14:11:00 +08:00
    错了 不记得是 yii 还是 yaf 的作者 写 go 了 github 上找得到 懒得找了 就当我放了个屁
    ijustdo
        38
    ijustdo  
    OP
       2017-03-27 14:29:31 +08:00
    看到上面 当初踏入程序员的路是从那一块开始学的 呵呵
    小学五六年纪 堂哥他们加退休的电脑给我了 然后 basic 然后 c 然后 大学知道了 python

    一年暑假去他家 接触了 linux 应该 2000 年之前 应该是 lilo 引导的 给我讲一堆 不过现在全都不记得

    然后折腾 linux 瞎玩吧 解除计算机做开发可能受堂哥他们影响较多
    elviscai
        39
    elviscai  
       2017-03-27 14:30:34 +08:00
    我想问问 LZ 遇过哪些坑——排个 Top3 、 Top5 什么的?😊
    ijustdo
        40
    ijustdo  
    OP
       2017-03-27 14:34:31 +08:00
    有什么事令你后悔过?(技术路上的、非技术路上的)

    这个怎么说呢 技术路上就是当时 公司转 web 开发的时候 没有坚持用 python 而是直接 php 了
    不过那个时候 python web 框架基本没有或者很少 我们内部用的是自己写的

    也许是当时 python 的 web 框架还不太成熟吧 多是 python cgi 模块来
    也没有太大后悔吧 只是多了门手艺 php

    非技术路上就是 买房买晚了 你懂的 差价兼职不是一般的大 虽然现在翻倍+ 了
    ijustdo
        41
    ijustdo  
    OP
       2017-03-27 14:53:45 +08:00
    最近印象最深的应该是

    oracle 这玩意 php 连接的时候 当时发现连接时间巨长 连接后查询只用了毫秒
    但是连接可能要好多秒 同一机器上的 python 和 java 连 oracle 都没这情况
    对那台服务 strace php 进程跟踪
    发现 是局域网网络解析 在 Linux hosts 里加一个 192.xxx hostname 的记录就 ok


    还有一个就是快钱的 bug 特殊情况下 当然他们也承认是 bug 态度赞一个
    支付宝蚂蚁金服的多次退款也有 但是不会造成资金问题


    刚上班那会初期基本都会踩我也不例外
    编码相关知识, 正则坎, 多进程多线程的锁 共享变量撒的
    然后服务端的一些经验 坑都忘了 都被老大扛了 上线钱 他会测试翻代码


    还有个就是一个好几库 要 python 用到 但是不是 python 的 好几种语言 最后先全都到 cpp 然后再到 python
    手写 makefile 简直搞了 1 个多星期 快奔溃了
    WinG
        42
    WinG  
       2017-03-27 22:07:32 +08:00
    楼主买房了没?
    财务自由了没?
    ijustdo
        43
    ijustdo  
    OP
       2017-03-28 09:00:49 +08:00   ❤️ 1
    买房了 媳妇和儿子北京户口 媳妇是有北京户口的河北人 哈哈
    但是有房贷 财务自由这个问题 显然没有
    ijustdo
        44
    ijustdo  
    OP
       2017-03-28 09:11:28 +08:00
    好多人提到中年危机 其实这个没什么好危机的 不是年龄问题 最大的是心态问题
    都知道 但是就是思维进胡同了 不管那个行业到年龄大了 都一样会碰到问题

    何况做技术的 你还有一技傍身呢 你想想刚上班那会低工资 现在就算从头再来又怕什么

    年轻人能写的东西 你写不了么 no 写的了 而且可能写的更好 或者考虑的更多
    而且还能干他们很多干不了的 ,应该更有竞争力才对。。。

    只要无所畏惧。。。 你就。。。
    摆脱弱者的思维。。。 你就。。。
    mclxly
        45
    mclxly  
       2017-03-28 13:26:07 +08:00
    支持一下 LZ 的分享精神
    linxl
        46
    linxl  
       2017-03-29 10:51:03 +08:00
    观摩学习
    ijustdo
        47
    ijustdo  
    OP
       2017-04-14 11:19:41 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5448 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:09 · PVG 15:09 · LAX 00:09 · JFK 03:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.