网站总结
非常开心最代码的流量最近直线飙升,已经到5000多的uv,想想从0开始到现在,感概颇多,做的最成功的就是在正确的方向上坚持深耕吧,也希望每个牛牛都可以在自己选择的正确的方向上有更多的收获。
资讯精选
这是第一次写年底总结,其实每年一直都有年底写总结的想法,可总是手头的事情很多,最终计划赶不上变化,最后写总结的想法就不了了之了。今天手头上没有什么工作,趁着现在有些空闲的时间,赶紧开始动笔了。其实很多事情不是没时间做,而是我们的惰性成功了,我们总想着时间还很多,可以以后再完成,其实很多事就是这样被慢慢拖沓着,最后放弃将其完成。
过去的编程经历
从本科毕业到现在,我从一开始的JAVA WEB开发,到Android应用程序的开发,再到C++视频服务器的开发,最后到现在PLC自动化程序的开发,自己在3年半中接触到了各种的开发技术,自己也从一名在技术上懵懵懂懂的学徒,成为了一名有经验的员工。
11年6月份到13年3月份我一直从事的是JAVA WEB端的开发,期间所做的项目是按业务模块划分的,因此我所负责模块的服务器端代码到前台页面设计的代码都需要我来完成。此期间我接触到服务器端的技术有JPA、Hibernate、Spring、Rest、Servlet、dwr等,而前端的富客户端技术有dojo、easyui、Extjs等。这期间锻炼了我编程的思路,同时由于做的是WEB端的开发,因此对于WEB性能方面的测试指标、工具也有所了解。由于做的项目都是政府方面管理系统的项目,这些项目在用户量上并没有那么大,但是在数据的量上是很大的,因此对于如何优化查询、如何设计表结构等如何提升页面展示速度的方案也有了一定的认知。总之在这期间,我掌握了JAVA WEB端编程的各种技术,同时对于数据库的应用也是如鱼得水。这段时间虽然很忙,但是很充实。这段时间的编程功底的培养,让我对后来的android开发以及c++视频监控的研发打下了坚实的基础。
13年3、4月份做了一个android端的项目,这个项目我一开始是做android服务器端接口的开发,后期由于android端的人手不足的问题,被安排做了一段时间的android端的开发。这个项目把我带入了移动开发的世界。我也从此不仅仅限于是一名JAVA WEB端的开发者了。由于有了前面2年多的编程功底,因此在从事了一段时间的android端的开发后,我认为android的编程并不难,但是想要深入研究还是需要多大量的时间去充实自己的知识库。
本想着深入学习一下android,但是在10月份左右,有个机会是可以跟着一个大牛学习一下C++方面的视频的开发,当时考虑了很久,但是还是抵不住当初自己的期望(在本科毕业的时候一直想从事的是C++方面的研发),于是我就开始了C++视频方面的学习与研发。13年10月份到12月份这阵子又刚好是我研究生答辩的时候,曾以为自己可以处理好所有的事情,但还是想的乐观了,但是幸亏碰上了一个好的项目组、好的导师,结果还是很让人满意的。
2014年编程经历
上面流水账式的描述了一下我的技术之路,好像有些偏题了。现在来简单写一写我的2014年的技术路吧。2014年是开心的一年,研究生的生涯顺利结束,同时也进入了一个理想的单位,还有2014年分别在上半年和下半年参加了一下系统项目管理师和信息系统项目管理师的考试,并且都顺利通过了,这是值得庆贺的一年。读研期间学的是嵌入式的专业,也一直想从事一下这方面的研发,但是做的项目一直都与专业不太相关。心想事成这个成语还是挺有道理的。总是发现自己所想的在某一天会实现。现在在单位正在学习PLC方面的研发,这也算是心想事成吧。
我的14年的总结也就写完了,此时发现真的是一片流水账,但是还是要写下来,希望几年以后再看,会有一份不一样的心情。
2015年展望
自己接触到的编程的领域还是相当广的,但是并不精。2015年需要找准一个或两个方向进行深入学习研究。同时15年也会继续在考证之路上前进,抽出一部分时间学习注册电气工程师,争取15年可以通过注电的基础公共课的考试。
已经毕业工作快满两年了,从一家垄断国字号企业跳到某电商平台,应该是我的职业生涯第一跳了,也很荣幸地投身入互联网浪潮之中。没过多久就融入了这家朝气蓬勃的大家庭。回汉后,起初打算做机器学习、数据挖掘的相关工作,以能延续研究生的课题。不过作为新东家BI组第一位员工,不得不着手搭建基础数据平台。
工作成果与心得
基础数据平台和报表系统,爬虫
五个月,小半年,我们三兄弟的工作成果也是比较显著,在被领导否定第一版数据平台后,开始重新搭建新js埋点作为数据源的基础数据平台。
1. jugg,第一版数据平台,flume+hadoop+hive的架构
flume,作为读取本地历史日志文件的管道,监听数据,采集数据,将其日志文件按行读取到集群的HDFS之中供hadoop做处理。
缺点: 单节点,未做冗余备份,加上本身的不稳定性,数据容易丢失,在机器死机就会丢失数据。
由于目标框架是一个分布式的对日志进行海量数据收集框架。
在hadoop上部署一个flume agent(使用flume把日志数上传到hdfs中),需将flume部署到每台服务器中去收集数据。
hadoop,对读入的hdfs文件数据进行mr处理,根据策略绘制访问黑名单(如一天内超过10000次PV,5秒20次PV),需经过map,分片,排序,重组,reduce一系列操作。然后通过黑名单过滤日志文件,将数据入到hive之中。
由于数据源为历史数据日志,误差(用户来源统计不准,),效率(没有做异步处理,一套流程走下来耗时),耦合高,成为这一版被否掉的重要原因。
2. 基础数据平台做出划分(PC端数据平台+移动端数据平台)
PC端数据平台,piwik.js +webservice + kafka + hadoop +hive
piwik.js,js作为用户埋点,返回用户点击行为
Sermon,自定义名称的webservice,搭建于nginx反向代理集群之上,接受js回传数据,再将数据传递到kafka,此时觉得为kafka的生产者。
Kafka,kafka作为集群依赖于zookeeper环境,较Flume更加稳定和可靠,我们为其编写消费者程序来读取kafka中的topic并上传到分布式的HDFS之中,命名为magina(dota中的敌法师,专门用于净化魔法值,该消费者亦为此意),并把mapper用于消费处理,极大提升处理效率。
hadoop,hadoop2.5-cdh重新调整环境
hive: 编写hiveF语句和dump脚本,新加上hive到Mysql的落地处理,结合业务一些比较复杂的,将大表(Hive表中的数据)fetch到Mysql中。
3.爬虫
爬虫爬取商品销量方案1:scrapy+casperjs,scrapy控制爬取流程,casperjs模拟浏览器内核解析js返回结果。
爬虫爬取商品销量方案2:公司机密,保密。
存在的问题
1.直毕业以来将近两年时间,先后从事过分布式存储开发,分布式计算环境搭建与开发,java传统架构上的开发,爬虫开发。与我研究生的专业学术方向(实时数据流分析,数据挖掘)还是不太相吻合,总之目前为止,自己的职业生涯规划还不是很明显,没有一条很明确的主线,这个问题我还需要好好琢磨一下。
2.另外就我自身来说,对待工作时是认真的,但是有时候脾气过于急躁,有时候会缺少耐性,这方面有待改善。
2015展望
1.在加强自身技术提高的同时,保持自己的“学习能力”,务必深入理解java虚拟机,结合经验并能正确的进行性能调优。
2.熟练掌握一面新语言,如scala。掌握该语言能熟练基于spark框架做相关的开发,如实时分布式计算,机器学习等。
3.提升自身的数学能力,能掌握机器学习数据挖掘的相关算法。
最近发起了最代码的推广活动,希望每个支持zuidaima的都可以帮忙推广下,活动地址:最代码推广活动,有你参与更牛币。
最代码每周都很精彩,有你会更精彩,请访问http://www.zuidaima.com。欢迎转载分享该文章, 欢迎推荐给身边的小伙伴们
欢迎关注最代码的官方微信账号zuidaima,最代码官方新浪微博:http://weibo.com/zuidaima,最代码官方腾讯微博:http://t.qq.com/zuidaima