我是老温,一名热爱学习的嵌入式工程师
' d7 @; x# j: _* w. K关注我,一起变得更加优秀!. r: U* U# Z# a+ ^1 W
这几年大环境不好,很多人都比较浮躁,看了网上的各种“段子”更是觉得搞嵌入式开发很难,也没有前途。既然你选择了嵌入式这条路线,只要你坚持走下去,怎么会没有前途?当然,要搞好嵌入式,除了坚持和努力之外,有时候我们也要学会一些方法。" n0 b, |+ E+ [( M$ x3 ?- }
1多看官方文档
! {3 G9 O: o3 t' [ j% B9 L0 }5 t不要被这几个字吓到,官方文档其实都是宝藏。一个成熟的技术诞生,可以没有博客没有书籍,但一定会有一个官方文档,毋庸置疑,它一定是最准确、最实时的资料。编写官方文档的人,也通常就是这些技术或者软件的开发者,他们是对这些东西最了解的人,所以编写的文档不仅质量非常高,通常内容也都是最新的。1 ^* P- Q, P" [. K" n Y# a7 U* g
qaa0vjotmgz64071959314.jpg
) e; K; X3 T# ~: L4 U因此,官方文档远比网上的各种博客和论坛等更适合入门学习。当我们遇到很多问题和技术细节的时候,认真将官方文档过一遍,你会发现很多问题和认识模糊的地方都会清晰起来。程序员都应该掌握通过官方文档去学习一个技术的能力,掌握了这项能力,你就具备了学会其他一切技术框架的基础;而且原汁原味的官方文档,还能锻炼你的自我学习总结能力。7 Z" x: S/ G: j( c# a% A4 L
2面向搜索引擎编程
5 h4 u- q; `2 F5 o6 v# C- A! s8 Y! E很多人总以为无论什么都 Google 一下是一件很 low 的行为,但其实,普通程序员+ Google=超级程序员。用好搜索功能,Google +Stack Overflow + GitHub 能解决你的大部分问题。所以,在问别人问题之前,先自己搜索一下吧。
) G7 Y1 G1 N% U2 ]2 N- V
kdgcthgvtyt64071959414.jpg
) @* R/ P6 r0 F' q6 u) Y当然,超级程序员可不是会Google就行的,把 Google 到的东西吸收并运用起来,才是真正的能力。不过,无论是看官方文档也好,还是面向 Google 编程也好,都必须要掌握较好的英文能力。这样才能更好的阅读文档,搜索自己所需要的东西。; U# S+ z) {$ M7 I! N( u3 \4 F
3规范命名0 V# b+ s( K2 E. F# ^
ITWorld 曾经发起过一个“程序员最头疼的事情”投票,结果,近半数的程序员认为命名是最头疼的事情。
7 [, a2 j& B5 t; i1 w7 @
eyipvjwxqsv64071959514.jpg
. @( n. Z' z5 l* Q {有时候代码写嗨了,命名的时候就开始放飞自我,gousheng、tiedan、xiaonaigou、i、j.....自己是写嗨了,其他人阅读起来就懵逼了。所以,不论是内部变量还是全局变量,都要形成自己的一种命名规则,能够一眼看明白变量的意思。混乱或错误的命名不仅让我们对代码难以理解,更会误导我们的思维;反之,良好的命名,则可以大大提高我们的代码易读性,也能大大增强代码的可维护性。3 i# c/ ]- F- m6 F1 k+ ^6 H# R. V* N
4认真注释
$ g, \! a6 @# Y7 M. H和命名一样让程序员头疼的还有两件事:写注释头疼,别人不写注释读着头疼。之所以要写注释,是因为当你在写某个程序的时候,可能当下记得很清楚,这一段是什么机制、如何实现,但是当你写的程序越来越多,你会忘记当初为什么这样写,改动和交接也十分麻烦,对代码进行注释就可以有效避免这种情况。注释不仅可以让人读懂代码,甚至能让读代码的人获取更多信息。
! d: ]9 m3 Y& Q6 D
xcja1suyy4h64071959614.png
/ F& \; ^% e: c$ ~2 l0 U不过,注释贵精不贵多。要杜绝大姨妈般的“例注”,漫山遍野的碎碎念注释,实际就是背景噪音。
- E h2 s3 M' A! q5不要重复造轮子
5 U4 V, m. G3 P- v! ~7 A“不要重复造轮子( Stop Trying to Reinvent the Wheel)”, 可能应该是每个程序员入行被告知的第一条准则。写程序实际上是一个最能“偷懒”的工作:你现在费力实现的每一个功能,可能早已经有极好的解决方法贡献在开源社区,使用好现有的轮子和各种开源库,会让你事半功倍。当然,要找到一个非常适合的轮子,是非常不容易的一件事。有时候费了九牛二虎之力找了轮子,却发现有这样那样的问题,最后还是无疾而终。
% a+ o! F1 o. X/ R0 X* F
ellicwgxjn164071959715.gif
" s* x7 M& ~, w; G那么,什么样的轮子是一个好轮子呢?开源,并且 License 宽松。有文档,代码规范,接口友好,最好有实际用例。社区相对活跃。松耦合,定制容易。总之,只要合适好用,都是一个好轮子。
& q1 b! i2 ~2 E5 [4 f6多读多写代码! n6 d& E0 \. H# a6 b" k) C- L
提高编程能力其实没有捷径,最佳方式就是多写代码。不过,除了写大量代码,提升编程能力还需要大量阅读别人写的代码。1 K( B' s0 r: h- G# R
fzez4b1ib2d64071959815.jpg
! n0 n) d" d+ {2 n' Y* c一来,阅读源码可以提高编程能力。学习都从模仿开始,不管是入门时阅读教程里的示例代码,还是进阶时阅读优秀项目源码,都是很好的学习方式。二来,阅读源码可以提高 debug 能力。只有练习积累的阅读代码的能力,才能看懂代码,从而快速准确地定位代码中的问题。最后,阅读源码可以帮助形成良好的代码风格 。“开发”不仅要写可以执行的代码,更是 要写别人读得懂的代码 ,这对代码的维护和扩展大有好处。+ H) c* M4 p& P! O# R( m3 h
7预留开发时间
4 ~4 [8 k8 t# p3 v% F+ b一个程序员能否精确评估开发时间,是一件非常重要的事情。不过对于新手程序员来说,宁可多算一周,不可少估一天。过于“乐观”容易让你的 boss 受惊吓。毕竟,在评估开发时间的过程中,你需要预设各种修改对其他模块的影响。一个修改后的单元测试,可接受测试,UAT 环境测试,再到上线,很多地方都是需要花时间的。一旦某个测试不通过,然后又得调试,修改,再进行单元测试......谁能保证每次修改都是一次通过的呢。
% Z" D' I6 N v2 s- Q# _4 q# u8大胆重构
$ i @1 ?0 P4 S5 T( X重构是程序员的主力技能。一个程序员最大的勇气就是看自己三个月之前写的代码。但是,学习如何将你的代码重构为一份更好的代码,这是一项很有价值的技能。好的代码是改出来的,代码需要不停的重构, 重构应该贯穿代码开发的整个阶段。
, O8 ^% E9 }0 }3 \. C% D
2xf4rwqhu2d64071959915.jpg
+ y9 }1 `) S$ [
重构也并不应该是在几个月之后重构,最好的方式是实时重构。写一天代码,70%的时间都放到重构上都不过份。
% L, t; i% s& ^8 a* k9师傅领进门9 j7 e' M2 P/ ~0 A
最后,作为一个初入职场的新手程序员,找一个可靠的前辈带领自己,是一个非常有利于自己成长的选择。这个师傅最好能具备这几个特质:支持你:不会因你的成功而利益受损的人。eg.同事相互竞争技术技能:是确保你能从他身上实际学到东西的人。高标准:能让你保持高标准,并不只是为了应付今天的工作,也是为了日后成为更资深的程序员。这样,当你的工作遇到各种问题时,你的师傅可以带领你走正确的职业发展方向上。最后,能做到以上几点,我不相信你嵌入式编程很菜。9 ~- x4 H2 W, O! ^
; I' I3 F) J+ J
文章来源:网络。
8 ^2 B/ m; w, b$ B; k
5 U& b. {6 P7 ?. @ t-END-, b5 S4 Z! Z0 H
往期推荐:点击图片即可跳转阅读. J+ `# } e7 u) U% `7 q& H! I
; K. S: A+ o- W9 O) L" v3 v
! H% f/ R( g9 Z$ x+ p
1 v l, _2 ?' \% r& Q; V0 \ q
" _# u6 V9 U; v0 Y, \6 Z
vgszgi2aazy64071960015.jpg
: J, ~. F, F: x& _. K" L% { ]2 S 3 b4 h* A% b3 J& K* |' Q* |+ i
国庆节后,搞嵌入式的都齐聚深圳!
5 Q# E. C# z8 c1 }& u% S+ \: V
' h" ~3 l7 k# \- b1 }
& b- i3 R( b& t' j6 w$ w # t. f8 M$ z3 W9 L" ~1 P
0 ~1 t6 l2 I& {% ?3 T9 `
. `2 ^0 Q( ^4 G/ F6 Z6 I1 R$ ~8 k3 {4 c; H6 X. [- ^' Q
; X* B6 y2 q5 \5 V4 L5 a
8 E7 S, e# W2 ^! n: J0 G" S+ ~* W 5 Q6 j- N1 \3 @1 O
7 \# K" m* }& k9 X* b! ?* e
qgsbwckpivi64071960116.jpg
4 M* O& G- v9 V3 q9 _5 K - a4 h$ c; B4 w
这绝对是工程师心目中的理想工作室!+ E/ j. E% m8 c) i. p
4 u/ y% S1 d9 h6 [0 C& z
- b1 N% b3 s$ u& h( W * {$ R8 x1 X+ B2 a7 S
7 h$ ]9 G6 `, E. T5 a ' Z2 G) Z9 m9 A+ S: ]/ X
1 q$ U. [' H4 c3 @. k \ ( c! p+ }% g" g) I2 V) M
& Q) e: U, A' k# _
/ D. O/ A2 d, P! b1 [
2 ~& Q- `. C. V$ b1 r% s, L
qgqlrxqnyqi64071960216.jpg
# ?5 M0 [+ y+ J* `" y7 k8 e / z/ o" T! K" x% _
不想让嵌入式核心板吃灰,于是,我准备对它下手了!
: A0 G# E: v. ^" H9 L5 M 2 e. J# G k( p/ e
5 _+ n' X5 ]$ m
: L# v, Z) n0 Y& O8 D $ ~3 }+ @: I' K2 u
5 f; j! N+ O s" D, w/ I+ x% R我是老温,一名热爱学习的嵌入式工程师: r" I2 n5 s4 F' p
关注我,一起变得更加优秀! |