简介

  • 存储一些个人的,可以公开的信息
  • 梳理所学的知识,寻找要学习的知识

项目介绍

  • 项目介绍,按照下面四个步骤进行,保证无遗漏,而且能出亮点
    • 简短的项目背景
    • 自己完成的任务
    • 为了完成任务,自己做了那些工作,是怎么做的
    • 自己的贡献
  • 第一步,项目背景不用过多介绍,几句话即可。如果这个项目是一个大流量,大用户,负责度高的项目,一定要描述出来,这是亮点。
  • 第二步,自己完成的任务,一定要写明 参与 还是 负责,用词很重要。当然,如果你对项目的一个模块很熟悉,也可以写负责XXX模块。只要你在面试时能够回答的上来即可,完全看你个人对项目的熟悉程度。注意,对一个项目的熟悉不仅仅是技术,还有项目管理,项目流程方面的。
  • 第三步,这一步其实是一个简单的证明,证明你有能力做上述的任务。你可以写出一些技术名词,例如用了哪个平台,用了哪些技术,什么测试工具。但是别过于冗长,简洁明了即可。简历不是论文,只要能够吸引人即可,详细的后面还有面试。
  • 第四步,自己的贡献,一定要写的具体一些,最好都要量化,例如性能提高了百分之多少,一共修改了多少个bug等等,这就跟你在公司晋升述职汇报一个道理

简历优化技巧

  • 程序员在找工作时,一开始有三件事情会对能否获得面试机会至关重要:
    • 知识,技能,经历梳理
    • 确立求职目标
    • 简历优化

知识,技能,经历梳理

  • 知识,技能,经历,这都是一个人能体现出来的商业价值。
  • 一家企业招募某个人,一定是因为这个人可以帮助企业在某方面实现价值。而且,正常情况下,个人的贡献一定要大于企业为这个人负担的各种成本。
  • 所以,作为程序员,我们一定要清楚自己的价值在哪里。个人的商业价值,可以通过下面的五大要素分析出来:
    • 知识,技能,经历,天赋,人脉
  • 在最开始的时候,不建议直接到招聘简历上填写简历。强烈建议先用Word或者Markdown来整理记录你认为你具备的所有有价值的知识,技能,经历,不论大小,统统记录下来。这是后续优化简历的基础,也是确立求职目标的基础。

知识和技能

  • 知识可以通过语言文字,语音,视频进行传授,比如像C++,Java,数学,物理,Qt,Android,设计模式,网络协议等都是知识。

  • 技能,是指按照某种规则应用知识和经验完成某种任务的能力。比如使用Qt开发桌面客户端就是一种技能,使用Java和Android界面类库开发APP也是一种技能。

  • 我所具备的知识大概有:
    • C,C++,Python,Qt,MySQL,Json,FFmpeg,HTTP,socket,WebSocket,前处理,推理,后处理,Fasis第三方库,图像编解码,mongoose第三方库, 共享内存,图漾SDK适配,modbus
  • 我最熟悉的三种知识:
    • C,C++,Json
  • 技能就是对知识的运用,所以一般来讲你有什么知识,就能找到一组对应的技能。
  • 例如
    • 使用Qt开发客户端软件
    • 使用Qt开发服务器软件
    • 使用Java开发Android App
    • 管理项目,制定项目计划,跟踪计划,控制项目进度
  • 需要特别注意的是,每个人都有很多知识和技能,一定要找出你擅长的2-3种知识,2-3种技能,这将是你求职时的重要参考。人只有使用最擅长的技能去做事情,才能达到最好的效果。

经历

  • 知识和技能可以帮助我们创造商业价值,而知识和技能的积累过程本身也是有价值的。积累知识和技能的过程,就是经历。

  • 在回顾项目经历时,关于你自己的那部分,一定要想明白并记录下来,从下面三点来挖掘你的亮点:
    • 你负责的工作内容
    • 用到的知识,技能
    • 你对整个项目的贡献(最好可以量化)
  • 协作机器人底层控制服务开发
    • 项目描述:研发协作机器人,需要一个服务器,提供对硬件设备进行控制,例如机械臂的控制,相机的控制,末端工具的控制等等。为后端业务开发提供功能基础
    • 用到的知识,技能:
      • C++,modbus,OpenCV,Json,
      • 异步服务器,可同时接收多个请求,每个请求启动一个线程,处理
      • 多态,不同的设备,抽象出统一的控制接口
      • 请求,使用httplib第三方库,Json使用nlohmann/json第三方库
    • 我对整个项目的贡献:
      • 实现对物理设备的控制,对上一层提供统一的控制接口,是上层业务开发的基础,是整个项目运行的基础
  • 边缘计算产品开发
    • 项目描述:人工智能行业,边缘计算产品,实现从共享内存获取图片,到推理,检测业务,Web后端,用C++实现,实现低成本方案的边缘计算产品
    • 用到的知识,技能:
      • C++11, mongoose, sqlite3,Json
      • Web后端开发
      • 图片服务器开发
    • 我对整个项目的贡献:
      • 从图片服务器到Web后端服务器开发,都是我完成的,实现了低成本方案的边缘计算产品
  • 机械臂主控系统研发
    • 项目描述:机械臂主控系统研发,结合机械臂控制算法,编写一个服务器,对外提供机械臂控制的接口
    • 用到的知识,技能:
      • C++,mongoose,libjsoncpp第三方库,WebSocket
      • 服务器开发
    • 我对整个项目的贡献:
      • 熟悉机器人学相关理论知识,实现对机械臂控制算法的抽象,为前端提供接口,实现机器人的控制
  • 动态人脸识别项目开发
    • 项目描述:对图片进行人脸识别,并进行人脸矫正的底层服务器开发
    • 用到的知识,技能:
      • C++,libjsoncpp
      • 人脸库的管理,
    • 我对整个项目的贡献
      • 实现人脸服务,输入一张base64编码的图片,输出这张图片中人脸的检测框信息,输入一张人脸图片,输出识别结果
  • 实现服务自启动
    • 项目描述:VideoProcess产品是由前端JS,后端Python,服务vca组成的,客户需要在无网络,无人值守的环境下实现断电自启动
    • 用到的知识,技能:
      • docker,bash shell
      • docker镜像制作
      • 自启动脚本编写
    • 我对整个项目的贡献
      • 掌握基础的docker知识,将原本的产品服务都迁移至docker内部,制作docker镜像,并编写产品初始化脚本,实现无网络,无人值守环境下服务自启动
  • 晶视1838硬件产品下图像编码功能适配
    • 项目描述:对晶视1838智能盒子进行硬件适配,包括视频编解码,推理加速
    • 用到的知识,技能:
      • C++
      • 图像编解码
    • 我对整个项目的贡献:
      • 熟悉视频流编解码理论知识,实现图片编码功能的适配,
  • A311D硬件产品下推理功能适配
    • 项目描述:对A311D智能盒子进行硬件适配,硬件推理加速
    • 用到的知识,技能:
      • C++
      • 前处理,推理,后处理
    • 我对整个项目的贡献:
      • 熟悉模型工程化的理论知识,实现基于yolov3的目标检测
  • 遗留物检测
    • 项目描述:需要对静止物理进行检测
    • 用到的知识,技能:
      • C++,OpenCV
    • 我对整个项目的贡献:
      • 熟悉传统目标检测流程,实现帧差法遗留物检测

确立求职目标

  • 不管是从大学走向社会的初次求职,还是在职场上摸爬滚打了N年,找工作时都要忌讳的一点:茫无目的,漫天撒网
  • 求职时,明确目标行业,企业,职位,有针对性的做准备,事半功倍

  • 职业连续性
    • 跳一次槽换一个行业,跳一次槽换一条技术栈,这样极其不利于程序员的商业价值积累(知识,技能,业务)。假如你不是第一次求职,就有必要考虑职业延续性。
  • 成就事件,挖掘职业兴趣
    • 在我们总结整理自己的工作,项目经历时,要特别留意那些让你特别有成就感的事件,其中隐藏你的职业兴趣,可以挖掘出你今后乐意从事的职业方向。
  • 聚焦行业,企业,职业
    • 聚焦的目的是缩小目标范围,节省时间和精力,深入研究分析,有针对性的对自己的商业价值进行优化组合,提高简历的吸引力,最后提升获取面试机会的概率
  • 程序员运用编程语言,技术框架,设计模式,算法等开发针对某个领域问题的软件,软件必然和目标需求和业务密不可分,所以,程序员左手技术,右手业务,假如你对业务内容完全不感兴趣,很难想象你可以把软件做好。
  • 因此,当你有了目标产业及目标公司后,还要去了解这家公司做什么产品,是产品导向,项目导向,还是外包为主,选择那家你对他的业务范围感兴趣的公司,不感兴趣的果断筛掉

  • 基于延续性的考量,以往工作过的行业领域都需要认真对待,但不一定非要继续在之前的方向上做,换一换也可以。但有一个基本的原则:离夕阳产业和走下坡路的企业远点