打印

毕业一年的我,请匠人拍砖~~

[复制链接]
36714|197
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liang7143|  楼主 | 2010-10-14 10:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道什么时候注册的21IC,个人感觉挺早的~~大二那会吧~~
似乎没有发过帖,也没有灌过水,就这样过了很久~~~到了现在~~^_^

匠人的书买得也挺早的,好像大三那会吧,然后又买了圈圈的书,阿南的书~~~似乎没怎么看过,就这样又过了很久~~到了现在~^_^

今天心血来潮~~写点一年来的见识~还有对行业的一知半解~~
先写个引子,待会慢慢上传~~
欢迎前辈批评赐教~~~请匠人拍砖~~

相关帖子

沙发
liang7143|  楼主 | 2010-10-14 10:59 | 只看该作者
1、单片机入门
        04年参加高考,不幸选择了复读,05年继续高考~~又是不幸~~~
        “无奈”之下来到我的母校~~04年才升的本科,我05年入校,我们系是04年才成立的,之前有一届专科,我是我们学校我们系第一届电子专业的本科生~~开山鼻祖~~听着很不错~~O(∩_∩)O~
        07年电子设计大赛,读大二的我有幸参加了~~没有为什么,因为我们是第一届,没有比我们高的年级了~~当时我入选学院电子设计队的原因,说出来估计大家会大跌眼镜~~老师说我C语言很好,真的很好吗?其实不然,只因为我那年考试,C语言成绩是全班第一~~
        我就这样开始入门单片机了,当时的我只会用C写几行程序,不知道电阻电容三极管为何物,也不知道KEIL C、protel为何方妖怪~~(这里把结果提一下,当年的大赛成绩自然是惨败而归)。
        我的单片机学习之旅似乎和大家不一样,是先有感想认识才有理性认识,是先学实践再学的理论~~
        07年暑假都是在学校实验室度过的,每天参考历程,修改程序~~我现在都感叹,我那时候C语法是否真的不错?改来改去的居然还能通过编译器的编译~~~问题自然会有很多,然后就会在论坛,群里到处问(为什么没有问老师同学,因为老师也不懂),但是很少有人回答我,不是人家不热情,而是我太笨,人家说得最多的就是 叫我回家看书~~先把概念弄清楚再来问~~~就这样暑假过完了,我觉得我还行,至少我没有选择退赛~~~我还是把作品交上去了~
之后直到大三学院开了单片机课程,我才了解其中很多原理,那个时候也算是入门了吧~~

总结:我很懒~~~有点投机取巧~~目前还是……一直想改,似乎一直改不了~~

使用特权

评论回复
板凳
liang7143|  楼主 | 2010-10-14 11:28 | 只看该作者
本帖最后由 liang7143 于 2010-10-14 11:51 编辑

2、迷茫的大学
        不说在大学,似乎我一直都很迷茫~~~现在我一下班回家~~躺到床上,习惯性的对老婆说:我得看书了,不看书以后怎么养家糊口啊~~于是拿着匠人的书,翻了起来~~但是不超过半个小时,我就差不多呵呵入睡了,匠人大哥你要原谅我,我知道你的书是用来学习的,不是用来……O(∩_∩)O~如果哪天我看明白了,我是该庆幸自己能力提高了呢?还是该感叹匠人大哥水平下降了?
        大三那年,我参加了国家软考,考了个软件设计师(04年以前叫高级程序员),国家还把这个同资格认证挂钩~~我那时候挺高兴,我觉得以后找工作应该好找了,好歹我也算“工程师”级别了。出来后发现,压根就不是那么回事!这个证也一直没有派上用场~~如果那个朋友要考这个,我们可以交流下经验,能力是没法提高,但是考试嘛,还是有办法的,也是可以投机取巧的~O(∩_∩)O~
        大四那会,流行考研,我自然也被流行了~~成绩出来,我倒是很淡定,人家差一点我差一截,人家差几分,我差几百分!这样也挺好没有啥遗憾的~~

总结:大学做梦一样的过了,用网上的话说:大学上的我,还是我上的大学~

使用特权

评论回复
地板
yuyi21ic| | 2010-10-14 11:58 | 只看该作者
“大学上的我,还是我上的大学”,你上大学的同时大学也上了你。“上”这玩意从来就不是一个人的事。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mcu_c10g16 + 1
5
老鱼探戈| | 2010-10-14 12:11 | 只看该作者
赶上直播了/

使用特权

评论回复
6
yfy871216| | 2010-10-14 12:19 | 只看该作者
大哥真幽默……

使用特权

评论回复
7
月生1991| | 2010-10-14 12:23 | 只看该作者
本帖最后由 月生1991 于 2010-12-11 10:42 编辑

:)

使用特权

评论回复
8
liang7143|  楼主 | 2010-10-14 12:54 | 只看该作者
本帖最后由 liang7143 于 2010-10-14 13:00 编辑

3、工作
        从开始工作到现在,我已经换了三份工作了,跨了二个行业。最长的一份工作10个月,最短的是目前的工作,已经三个月了,还在工作中……尽管换得挺快,但是中间真的没有休息~
        09年2月,一公司来我们学校招人,我在毫无准备的情况下,被招进去了,并被通知要求立即上班。迷茫的我,没有思索太多,有地方收留我就去吧(当时正是经济危机,人心惶惶啊,想都没有多想,工资也没有谈,经济危机嘛,有地方去就不错了)。
        到了公司,担任单片机工程师一职,名字还挺不错的。开始就看程序玩DEMO板,有时候还自己画几块板。直到一个月以后,公司变故,公司技术骨干走了一大半自己创业去了。我被老板调到了前线,开始拼命的干活。到09年10月离职的7个月里(中间的请假加起来有差不多二个月,回学校交论文答辩,公务员考试,同学离别等很多事),我参与了将近十来个小项目,所作的工作就是把以前的程序修修改改,PCB板图图补补。无偿加班时习以为常,我记得最长的一次是连续超过四十天,没有休息一天,每天都是在11点以后才下班。有时候压力大的时候,我会打电话给我的同学抱怨,我说我一个刚出来的学生,为什么要承担这么大的责任,为什么要干这么多活!2k的工资就只应该承担2k的责任……抱怨完了,回去继续上班干活!
        09年10月,我的抱怨声被我一个好久没有联系的同学知道了,他叫我去他那公司上班(相当于内部推荐吧),我请假参加了完了面试,笔试,第二次面试。直到最后录取我才和当时的老板说辞职。我觉得我挺对不住那老板的,走的时候我和他说:接下来我会免费为你工作一个星期,来完成我手中的项目和交接(因为公司小也没有签合同,所有离职没有那么复杂)!最后老板还是把工资结给了我。
        09年10月到10年8月,这是我在第二家公司的工作时间。我们部门开始有8个人,部门老大,再加2个硬件工程师,3个软件工程师和1个测试工程师,1个工程文员。我是最晚加入的一个软件工程师。10年初走了二个。老大可能和老板不和,到7月初的样子,就走了。之后老大就找我,他说他要创业,叫我去帮忙。我想过来想过去,呆在公司也没有啥意思了,部门的人都走得差不多了,跟着老大混也许不错吧(老大说会给点股份给我,尽管很少,但是我想我一刚初校门的娃,也没啥资本,更没啥后顾之忧),一来可以做点技术,二来可以接触客户。就这样8月离职,跟着老大做到现在。

总结:我在怀疑我是不是 霉星,怎么一到公司大家就撒了~~

使用特权

评论回复
9
chenke1988| | 2010-10-14 13:02 | 只看该作者
嘿嘿!!挺幽默的啊!!继续更贴啊!

使用特权

评论回复
10
金戈铁马| | 2010-10-14 14:09 | 只看该作者
这个必须顶,强烈要求版主加酷

使用特权

评论回复
11
xuyiyi| | 2010-10-14 14:12 | 只看该作者
写的不错,真情流露。

顶!

使用特权

评论回复
12
linbei1988| | 2010-10-14 14:44 | 只看该作者
看直播....还有4么?

使用特权

评论回复
13
liang7143|  楼主 | 2010-10-14 15:00 | 只看该作者
本帖最后由 liang7143 于 2010-10-14 15:05 编辑

4、C
        阅读须知,本小节开始请**以下二个原则:
           1:用情专一 —— 糟糕的设计者才会抱怨自己的工具是如此的糟糕!
           2:不追求完美——任何接近完美的东西,也接近崩溃的边缘!
        如有雷同,请参考雷同之处,如有非议,请参考非议之处,如本人异想天开,请直接拍死在岸边上……

        毕业一年多了,工作经验也是需要谈谈的~~~先说说毕业以后对C的从新认识吧,呆会再说说自己的一个小项目~~

        1)、指针和数组是有区别的,尽管a[ i ]这样的形式,总会被编译器“改写”或者解释为*(a+i)这样的指针访问。正如诗和词,诗是诗、词是词。尽管诗词二字经常连着用,但是二者还是有区别的。指针作为函数参数时,必须知道实际传递给函数的是一个数组。把一个数组定义成函数的参数时,在函数内部事实上都是一个指针。比如下面的程序:
             int i[3] = {1,2,3};
             void sum(int arr[])
             {
                arr = i;
                ……
                return;
             }
        arr = i;这句是合法的,因为arr虽然声明为一个数组,但实际上是一个指针。
        a[ i ]会解释成*(a+i),所以*(i+a)和i[a]这二种奇怪的方式,也是等价的~~
        2)、指针在使用之前都必须初始化,可以延伸为所有变量在使用之前都初始化。也就是说变量作为右值时,其值必须确定。废弃指针一般都赋值为NULL,NULL其实就是0,那么他是指向0吗?其实不然,他不指向任何地方。
        3)、像很多大牛一样,不使用goto语句。
        4)、操作符优先级只记住乘除法运算大于加减法运算既可,其他地方一律加括号。
        5)、不写需要依靠编译器才能确定行为的语句,比如如下问题语句:
                sum(a[i++],a[i++]);
             不能引用已经被释放的空间,比如如下问题语句:
             p = Test();

             char * Test(void)
             {
                char * p;
                ……
                return p;
             }
        6)、时刻谨记对数组的操作是否已经越界,时刻谨记字符串需要多一个字节用来保存'\0',随时区分以下语句的区别。
                char string1[] = "abc";                        //大小为4
                char string2[] = {'a','b','c'};                //大小为3

使用特权

评论回复
14
pineapple2009| | 2010-10-14 15:04 | 只看该作者
记号,有空再看

使用特权

评论回复
15
liang7143|  楼主 | 2010-10-14 15:25 | 只看该作者
多谢各位的捧场,我会继续更新的~~

使用特权

评论回复
16
seabada| | 2010-10-14 15:37 | 只看该作者
记下  等待更新

使用特权

评论回复
17
hbicecream| | 2010-10-14 15:57 | 只看该作者
考楼主一个问题
char a[];
int   b[];
a和b都是指针,它们在实际执行时有什么区别?
如果我用强制类型转换,将它们的值互换,在执行a++;和b++;时会发生什么?

使用特权

评论回复
18
McuPlayer| | 2010-10-14 16:43 | 只看该作者
刚毕业一年,就注重总结以提高,非常值得赞扬

使用特权

评论回复
19
liang7143|  楼主 | 2010-10-14 16:54 | 只看该作者
本帖最后由 liang7143 于 2010-10-14 17:01 编辑

17# hbicecream 首先说明一点,a和b都是常量指针,在实际的执行中会被一个具体的数值所代替~~
所有不管你怎么强制转换,a++,b++都是不能通过编译的。
我知道你的意思,你想问这个指针加的字节数多少?
如果char型是一个字节,int型是4个字节(ANSI-C规定编译器实现的时候 int型只要大于short 小于long就可以),
那么char *型变量加1就是加一个字节
int *型变量加1就是加四个字节


您的这个强制转换,在处理保存数据  大端小端的变换非常有用 比如经典的应用:
WORD
LE16ToCPU( WORD val)
{
     WORD retVal;
     ((BYTE *)&retVal)[0] = ((BYTE *)&val)[1];
    ((BYTE *)&retVal)[1] = ((BYTE *)&val)[0];
   
   return retVal;
}

使用特权

评论回复
20
liang7143|  楼主 | 2010-10-14 16:57 | 只看该作者
5、第一个项目
        第一次总是那么的新鲜,也是那么的刺激!有言为证:初生牛犊不怕虎。我是菜鸟我怕谁。相信21IC上很多大牛第一个项目的时候,比我还菜~~~哦也,我代表月亮告诉你们,在第一步我已经超过你们~~~O(∩_∩)O哈哈~~~也希望大家不要用“赢在起点,输在终点”、“人生就像赌博,开始给你赢一局,给你过过瘾,最终赢的只会是庄家”之类的言语来打击我弱小的心灵!菜鸟罢,新手罢,让他自娱自乐,自生自灭去吧~~~~
        10年5月,工作一年零2个月的我终于有了自己真正意义(何为真正意义,就是独立研发)上的一个小项目,也就一个小东西——车门锁,我负责软件的编写。项目虽小,五脏俱全啊~~我当时那个兴奋啊,我那感觉就是我终于要解脱了,我终于可以在一张白纸上,天马行空自由发挥了,我也要当一回爷,再也不要忍受前人风格各异的代码了,让后人也感叹我一回(可能更多的是辱骂,但我听不到,我不在乎O(∩_∩)O~)。

        说说这个比牛还小的项目的一些功能吧~~牛好像不小哦~~犯错误了⊙﹏⊙b汗
        1)、“开”、“关”、“车身”三个按键,开为开门,关为关门,车身按钮,按一下车门动作,再按一下停止,第三次按下反方向动作。
        2)、二个RF遥控按键(使用软件解码),“开”和“关”,执行开门指令,需要在2秒内连续按下2次"开"键,执行关门指令,按下"关"键立即执行。
        3)、在开/关门的进程中,可以使用任意按键中断本次进程,车门暂停动作。根据下一次的按键/遥控指令,再执行相应操作。
        4)、车门移动期间,蜂鸣器声音提示。
        5)、具有遥控器学习功能。
        6)、开关门到位检测功能。
        7)、防夹检测功能。
        7)、马达过流检测功能。
        8)、车门状态显示功能。

总结:生活是美好的,过程是痛苦的,我快乐着且痛苦着~~经验的不足,能力的不足,项目完成质量必然不会很高。唯一欣慰的就是最终得到了客户的认可~~~呵呵呵呵,白猫黑猫能拿老鼠就是好猫~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

1868

帖子

0

粉丝