王勇
Email ywangsh2011@163.com
Github https://github.com/ywang2014
Objective 软件研发(C++)
专业技能
  • 热爱 C、C++ 开发
  • 数据结构和算法基础扎实
  • 熟悉 PHP Web开发:smarty
  • 熟悉 Java:spring boot、activeMQ
  • 熟悉 Python: pandas matplotlib
  • 了解 R语言、matlab
  • 了解 mysql基本操作
  • 了解 ajax、angularjs
  • 了解 css、html
  • 了解基本Linux基础知识
  • 《代码大全》
  • 《C++程序设计语言》
  • 《C语言程序设计》
  • 《C专家编程》
  • 《编程珠玑》
  • 《Effective C++》
  • 《算法》
  •    ...
    实习经历(远景能源2016.05--2016.09)
    Greenwich
    项目描述: 主要完成格林项目中,评价体系部分cube的KPI指标可视化工作,根据风机评价指标的算法,从Ocean风机数据中,下载数据,然后进行数据处理,画出有关指标的散点图和曲线图。
    难点:进行数据解析、清洗、拟合等。技巧:生成连续的时间序列,生成连续的颜色列表。
    职责: 参与者,负责数据可视化
    技术: python、pandas、matplotlib、s3
    Dolphin平台
    项目描述: Dolphin平台是一个集成监控系统、算法平台、版本发布平台等功能的系统,独立于格林项目。其中版本发布功能,将原项目的C/S结构重构为扩展性更好的B/S结构,实现用户在浏览器上,通过简单的配置,就可以实现监控系统版本的更新和启动。算法平台,主要为用户提供许多独立的算法服务,用户只需要在前端页面上,给出输入和选择特定的算法,后台自动运行指定的算法,返回其结果到前端页面上。监控系统,监控服务器或某些程序的运行状态,调用情况等,实时返回运行状态信息到前端页面上。
    难点:MQ之间的通信协议,JSON串的拼装和解析,任务调度,前后台数据间通信,前端页面局部刷新,轮询机制等。
    职责: 参与者,负责dolphin平台原型开发
    技术: Java、spring boot、maven、activeMQ、JSON、angularjs、bootstrap、Mergely
    项目经验
    欧麟物流网站
    项目描述: 商业网站的开发,实现了任务需求的发布和签约功能,项目空间管理功能,简单的博客系统,简单的问答系统等功能。功能模块包含有:登录和注册、文件管理、用户图像自定义,点赞功能,验证码功能等。
    项目难点很多:比如mysql表的设计,点赞功能的实现,项目签约到项目空间的生成等逻辑实现,写博客或评论时,用户可以上传,并编辑照片等功能。
    职责: 项目开发负责人,完成全部的后台开发,网站逻辑设计
    技术: PHP web开发、smarty、MVC、CSS、JavaScript、ajax、mysql、LAMP搭建
    五子棋人机对战游戏
    项目描述: 使用C++语言的封装、继承、多态等语言特性,实现五子棋人机对战游戏的开发。整个项目开发有两个难点:一是游戏架构设计,如何设计类,以及处理类之间的关系;二是电脑智能部分实现,如何实现电脑自动走棋的算法。
    类主要包括了游戏类,棋盘类,棋子类,玩家类,菜单类。棋盘类以棋子类实现的,棋盘的本质是棋子的一个数组;游戏类派生出五子棋游戏类,菜单类派生出五子棋游戏菜单。五子棋游戏类包含有棋盘,玩家,菜单。
    电脑走棋算法,使用alpha-beta剪枝算法实现的,对棋盘位置根据棋型打分,找到最优走棋方式。
    职责: 独立完成开发
    技术: C、C++、 面向对象编程、多态实现、α-β剪枝算法
    电影推荐系统
    项目描述: 根据MovieLens的电影打分数据,使用协同过滤算法实现电影推荐系统的开发。系统实现使用的是基于SVD分解的协同过滤算法,完成对在库用户,进行电影推荐的任务。项目难点,如何有效优化SVD分解O(n^3)的时间复杂度。
    使用梯度下降算法,根据均方根误差(RMSE)分析,进行模拟逼近SVD分解。算法原理,矩阵进行SVD分解,较大的特征值包含信息最多,但是这样的特征值数量少,接近于0的特征值,没有什么信息,数量很多。因此预先设定主要的特征值只要60个,其他特征值都为0,模拟矩阵SVD分解,将算法时间复杂度降低为O(n^2).
    职责: 核心开发者,完成80%的开发工作
    技术: C++、SVD分解、协同过滤算法、梯度下降最优化算法
    人员管理系统
    项目描述: 学习了java的web开发过程,以及java与mySQL数据库的运用。项目是李兴华老师的课程项目,跟着做的,主要学习Java Web开发的过程和技巧。
    职责: 跟着课程学习的项目
    技术: Java web开发、mysql、工厂模式
    MOOC学习
    课程I: TsingHua 算法设计
    学习语言: C、C++、algorithm
    学习成果: 顺利完成mooc课程,算法编程能力显著提高,了解了(scanf/cin、printf/cout)输入输出的巨大区别,学会了如何自己扩大buffer,提高输入输出速度
    学习了一遍林锐博士的《高质量C++/C编程指南》一书,对 C 语音的理解更加深刻!
    课程II: Johns Hopkins 数据科学
    学习语言: R、数据处理
    学习成果: 顺利完成mooc课程,主要学习R语言的基础语法和应用,和数据科学中数据处理的基本方法。对于数据处理,数据清洗和数据科学有了基础的认识。
    自我评价

       爱编程、爱挑战