自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何成為一名更優(yōu)秀的程序員?我總結(jié)出 7 條建議

新聞 前端
想成為一名優(yōu)秀程序員?本文作者用自己十幾年的經(jīng)驗(yàn),提出了七條建議和具體措施。

 [[325072]]

想成為一名優(yōu)秀程序員?本文作者用自己十幾年的經(jīng)驗(yàn),提出了七條建議和具體措施。

有幾個(gè)人在 React 大會(huì)上向我請(qǐng)教一個(gè)問題——如何成為一名更優(yōu)秀的程序員。人們將我視為一名非常資深的程序員,因此值得聽聽我的建議。我覺得可以分享一下,自己多年來在編程方面的“思維模式”。

先簡(jiǎn)要自我介紹一下:我叫 James Long,今年 32 歲,有超過 10 年的豐富工作經(jīng)驗(yàn)。不過,直到近幾年,我才對(duì)自己的工作越來越有信心。即使現(xiàn)在,我還是不斷懷疑自己。關(guān)鍵是這種感覺不會(huì)消失,所以試著忽略它,繼續(xù)深究技術(shù)知識(shí),繼續(xù)積累經(jīng)驗(yàn)。

我再次提醒一下,這些只是提高你技能的幾點(diǎn)建議。最終,你需要弄清楚自己適合的方式是什么。

1. 找到能激勵(lì)你的人,但不要崇拜他們

過去許多年,我仰慕過許多人,并且通過他們關(guān)注新技術(shù)。我相信他們是正確的,并且對(duì)他們所做的事情深入研究,因此學(xué)到很多。

這些人往往非常高效、才華橫溢,并且能鼓舞人心。你要想盡辦法找到他們,讓他們激勵(lì)和指導(dǎo)你。

不過,別崇拜他們。如果僅看 twitter 上的貼子,你會(huì)覺得他們遙不可及。但是,如果走近他們的真實(shí)工作中,你會(huì)發(fā)現(xiàn)自己與他們相比沒什么不同。只不過在到處摸索嘗試而已,我們都只是在進(jìn)行試驗(yàn)。

最后,不要盲目地相信他們。如果你有不同意見,就請(qǐng)他們參與進(jìn)來,并從觀點(diǎn)碰撞的過程中汲取經(jīng)驗(yàn)。

我的一些最有成效的對(duì)話就是這樣發(fā)生的。曾經(jīng),我的 Emacs 配置一團(tuán)糟。不知道為什么,我的 OCaml autocompletion 不能用了(它壞了一個(gè)多月)。我沒有自動(dòng)化的東西,有時(shí)必須在 shell 歷史中尋找所需的命令。為修復(fù)問題,我一開始寫 ugliest 代碼。我將東西寫成全局對(duì)象,直到最后才明白我到底做了什么。

最有經(jīng)驗(yàn)的程序員一直在破解和鉆研;最重要的是,你能完成任務(wù),達(dá)成目標(biāo)。

2. 不要貶低自己的工作

程序員小白往往認(rèn)為他們的工作價(jià)值不大,因?yàn)樗麄兪切率?。或者你可能是一名有?jīng)驗(yàn)的程序員,但是在一個(gè)新領(lǐng)域工作,這會(huì)讓你感到不爽。但在我看來,最好的想法往往來自于新程序員,他們可以看到現(xiàn)有技術(shù)的改進(jìn)點(diǎn),而思維固化的人卻看不見。

不管怎樣,你的工作都是值得的。最壞的情況是,即使你的想法沒有成功,社區(qū)也可以從中了解到為什么這種方法行不通。

(給社區(qū)的一個(gè)提示:這要取決于我們是怎么做的,并讓新人很容易融入進(jìn)來。)

3. 不要因?yàn)楹ε侣湮槎煌9ぷ?/h2>

每天都會(huì)有新技術(shù)問世,如果你一晚上不碰技術(shù),可能就會(huì)感覺跟不上這個(gè)世界。這不是真的。事實(shí)上,如果經(jīng)常放下手頭工作,你會(huì)做得更好,因?yàn)槟銜?huì)有新想法。

我發(fā)現(xiàn),當(dāng)不工作的時(shí)候,我總會(huì)有新想法不斷產(chǎn)生。

實(shí)際上,網(wǎng)絡(luò)上每天發(fā)布的內(nèi)容大多是“新瓶裝舊酒”,真正具有革命性的技術(shù)每隔幾年才會(huì)出現(xiàn)一次。關(guān)于這個(gè)問題,你可以看看這個(gè)視頻—— Hammock Driven Development 。

https://www.youtube.com/watch?v=f84n5oFoZBc

4. 忽略 fluff

客觀上說,你能取得更快進(jìn)步的主要方法之一是忽略那些并不能提高技能的“fluff”。換句話說,要“聰明的利用時(shí)間”。一天的時(shí)間有限,你需要將時(shí)間花在鉆研更深層次的事情上。隨著時(shí)間的發(fā)展,你會(huì)發(fā)現(xiàn)自己有很大進(jìn)步。

那什么是“fluff”?這取決于你自身的具體情況。但是,我可以給你一些我認(rèn)為是“fluff" 的例子:語言語法、庫 API 和配置構(gòu)建工具。例如,學(xué)習(xí)一個(gè)新的 ES7 JS 語法并不會(huì)讓你成為一個(gè)更好的程序員,這就像學(xué)習(xí)編譯器是如何工作的一樣。同樣,采用一個(gè)實(shí)現(xiàn)相同想法卻使用新 API 的新庫也沒多大意義。當(dāng)然,這些事情很重要,但我建議你花更多時(shí)間學(xué)習(xí)更深層次的概念。這些概念可以讓你終生受益匪淺。

我有個(gè)問題想問你:你是否花費(fèi)大把時(shí)間讓代碼看起來很漂亮?如果是這樣,我建議你不要太關(guān)注這樣的事。不管怎樣,隨著時(shí)間發(fā)展,你的代碼會(huì)有很多改變。

最好將注意力集中在你試圖解決的核心問題上,比如仔細(xì)考慮一下你的抽象層。在完成所有這些工作后,你可以花點(diǎn)時(shí)間來改進(jìn)代碼。這也適用于 DRY 原則(Don’t Repeat Yourself,不要寫重復(fù)的代碼)。不過別那么擔(dān)心,隨意復(fù)制粘貼吧。

5. 深入學(xué)習(xí)過去的研究成果

如果你有一個(gè)新想法,就會(huì)感到很興奮,情不自禁地想坐下來馬上行動(dòng)。但是,你不應(yīng)該這樣做,你應(yīng)該先做一些粗略研究,了解前人是如何解決它的。碰到類似情況時(shí),先花幾天時(shí)間研究一下,最終會(huì)徹底改變我們解決問題的方式。

學(xué)會(huì)閱讀學(xué)術(shù)論文是一項(xiàng)很寶貴的技能。我對(duì) denotational、operational 等語義一無所知,所以我看不懂很多論文。但是,有很多論文使用代碼而不是數(shù)學(xué)公式來闡述問題,因此并不會(huì)太難讀。過去 30 年來,有大量的知識(shí)通過論文發(fā)表出來。如果你善于獲取這些信息,你很快就會(huì)成為思想領(lǐng)袖。

Prettier 是一個(gè)佳例。我知道自己想要的是什么,但不知道如何實(shí)現(xiàn)它。做過一些研究后,我發(fā)現(xiàn)這篇論文,再過幾天后,我就知道怎么做了。我在一周內(nèi)就把主體工作全完成了。如果忽略別人的研究成果,那我就要花更長時(shí)間。

http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf

如果你想尋找論文的話,GitHub 庫 Papers We Love 是一個(gè)推薦。

https://github.com/papers-we-love/papers-we-love

6. 去參與一些大項(xiàng)目

經(jīng)驗(yàn)比任何東西都寶貴。不是每個(gè)人都有機(jī)會(huì)去嘗試,但如果有時(shí)間,你可以試著去做一些大項(xiàng)目。你甚至不需要去完成它們。僅僅是嘗試寫一個(gè)編譯器之類的東西,這就能在開始幾周教你很多東西。

說實(shí)話,我很討厭那種我不知道如何解決復(fù)雜問題的感覺。這讓人很痛苦。在接近解決方案前,我必須做大量的研究和學(xué)習(xí)。有過這樣的痛苦經(jīng)歷后,我總是可以得到提升,成為更優(yōu)秀的程序員。

從學(xué)習(xí)一門新語言開始。這是幫你擺脫當(dāng)前習(xí)慣和從新角度看問題的最有效方法。

對(duì)我來說,當(dāng)我還是一個(gè)年輕的程序員時(shí),我做的最好事情就是學(xué)習(xí) Scheme 。這是一門非常簡(jiǎn)單的語言,它會(huì)強(qiáng)迫你以函數(shù)式的方式完成所有事情,并真正了解代碼工作的基本原理。我在 Scheme 上花費(fèi)數(shù)年時(shí)間,直到今天仍然受益。并且,我對(duì)代碼的看法發(fā)生根本性改變。

7. 建議做的六件事

我推薦做幾件事,這些都我的程序員生涯產(chǎn)生重大影響。并且,他們中的許多事直到現(xiàn)在還以微妙的方式影響我,幫我對(duì)新想法進(jìn)行分析。為了成為一名優(yōu)秀的程序員,你無需做完全相同的事,你可以學(xué)習(xí)很多其他東西提高自己。

學(xué)習(xí) C 語言——如果你沒學(xué)過,學(xué)一些基本的就夠了。試著去想想,為什么每個(gè)人都抱怨它,這件事非常有價(jià)值。

寫一個(gè)編譯器——這可能讓你很不爽,可以看看 super tiny compiler 項(xiàng)目。

學(xué)習(xí)宏——請(qǐng)參考 Scheme、Lisp 或 Clojure(腳本)。宏會(huì)真正改變你對(duì)代碼的看法。

SICP—— SICP 是一本舊書,我認(rèn)為直到今天仍然很有價(jià)值(有些人或許不贊成這個(gè)觀點(diǎn))。只要你有很少的編程知識(shí),它就可以引導(dǎo)你一直實(shí)現(xiàn) a meta-circular evaluator 和 compiler。另一本,我很喜歡并在編譯器方面做過深入研究的書是 Lisp In Small Pieces 。

了解 Continuations:Continuations 是一種低級(jí)的控制流機(jī)制。Scheme 是唯一實(shí)現(xiàn)它的語言。雖然你永遠(yuǎn)不會(huì)在生產(chǎn)環(huán)境中使用它們,但它們會(huì)改變你對(duì)控制流的看法。我寫過一篇試著解釋它們的博文。

如果有可能的話,試著使用一種新語言:不管你做什么,你真的應(yīng)該探索其他語言。我推薦以下任何一個(gè):Clojure、Rust、Elm、OCaml/Reason、Go 或 Scheme 都可以。它們都有自己的特點(diǎn),可以驅(qū)使你學(xué)習(xí)一種新的思維方式。

 

 

責(zé)任編輯:張燕妮 來源: 架構(gòu)頭條
相關(guān)推薦

2021-02-05 14:56:39

YouTube編程程序員

2017-09-21 09:44:00

編程程序員軟件開發(fā)

2011-05-03 08:54:36

2012-12-12 09:52:18

程序員

2011-11-09 13:52:04

程序員

2015-05-15 10:39:44

Java 冠軍程序員?

2019-01-28 11:54:28

程序員技能溝通

2011-04-11 17:41:35

C++程序員

2021-02-21 13:49:48

Java程序員開發(fā)

2015-06-04 11:31:36

程序員12周內(nèi)

2015-03-19 14:56:08

程序員專專家級(jí)的程序員

2017-10-22 16:16:03

程序員編程代碼

2014-02-26 13:01:01

程序員趣聞

2021-01-03 10:30:54

編程程序員

2022-09-30 10:32:59

API文檔

2015-11-30 11:01:07

程序員閱讀源代碼

2015-11-30 08:57:07

源代碼閱讀程序員

2016-03-28 10:01:45

優(yōu)秀程序員關(guān)鍵閱讀

2021-06-30 10:48:30

VueReact前端

2011-05-23 15:18:34

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)