十八年开发经历小结

2023-10-30

原文地址: http://blog.csdn.net/binarytreeex/article/details/7999853#comments

本来题目想写为“十八年开发经历总结”,但是一想我的开发生涯还没结束,怎么就总结了呢。再说个人的一些积累和看法也不一定正确,所以还是改为小结比较妥当,言下之意自己还需要继续积累进步。本文主要谈几点个人的体会,这些内容有一部分可能只是我自己遇到的问题,相信还有一些其他程序员也曾遇到或者面对过。之前看到这些问题也思考过,三言两语回复过,现在以小结的方式写出来,算是对自己十八年经历的一个回顾。

一.如何开始写程序的

第一次接触电脑当然是在学校里,可以说什么都没学到,也什么都没学会,相反只是增加了对电脑的恐惧。第一次真正意义上让我开始学习电脑是在1992年,我所在的部门负责销售电脑。由于那时PC(当时叫家用电脑)的操作系统是DOS的,所以为了使用电脑必须学习一下基本的操作命令。我的第一次学会使用电脑就在那个时候,这为后来学习编程打下来了基础,因为当时不会操作电脑是不可能学习编程的。

1994年7月开始在公司的人事部工作了。当时人事部有一个386的台式机,那个时候386算是不错了。机器里装了WPS和Foxbase,这个可以说是标配。我的第一门编程语言就是这个Foxbase。应该说这个东西还是很容易上手的,再则当时领导不安排什么具体的工作,所以有了大把的时间学习,结果很快就掌握了。在完全赶走对电脑恐惧的同时,对编码产生了浓厚的兴趣。当时我完全是自学的,3个月后已具备开发一个小型管理系统的能力了。然后是学习C语言,我还特意买了一本书,书名是“C语言编程300例”。编译器是Turbo C 2.0。应该说C比Foxbase要难一些,但是我比较幸运,还算是学会了。作为一个成果是用C语言写了一些小程序,操作Foxbase的数据库文件,实现Foxbase中的部分命令的功能。

这些经历让我意识到自己的特长在软件开发方面,于是开始有萌发转型为职业程序员的念头了。

二.职业程序员转型之路

发现自己的特长是一件好事,因为可以定位自己的职业方向和规划,但是具体的操作却不是那么简单的,我做了一些思考和评估。其中涉及两个问题:第一,转型是否值得?第二,做职业程序员我的能力是否真的足够。

对于第一个问题,我老爸的意见是不太支持我转的。应该说当时的人都比较相信国营单位的所谓铁饭碗,安安逸逸过太平日子,少折腾。而且当时程序员是吃青春的观念非常浓郁,有的公司甚至以本公司程序员年轻作为炫耀的资本。所以丢掉手上的铁饭碗去干一个相对风险明显要高的职业,确实是一个很难下的决定。所以我面对这个问题是犹豫不决的。对于第二个问题,从我在本单位的表现来看,写程序是我的特长。但是与所谓的以写程序为职业的那些人来说,我是否有优势就不得而知了。从各种关系得到的反馈是很不乐观的。主要是两个原因:1.我的专业不是计算机,2.没有实际开发经验。

基于上述的情况,我做了一些准备工作,首先是我给自己出了一道题目,那就是开发一个病毒程序。如果我可以独立开发出一个符合当时公安部规定的病毒程序概念的程序,那么我就下决定转。选这个题目是就很有讲究的。首先这个方向我很感兴趣,其次这个问题足够的难。但是这个题目又不是难的完全脱离实际。因为我已经学了很长一段时间的汇编,平时对病毒资料注意搜集,所以对实现病毒程序的每一个技术细节我是清楚的,只是没有实际写出代码而已。在此后的4个月的时间里,反反复复经历了好几次噩梦一般的起伏,最终还是成功实现了。整个病毒代码大概1.4K,应该不算小了。那个病毒程序发作的症状是让计算机的蜂鸣器发一次声,感染的是当时一个非常著名的工具PC Tools。当运行PC Tools时,听到的那Beep声,可能是我生命中听到的最美丽的单一的声音了。

这个病毒的成功研发完成,让真正看到了自己的专长,于是下决心转行。针对学历和经验的问题,我当时是计划用职称来弥补。所以报名去考了程序员资格与水平考试,这个考试在2000年改了,现在已经不叫这个名称了。那是1996年的事情,结果第一次考试没有通过,那是一个非常大的打击。考试的经历让我意识到自己缺了一门课程,就是数据结构,从这件事情我发现有专业系统学习的和没有专业系统学习的差距是明显的。所以一方面自学数据结构,另一方面参加了一个专升本的成人高考,专业就是计算机。此后的几年基本上就是在积累了,一方面程序还在自己找课题写,另一方面在学习计算机本科段的课程。三年以后我以本科学历,高程证书,在2000年7月开始北漂,寻找我的第一份程序员工作,那年我已经30岁了。

希望我的转型之路可以給有同样困惑的朋友一点借鉴。基本上我转型的过程还是比较慎重的,属于稳扎稳打。其实这个过程还有很多的细节是挺考验人的,限于篇幅就不写出来了。以后有机会写总结的时候再来写吧。

三.第一份程序员工作

2000年7月到了北京,然后在比较困难的情况下用互联网应聘了一个公司。我非常幸运,由于该公司正好有人离职,急着需要人来补上,所以我得到了那个职位。这个职位的考验在于需要维护一个串口通信程序,这类程序我从来没有接触过,并且所有的资料都是英文的,对我来说这个挑战不小。征服这个苦难的方法是两个:1.硬着头皮读代码,读懂它;2.硬着头皮读英文文档,读懂它。因为既然出来了,那就没有退路了,只有拼了。读代码的经历让我学到很多东西,基本上以后这类通信程序我可以写的比较到位了。所以这里也建议各位同行,付出一点努力学点东西总是有益处的。

适应了这个职位后基本上就顺手了,而且还主动配合部门经理帮助其他的同事完成其他项目。此后,我就和相当一部分的程序员那样,不断的在跳槽,在同一个公司都没有能签到第二份合同。我就像一个沙粒一样在茫茫的世界中飘荡。

四.关于跳槽

在北京打工的几年发现,要想在一个公司干长是比较困难的。即便是自己主观上有这样的想法,但是实际发生的事情却总会导致跳槽的结果。可能雇主和雇员之间的雇佣关系比较松散,同时雇员有较大的择业自由也是一个原因吧。

首先想说的是,不要只是为了工资跳槽。还有他若干因素的重要性并不比工资低。比如:

1.工作是否稳定

对于大部分人来说,能力是差不多的,稳定的工作可以避免频繁的跳槽,而导致去和比自己强的人竞争职位。我个人的观点是,今后在中国会出现越来越多的所谓大龄程序员。其原因是70后和80后这一辈的程序员的年龄开始逼近所谓的大龄了。在上世纪90年代非常流行的观点是,程序员这个职业是吃青春饭的。这里面有一个误区,那就是当时从事这个职业的确实都是年轻人,因为这个行业刚开始兴起,没有大量的老程序员。就业市场缺乏比较和选择,所以事实上造成了这个情况。但是当市场出现大量的高龄程序员时,用人单位就会比较选择了。以近几年看到的情况来说,40岁的程序员找工作也有很快的例子。所以,一个稳定的工作越来越会成为一个实际的目标。

其次,我个人的理解是,所谓打工成功,不是在于你的工资有多高,而是在于你在一个公司能干多久。因为绝大部分的软件公司都是合资,独资或者民营的,随着工作时间的增加,雇员和公司以及雇主会有越来深的情感,这在民营企业中尤为重要。这种情感的积累是个人在公司得到好发展和高工资的最好的基础。所以如果能在一个公司干长的话,就尽量不要跳槽。

2.公司领导对自己是否赏识和器重

一个有缘分的或者好的上司是一笔财富,如果自己能遇到,那就请珍惜。

3.从事的具体工作内容自己是否喜欢

开发工作包含的具体内容是非常多的,在一个职位上是否能够得到自己喜欢的工作内容,不是一件特别容易的事情。比如有的开发者,实际从事的是修改别人代码的工作,这种读别人的代码再修改的工作,相信很多人都是不愿意干的。如果公司提供的工作,允许你按照自己想法设计并写代码,这样的工作体验就大不一样了。所以如果你当前的工作内容正是自己的喜欢的,那么就不要轻易跳槽了。

4.与同事的关系

与同事的关系在很大程度上决定了工作环境的好坏。如果自己觉得和同事的关系不错,合得来,相处的也很愉快,那么跳槽的时候就考虑一下,在新公司是否也能得到。我遇到的真实案例,就有人因为同事关系融洽,而不愿以跳槽的。另外,我也相信,一个公司的员工之间的关系都很融洽,那么这个公司也应该是不会太差的。

5.其他

比如跳槽的机会成本,上班的距离等等。

五.创业

一直以来,看到不少打算或者已经创业,这里谈谈我的看法。我觉得创业不是一件今天想干明天就能行动的事情。创业需要等待机会,你需要一直准备着,等到机会来的时候就可以了。不要等到自己感觉打工不行了再开始创业,这个基本上是晚了,或者成功的可能性也不高了。就我自己来说,我真正开始创业是2009年开始的。而产品的开发从2006年就开始了,之后一直断断续续的在持续着。这期间解决了诸如核心技术问题,产品的定位,发展方向,市场调研等问题。同时,公司的注册,资金来源,办公地点,设备配置,人员招募,公司管理事务等等,这些问题也是在这一期间逐步解决的。于是在2009年回到北京,全职开发产品,正式开始创业。所以我的体会是,以非常淡定的心态,长期积累和准备是可以开始创业的基础。切不可认为自己简单搞一个东西卖钱,就可以创业了,这是不切实际的。当今社会总体上是公平的,没有什么核心竞争力或者核心技术就想赚钱基本上是不现实的。

六.学习

记得我还没有入行的时候,在电视中就听到谭浩强老先生说过,计算机这行发展快,需要不断的学习。如果说现在要选最重要的一句话的话,那么谭浩强老先生说的这句话对我来说,至少可以排在前三名。对于程序员来说学习是终身的事情,当然这个学习是广义的。

很多人的看法是,随着年龄的增长,个人的学习能力在退步。人在80岁时大脑只相当于20岁时的一半大小,所以这个说法当然不错。当初我也是这么想的,所以一度花力气准备考系统分析员资格,打算专职做设计,不用写代码了。但是随着自己年龄的增加,我发现对于还在职场的大龄或者高龄程序员来说却不是这样的,至少对我来说是如此。这里面一个关键问题是,大龄或者高龄程序员的经验发挥了极为重要的作用。对于一个学生往往是空白的被动接受知识,但是对于一个大龄或者高龄程序员来说,可以带着经验来学习。所以学习的速度不但没有减缓,反而是加速的,学习知识的速度会越来越快。在知识的掌握和在编码中的应用程度这两点上,有经验的程序员的优势更为突出。这是年轻人无法比拟的。

所以我觉得不要对新的技术和知识有抵触或者畏惧的心理,尝试去接触,了解并使用其实不是很难。技术虽然发展很快,但是毕竟也是逐步发展的,在每一步中更新的内容并不多。所以,每次都跟上,不要掉队,维持终身学习的状态也不是一件难事。


//读后感: 计算机专业的人不要害怕新的技术,要勇敢的学习,有什么胆小的呢?
                   新增加的东西也没有什么,只是更多的体力劳动而已,何必胆怯呢?
                   要勇敢的面对,如果这点做不到,不论干程序员或别的专业,都不会有所成就!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十八年开发经历小结 的相关文章

随机推荐

  • 谷歌免费域名邮箱申请全解

    谷歌google免费域名 企业 邮箱申请地址为 http www google com a cpanel domain new hl zh CN 点击进入填上姓名和邮箱等相关信息 国家选中国行不通 所以我选中国香港 电话号码要注意 我几次都
  • U盘无法格式化--量产工具成功救活

    由于工作经常需要通过U盘对设备进行升级 今天不知道什么原因导致DiskGenius无法获取到U盘内容 window也提示需要格式化操作 后续发现U盘扇区写保护了 无法进行格式化 于是开始研究如何救活它 所需工具下载链接 链接 https p
  • AI绘画,画你心中所想【飞链云版图】,圆你心中所梦

    不会画画的我有太多时候想去画出一幅画来 不为别的 就是因为我想把我华丽炫彩的梦中情景给展现出来 机甲 外星人 古代侠客 未来城市
  • I don't know what to say 事件的 NPM 包中奖名单,有你在用的吗?

    事件详情请看 GitHub Issue 及 justjavac 发布的文章 有人统计出目前引用了 event stream 的 3900 多个包 如下 名次越靠前使用的人越多 ps tree nodemon flatmap stream p
  • 电脑开机就进入bios的解决方法

    最近很多人反映自己的电脑一开机就直接进入bios里 无法正常进入系统 这是怎么回事呢 开机进入bios无法进入系统怎么办呢 别着急 今天就为大家带来电脑开机就进入bios的解决方法 电脑开机就进入bios的解决方法 1 如果是电脑的硬盘出了
  • 区块链应用对金融科技行业的未来造成的巨大冲击力

    区块链技术被认为是继蒸汽机 电力 互联网之后 第四次技术 最具颠覆性的技术 有可能彻底改变整个人类社会价值传递的方式 也将深刻地变革金融的未来 今年早春区块链的呼喊仍在回荡 9月的朗迪峰会上区块链再度成为本次金融科技峰会的关注热点 像天使数
  • 【VUE】-使用VUE进行移动端H5页面开发前的推荐准备工作

    在正式使用Vue进行移动端页面开发前 需要做一些前置工作 以此保证用户在访问页面时看到的东西不会因设备的差异而出现各种不同的效果 比如一个页面在iphone7 plus上显示的很正常 然后切换到了Iphone5上因为屏幕太小部分页面内容被遮
  • 七大编程语言

    编程入门之hello world 1 java 编程语言之首 Java是种开发者用来创造计算机应用的程序语言 Java也有一些Web插件允许你在浏览器中运行 Java可以用来安卓和IOS应用开发 视频游戏开发 桌面GUI 软件开发 Java
  • 宋浩概率论与数理统计笔记(一)

    基本信息 本篇是根据宋浩老师在B站的概率论与数理统计完成 标明了每一个知识点所在的时间点 在学数学的时候笔记必不可少 但频繁暂停记笔记又浪费时间 那你就借他山之石 快速掌握基本数学知识 宋浩老师视频的时长分布 Lesson1 随机试验与随机
  • [Unity][Unity光照][Unity摄像机]代码来改变场景变黑

    要使得场景中完全变黑 同时需要几个操作 1 控制场景的光源 比如新场景中的 直射光Directional Light 把所有光源的active设置为false 2 对摄像机背景进行设置 设置Camera的ClearFlags不为Skybox
  • 国内镜像安装Centos7的jenkins.rpm

    Jenkins官方推荐的安装方式 不过该方式有两个弊端 第一 该方式默认安装的是Jenkins的最新版本 所以无法自定义安装版本 第二 使用国外的镜像源 所以其下载速度极慢 Jenkins华为镜像源 Jenkins清华大学镜像源 Jenki
  • python邮件合并的基本操作步骤_Python SMTP:将电子邮件合并为一个

    The objective is to send the email to two people at a time I prepare the email message I iterate over the pairs and send
  • 数组顺序颠倒php,php怎么将数组顺序反转

    PHP中可以使用array reverse 函数来将数组顺序反转 语法格式为 array reverse array preserve 参数preserve可省略 用于规定是否保留原始数组的键名 只针对数字键名 非数字的键则不受影响 本教程
  • 解决jupyter notebook中出现"Figure size 640x480 with 1 Axes"不显示图片的方案

    问题代码 可忽略代码 import numpy as np from sklearn feature selection import SelectKBest f classif import matplotlib pyplot as pl
  • R语言实现读取excel

    可以使用R语言中的 readxl 包来读取excel文件 可以使用read excel 函数读取整个工作簿或指定工作表 示例代码如下 安装包 install packages readxl 载入包 library readxl 读取整个工作
  • SSD咯````

    文章目录 SSD咯 为什用卷积代替全连接 为什么conv4 3有一个Normalize操作 为什么采用anchor 如何匹配anchor 损失函数 SSD咯 SSD Single Shot MultiBox Detector 的主干网络基于
  • c++求余的用处

    求余符号常常用于数组的数值重新定位的问题 求余符号会把数组穿成一个环状的结构 例如0 10 0 1 10 1 如果将一个值向右平移两个位置则 9 2 10 1 则会在1的位置上出现
  • ARMV8体系结构简介:AArch64系统级体系结构之VMSA

    1 前言 2 VMSA概述 2 1 ARMv8 VMSA naming VMSAv8 整个转换机中 地址转换有一个或两个stage VMSAv8 32 由运行AArch32的异常级别来管理 VMSAv8 64 由运行AArch64的异常级别
  • Bulma Tracy 小笔记

    https bulma zcopy site column cd C Program Files nginx start nginx exe 启动服务 55555 cd front account cd service gateway cd
  • 十八年开发经历小结

    原文地址 http blog csdn net binarytreeex article details 7999853 comments 本来题目想写为 十八年开发经历总结 但是一想我的开发生涯还没结束 怎么就总结了呢 再说个人的一些积累