加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

程序员学习就像练功,基础打牢后百变不离其宗

2016/09/07
22
  • 2评论
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

 

有年轻的朋友问我:学习编程难不难?这个问题真难回答。因为编程的概念太广泛了,不同的需求层面要求确实不一样。如果只是干份工作,赚一份薪水养家户口,根本不是难事。甚至学历都不需要,只要你的逻辑能力尚可,认识 ASCII 码和二十几个 C 的关键字就可以。年轻人如果想学习是好事情,一般情况我以鼓励为主。

但是有位同事是这样回答的:“实在太简单!一共才五条语句:if、for 、switch、 while、 do…while,你们都是大学毕业,半个小时就学完了。”如果只是入门,做简单项目,学习过程确实不需要太长。但是半个小时就可以完成,就有点调侃了。如果真的这么简单,程序员这个岗位估计就轮不到我了。可以从我自身的理解讲讲经验,大家用于借鉴。

学习首先必须要花大量时间。

前一阵网络上就“成为专家是否需要一万小时”的话题展开了讨论,想想确实是挺可怕,每天 10 小时,一年 3650 小时,大概需要三年可以完成。但是在这个快速变化的社会环境下,如果花费三年学习一项技术,可能机会也随之丢失了。

但是事实就是这么残酷,做任何事情都需要时间,任何社会产品都会把时间计入生产成本。我爱人羡慕医生的收入,但是一名可以出诊的医生需要通过本科学习五年,然后用五六年的进行实践锻炼,才能独立出诊。而我专科毕业,在从事很多工作失败情况下才选择编程工作,基本没有进行系统学习过程,所以自然薪水不及主治医生。

高收入和权威就意味着在某一领域达到“专家”的水平,才会有舒服的工作环境。既然是“专家”,那么某方面的知识、技能、经验必然要超越 90%同一领域的人,成为少数权威派。但是人的工作技能是后天获取的,所以必须学习,而且要在这个过程中付出相当多的努力。

很多人学习时希望有专家能带一下,如果没有这样的同事或者朋友,这就是奢望。最直接的办法就是报学习班,花一点钱也值得。前一阵我加入几个 QQ 群,刚开始热情很高,慢慢也就退热了。因为高手不屑于和我交流,和我水平相当的好像也没有太大交流的必要,但是还是发生几个有趣的事情。

星期五下午,有位QQ群中网友发出一个消息,我看了看觉得无语:

“有没有流水灯的程序?那位有发一个上来?”

学习必须好问,但是关于流水灯程序应该泛滥,自己搜罗一下即可。对于 1000 人的群,至少几十人同时关注,这得浪费大家多少时间?谁又有兴趣回答这种简单的问题。二十分钟后那位网友又重发这条消息,我实在忍不住了,就私聊给他顺手写了一了最简单流水灯程序。结果他回答:“看不懂,讲解一下。”我实在无语了,告诉他“请百度”。其实在提问之前百度一下或者思考一下,很多问题自己也就可以解决了,实在想不明白的问题再提问,网友才更有兴趣和你探讨。

 

有天下午我看到有人给我发消息,让我帮忙看一张原理图。我看比较简单,STM32103 采集 PT100 的值转换为温度,然后显示在 LCD 上,另外由一个 RS485 接口,我猜一定用来通讯的,最简单可以通过 RS485 接口读取 PT100 传感器温度。如此简单,一看就知道是照书本画出来的,聊完原来是本科毕业设计。当时已经 6 月初了,正常情况算来,本科生已经开始离校,这位同学为什么还在做毕业设计?他希望我帮他编写一下程序。我又汗颜了一把。

“事情不复杂,你花点时间可以自己完成,如果有搞不定,可以上网查询,网上资料非常多。”我劝他。

他回答时间太紧,下一周就是最后一次答辩了,再不完成作业毕业都有问题。

“找一下你们辅导老师吧。”我认为如果不是学生问题,那么就一定是辅导老师有问题。

“我们辅导老师已经不管我们了,我前一阵找工作了,一直没有做毕业设计,现在刚忙完工作事情,才回学校做毕业设计,同学们通过的已经离校了。”他有些委屈。

时间这么紧张,看来辅导老师也是无能为力了。

“你帮我把程序编写一下吧,我实在不会。”如果是我帮他写程序,简单点估计一两天也就行了,但是我真不想违背原则。

“实在不行,让老师再另外给你一次答辩机会。”我劝他。

“我必须按时毕业,老家工作已经联系好了,等着用毕业证。”他有些怒了。

“这是你自己造成的结果,自己想办法解决。”我直接回绝了他。

他再没有说话。别人做毕业设计的时候,你在找工作。现在工作找好了,又来找人帮忙做毕业设计。工作机会和毕业设计是可以兼得的,你没有协调好,没有理由责怪别人不帮你做。

一万小时对于抓住某个商机来说确实不合适。但是如果想掌握一门谋生技能,不一定需要 1 万小时,但是连续的大块的时间还是必须。

 

其次,必须独立思考。

学习资料现在非常丰富,不可能一一浏览。找一本经典仔细认真学习就可以。我比较反感一些工具类书籍的名字,如《21 天掌握 C 语言》、《100 天精通单片机》、《XX 入门大全》等。21 天初步认识一下 C 的编程规范是可以的,到底多长时间能“掌握”,就要看自己造化了。100 天如果能精通单片机,单位还要我们这些从业十年之久的工程师做什么?100 天也就完成一个不太复杂的项目,精通实在谈不上,没有任何一本书是大全的,因为技术一直在演进。

所以找经典资料学习,只要有一本书仔细学习过后,很多同类的书可以一目十行。但是第一本书内容学习起来确实十分不容易,这时候必须独立思考。思考过程其实就是寻找你现在已经具有的知识体系与新的知识体系对接过程。也就是搭建一个从过去已知到新的未知桥梁。其实就是建立一种新的思维习惯,只要这种思维习惯建立好了,新的知识就会转化为一种潜在意识,成为意识后就是你固有思维一部分,也就可以灵活应用了。

在单位 DTU 项目中,系统通讯配置参数使用了结构体,编写程序很方便,但是通过外部访问时就不方便。我本来打算重新改写数据类型,有位同事将结构体中数据统一为 INT 类型,这样就可以使用地址访问结构体了。原理非常简单,了解结构体和数组在内存中存储形式就可以了。

我以为做到这一点是他深思熟虑后的结果,谁知他只花费了不到一分钟时间就搞定了。独孤九剑,无招胜有招。忘掉所学的知识,剩下就是意识。

再有,超越原有知识领域,广涉猎。

我女儿上一年级了,第一天老师就召集家长开会学习。“孩子学习时,家长不要看电视、玩手机,最好也找一本书来学习,给孩子做好榜样。”

既然老师要求家长要看书,我也就找一本书看看吧。在女儿学习时,我随手在书架上取下《C++ primer plus 第三版中文版》,这本书在我书架放了十三年了。我一直没有时间系统学习,趁机弥补一下。我一直用 C 做单片机程序,C++一直没有用到,因为我觉得面向过程更容易设计单片机程序,面向对象需要更大的栈和堆,单片机用起来比较困难,总觉得但是关于单片机书我实在没有意义花大块时间去学习了。可是书中关于对内存结构描述非常清晰,做任何程序都可以参考其中的思想方法。我仔细阅读后,第二天上班改写了我们单位最近正在开发的 DTU 程序,代码缩减了 40%左右。

怪不得 NBA 的球员在平时训练时,不只是练习投篮动作,因为这个对于他们非常熟悉了。投篮使用的不是脑细胞,而是肌肉细胞,他们很多人在练习拳击,因为拳击可以锻炼人反应速度、身体爆发力、以及下肢动作灵活性,而这些技能常规的篮球训练效果没有拳击训练效果好。其实很多社会管理、哲学的知识与编程在某些方面有很大的共性。如果将其他学科方法应用于编程,也会对程序效率提升很多。

总之学习是一个循序渐进,时时刻刻的事情,没有一劳永逸的办法。最近重温读金庸先生《笑傲江湖》,岳不群在思过崖对令狐冲说的一段话可以借鉴一下。岳不群人格不敢恭维,但是这句话绝对是对的。

“本门气功与别派不同,只须勤加修习,纵在睡梦中也能不断进步…。”

当年我的一位同事,程序怎么也跑不通。晚上睡梦中梦见程序跑通了,起来开电脑,改写程序,2 分钟后关电脑,第二天告诉大家问题解决了。

与非网原创内容,谢绝转载!

系列汇总:

之三十一:工程师们:挺直腰杆,再过 200 年咱也不会失业

摘要:有人预测随时人工智能的发展,很多工作岗位将被机器代替,这是不是意味着工程师就要失业了?

之三十:工程师的苦衷:拿着如此这般的薪水如何能达到德国标准!

摘要:老板每次都要求我们达到德国标准,但是您老给的新书是德国标准吗?

之二十九:工程师的工作量似冰山,水面下的 80%让小习误工期又失奖金

摘要:你以为你的工作量只是眼前的吗?那就错了,其实多得你远远想不到 ...

之二十八:工程师的宅男时光:无意间练就了一身“编程神功”

摘要:骆驼曾将有一段失业在家的时光,无聊之余,他学习了 c 语言编程 ...

之二十七:工程师:好书不是太“肤浅”,是大道至简

摘要:推荐一个新同事学习 C 语言,他说这本书讲得太肤浅,后来经过慢慢的琢磨,他觉得这本书其实很有价值 ...

之二十六:工程师小李辞职记:老板的“情深意切”其实是个坑

摘要:老板一直不涨工资,于是小李提出了辞职,但是老板确让他薪水翻倍 ....

之二十五:工程师:别被“等我有钱了再 ...”这句名言给害了

摘要:偶然的一次机会别人送了骆驼一台咖啡机,骆驼一直想等买房子了再安装上喝吧,结果新房装修好的时候机器已经碎了 ...

之二十四:工程师的时间就像海绵里的水,挤挤就能接个“私活儿”

摘要:骆驼最近接了个私活,可是两个月过去了他却还没开始执行,因为实在太忙,公司忙,家里还忙,可是答应别人的事情总不能食言吧 ...

之二十三:马领导的“勤劳”却给我们平添许多愁

摘要:公司空降了一位马领导,天天很勤奋,早出晚归,还要大家都向他学习,骆驼变得更加忙碌了 ...

之二十二:你让员工吃大锅饭,员工更会磨洋工!

摘要:没有鼓励就没有动力,在公司里同样适用,如果你对员工的突出贡献视而不见,他们就会想别的办法 ...

之二十一:为了省下印刷费,老板把产品说明书缩成了 4 页纸

摘要:产品说明书印刷成 10 页和 4 页的区别是什么?或许你会说省下很多客服电话,这位老板却说会省下很多钱 ...

之二十:奋斗在城中村的“光辉岁月”

摘要可能很多人都有过城中村的奋斗史,那段时光收入低,但是内心充实,工作忙,但精神奕奕,因为心中有一个希望不断在呼唤,我要走出城中村,Fighting!!骆驼本次分享的是他在城中村的故事。

之十九:郭老板,随你大声吼,我走

摘要:如果你遇到一位爱大声吼叫的老板会怎样?留下悉心指导,还是拍拍屁股走人?骆驼遇到的这位可是他的朋友 ...

之十八:老板,我是程序员不是“组装工”

摘要:梁程本来是程序设计的,负责公司的好几个项目,但是老板却一直让他亲自烧写程序,而且不见有让生产帮忙的迹象 ...

之十七:让软件工程师去修复硬件问题,咋下手?

摘要:软件工程师和硬件工程师的职责分明,相互合作才能做出好的产品,但是如果硬件出问题了非要软件工程师解决会出现什么结果?

之十六:竞争对手的五折价格战,耗不起!

摘要:合作多年的公司忽然告诉我们要停止供货,原因是竞争对手开发了一款价格低廉而性能一样的产品,于是老板决定要我们开发一款同样的产品来和竞争对手竞争,等产品开发出来以后不料客户又有了升级版,我们继续死磕吗?

之十五:一款产品的成败在与细节

摘要:朋友想要按照市场比较成熟的产品设计一款类似的产品,随后紧锣密鼓开始设计硬件和软件,完成以后发现在细节上有很多缺失,这引起了我对产品细节的考虑 ...

之十四:一个任务,可以从第二项开始做

摘要:朋友托我给他编写一本技术手册,我思量半天迟迟无法下笔,后来女儿拿着玩具过来让我帮她换电池,问我为啥不能从第二个句开始,我豁然开朗,可以从自己会的先开始,灵感慢慢积累 ...

之十三:上帝递给你一个机会,你敢接吗?

摘要:上帝是一个推销员,她无时无刻都在想你推销各种机会,你只需要迈出一步就可以接住。机会在与把握,如果你不去把握,再好的机会也不属于你。从我同事小张和小李两个人的例子可以看出 ...

之十二:富二代也愁“娶妻”

摘要:我的同学李华是家里的独生子,1995 年西安开始建设大明宫遗址公园,李华家刚好没在规划之内,于是一下子过上了小康的生活,说媒的踏破门厅,可是偏偏他母亲对姑娘的要求很高,最后 37 岁还没对象 ...

之十一:给自己挖一口“井”

摘要:我同学讲了一个关于两个小和尚挑水的故事,不是大家听到的那个版本,如今我同学已经成了当地的企业主,这与给自己挖井有关,每个人都应该为自己挖一口井,以备不时之需 ...

之十:职场菜鸟:M3 还是 C51?

摘要:公司新来的小伙儿问我应该选择从 M3 开始学习单片机还是从 C51 开始?我当然提议是 M3,但是他却担心没有 C51 的基础不好入门!那就从 M3 和 C51 的价格、市场发展趋势和占有率来分析一下吧 ...

之九:两瓶啤酒断送大好前程

摘要:由于公司规模的扩大和业绩的激增,公司计划提拔一些中层管理人员去北京总部任职,而这个名单里就有骆驼的名字,喜从天降,骆驼心情大好,可是在交接完工作之后的一次偶然事件让他失去了这次机会,而且工作也不得不换 ...

之八:想省劲儿多动脑

摘要:每天熬夜写程序,后来才发现一直是白天写晚上改,晚上写白天删,周而复始,效率低下。后来认识了公司里的李工,他每天的工作悠闲有序,看上去很轻松,后来才知道他的高招儿,多动脑少动手 ...

之七:工程师爱上家务活儿

摘 要:由于母亲身体的缘故,骆驼将三岁的女儿从老家接到西安照顾,由于爱人的工作很忙,于是骆驼不得不肩负起照顾女儿的重任,从此周末再无闲暇,买菜、做 饭、整理屋子、带女儿出去游玩填满了他的生活,重负之下他想到了辞职,老板的挽留让他坚持下来,最后竟然发现自己多年的工程师职业病竟然好了 ...

之六:越简单坑越深,跳进去出不来

摘要:公司小李由于技术功底扎实,在软件业务部受到器重,准备提拔为项目组长,后来因为随口接了朋友一个硬件设计项目而荒废了本职工作,最终看似简单的项目做了半年之久都没有实现,于是找骆驼请教 ...

之五:做个勇敢的小马,亲自探探河水的深浅

摘要:公司接到一个大单,大家都眉开眼笑,可是到交货的时候却遇到了不可调和的难题,作为新手的我自然不受上司重视,该研究还是不该研究呢?

之四:拖到辞职也没翻开书

摘要:小李是我们单位的资深工程师,产品量产以后,小李的工作只需要维护即可,于是日子变得清闲起来,每天网络小说度日,有一天良心发现需要学习新知识,跟上技术更新的步伐,可是迟迟不肯开始 ....

之三:再好的专业,技术也要扎实才行

摘要:老板的亲戚来公司上班,还是名牌大学的硕士,听说资历很深,可是不喜欢和人交流,拿出一个小项目做实践,一个很小的板子焊接了三天,后来他竟然问了这样一个问题 ...

之二:老板的外甥:“朝里”有人也别太任性

摘要:老板的外甥保送了西安某大学的研究生,想趁暑假来公司实习,顺便学习点实际知识,于是老板把他托付给了骆驼,结果这小子基础知识没有,还不想踏实补充基础,好高骛远,只想一下子学到真本事 ....

之一:技术创新更得力

摘要:一位参加工作 3-5 年的工程师,凭借目前的新技术,其工作能力可以达到工作 30 年的老工程师 90%的水平甚至超越。由此可见,年轻人凭借新技术完全可以挑战权威,可见新技术的爆发力 ...

相关推荐

电子产业图谱

早年从事软件测试工作,2002年从事C语言教学。同年设计了视音频切换器,用于硬盘播出机。次年开始从事热电偶检测装置的设计。2010年从事现代农业管理机的设计。2012年从事电力行业的FTU设计与研发,成功编写了FTU软件。2013参与了塔吊安全监控设备开发。10多年来对C语言情有独钟。略懂verilog。