2017年10月6日星期五

32岁入门的70后程序员给我的启示|林子超博客

因为当时03年的时候,他刚从一家电子厂辞职,他在电子厂里看到了单片机这种玩意,他看到了他们工程师的工资和待遇,而当时的他只是一名流水线上的焊锡工,虽然是个组长,但是也感觉到了职业的局限性。(这也带给我们一个启示,作为男人,如果觉得职业看不到头,趁早换工作吧,如果不趁早,你会在以后的家庭压力中选择妥协,再也看不到头了。),辞职的第二天,他就买回了这台486奔腾系列的二手电脑,和一台仿真的烧写机器(把程序写到芯片的机器),一本汇编语言入门的书,开始了他12年的嵌入式开发之路。(这里给我的启示是,说学就学,不要想着看看怎么入门,最好的入门技巧就是动手。
图书馆抄书的怪蜀黍
一个32岁入门的70后程序员给我的启示1
这是他当时学C语言的时候在新华书店偷偷抄的
我记得初中的时候每周六我爸都会带我去新华书店去看书,然后去到那里,每次都是他叫我看着图书馆里员有没有来,然后他就在那里专心地去抄写这些代码片段(这 种学习方法在我看来,现在就是个笑话,随便打开一个网站,代码都是一堆堆的,但是话又说回来,你们在这些源代码中学到了什么,记住了吗?会灵活运用吗?从 前辈的学习方法来看,记录一些常用的代码片段还是很用必要的,你的github有一套自己的代码片段吗?如果没有那就赶紧收集!)但是我爸的笔记,我每次问他,这是什么项目的,他都能记得很清楚,当然他当时入门的时候是非常痛苦的,一个英文单词都不懂,可想而知。可是大家的基础应该比我爸高很多吧,所以不要怀疑自己是否能够学会编程,是一定能够学会的。
程序员特技—专注
我的亲人总是对我说:“你啊,坐久了要多起来走走,看看远处,这样子才好”。可是我觉得大部分程序员都做不到,因为编程是根本停不下来的,一旦你入门之后,你就会有种时刻想创造的感觉。这是写程序写出来的专注。说到这,我就想问问大家:“你能够专注多少个小时?”,我把这个问题抛给了我爸,我爸笑着跟我说:“用煤气,把一个装满水的平底锅烧穿需要多少时间?”。这是他的一次真实的经历,那是他在用汇编语言编写一个MP3播放器,在调试的过程中,忘记了自己在烧开水,幸亏煤气烧完了!说这个故事只想告诉大家一个道理:“写程序你必要保持高度的专注,但是不能够疲劳过度地专注。
编程需要的是流程再造
软件工程跟建筑学很像,它们都是基于现实的技术,搭建最好的解决方案。“钢筋,混凝土”这些都是做好的,都可以直接拿来用,编程也是如此,嵌入式开发也是如此。
一个32岁入门的70后程序员给我的启示2
这是一块移植了UCOSII系统的STM32实验板
这块板嵌入了UCOSII系统,可同时执行多个任务,并可指定任务优先级。通俗地说,你可以边听音乐边打字。虽然看起来很低级,但是嵌入式就是这样。很高端吧,但是我一问我爸,你是怎么做出来这块板的,你真的这么厉害用C语言写了一个操作系统?
板子是自己画的,其他的芯片都是买的,CPU程序是自己写进去的。原来嵌入式开发所做的事就是负责把各个功能模块合理设计,用程序去调度。现在成熟的芯片都是厂商写好了程序,提供外部调用接口,开发人员并不需要了解他里面的内容就可以开发了。这对我以后学编程启发很大。我的老师曾经说过:“软件工程师之所以能够写出解决实际问题的程序,是因为他们懂得流程再造,用现实的轮子(技术)去实现这个流程”。想成为一名软件工程师首要的不是编程语言能力的把握有多么厉害,而是懂得把现实生活中繁琐的流程通过计算机科学来简化,我觉得这才是真正的软件工程师。我爸的编程基础虽然没我强,但是流程再造的能力比我强太多了。也许这就是经验吧。
一个32岁入门的70后程序员给我的启示3
这是它给我提供的串口应答式发送的流程(可能有错)
我把我爸逼成了伪全栈
大二时候的我,学了C#,会做一下简单的winform程序,然后就开始飘飘然了, 跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实的项目,真金白银啊,我当时还傻傻地答应了。由于是真实的项目,程序的容错必须很高,你不能够点 几下就throwexception吧,但是我做的项目都是校园里面的实验,过家家玩的而已,虽然老师给了好评,这都是大学里面的花拳绣腿。真正派上用场 的时候,确显得苍白无力。理所当然,我的程序终将不能按时完成。我爸意识到了,他笑着跟我说:“你教我学C#吧,我们一起探讨这个程序。”,没办法啊,只 能让我爸去学吧,一个星期后,他开始于我并行开发,这是我跟我爸同台工作最好的回忆;为什么我爸能够在一个星期学会C#(只有C语音基础)?
语言都是通的,变的只是表达方式,思维和流程是不会变的
我 们的老师从一开始就教我们画一些简单的流程图,但是我们很多人都觉得他太简单了,没什么意思,于是就开始去追求那些表面华丽的界面,去满足自己好奇而又虚 荣的心,但是他们错过的是真正的编程技术,这就是当时的我。有很多人都觉得大学的课程很基础,实际用到项目的很少,是根本不能拿来做项目,书本上学的都过 时了。
而实际上,书本教会的是我们写字(编程)的姿势(方法),教会我们如何拿笔(写程序),如何写好字(好程序),一旦你 学会了就能够写出一手好字(好程序)。所以有很多人写不好字(程序),那就是在小时候练字(初学编程)急于求成,想着去玩(炫耀)。这是我最深刻的反省, 也是对各大初学者最好的忠告,编程必须耐得住寂寞!
程序员要时刻认识自己
当时,我是膨胀了,有点自以为是了,就觉得自己行,然后就答应项目了,结果幸亏我爸厉害,不然可是要赔钱的。作为程序员,必须了解自己的水平上限。知己知彼(我能做,你不能做),百战不殆(我就是要这么多钱)。 对的,时刻了解自己水平上限是有助于自身价值的评估的,例如你跳槽了,你对比同行,你的水平在哪里。决定市场价格的并不是企业本身,而是社会必要劳动时间 (别的程序员要多久才能够做出来)。而最好的认识就是看最新的技术,了解行业的趋势。这次才能够让自己立足于高薪阶层。
做一名守信用的程序员
我爸当时给我说:”既然你答应了人家,无论你有千百个理由都要给人家完成,完成不了就是你的错,因为你对人家承诺过“。这不是在讲道理规范,而是一个程序员的职业操守,因为这样,我爸能够接手到很多外包的项目,因为他在别人眼里只有两个字:”可靠“。也许这就是程序员的个人品牌吧,如果你在企业中能够有这样的品牌,能不升职吗?
总 有人质问:“我现在学编程晚吗?”,“我30岁之后还能继续写程序吗?”,“学编程难吗?”看完这篇文章后,我相信你不会再问了,因为如果你真的是热爱编 程,你就应该像我父亲那样,无论现实如何逼迫,初心永远不忘。虽然,我跟我的父亲没有太多的语言交流,但是这么多年的耳濡目染,足以让我发出:“谨遵父 训,不忘初心”。

2 条评论:

  1. Do you need to increase your credit score?
    Do you intend to upgrade your school grade?
    Do you want to hack your cheating spouse Email, whatsapp, Facebook, instagram or any social network?
    Do you need any information concerning any database.
    Do you need to retrieve deleted files?
    Do you need to clear your criminal records or DMV?
    Do you want to remove any site or link from any blog?
    you should contact this hacker, he is reliable and good at the hack jobs..
    contact : cybergoldenhacker at gmail dot com

    回复删除
  2. I can’t say much but with my experience through divorce, I had no one until I met hackingsetting50@gmail.com online then I contacted him, surprisingly he helped me hack into my partner's phone and all his social media platforms and i can now access everything and even documented and printed stuffs to show as evidence , now I’m happy with my kids and working for Riches. I hope this helps anyone in need.

    Thanks.

    回复删除

注意:只有此博客的成员才能发布评论。

Also Read: