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

.NET 開(kāi)發(fā)者提高編程技能的五種方法

開(kāi)發(fā) 后端
即使擁有40年的編程經(jīng)驗(yàn),我唯一能確定的就是肯定有比我更好的程序員。但是我并沒(méi)有放棄,我會(huì)繼續(xù)嘗試并提高自己的編程技能。

[[436601]]

即使擁有40年的編程經(jīng)驗(yàn),我唯一能確定的就是肯定有比我更好的程序員。但是我并沒(méi)有放棄,我會(huì)繼續(xù)嘗試并提高自己的編程技能。

我認(rèn)為有五件事可以幫助任何人成為更好的程序員。有些是我個(gè)人的經(jīng)驗(yàn),有的則是我從網(wǎng)上和其他程序員那里學(xué)到的方法。

查找適合您的學(xué)習(xí)方法

我們每個(gè)人都以不同的方式學(xué)習(xí)。例如,我不是視頻學(xué)習(xí)的忠實(shí)擁護(hù)者,而是寧愿從書(shū)本或網(wǎng)站上學(xué)習(xí)。而且我敢肯定我并不孤單:對(duì)于許多人來(lái)說(shuō),一段30分鐘的視頻(甚至更長(zhǎng))太慢了。這就是為什么YouTube上一些最受歡迎的編程視頻往往很短的原因-在許多情況下,時(shí)間在5到12分鐘之間。

如果您在學(xué)習(xí)視頻方面遇到困難,建議您去上學(xué),閱讀?;氐轿覄傞_(kāi)始的時(shí)候,編譯器附帶了廣泛的紙質(zhì)手冊(cè),您可以從頭到尾閱讀?,F(xiàn)在所有軟件文檔似乎都在線上,您可以按照自己的進(jìn)度閱讀。

如果您不是被動(dòng)學(xué)習(xí)的愛(ài)好者(無(wú)論是基于視頻還是基于文本),那么還有另一種可行的方法:編寫(xiě)比賽代碼。您不必取勝,但是將自己的技能與其他人置于快節(jié)奏的環(huán)境中通常會(huì)教給您一些新的技巧。而且,如果您確實(shí)贏了-嘿,通常會(huì)有現(xiàn)金獎(jiǎng)。Project Euler[2],TopCoder[3],Coderbyte[4]等幾個(gè)網(wǎng)站都可以挑戰(zhàn)您。

無(wú)論選擇哪種教育方式,都要確保離開(kāi)舒適區(qū)。您需要投入未知才能成為更好的程序員。即使您有多年的經(jīng)驗(yàn),仍然有很多東西要學(xué)習(xí)。

簡(jiǎn)化您的代碼

只要有問(wèn)題的代碼寫(xiě)得好并且易于遵循,閱讀其他人生成的代碼就很有見(jiàn)識(shí)。如果您在編寫(xiě)和維護(hù)代碼時(shí)遇到麻煩,檢查有經(jīng)驗(yàn)的程序員如何處理類(lèi)似的任務(wù)是挑選一些指針的好方法。通常,您會(huì)發(fā)現(xiàn)這些專(zhuān)業(yè)人士盡可能地簡(jiǎn)化了他們的代碼。

這是我多年來(lái)積累的一些簡(jiǎn)化技巧:

刪除明顯的復(fù)制和粘貼代碼。如果您在不同的地方看到相同的代碼,則很可能成為類(lèi)中的函數(shù)或方法的候選者。

將大型代碼塊拆分為較小的代碼塊。同樣,您可以將這些巨大的塊簡(jiǎn)化為函數(shù)或方法,即使它們僅被調(diào)用一次:具有有意義名稱(chēng)的代碼塊也更易于遵循。您并非總是能夠?qū)⒋a簡(jiǎn)化為單一功能,但這是您可以追求的目標(biāo)。

使用重構(gòu)工具使變量名更具描述性。另外,添加有意義的注釋。從簡(jiǎn)單的函數(shù)開(kāi)始,以便您可以理解它們,并力求在每個(gè)函數(shù),類(lèi)和方法的頂部至少有一行注釋。

學(xué)習(xí)不同的編程語(yǔ)言

同樣,作為一名程序員而提高意味著要超越自己的舒適區(qū)。例如,如果您了解面向?qū)ο蟮恼Z(yǔ)言,請(qǐng)嘗試一種功能性的語(yǔ)言。對(duì)于C#,顯而易見(jiàn)的功能語(yǔ)言是F#。同樣,如果您僅編程桌面應(yīng)用程序,請(qǐng)嘗試學(xué)習(xí)移動(dòng)或Web開(kāi)發(fā)[5];如果您知道C#,則可以將Xamarin用于移動(dòng)開(kāi)發(fā)[6],也可以將ASP.NET MVC用于Web。我知道臺(tái)式機(jī)C#和Xamarin,但不了解ASP.NET MVC,我最近開(kāi)始學(xué)習(xí)在線課程。

盡管它可能對(duì)您的編程無(wú)濟(jì)于事,但我鼓勵(lì)Windows開(kāi)發(fā)人員學(xué)習(xí)如何使用Linux[7]。您可以將其安裝在舊PC或Windows機(jī)器上;如果要對(duì)網(wǎng)站進(jìn)行編程,請(qǐng)嘗試在Linux[8]上設(shè)置Apache Web服務(wù)器。

學(xué)習(xí)新編程語(yǔ)言的首選方法是轉(zhuǎn)換現(xiàn)有的實(shí)用程序或小型程序。因?yàn)槟呀?jīng)知道它的作用以及它的工作方式,并且獲得了輸出或測(cè)試結(jié)果,所以使用新語(yǔ)言確實(shí)可以簡(jiǎn)化學(xué)習(xí)過(guò)程。例如,我通過(guò)獲取現(xiàn)有Z80編輯器/匯編器的源代碼并從中編寫(xiě)6502交叉匯編器來(lái)學(xué)習(xí)Z80匯編器編程。我沒(méi)有調(diào)試器,這可能有點(diǎn)極端,但是它對(duì)我有用。

探索不同的做事方式

這可能是這五件事中最難做到的。遇到編程問(wèn)題時(shí),我的直覺(jué)總是鎖定解決問(wèn)題的特定方式。但是通常有更多的方法可以解決它。一旦用通常的方法解決了問(wèn)題,就可以通過(guò)更快或更節(jié)省內(nèi)存的方法來(lái)重做舒適區(qū)。起初可能會(huì)令人沮喪,但它可能使您成為功能更豐富的程序員。

在調(diào)試器中單步執(zhí)行代碼

您可能會(huì)認(rèn)為所有程序員都這樣做;但是在我的職業(yè)生涯中,我遇到了至少兩個(gè)沒(méi)有這么做的人,他們留下了一個(gè)漏洞被客戶(hù)發(fā)現(xiàn)。(“生產(chǎn)測(cè)試”,我曾聽(tīng)說(shuō)過(guò)這種說(shuō)法,但這并不是對(duì)職業(yè)的友好舉動(dòng)。)如果您確信自己的軟件沒(méi)有錯(cuò)誤,那么可以采用著名計(jì)算機(jī)科學(xué)家Donald Knuth[9]的方法:他將獎(jiǎng)勵(lì)支票郵寄給發(fā)現(xiàn)自己編寫(xiě)的軟件有錯(cuò)誤的任何人。

不愿意冒險(xiǎn)嗎?單步執(zhí)行代碼。您將對(duì)正在發(fā)生的事情有一個(gè)更好的了解,確定自己思維中的薄弱環(huán)節(jié),并在下次構(gòu)建類(lèi)似的軟件時(shí)學(xué)習(xí)做什么(或不做什么)。

結(jié)論

我會(huì)練習(xí)這些技巧嗎?多半是對(duì)的。正如任何程序員所知道的那樣,當(dāng)您忙于工作時(shí),很難找到學(xué)習(xí)和成長(zhǎng)的時(shí)間。盡管如此,重要的是要保留時(shí)間嘗試新事物。盡可能地保持技能的磨練不僅是保留您的工作,而且還可以完成您實(shí)際想要做的項(xiàng)目的最佳方法。

References

[1] David Bolton: https://insights.dice.com/author/dhbolton/

[2] Project Euler: https://projecteuler.net/

[3] TopCoder: https://www.topcoder.com/challenges/?pageIndex=1

[4] Coderbyte: https://coderbyte.com/

[5] Web開(kāi)發(fā): https://www.dice.com/jobs/q-Web+development-jobs

[6] 移動(dòng)開(kāi)發(fā): https://www.dice.com/jobs/q-Mobile+development-jobs

[7] Linux: https://www.dice.com/jobs/q-Linux+Administrator-jobs

[8] Linux: https://www.dice.com/jobs/q-Linux+Administrator-jobs 

[9] Donald Knuth: https://en.wikipedia.org/wiki/Knuth_reward_check

原文鏈接

https://insights.dice.com/2017/08/29/5-ways-improve-programming-skills/

 

責(zé)任編輯:武曉燕 來(lái)源: DotNET技術(shù)圈
相關(guān)推薦

2017-04-10 09:07:47

開(kāi)發(fā)者開(kāi)發(fā)代碼

2020-04-26 10:05:29

編程程序員技術(shù)

2013-09-10 09:35:53

移動(dòng)開(kāi)發(fā)者全能開(kāi)發(fā)者技能

2016-06-13 14:13:27

開(kāi)發(fā)者全新編程語(yǔ)言

2023-07-06 17:00:44

服務(wù)器

2022-02-13 00:24:33

開(kāi)發(fā)VueJavaScrip

2022-03-14 18:37:38

IT效率首席信息官IT領(lǐng)導(dǎo)者

2011-07-07 10:05:04

服務(wù)器整合

2024-07-05 11:34:07

2022-01-13 20:00:16

C語(yǔ)言編程語(yǔ)言

2021-06-02 05:47:32

程序員編程開(kāi)發(fā)

2020-06-23 09:52:31

運(yùn)營(yíng)效率首席信息官IT預(yù)算

2018-01-25 22:16:56

2013-07-09 14:53:06

編程

2011-07-11 15:10:58

HTML 5

2016-11-01 11:11:54

數(shù)據(jù)中心大數(shù)據(jù)

2020-01-10 09:00:00

開(kāi)發(fā)者編程習(xí)慣編程方式

2010-01-19 17:20:39

交換機(jī)能源效率

2009-07-20 17:07:30

提高ASP.NET性能

2022-12-29 08:46:15

IT采購(gòu)投資
點(diǎn)贊
收藏

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