海康实习小结


前言

今天,再次更新这篇博客,时间已经到了2015-9-11,今天是我在海康实习的最后一天了,心情是又激动又伤感。我会想念这里的一切。


目录


海康简介

杭州海康威视数字技术股份有限公司,简称海康,专注于视频处理与视频分析,提供领先的监控产品、技术解决方案。作为国家互联网产业基地的重点企业,在安防领域,全国第一,全球前3。

海康现在也在扩展业务,也在转型,比如目前正在做的”萤石云+”, 致力于成为视频内容服务商,其理念就是”视频连接一切”。未来是DT时代,也是人工智能时代,海康如果把握好机遇,一定可以成为一家科技巨头。
关于海康威视的详细简介,大家可以查看百度百科




公司环境

虽然我没有去过什么太大的公司,也不知道其他大企业的公司环境,但是,海康的环境确实给我留下了非常深刻的印象。首先是海康二期的大楼,建的跟个双子座大楼一样,高端,大气,上档次!彰显出海康的理念:科技呵护未来。

这里写图片描述

这里写图片描述

海康现在在建三期,三期就在二期对面,三期的规模比二期还要大的多,下面是三期的效果图
这里写图片描述

海康的夜景
这里写图片描述

这里写图片描述

这是会议室
这里写图片描述

健身房
这里写图片描述

这就是食堂了,食堂不仅大,而且关键是环境非常好,在里面吃饭还可以多吃两碗~~
这里写图片描述

不得不提海康的夜宵了,每天晚上如果加班超过8:30了,就可以来食堂3楼吃夜宵了,都是免费的,夜宵采取自助餐的形式,品种比较多,有瓜果蔬菜,炒饭,面条,蛋挞,鸡翅,鸡腿,牛奶果汁等等,口味也还不错,有图有真相~~
这里写图片描述




下面来说说杭州这个城市吧

杭州

在二线城市中,杭州算是IT发展比较好的了,如果感觉一线城市压力大,不想在一线城市的,可以考虑来杭州,杭州机会还是蛮多的,阿里,网易,海康,大华,宇视科技等公司都是非常不错的公司。

杭州地理环境还是很不错的,美丽的西湖,我们来的第一周,几个小伙伴就一起去西湖玩了。

哈哈,我们在西湖
这里写图片描述

这里写图片描述

在海康的这段时间,对一些事情有了新的看法



对软件开发的认识

实习的部门是海康的产品研发中心下的应用软件部,这个部门总体来说还不错,工作强度不大,工作氛围也比较好。这段时间,也参与了海康iVMS-8700客户端的开发,以前在学校里,软件都是自己独立开发或者小作坊形式的开发,没有经历过正式的软件开发流程,所以也体会不到软件工程,记得大二的时候,学软件工程课程(尼玛,当时学校用的还是全英文教材!),老师讲需求分析,详细设计,瀑布模型,原型设计,当时根本不知道老师上课讲什么,原因很简单,就是因为没有做过什么项目。虽然实习期间,做的只是个非常非常小的模块,但是还是体会到了从需求分析->概要设计->详细设计->编码->测试->打包部署->产品发布,这一整套流程,对软件开发有了新的认识。



技术和工具的选择

建议大家先看看这篇文章:如何提升你的能力?给年轻程序员的几条建议



编辑器的选择

经常在论坛上看到很多人在热烈的讨论某某编辑器好,某某编辑器不好,有Sublime与Emacs的讨论
也有Sublime与Vim的大战。个人觉得,这些讨论没有太多实际的意义。Sublime也好,Emacs或者Vim也罢,这些只是个工具,不是目的,你的目的不是某个编辑器,而是通过这个编辑器提高工作效率。工具本身没有优劣之分,是有适合于不适合,喜欢与不喜欢之分,你喜欢Sublime,Sublime很适合你,能大大提高你的工作效率,那你就用Sublime好了。我们不能将过多的精力放在工具的选择上面,而应该将更多精力放在提高自身能力上。所以,不要过于纠结工具的选择。比如我就喜欢用Editplus,强哥(我在海康的导师)就喜欢用Sublime,Editplus能够满足我的需求,这就够了。而且现在使用编辑器的原则就是,Editplus只用作简单的编辑,实际项目还是用IDE。


编程语言的选择

非常赞同上文中作者的观点:目标应该设定在解决哪一类问题,而不是精通哪一类技术。技术只是手段,不是目的。其实个人觉得,这个观点也就是上面关于编辑器的选择的观点。
研究生期间学习图像处理的经历和实习这段时间的经历,让我对这句话有了深刻的体会。
回想一下自己学过的语言:C,C++,C#,java,matlab,HTML+CSS+JS。自己在学习语言的时候,发现一个问题,学了那么多语言,感觉自己很疲倦,比如,大学里学的C#,java,研究生期间不怎么用,好多就都忘了。
研究生期间,学习图像处理,写图像处理算法,发现,那些新的C++特性根本用不到,C#,java的最新特性也没用,我的目的是写好图像处理算法,那些新技术,新特性根本不在我的关注范围,与我何干!

所以,平时我们在学习的时候,一定要清楚,自己为什么学习,一定要有个目的(目标最好远大一点,比如成为软件架构师,高级前端工程师等等),然后根据你的目的,决定自己要学习那些技术,这样就不会疲于学习语言了。

这里还想补充一点关于MFC的认识
海康的iVMS-8700和4200我参与的模块其实是基于MFC开发的,以前我觉得MFC用的不多了,而且有点过时了,所以也没有深入研究过,我相信,很多人也会有我这种观点,建议大家先看一篇博客:VC++ MFC 过时了吗(转),作者的观点我还是非常赞同的,只要微软在,只要Windows系统还在,VC++,MFC就还在。



命名的重要性

再次让我感受到了命名的重要性!特别是在合作开发的时候,程序命名的好坏,直接影响项目开发效率。
选取的单词,一定要能够准确的表达意思,用词一定要准确,这里也间接提醒广大程序员门,学好英语还是非常重要的。

举个项目中分页的例子:

示例1
pageCount和pageSize。
一个表示分页的总页数,一个表示每页显示的记录个数,怎么区分?
觉得更好的命名应该是totalNumberOfPage,numberOfRecordPerPage。

示例2
iTotalCount,这个命名就很有歧义,是总的记录个数,还是总的页数,当时你可能非常清楚,但是几个月之后,你再次阅读的时候,就很容易产生歧义。

以下命名就比较合适

typedef struct _PageUtility
{
    int numberOfRecordPerPage;// 每一页显示的个数
    int indexOfCurrentPage; // 当前页的索引
    int totalNumberOfPage; // 总的页数
    int totalNumberOfRecord; // 总的记录
}PageUtility;



编码规范在项目开发中的重要性

以前没体会到编码规范在项目中的重要性,原因很简单,都是自己写,自己维护,只要遵循个人编码习惯就可以了。但是在团队中,就不行了,不能过多参杂自己的喜好,一定要符合项目中的编码规范。期间开发过程中,因为编码规范问题,导师还特定再三跟我强调了。

举个例子,关于逻辑表达式中,变量写在左边还是写在右边,我个人不喜欢将变量写在右边,所以,一开始项目中我的变量都是在左边的,组长看了我的代码,特定强调了这点,后来还是乖乖的改回去了。

if (NULL == pChildInfo)
  {
   ....
  }

还有就是匈牙利命名,我个人不喜欢匈牙利命名,总觉得匈牙利命名会使命名显得冗余,拖沓,但是项目中用的就是匈牙利命名,所以,我也不得不用了,还是要跟着项目走啊,谁叫我是打工呢!

编码风格统一,能够提高团队开发的效率。
比如匈牙利命名,虽然我不喜欢用,但是他还是有优点的,m_mapButtons别人一看就知道是类的成员变量,pParent一看就知道是个指针,通过程序结构,就知道这段代码的含义,这无疑在阅读代码的时候,提高了效率。


异常处理,断言,日志

这一点要重点强调!!!这一点,被组长重点提出强调!
以前写程序的时候,基本没有断言,和日志功能。还是自己平时写的程序少的原因啊,规模稍微大一点的程序,如果没有异常处理,日志,当程序出错的时候,找出错的地方就非常困难,错误无法定位。如果是一个产品,发布之后,出错了,没有异常处理,日志,你就等着客户投诉吧!啊哈~~

异常处理和断言在可能出错的地方就将程序终止,避免程序运行到后面出现更大的错误。而日志功能可以记录错误,这样就很容易发现错误的地方。


代码审查

代码审查就是阅读别人的代码,找出别人代码中的缺陷,这一点,也是非常重要的,阅读自己的代码的时候,往往找不出什么错误,因为每个人都有思维定势这个特点,而阅读别人的代码,找出别人的缺陷的时候,也能够发现自己的不足,一举两得。



锻炼

在海康实习这段时间,我一直坚持跑步,场地也比较简单,就沿着宿舍外面的道路跑,因为是在郊区,晚上车辆和行人比较少,给跑步提供了比较好的环境。

这是我这段时间的经常跑的两条路线

这里写图片描述

这里写图片描述

为什么会谈到锻炼呢?
因为总小到大,我的身体素质都不太好,然后我就决定开始锻炼了,最简单的方式就是跑步了,所以从高考结束的那个暑假开始坚持跑步,那个暑假基本上天天跑步,体重也因为跑步,降了不少,但是后来上了大学,跑步没有一直坚持下去,总是间断,原因
1. 长期坚持跑步,自己觉得不快乐,孤独 2. 自身性格原因。

现在我又坚持跑步了,为什么呢?
1. 我见过身边很多人,还没到30岁,身体就出现了很多小毛病,下个楼梯都会觉得膝盖酸痛,现代社会,快节奏的生活,高强度的压力,让每个城市的人都喘不过气来,我们更要为自己的健康投资,坚持锻炼,在自己身上投资,绝对是一笔巨大的财富。
2. 我直观的感受过锻炼带来的好处。不仅让我更加健康,还带给我自信,而且我还发现,坚持跑步能够提高肺活量!




对人生的认识

这段时间,最大的收获,就是我对我自己的人生有了新的认识,再一次刷新了我的三观。

首先说说这段时间的工作
这段时间,前期我是在看项目代码,写Demo,然后参与了海康iVMS-8700项目开发,做了一个小模块和一个小工具。渐渐我发现了一些问题:

由于做的是客户端,所以,来到公司后,你熟悉了项目架构之后,了解了业务逻辑后,就可以投入开发了,然后,你的工作就是每天增,删,改,查,写界面,改bug,有的时候,代码只要Ctrl+C,V就可以了,根本不需要思考,不需要创新的,这种模块化的开发让人很疲倦,每天有种疲于奔命的感觉,基本上没有额外思考和总结的时间。更可怕的是,我发现,我身边那些工作了2~3年的人,跟我一个实习生做的是一样的事情!这让我更加不淡定了,这绝对不是我想要的工作。

人活着的意义是什么?
在海康,我问过一些同事,大部分人现在已经完全不会去想这个问题了,都会安于现在的状态,每天写写程序,炒炒股,关注关注房价,反正现在的工资也不低,生活也还可以,就这样过着呗。也许,因为他们年过30,即使有想法,想改变的话,成本太大,所以,很多想法也就是想想而已,终究也不会去实现;也许,他们有想法,也曾经努力过,但是没有成功,后来想想:自己没有那命,还是不要折腾了,安安心心,平平谈谈才是真。

人生这么短,为什么我们不去做点自己喜欢做的事情呢?为什么不为自己喜欢的事情努力奋斗呢?2015-9-9,央视著名主持人张泉灵在微博上宣布辞职,张泉灵在辞职报告上说到:我要跳出去的鱼缸,不是央视,不是体制,而是我已经慢慢在凝固的思维模式。在生命的后半段,我想重来一次,人生最宝贵的是时间,42岁虽然没有25岁的优势,可是再不开始就43了,只要好奇和勇气还在那里,什么时候开始都来得及。

我依旧想在计算机视觉这条路上继续走下去!


结束语

用一句话结束:

有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人天不负,卧薪尝胆,三千越甲可吞吴

2015-8-2 1:18:59
Last Updated: 2017-1-9 11:07:48

非常感谢您的阅读,如果您觉得这篇文章对您有帮助,欢迎扫码进行赞赏。
这里写图片描述

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值