那些年啊 那些事——一个程序员的奋斗史 ——44

2023-10-22 23:50
文章标签 程序员 44 奋斗史

本文主要是介绍那些年啊 那些事——一个程序员的奋斗史 ——44,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

蓝牙程序,对于写了几个小程序的段伏枥来说,其实并不是一个非常难以企及的目标。产品的蓝牙是用模块的方式,通过串口和CPU进行连接的,只需要发送相应的AT指令即可操作。因为通信的管道是串口,而串口基本上是每个CPU必备的,何况在Windows CE里面也有相应的串口驱动,所以这个蓝牙也不需要特别的驱动。像这样的蓝牙模块方式,在操作上是非常简便的,但缺点也是很明显,就是声音的控制无法统一。因为声音是直接从蓝牙模块发出来的,只要直接接上喇叭即可;看似简单,就是很难和系统CPU的音源统一。也就是说,当系统的音量调到最小甚至静音时,很可能蓝牙声音却是很大的。
   
    模块的另一种连接方式,则不是直接输出模拟音频,而是I2S,直接输入到CPU里面。因为音频是输入到CPU,然后CPU又输出,所以CPU不仅可以控制音量的大小,还能够给声音增加特效,比如什么音乐厅啊,Pop之类杂七杂八的。但这样的问题在于,这声音还需要相应的驱动,对程序员的要求比较高;不仅如此,也需要CPU有相应的I2S输入。只不过AU1200没有I2S接口,倒也省去不少麻烦,否则这驱动绝对是让段伏枥掉头发的。
   
    蓝牙还有一个指标,就是通话的质量,有无什么杂讯或回音之类,但这些却不属于段伏枥的职责,这是硬件所要注意的。只不过,采用这种完全模块的方式,其实连这点也不用考虑的:模块能做到什么水准,就必须要接受。唯一能改善的,就是选择不同的麦克风,以此对比质量而已。而对于软件,从总体上来说,并没有太多的技术难点,对于新手而言,可能就是多线程的配合。比如说,因为来电的时候,模块就会通过串口来发送信息告诉现在的状态,而这就必须要有一个线程一直在监控数据。看起来似乎和音频播放器差不多,但实际上要处理的意外还比较多的。音频播放器再怎么折腾,也是在同一个系统中;而蓝牙,则是和外部的模块交流。于是,有一些难点就来了:开始拨号,要有一个线程来监控数据,确定什么时候挂机;可如果在开始拨号,并且已经开始监控的时候,蓝牙模块突然接收到了来电,而这时发送的状态肯定不是预计所想的。那么就必须要重新清空之前的状态,更改相应的监控准则。类似的状况,还不止一种,如果互相交杂,那么就疲于应付了,段伏枥现在就处于这种状态。因为一开始的架构设计并不是非常好,如果遇到一种异常情况,就加多一个BOOL变量的标志,然后代码中再来一个esle if来延伸。随着异常的逐渐发现,标志也越来越多,else if也越来越长,到后来段伏枥已经觉得这代码膨胀地已经失控了,根本无法再受自己控制。
   
    状况无法掌控的情形,不仅出现在段伏枥,沈俊也是如此。在段伏枥开始写蓝牙程序几天之后,沈俊就已经从学校回来了。知道来了新硬件工程师,倒不觉得有什么不妥,反而非常高兴,因为觉得终于有人可以带自己了。只不过这高兴劲没持续多久,就被工作任务折磨得疲惫不堪:这个第二版有一个非常严重的问题,GPS收星非常差。这个问题在当年浩程微的时候也是如此,并且一直都没有很好地解决;而现在的状况比那时候更糟,以前的还能够偶尔接收到三颗卫星进行定位,现在的这个最多就只能接个两颗,从来无法定位。
   
    黄华中的说法是沈俊没经验没关系,他带着她来调试这GPS。可吊儿郎当的黄华中,说起话来倒是好听,但做起事来可真不敢恭维。虽然没有制度约束,大家都是九点之前来到办公室,可黄华中能在11点之前来到就是谢天谢地了;而每天等段伏枥他们下班之后,还要强制拉着沈俊加班,要知道那时候已经差不多11点了啊。对此沈俊也叫苦不迭:为何其它同事都已经下班了,她还要单独被留下和黄华中一起加班?到底打的是什么主意。所幸什么事情都没有发生,应该说,黄华中什么正经事都没有做——他就呆在办公室纯粹玩斗地主了。他唯一所做的事情,就是不停变化主意,让沈俊弄弄这个,测测那样。只可惜,这些简直是瞎指挥,还能有什么好的结果?
   
    武总对于这GPS的收星也非常关心,毕竟一个导航仪无法正常接收卫星信号,那算是什么?因此,武总基本上每天晚上都询问黄华中,而黄华中每次都会信誓旦旦地说:“经过今天的各种调试,现在GPS信号非常好,不到一分钟就能够定位。你要知道,为了这个,我搞得头都疼了。”的确是搞得头都疼了,不过并不是因为调试这GPS模块,而是因为斗地主搞的。
   
    等到第二天,武总过来查看状况,发现这收星没有之前所说那么完美,质问黄华中的时候,黄华中就会非常义正言辞地说:“沈俊,这GSP怎么回事?昨天晚上我一直测试到晚上3点钟,一直都是好好的。你是不是今天弄了什么?”
   
    沈俊上班到现在,都没碰过黄华中办公室的那片板子,自然反驳到:“我什么都没弄啊!”
   
    黄华中暴跳如雷,气愤地说:“怎么可能?你肯定是在上面弄了什么!之前这板子都是好好的!我不管,你负责将这板子给弄好!”
   
    弄好?怎么弄啊?这板子之前是好的,鬼才信!调试到3点?估计是玩游戏到3点吧?可人家是老大,能说些什么呢?在武总面前总不能拂老大的面子吧?于是,每逢这时候,沈俊总是强忍委屈,默默含着泪开始毫无头绪折腾这该死的GPS模块。
   
    这种类似的推卸责任,其实也发生在曹燕身上。只不过曹燕没有像沈俊那般忍气吞声,而是当场反驳,颇有种誓不低头的气势,黄华中见状,知道无法将责任强加于她身上,便也什么话都没说了。这么顶撞黄华中,曹燕本以为自己免不了要吃一顿炒鱿鱼,可没想到什么事情也没发生,反而后续黄华中对自己还客客气气的。欺软怕硬,看来是黄华中的本性。虽然曹燕后来告诉沈俊,有一些事情如果并不是自己的责任,必须要硬起来。可沈俊虽然听进去了,却不敢付诸于行动,理由很简单:自己刚毕业,什么都不懂,好不容易有这么个机会,可以长进技术水平,不想因为和老大冲突而导致离开。
   
    听起来,沈俊的想法是有一点道理,但如果再细想,却并非如此。现在公司是一个什么状况?人员只有三四个人,一间小小的办公室也破破落落,没有社保,没有任何福利,有几个有经验的人士会过来?如果薪水开得很高,也许还能招到一些水平不错的,可估计武总根本就不会舍得出钱。所能招的,也就是一些毫无经验,什么都不懂的应届生。从这个角度来说,也不难理解为何沈俊虽然来得比曹燕早,但却经常受到黄华中呵斥,而对曹燕却客客气气——因为曹燕是有经验的,难得骗来一个;沈俊属于应届生,满街一抓一大把。
   
    段伏枥也知道自己在公司的位置举足轻重:张文香是管采购的,也就会买卖元器件,顺便兼任一下日常事务;黄华中、沈俊和曹燕都是做硬件的,对软件可谓一窍不通;另外一个做软件的柳,可惜也不思进取,只能凭着以前单片机的经验做做底层驱动的调试,对于应用程序绝对没有半点涉猎;因此只剩下段伏枥一人,顶起了公司应用程序的一边天。这边天可不能倒啊,没有应用程序的公司要怎么继续生存下去?虽然黄华中做人不靠谱,但这点厉害关系还是看得清清楚楚的,所以对于段伏枥也是非常客客气气。不仅如此,还口口声声称段伏枥为兄弟,让人感觉关系非常铁。
   
    所幸段伏枥不是那种恃宠而骄的人,虽然对此也心知肚明,但还是和以前一样,恭恭敬敬称呼黄华中为老大,对于老柳也颇为尊敬。很多初出茅庐的应届生,当上头对他有所青睐的时候,往往容易得意忘形,开始看很多同事都不顺眼。于是慢慢地,很多同事都看不惯他,慢慢他也就被孤立,甚至还有可能被同事在背后捅刀子,最后导致一发不可收拾的悲惨结果。
   
    应届生的技术水平普遍不咋地,提高自己的技术水平是首要任务,毕竟关系到自己的前途。可在提高技术水平的同时,也不能忘记人际关系的磨练,可偏偏很多应届生就栽在这里。同事间的关系不像同学,同学关系其实非常单纯,没有任何利益关系;而同事呢,更多的是一种利益,如果这利益互相没有冲突,那么还好,但如果有冲突的话,因为一个萝卜也就一个坑,如果那个坑被占满了,那么其它的萝卜也种不进去。所以这时候,不是同事踩着自己,就是自己踩着同事,总之爬上去的只有一个人。因此,如何正确处理同事间的关系,便显得尤为重要。
   
    所幸的是,现在利剑公司就只有这么几个人,所以这些勾心斗角的关系还不存在。因此段伏枥还能不管这些人际关系,可以心无旁骛地专研技术,这应该也算是不幸中的大幸了。           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述

这篇关于那些年啊 那些事——一个程序员的奋斗史 ——44的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/264379

相关文章

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

黑马程序员---银行业务调度系统

模拟实现银行业务调度系统逻辑 需求分析: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 异步随机生成各种类型的客户,生成各类型用户的概率比例为:         VIP客户 :普通客户 :快速客户 =  1:6:3。 客户办理业务所

黑马程序员---空中网面试题

空中网4k/5k月薪挑选大四实习生的线程题     两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去做

黑马程序员---线程并发库

软件包 java.util.concurrent 在并发编程中很常用的实用工具类。 请参见:            描述 接口摘要BlockingDeque<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。BlockingQueue<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及

黑马程序员---多线程

TraditionalTread 传统线程技术回顾 创建线程的两种方式: thread3中,同时创建了Thread的子类和Runnable,那么会优先执行Thread的子类,因为Runnable的代码被当做参数传到了Thread类里,Thread子类的run方法又覆盖了父类的方法,所以会执行Thread子类的代码。 package cn.itcast.heima;public class T

黑马程序员---代理

分析代理类的作用与原理及AOP的概念 代理的概念与作用  1.已经写好一个类,现在要为这个类增加一些功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做? 现在我们写一个代理类: 保持了原来那个类的功能,又增加了你现在需要的功能。 主函数调用的时候,直接调用代理类就行了。 这就是代理类的功能。   2.编写一个与目标类具有相同接口的代理类,代理

黑马程序员---类加载器

------- android培训、java培训、期待与您交流! ----------   简要介绍什么是类加载器和类加载器的作用 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader   类加载器也是Java类,因为其他是java类的类加载器本身也要被