我的程序员生涯--业余时间的编程实践(二)

赵翔
赵翔 瀚码技术副总经理

2 人点赞了该文章 · 498 浏览

业余时间的编程实践

        我很认同王阳明的知行合一这一说法所以我非常喜欢在实践中去学习和锻炼技术计算机学科是一门强调实践的学科技术本身不能是目的技术只是实现想法的手段可惜这一点我明白的太晚了点对于技术本身有太多执念

        我最早是大二开始,利用业余时间陆陆续续接一些订单的最早开始是帮一些老师学长做点WinForm 的桌面程序几百块钱的小订单既能提升技术又能赚点小钱补贴一下大学的花销大二的暑假,一位老师牵线搭桥要帮一家德企做一个官网,我是一顿操作猛如虎,又是CSS,又是JQuery一顿操作,搞出来几套网页模板让客户来选(见下图),客户都不太满意沟通过几次后意向就不大了后面我接触到WordPress这套CMS系统直接用这个工具给客户建站套用了几套模板老外倒是挺满意并最终买了单回想起来这可能是我第一次认识到原来借助于工具的力量能够如此在短时间内快速提升自己的能力同样的事情学会实用合适的工具能达到事半功倍的效果只可惜当时认识的还不够深刻后面一断时间内还是觉得只有自己写的程序才是靠谱的

     

        大三开始我就能接到一些高深的项目了比如一个灾时道路交通救援相关方向的博士课题在一个中大型路网中面对作随机发生的自然灾害如何找到及时有效的道路救援方案最开始我也是对这个问题一筹莫展的因为这是一个复杂的MTSP问题这里我详细描述一下TSP问题是计算机领域的一个经典NP完全问题,描述为:“一个销售员从某起点开始,必须访问n个城市且每个城市只访问一遍,最后到达原起点,试求解这样的线路;MTSP问题是对TSP问题的更加深入的探讨:有m个销售员共同访问n个城市,要求每个人由起点出发找到一条巡回路线后再回到原起点,彼此之间的线路要求没有交集城市,每点仅仅能走一次。” 这个课题里面的情况要探讨的求解指定点集的MTSP问题是对MTSP问题的进一步改进,描述为:“在一张图中,要求M个销售员由同一起点出发再汇集到同一终点,他们要通过该图中的指定的一个交叉点集,并且彼此之间的线路不能有交集,每点仅能走一次。

        我这个人相对比较笨但是有个优点如果遇到难题我会就这持续不断去思考这个问题吃饭想如厕想洗澡想有时候睡觉也想电影银河补习班里面父亲马皓文对儿子马飞讲:你要一直想一直想,想着心中的目标,你就能成功我大概就是这种的类型

    终于我想到了曾经在图书馆看过的一本书《游戏编程中的人工智能技术》这本书以非常形象几个游戏的案例“扫雷机游戏”“手势识别”“登月飞船”带读者实现了几个人工智能领域的核心算法--遗传算法神经网络算法我想到既然遗传算法也可以被拿来求解局部最优那为什么不能用在这个图论最优解问题上所以我以此为基础开始展开研究经过几个月的努力,我终于完成了针对这个问题的算法确定和程序开发工作这个算法大概长下图这个样子:

 

        由于当时还没有后来流行的机器学习的库比如scikit-learnSciPy,所以只能自己动手敲了程序的全部代码,同时在这么过程中也学习一些GIS的知识比KML、Google Earth API等,以下是当时作品的一些截图材料

 

         自此以后,我对学术的软件程序设计方向产生了兴趣,因此我接一些有意思的中科院、博士或者硕士相关课题:比如实现一套python爬虫框架,去爬取微博、各大招聘网站的相关内容,然后基于NLP中文分词相关算法去自动做中文文章中的相关术语识别(自动识别文章的中心论点);根据论文《基于局部相似性的复杂网络社区发现方法》去实现一个社交网络中的人际关系自动社群分类程序(Ward聚类算法);实现一套脑电波设备对接程序,记录脑电波信号和控制步进电机转速... ...

 

        这里面最有意思的要数跟一位苏州大学女硕士一起配合实现的针对于运动内衣材料舒适性研究的课题,这个课题使得我成为了可能是中国大陆对女性胸部数据最为了解的程序员。

 

        这张图戳中了我一段时间内的笑点,图中男子因为没有穿戴胸贴去跑马拉松而导致乳头出血,鲜血染红了他的运动衣。男人尚且如此,女性在运动时候的苦恼可想而知,所以这就是女性运动内衣的重要性。

        要研发一款适合女性的运动内衣,可不是加点海绵垫这么简单,这项研究离不开大量的试验数据,需要通过在女性胸部帖上传感器,同时引导她们做相对剧烈运动,记录这些运动数据,经过对运动数据进行分析比对,才能得出各种材料优劣结论。但是这里面有一个参照系的问题,传感器传回来的数据是基于地面参照系(GCS)的,这是不准确的:女性的胸部,我们可以把它们想象成一对弹簧,在运动的时候,这对弹簧是受到躯干的拉扯而向上运动的,所以最直观的运动参照系应该选取躯干而不是大地。

    香港理工大学的周捷博士在2011年的博士毕业论文New methods of evaluating breast motion in braless and sports bra conditions提出了一种新专门用于研究乳房运动的坐标系建立方式,该坐标系建立过程如下:以通过两乳头连线BR-BL的与水平面平行的平面与左乳左右最边缘的两处交点为参考点BI、BO,BI-BO的连线和过BR-BL连线上BL点的垂直线的交点是为新坐标系BCS的原点O,取过O点的BR-BL平行线为Z轴,在平面BI-BO-BL中垂直于Z轴的即为X轴。记录在乳房这个坐标系内各个点的运动状态,是比较能够真实反应乳房相对于躯干的运动状态的,但是想要这个转换却需要非常复杂的数学算法,原文中以用14页的篇幅描述了这种矩阵变化算法(P65~P78),有兴趣的朋友可以读一读。作者并没有提供相关的算法程序,于是乎通过数月的研读,最终将这套算法化为了不到600行的MATLAB程序该程序能够将文件内的GCS数据转换为BCS数据再进行图形绘制以此来比对位移和压力的情况如下图

   

        这个项目非常成功一方面那位女硕士顺理通过了毕业答辩并且也因此还作为中国代表参加了位于新加坡的行业大会向全世界的与会者做了详细的汇报另一方面尽管我没有像以往一样获得物质回报但是却因为精湛的编程技术而获得女神的芳心最终抱的美人归所以说码中自有黄金屋码中自有颜如玉

        当然,我业余时间做的程序也不尽全是偏学术性的,也有偏应用类的,比如安卓手机助手(2012)、PHP在线培训考试系统(2015)、无线AP管理系统(2016)、美容院管理系统(2017)、微信公众号程序(2017)、微信商城(2018)等等,总之是五花八门,各种技术尝鲜。

 

安卓手机助手(2012

PHP在线培训考试系统(2015)


先后参与编程和运营过的微信公众号和小程序

        前段时间,我们公司有小同学想要离职,理由是在公司学不到东西,没人带他。我想以自己的亲身经历告诉他真正想学技术是没人能拦得住的瀚码技术并不是一家以007,996的为文化的公司即使工作占据了日常生活中的一部分时间但是我们仍然有大量的业余时间如何高效的在常规时间内完成本职工作如何充分的利用业余时间为自己充电这是每个积极向上的技术人所要自己摸索的课题一个正确的职业观应该是公司是付工资请来解决问题的,而不是请来学习的切不可产生为了公司为他人而学习的错误的想法更不该认为在工作中有人去带去教是天经地义理所当然的职场人应该树立起正确的职场观念,如此才是对自己和公司负起了责任。


下一篇《我的程序员生涯--步入职场(三)》

发布于 2022-10-09 13:34

免责声明:

本文由 赵翔 发布于 瀚码技术 ,解释权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论