一个业余程序员的自我修养

前言

看过我以前文章的朋友一定猜到我其实是一名主业为网络运维的中老年工程师。一直守着自己的一亩三分地,似乎也还能勉强度日,但是否能在2021年前成为主席要求的全民小康社会中的一员,我表示深感忧虑。何谓小康?我心目中的硬性指标是有2套自己的房子,一辆20左右的车子。在我生活的城市,这意味着至少要攒够小300的存款。

除了电脑,一无所会

从小到大,似乎除了电脑相关的技能,其它都近乎于白痴状态。过了30岁,还想做人生的加法,我害怕自己太过天真。但让自己变得更好的想法,又时刻在心里上窜下跳。更何况做IT这一行,不时刻给自己充电,是一件很恐怖的事情。

喜欢就该去尝试

其实我一直对写程序很有些喜欢,只是自己平时的工作很少有接触的机会。有人说过,没有机会,就自己创造机会。我开始利用业余时间学习写点小程序,最初的动机,就是单纯的喜欢和尝试,没敢奢望还能创造出什么经济效益。

第一个程序

我的第一个真正的程序是用vb6写的,主要的功能是计算值班信息,运维人员是需要轮流值班的,将值班规律计算出来,就可以查看自己的值班情况,从而进行时间的规划和安排。就这么一个简单的程序,花了我大半个月的时间,还买了2本相关的书籍来看,可以说是边看边写,没有一丁点儿的设计架构意识。经常为了一个不懂的语法,到网上琢磨半天。值得欣慰的是单位为此奖励了我50元钱,尽管现在看来很少,但我在意的是得到了认可。后来调离了原来的部门,但听说那程序还有人使用了好长一段时间,着实没有预料到。

第二个程序

第二个程序是用asp写的。因为运维人员需要管理很多网络设备,而这些设备分布在不同的机房不同的机架。当时的设备管理非常之混乱,有用excel记录设备信息的,有用纸笔记录的,大家查询起来很不方便。我就和另一个同事一起写了一个设备管理程序,实现了设备的统一管理和登记。后来另一个同事因故离职,开发和维护就落在我一个人身上。再后来,我也离开了公司,但听说这套程序他们一直沿用了多年,也算不枉费我那一个多月的心血。

移动互联网时代,我的第一个app

对于业余程序员来说,移动互联网的到来提高了写程序的门槛,因为它将程序分为了前端与后端。一个手机app,并不只是你看到的界面,它背后的数据展示和交互是需要前后端一起来完成的。UI的设计也变得越来越重要,毕竟人们的审美观念也在与时俱进,变得越来越高。我关注的重点还是在程序自身方面,这个时候对MVC有了一定的了解,明白了数据模型,控制器与视图之间的关系。

要想写个手机app,你至少要会三种程序语言,android的java(或者kotlin),iOS的Ojbective-C(或者swift),后端接口(C#或者php等等)。还要学会SQL数据库操纵(mysql或ms sql等)。现在的手机系统,谷歌的android和苹果的iOS双雄并立,必须将双方都照顾到,app才有可行性。

千里之行,始于足下。我开始了自我修行之路。程序的功能还是和值班相关,新的单位有很多不同听值班种类,在之前都是通过excel进行管理,人员之间的排班、调班非常的麻烦,还容易出错。

我首先编写android端的程序,android主要使用java语言进行开发,之前对于java并不太了解,花了一周时间听了一套网课,就强行当自己入了门,又开始了自己边写边查资料的老套路。同时后端接口的开发也得同步进行,因为手机端的功能需要从后端获取数据。

android端的开发到基本完成,我花了40多天的时间,后来回想,经常为了找一个bug或者自觉棘手的问题花上整整一天的时间甚至更多,我想这是新手必须要付出的代价。但当成品出来的时候,我心里的成就感非常的真实,这就是我在互联网上生的小孩儿啊。也是在这个时候,我有了找梯子的需求,毕竟很多文档都放在谷歌服务器上。

编程对于我来说,是一种会上瘾的习惯,可能真应了那么一句话,当兴趣不是你的职业的时候,它是非常nice的一件事情。

android那边的事告一段落,开始了苹果端程序的编写,自认为有一定C基础知识的我,在OC面前完全败下阵来,奇怪的语法结构和写法,让我不得不买了一本OC基础语法书来啃。30余天的奋战,苹果端的程序也终于敲完了最后一行代码。

一个段落

整套程序历时近三个月,终于有了一个结果。从设计、编写、测试我一个人包了全场,我只想说,过程全是泪,结果略欣慰。提交给单位领导,没想到立即得到了认可,并在单位进行了推广。大家都成了我程序的测试员,给我提了很多宝贵的意见和bug。

到现在,软件的运行已经趋于稳定,而对我自己来说这算是一种成长。我想,在人年青的时候,总要学会自己给自己找点事情来做。不管小事大事,只要认真去做,一定会有收获,会有成长。这种收获有精神上的,当然也有物质上的。

我不敢说我的业余爱好能给我带来什么,但我一直认为,人,总应该让自己保持忙碌状态才不至于辜负了时间。

本页共24段,2021个字符,5683 Byte(字节)