【父亲节故事】32岁入门学习编程的父亲给我的启示

导读:每天总有很多读者在后台留言给文摘:“我现在学编程晚吗?”,“我已经快30岁了,还能学写程序吗?”,“学编程难吗,要怎么开始呢?”在父亲节这样一个特殊的日子里,我们带来了一个有关父亲与编程的故事,也许能解答你们的疑问,也祝愿天下的父亲们节日快乐:


2003年,一个刚从电子厂辞职、只有初中文化水平的父亲从二手市场买回一台486二手电脑,开始学习编程。从C语言到C#,从在图书馆偷抄代码片段到教会儿子并行开发。一个在32岁才开始学习程序开发的70后父亲的经历告诉我们,如果你热爱一个工作,如果你喜欢某个职业,无论你从什么时候开始做,永远都不会晚。如果你真的是热爱编程,那救应该无论现实如何逼迫,初心永远不忘。

◆ ◆ ◆

岁月的锤炼


圆口接口的键盘,2003年的

有人问这个键盘难道没有擦过吗?不是的,是擦不掉的岁月痕迹。如果有注意到细节的朋友会发现,程序员什么键位用得最多。除了(ASDW,YUHJ,那是我小时候玩拳王留下的)。这个键盘虽然老旧,但是我爸一直不舍得扔。03年的时候,他从二手市场买回来了这台486Cpu主频的二手电脑,开始自学汇编。我爸是只有初中文化。但是有超强的动手能力。

◆ ◆ ◆

零编程基础入门嵌入式开发

2003年的时候,我爸刚从一家电子厂辞职,他在电子厂里看到了单片机这种玩意,他看到了他们工程师的工资和待遇,而当时的他只是一名流水线上的焊锡工,虽然是个组长,但是也感觉到了职业的局限性。(这也带给我们一个启示,作为男人,如果觉得职业看不到头,趁早换工作吧,如果不趁早,你会在以后的家庭压力中选择妥协,再也看不到头了。)

辞职的第二天,他就买回了这台486赛扬系列的二手电脑,和一台仿真的烧写机器(把程序写到芯片的机器),一本汇编语言入门的书,开始了他12年的嵌入式开发之路。(这里给我的启示是,说学就学,不要想着看看怎么入门,最好的入门技巧就是动手。


◆ ◆ ◆

图书馆抄书的怪蜀黍

这是他当时学C语言的时候在新华书店偷偷抄的

我记得初中的时候每周六我爸都会带我去新华书店去看书,然后去到那里,每次都是他叫我看着图书管理员有没有来,然后他就在那里专心地去抄写这些代码片段(这种学习方法在我看来,现在就是个笑话,随便打开一个网站,代码都是一堆堆的,但是话又说回来,你们在这些源代码中学到了什么,记住了吗?会灵活运用吗?从前辈的学习方法来看,记录一些常用的代码片段还是很用必要的,你的github有一套自己的代码片段吗?如果没有那就赶紧收集!)但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。可是大家的基础应该比我爸高很多吧,所以不要怀疑自己是否能够学会编程,是一定能够学会的。


◆ ◆ ◆

程序员特技:专注

我的亲人总是对我说:“你啊,坐久了要多起来走走,看看远处,这样子才好”。可是我觉得大部分程序员都做不到,因为编程是根本停不下来的,一旦你入门之后,你就会有种时刻想创造的感觉。这是写程序写出来的专注。

说到这,我就想问问大家:“你能够专注多少个小时?”,我把这个问题抛给了我爸,我爸笑着跟我说:“用煤气,把一个装满水的平底锅烧穿需要多少时间?”。这是他的一次真实的经历,那是他在用汇编语言编写一个MP3播放器,在调试的过程中,忘记了自己在烧开水,幸亏煤气烧完了!说这个故事只想告诉大家一个道理:“写程序你必要保持高度的专注,但是不能够疲劳过度地专注。

◆ ◆ ◆

编程需要的是流程再造

软件工程跟建筑学很像,它们都是基于现实的技术,搭建最好的解决方案。“钢筋,混凝土”这些都是做好的,都可以直接拿来用,编程也是如此,嵌入式开发也是如此。

这是一块移植了UCOSII系统的STM32实验板

这块板嵌入了UCOSII系统,可同时执行多个任务,并可指定任务优先级。通俗地说,你可以边听音乐边打字。虽然看起来很低级,但是嵌入式就是这样。很高端吧,但是我一问我爸,你是怎么做出来这块板的,你真的这么厉害用C语言写了一个操作系统?

“板子是自己画的,其他的芯片都是买的,CPU程序是自己写进去的。”

原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解它里面的内容就可以开发了。这对我以后学编程启发很大。我的老师曾经说过:“软件工程师之所以能够写出解决实际问题的程序,是因为他们懂得流程再造,用现实的轮子(技术)去实现这个流程”。

想成为一名软件工程师首要的不是编程语言能力的把握有多么厉害,而是懂得把现实生活中繁琐的流程通过计算机科学来简化,我觉得这才是真正的软件工程师。我爸的编程基础虽然没我强,但是流程再造的能力比我强太多了。也许这就是经验吧。

这是它给我提供的串口应答式发送的流程(可能有错)

◆ ◆ ◆

我把我爸逼成了伪全栈

大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目,真金白银啊,我当时还傻傻地答应了。由于是真实的项目,程序的容错必须很高,你不能够点几下就throwexception吧,但是我做的项目都是校园里面的实验,过家家玩的而已,虽然老师给了好评,这都是大学里面的花拳绣腿。真正派上用场的时候,确显得苍白无力。理所当然,我的程序终将不能按时完成。我爸意识到了,他笑着跟我说:“你教我学C#吧,我们一起探讨这个程序。”,没办法啊,只能让我爸去学吧,一个星期后,他开始教我并行开发,这是我跟我爸同台工作最好的回忆。

为什么我爸能够在一个星期学会C#(只有C语言基础)?

语言都是通的,变的只是表达方式,思维和流程是不会变的

我们的老师从一开始就教我们画一些简单的流程图,但是我们很多人都觉得他太简单了,没什么意思,于是就开始去追求那些表面华丽的界面,去满足自己好奇而又虚荣的心,但是他们错过的是真正的编程技术,这就是当时的我。有很多人都觉得大学的课程很基础,实际用到项目的很少,是根本不能拿来做项目,书本上学的都过时了。

而实际上,书本教会的是我们写字(编程)的姿势(方法),教会我们如何拿笔(写程序),如何写好字(好程序),一旦你学会了就能够写出一手好字(好程序)。所以有很多人写不好字(程序),那就是在小时候练字(初学编程)急于求成,想着去玩(炫耀)。


这是我最深刻的反省,也是对各大初学者最好的忠告,编程必须耐得住寂寞!


◆ ◆ ◆

程序员要时刻认识自己


当时,我是膨胀了,有点自以为是了,就觉得自己行,然后就答应项目了,结果幸亏我爸厉害,不然可是要赔钱的。作为程序员,必须了解自己的水平上限。知己知彼(我能做,你不能做),百战不殆(我就是要这么多钱)

时刻了解自己水平上限是有助于自身价值的评估的,例如你跳槽了,你对比同行,你的水平在哪里。决定市场价格的并不是企业本身,而是社会必要劳动时间(别的程序员要多久才能够做出来)。而最好的认识就是看最新的技术,了解行业的趋势。这次才能够让自己立足于高薪阶层。

◆ ◆ ◆

做一名守信用的程序员

我爸当时跟我说:“既然你答应了人家,无论你有千百个理由都要给人家完成,完成不了就是你的错,因为你对人家承诺过”。这不是在讲道理规范,而是一个程序员的职业操守。因为这样,我爸能够接手到很多外包的项目,因为他在别人眼里只有两个字:”可靠“。也许这就是程序员的个人品牌吧,如果你在企业中能够有这样的品牌,能不升职吗?

总有人质问:“我现在学编程晚吗?”,“我30岁之后还能继续写程序吗?”,“学编程难吗?”看完这篇文章后,我相信你不会再问了。因为如果你真的是热爱编程,你就应该像我父亲那样,无论现实如何逼迫,初心永远不忘。

虽然,我跟我的父亲没有太多的语言交流,但是这么多年的耳濡目染,足以让我发出:“谨遵父训,不忘初心”。

我有一个英雄般的父亲,我从小都是以他为榜样的。可是22岁的我在面临职业规划的时候,简历都做好了,不知道投到哪里去,却想起了我父亲那糟糕的职业规划。


◆ ◆ ◆

稳定工作的背后


34岁那年,他在朋友的推荐下,去到了某镇的电视台做运维的技术工人,负责平时线路的抢修,设备故障的处理。平时工作都是朝九晚五,不加班。工资2500,有养老保险。这可是06年的工资待遇。没办法,在家庭的压力下(当时我的初中学费是1280元,我感谢我爸,在家庭不富裕的情况下,给了我最好的教育条件!),他不得不选择这份“完美的工作”,于是开始了他10年的运维职业生涯。是的,我爸的本行不是嵌入式开发,他只是一名业余的开发者。他只能凭借着短短的晚上3小时的学习时间去学习嵌入式开发。

稳定工作,是如何消磨这个坚韧不拔的中年人的?有一次,他在电视台宿舍值班(电视台固定要轮值的),他的学习习惯是3小时固定用来学习,7点到10点这段时间。可是这次不幸运的是被巡视的领导看到了,领导只能让他搬离宿舍,从此让我爸每天早起1小时去上班。

有人问:“不可以辞职吗?”,我给你的答案是:“那时我正在读高二,我妈也是身体不好,无法工作。”,家庭绑架了这位中年人,他不得不选择了妥协,让步

稳定工作,有时候让他迫不得已。上次,我表哥结婚,正遇上他值班,没办法,领导不批。他只能被迫和同事换班,但是换一次,值两次(这就是规矩,体制内的规矩),就这样,他求来了这1天半的假期。周五晚出发,周六是婚宴,周六晚回来。地点是广西南宁。工作让他的生活迫不得已。

有人问:“不可以辞职吗?”,我给你的答案是:“这时我在读大学,他应经是40知天命的人了”,年龄限制了这位中年人的职业生涯,他不得不选择妥协,遵守着这体制内的金科玉律


如果你年轻的时候选择了“稳定”,那么你这辈子都很稳定,想要成就一番事业,对不起,你已经没有了那份年轻时候的激情了,因为你选择了太多的妥协,让步。希望年轻的你正确做好自己的职业规划,做你想做的事,不要被外界泯灭了你的初心。


◆ ◆ ◆

黄金般的晚上三小时

凭借着对编程的执着,我爸用晚上的3小时告诉我:“我虽然没有你在大学那么多的时间去学习,但是这三小时我也可以做出很多东西,学到很多东西。”,确实他做到了一个伪工程师的水平,硬件(嵌入式芯片,其他芯片的种类,性能),软件(与硬件配套的软件),产品设计(产品报价),电路设计(画板),焊接(18岁开始做流水线工人)。一个人就能实现完整的一套产品。

那如何利用这晚上的3小时?其实高中的老师就已经告诉我们了。


1、目标:要完成什么东西

高中那段的岁月,相信大家都要求晚自习吧,晚自习当然有作业,而我们每天晚上的目标就是按时完成作业,经过了三年的训练,我们变成了解题能手,从中总结出来的方法和套路也是头头是道。可是看看你现在的大学生活,三小时都是什么?6盘英雄联盟吧,然后三年的训练,你变成了最强王者,打野套路也是头头是道。


2、顺序:要从哪里开始

有了一个目标之后,我们要做的是细化,然后顺序完成,高中写作业都是这样,看哪门简单,先做什么,当然是抄写的作业优先对吧(O(∩_∩)O~)。其实编程也是这样的,例如我们用MVP开发一个手机应用,我有这么多的回调接口要写:

我先从model层开始,相信看到这么清晰的回调接口,你就知道该怎么去写model层了。是的我在这里应经告诉大家,用MVP开发,如何写model层的技巧了,就是先写回调接口。


3.总结:做没做完都要给自己一个答复

在高中,我们总有一万个完不成作业的理由,但是为什么你不给自己的完不成编程任务一个理由呢?其实你能够写出你完不成的理由,那就是你知识薄弱的一面。上述的回调接口,光上传图片这里,我就卡住了一晚上。我用的是Retrofit2.0+RxJava的网络请求库。我发现了一个定理:“任何编程库官网的例子都不能满足你奇葩的需求。”

接口文档是这样子上传的

哈哈,是不是很奇葩,网上找的东西都是要么get的都是一个固定的URL,要么都是只有一个文件没有其他东西的。后来我是参考这篇歪果仁写的文章解决的Retrofit。

api接口是这样写的(/capi/cp.php?/是我接口的BaseUrl)

 

请求参数就这样写就可以解决了,把post的参数做一个MediaType的声明即可


◆ ◆ ◆

程序员的入场券


我一直质问我爸:"你当初为什么不选择去当程序员,而去做运维",他总是这样跟我说:“你以为我不想,我没有学历啊,人家不相信我,何况我也是几十岁的人了。”这看似简单的回到,确说得我哑口无言。


大众化的大学教育

大学生早已不是凤毛麟角的资源了,研究生,本科生都满大街都是,在众多的招聘信息中,本科以上学历的限制就能限制一大批人,也能选到一大批人。而你因为这个硬性条件,再好的编程能力,没有入场券,保安是不让你进的。当今这个年头,幻想着小学毕业就能创业做老板,除非你有超厉害的背景和能力,否则你就在做梦。用这个残酷的现实告诫那些想辍学的“有志青年”


年龄

程序员,是一个需要吃青春饭的职业,这个我不否认,不过我有些不认同,如今的编程人人都可以学,不一定只有年轻人才去学。可是你想成为一个企业的开发人员,年龄是硬伤。24-28的要求,相信大家都很清楚的。这是一个人学习能力最强,可塑性最强的年龄。程序员需要的不断地去学习,因此24-28岁时最有竞争力的年龄。


优秀程序员的“眼睛”—英文

我爸经常问我:“儿子,帮我从CSDN下载个中文的文档,我没有积分了”,这又是简单的提问,确让我看到了老一辈程序员的天生不足,他们不会英语。技术都是国外引进的,特别是硬件方面的东西(芯片),不懂英文,你用到的技术总是落后的,因为你要等着别人翻译给你听,而翻译的东西必定会有很多坑的(大家都懂的),所以,英文是优秀程序员的眼睛,你不需要带“眼镜”就能看到真正的东西。


我非常庆幸,我有一位为我指路的父亲。我是帅气小伙,在这里,是属于我的真实故事!欢迎大家的评论留言!

大数据文摘在父亲节这天推出这篇文章,

祝天下的父亲节日快乐。

也借这篇文章,帮作者完成一件,

用他自己的话说,

“也许是这辈子给父亲做过最浪漫的事情。”


作者给父亲的话

叔,祝你父亲节快乐。

还记得你教我下象棋的那些日子吗?

还记得你教我数学方程的时候吗?

还记得我们一起学C语言的日子吗?

感谢你对我的栽培,在我心中,你永远是英雄。专注,沉着,勤奋,坚强这是你给我一生的财富。

原文发布时间为:2016-06-19

时间: 2024-10-23 06:17:11

【父亲节故事】32岁入门学习编程的父亲给我的启示的相关文章

想成为一名顶级程序员,17岁开始学编程晚么?

年龄太大了,真的不能当工程师么? 我22岁开始学习编程,以下是我的学习"大事记": 22岁 – 我学了什么是if条件判断语句. 24岁 – 我在Fackbook找到了一份分析师职位的工作 25岁 – 我在Facebook的职位变成了工程师 26岁 – 我业余时间做了个小项目,赚到一大笔钱,我在Facebook拿死工资是永远赚不了这么多钱,于是我离开了Fackbook,用这笔钱开了一家创业公司.通过Y-combinator(译者注[1]),我从一家顶级风投公司获得一大笔投资. 我今年正是

父亲节的网络现状,虚拟世界比现实生活更热闹

昨日,是六月份的第三个星期天,也就是西方父亲节.记者在安顺各繁华街道及部分商场走了一遭,发现不论是商家还是普通市民,对父亲节并不感冒,没有出现像情人节和中国传统节日端午节那样的浓浓节日气氛.而在网上,关于父亲节的各种祝福贴吧则相对较火.有网友调侃:你在网上这么孝顺,你爸爸知道吗?有人就呼吁,多关心家里的老父亲,记得常回家看看. "父亲节" 虚拟世界比现实生活更热闹 昨日,网友"老牛吃嫩草free"以"6.15祝所有父亲都身体健康"为主题在安顺贴吧

调查:你会让你的孩子从小学习编程吗?打算几岁开始学?貌似能锻炼逻辑思维能力。。。

问题描述 你会让你的孩子从小学习编程吗?据说能锻炼逻辑思维能力... 解决方案 解决方案二:欢迎大家吐槽啊,解决方案三:都没人在吗?解决方案四:我打算让下一代学吉他.编程.英语解决方案五:我觉得让下一代当个牙医是个明智之举解决方案六:我觉得是不是应该需要锻炼孩子的视野,多看点书,多走点路.解决方案七:学习编程,只是想锻炼一下,不是培养孩子做程序员.编程好像确实能提高逻辑能力方面应该还是挺好的.解决方案八:小孩子还是以兴趣为主吧.要是他主动学,你就教教呗.解决方案九:引用7楼devmiao的回复:

JSP自定义标签入门学习_JSP编程

本文为大家分享了JSP自定义标签入门学习教程,希望大家喜欢. 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作.JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面. JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记.你可以继承SimpleTagSupport类

父亲节|有个统计学家老爸是怎样一种体验

导读:跟你的父母学相同的专业是种怎么样的体验?这个话题最近正被讨论得不亦乐乎.大数据文摘在父亲节这天跟大家分享这个问题的大数据版本,有个统计学家老爸是怎样一种体验. 分享这个神奇经历的是大数据文摘的志愿者纪思亮,这个热爱摄影.音乐的才女是个不太地道的理科生,看似大大咧咧却又心思细腻.统计学硕士毕业后,她目前在美国硅谷一家start up做data scientist,顺其自然却又张扬地继承了老爸的统计学家这个称号.纪思亮的老爸是国内著名的统计学家.首都经贸大学统计学院院长纪宏教授,老妈也是国内著

感恩父亲节铭记不可不知的游戏之父

6月20日,又是一年一度的父亲节.父亲节是一年中特别感谢父亲的节日,约始于二十世纪初.不同国家的父亲节定在不同的日子,在中国,六月的第三个星期日是父亲节.在这个特殊的周末,多玩游戏再次提醒玩家们记得感恩父爱,另外我们不妨一同来认识下那些影响世界愈久弥香的游戏之父. 一.商业游戏之父--诺兰·布什内尔:现在的网游一点也不酷 正如拉尔·拜尔被业界认为是"电子游戏之父",诺兰•布什内尔则被认为是真正把电子游戏带入大众生活的的"商业游戏之父". 今天,即便是最资深的游戏从业

对学习编程的一些粗浅看法

大概是因为这个网站叫编程入门网的缘故,网站信箱经常收到编程学习方面的问题.感觉总这样回信也不是办法,所以才有了这篇文章.文章置顶到首页后每个人都能看到,这大概是一个一劳永逸的方法. 说明一下:本人不是专家,手也不高,以下所说的只是我对网友常见问题的个人看法,仅供参考.如果能为别人提供一点点帮助,那么我会感到荣幸之至. 一.编程好学吗?多长时间才能学会编程? 这个因人而宜.通常情况下,从实现第一个"Hello World",到比较熟练的编写代码,这个过程可能比学习其它的计算机技术要长一些

非科班出身的人学习编程不负责任指南

为何要写这样一篇文章 来我们这个实验室里读研的学生可能自从来到这里的第一天就觉得自己的命运很苦逼.他们读本科时主修的是机械设计.制造以及自动化之类的专业,毕业时 的简历上也顶多是写写擅长 MS Word.PowerPoint.UGNX.AutoCAD 之类的应用软件.他们有限的学习生涯里,怎么也不会想到来到这里竟然要首先重新学习 C 语言,然后还要学 C++,接下来还要学习 Python 或 Lua 什么的,而且竟然还不让用 Windows,只能用连个 QQ 都没有并且经常出故障的 Linux-

挑战大脑:来自全球的45 个免费学习编程的好地方

本文讲的是挑战大脑:来自全球的45 个免费学习编程的好地方,史蒂夫·乔布斯说过,每个人都应该学习给电脑编写程序的技术,因为这一过程能够教你如何去思考!众所周知,编程已成为开发者生命中至关重要的一部分.很多事实表明,越来越多的人不管男女老少都将参与编程这个行业. 学习编程的渠道有很多种,比如你可以利用一些互动平台或者书籍去学习编程,无论是哪种,只要找到适合自己的就OK.俗话说,光说不练嘴把式,因此,我们还需要进行实践. 编程极富有创造性,你可以创造出许多新奇有趣的想法.很多时候,开发者在相同的问题