为什么叫经历,不叫生涯,因为没有拿软件作为吃饭的家伙,所以只能概述自己的接触过程。有时候想啰嗦几句但是总没有个引头,正好今天论坛里讨论了一下App的实现,所以就想把自己的经历梳理一遍。
我们是江苏第一届高考需要计算机等级考试的,所以02年就接触了编程,用的是VB做到计算器,实际上连开关机都不知道的学生,纯粹是跟着老师一个字母一个字母打出来的,就只有一堂课,完全是不知所云。
大一真正开始学习C语言,感谢计算机老师的专业!我们的老师现在是学校最年轻的教授了。当时也才30岁左右,教的很好,重要的是会现场给我们演示很多算法,我们底下也经常用旧电脑自己验证,算法的神奇让我很喜欢软件这个工具,很多地方有了自己的改进。C语言我是考了全班第一,或许走下去也是个不错的路子。
大二进了实验室学习,自己自学C++,当时可以选择Borland C++ Builder(BCB)或者Visual Studio 6.0,也就是传说中微软打了翻身仗的VS 6.0,微软把Borland公司首席架构师挖走开发出来的,从此以后,一代编译工具BCB从此没落,到现在被别人收购不再更新。但是在当时,BCB更先进和好用,但是随后支持的越来越少,兼容性越来越差,现在只剩很少的铁粉在坚持使用。
我用BCB用了三四年,经常给同学们做些小软件,取个字模,生成个图像之类的,甚至自学了分形算法。当时实验室主要是做图像处理,做一些小软件去实现去噪锐化等操作都有,比较记忆深刻的就是设计的快速马赛克算法,虽然没被认可,但是速度绝对比一般的要快的多。
大二学习的模拟电子,接触单片机,于是同时使用keil作为单片机的开发工具,自己做了一个电子琴,参照网上的查表法以后觉得谱子转换成代码不方便,所以自己重新设计数组,可以0经验快速转换曲谱,也算是个改进。
大学期间虽然做软件参加竞赛也拿过奖,过了几年之后再看都是简单的可笑。
大四的时候有一个选修课,当时我们学校和微软共同组建的一个实验室,很先进,一个带触摸屏的Linux开发平台,学习了命令、编译、烧写等各种操作。可惜的是,老师教是教了,开头就没讲这是什么东西,傻乎乎学了几节课结束了,都不知道能干嘛。几年后才突然发现,原来我是学过Linux的,实际上全都忘光了。这也是国内教育的悲哀,和实践结合不起来,所以工作中学习的更快。
很快就毕业了,其实大学期间很多都还是自己摸索的,由于选择了BCB,资料很少,论坛也少,现在想想,有点鸡肋。可惜上学的时候没有更深入的学习软件知识,当时有个计算机系的朋友想送我一本软件架构的书,可惜没要,或许我现在都是拿年薪的高端架构师了。
第一份在BYD的工作,主要设计液晶屏的驱动,改进了不少,但是主要工作只是C8051的单片机,虽然想办法做了很多更好的界面设计,但是平台所限,性能做不上去了。第二年准备上ARM平台的时候,项目停止,所以进一步学习的机会也就没有了。
期间唯一值得称道的事情,就是几年前我在博客里写过的,用BCB在宿舍花了两三个晚上写的视频播放平台,通过USB向下位机发送视频在屏幕上播放,原来的设计是专门的系统部几个人写了几个月花了几万块最终写出来没法升级的软件。区别在于他们写的是软件带解码,而我是用系统自带的解码,然后截图的,时间和效率完全不对等。几年后我回去的时候偶然还看到他们还在用这个软件展示的时候倍感欣慰,好像自己还做了一些事情。
到了南京一开始在中兴呆了几个月,当时是想做软件,结果发现中兴每天都在发整改报告,每个人写的代码风格都不一致,命名千奇百怪。虽然都是加班到9点,但是感觉效率不高,所以我觉的这家企业做事希望不大,果断离职,现在8年过去了,曾经和华为不分伯仲的企业现在被华为甩得远远的了。做产线管理的产品工程师,除了用C8051的平台优化了测试夹具的设计,很少再用软件了,十分可惜。
不过中兴的经理在我辞职的时候跟我说的那句话很有道理,很多公司喜欢并需要做过大型软件开发的人才。我现在就是缺乏协同软件开发的能力。甚是可惜。
再回到深圳,软件用的更少了。只是简单开发了一些测试程序,都是很小的架构。
日常当中,都是个人的兴趣做一些学习,正如今天论坛中讨论的那样,架构更新的太快,开发工具也迭代的太快。最开始学习的BCB6.0的时候,好几年不用升级开发工具,但是随着VS6.0发布,后面VS2010~2017,每一年都有新的版本出现,BCB同样如此,10年我试用了BCB2010版,发现界面改动较大以外,语言格式变化的更多。虽然都是C++的标准,但是每一种开发工具每一次升级都对语法有一些改变,比如最开始我最喜欢用的IntToStr这个函数可以简单的将数字变成字符串,后面都取消了。这种不能向下兼容的问题导致我以前开发的程序都无法通过编译,所以也极大的影响了我这种非科班出身,也非软件开发人员的学习动力。
后来也接触了App的开发,google有自己的开发工具,VS下面也集成了,同时还有一个国产的叫E4A的汉语言开发工具,很简单,这类语言的通病就是入门容易,做好很难。我曾试用E4A一段时间,一方面好多资料找不到,另一方面是收费的,所以也没过多的研究。国内很多工具都是这样,功能没做好的时候先开始收费了,并不是说收费不对,而且觉得这样限制了工具的推广。正如杀毒软件,360成功的将这个领域给爆破了,同时你会发现,病毒也少了很多,究其原因,想想杀毒软件公司靠啥吃饭的,就明白了。
不过E4A还是有自己的独到之处,用的是汉语语法,所以更容易看懂。
是后来接触到python这个新兴语言。号称最简单易学使用量最大的新兴语言,论坛里也是铺天盖地的都是python的资料。学习了一阵子,的确有独到之处,不过跟我实际需求差别很大,没有界面,注重于算法,主要用于人工智能,不擅于开发app等,所以了解了语法以后也没有继续研究下去,想了好多天不知道我在什么地方能用到。更奇怪的是python2/ python3同时存在,语法不同也不通,而且还同时在更新,不知道历史原因如何,挺奇怪的。
这两个月想写个win平台的程序,选来选去最后又用回了16年前学习的工具:VB,这个开发工具中排第四的;对于我这种解决工作中小问题的软件项目的确很好用,而且升级也很慢,不用担心语法问题。所以现在就一直在用VB了。
以上就是我使用软件的流水账。由于我不是科班出身,也不是软件从业者,日常工作几乎用不到软件的开发。所以软件开发能力逐渐下降;与此同时,开发工具的迭代越来越庞大,到现在VS2017都不支持离线安装,只能在线选择安装哪些之后自动下载安装,简简单单就十几个G,使用学习都很困难,可以想象以后我的软件使用将会更加的限制。
我这样的工程师是个小众的群体,也希望以后能遇到一个合适的简单好用的开发工具,我们不需要专业的**件套的工具箱加一个车库,或许一把耐用的螺丝刀就好。
zhujun74_602010376 2018-12-2 17:01
1451262183_584877486 2018-11-28 21:45
忆轻狂 2018-11-19 09:20
用户3884452 2018-11-16 20:13
老树 2018-11-12 14:26
用户616270 2018-11-8 09:26