Ⅰ 我在一個公司實習,他們給了一個他們以前做過的項目讓我看,告訴我要讀懂,我該怎麼入手
首先你了解.NET么?不了解的話說了也白搭。
了解的話先別看他的後台代碼,運行下網站,看看都有什麼功能,想一想你做的話每個功能該如何實現。動手做一遍,做不出來也不要緊,起碼做到每一步在沒看他的代碼前自己獨立思考過。最好每種功能的實現拿出幾種方案。整體想過一遍或做過一遍後,從index頁面開始,對照他的後台代碼,看看他是如何實現的,和自己的比較一下有什麼不同。他做的哪幾點比你好,哪幾點趕不上你。
這樣大概的過程你能有個初步了解。
一遍之後你會發現還有一部分代碼不明白,連干什麼用的也許都不知道,網上查,只能自學。
只看代碼想要看明白除了一些基本的操作,其他的基本上很難,特別是別人所寫的邏輯關系,演算法。讀代碼最重要的是先明確這段代碼的功能,在這個基礎上讀就容易多了。
還有要是大項目的話,你首先要弄明白大體上有幾個模塊,每個模塊幾個介面,每個介面實現了幾個功能等等。
還就是要嚴格准受的一些規范要注意。
快下班了,打兩個字輕松一下。
Ⅱ c語言的代碼總是記不住怎麼辦
記代碼不行,只要記住像輸入輸出等基本運算的一般格式。做程序時,想好步驟。不用記代碼,也能成功。但是還是建議多看一些優秀的代碼,然後自己做一半,不看書的哦。這樣以後自己做時,不會沒思路。加油
Ⅲ 安卓開發學完了後,回想起來也好像忘完了,每天學那麼多記不住呀。怎麼辦
自己平時多看看筆記,另外自己閑的沒事乾的時候就做一些小東西,應用到實際中,自然就記住了。
Ⅳ 程序員如何方便的管理自己以前寫的代碼
一、代碼的最大長度。
雖然在java的編譯器中對於代碼的最大長度沒有硬性的規定。但是如果代碼的長度太長,超過了編譯器的最當行寬,顯然閱讀起來比較麻煩。為此根據筆者的經驗,通常情況下Java源代碼的行長度不應該大於80個字元。如果超過這個長度的話,在一些開發工具和編輯器上就無法很好的顯示。如需要通過滾動條來顯示後面部分的代碼。當其他項目成員閱讀這超長的代碼時,就會看得眼花繚亂。當人的溫飽問題解決了之後,就需要開始注意美觀方面的問題。所以程序開發人員在開發應用程序的時候,要盡量避免書寫長的代碼。如果代碼的每行長度確實需要超過80個字元的話(最好將每行代碼的長度控制在70個字元左右),那麼就需要對代碼進行分行。
二、在恰當的地方對代碼進行分行。
筆者建議將Java源代碼每行的長度控制在70個字元、最大不超過80個字元。當超過這個字元長度的時候,開發人員就需要考慮在恰當的地方對他們進行分行處理。不過這個分行也不是說開發人員想在哪裡進行分行就在哪裡進行分行。這個分行是有一定技巧的。雖然這些技巧大部分並不是強制性的規定,但是都是一些專家們的經驗總結,可以提高代碼的閱讀性。為此筆者希望各位程序開發能夠嚴格的遵守。
技巧一:高層折行優於低層折行。
這個技巧是說,在考慮對代碼進行折行處理的時候,需要注意代碼的層次性。如某段代碼涉及到混合四則運算,而四則運算又有明顯的運算順序,此時對代碼進行折行時就最好能夠在四則運算的關鍵順序上進行折行處理。如現在有如下的一段代碼:
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
如果要對這段代碼進行折行的話,該在哪個地方加入一個折行符號呢?如果是筆者處理的話,筆者會按如下的格式對代碼進行折行處理。
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
這主要是根據四則運算的運算層次來進行折行的。顯然,*符號的優先順序要比+符號要高。所以在+號前面對其進行折行處理,那麼就可以一目瞭然的反應出代碼的運算層次。可以大幅度的提高代碼的閱讀性。所以代碼折行的第一個技巧就是高層折行優於低層折行。如此的話,可以使得應用程序的結構代碼更加的清晰,更容易被團隊成員所理解。
技巧二:在運算符前面進行折行處理。
其實在如上的折行技巧中,還隱藏著一個規則,即在運算符之前進行折行。如上例所示,筆者就是在+號前面進行折行,而不是在+號後面進行折行處理。這主要也是考慮到代碼的可讀性。如上面這個例子中,如果在+號後面進行折行處理的話,則下一行就會給人一種憑空多出來的感覺,顯得代碼很不連貫。跟這個規則類似,如果在折行處理的時候遇到逗號時,那麼最好能夠在逗號後面進行折行。如在一個方法中,需要傳入5個參數。此時如果代碼行比較長,那麼就需要在幾個參數之間進行折行處理。此時最理想的折行位置,就是在某個參數的逗號後面。注意,使在逗號後面進行折行,而不是在逗號前面。因為一個參數一個逗號是匹對的。而如果一個逗號加一個參數,則讓人看起來很不舒服。
技巧三:這行代碼的對起方式。
當不得已對代碼進行折行處理時,下一行的代碼應該與其同等級的代碼行左對齊。如上例所示,在+號前面將某一段四則運算公式進行折行處理的時候,其+號符號已經採取縮進處理。其縮進後的效果就是要與其同等級的代碼行左對齊。如此的話,明眼人一看就知道這段代碼採取過折行處理;而且跟上一行代碼的層次關系。當一段代碼被分割成三行甚至跟更多行數的時候,這個規則會非常的有用。如果能夠嚴格遵守這個規則,即使將代碼分割成多行,看起來也不會覺得那麼混亂。反而給人一種比較有層次的感覺。
另外在採取縮進處理的時候,可以利用Tab鍵來提高縮進處理的效率。因為直接按空格的話,有可能空格字元數量不一致,會讓人覺得層次不起,產生比較大的混亂。一般情況下,當代碼行兩側距離頁邊的距離比較大,看其來不怎麼舒服時,可以在代碼行中通過插入TAB鍵(會在代碼行中連續插入8個字元)來提高代碼的閱讀性,讓代碼的縮進實現統一。
技巧四:為變數尋找一個合適的位置。
在編寫應用程序時,盡量將變數聲明放置在一個代碼塊的開始處,也就是說{}花括弧的開始位置。雖然說可以在需要使用變數的時候再對其進行聲明。但是筆者不同義如此操作。因為如果在的呢感到使用變數的時候再來聲明變數時,會降低代碼的可讀性。同理,也需要避免低層聲明與高層聲明重復,這樣會引起代碼混亂並可能引發程序功能性錯誤。而且這種錯誤在後續的排錯中很難被發現。為此要在應用程序開發的時候就要盡量避免這種錯誤。
在聲明變數的時候,有時候可能代碼很簡單,生命變數的行總共加起來也不會超過十個字元。此時能否把多個變數的聲明寫在同一行呢?從就技術上來說,這是可行的。也就是說,Java編譯器允許將多個變數定義在同一行上。但是從閱讀性上來說,這並不是很好的做法。筆者的建議是,即使變數定義再簡單,或者變數比較多,也最好分行進行變數的聲明。也就是說,一行聲明一個變數。這可以提高代碼的可閱讀性。而且有時候往往需要對變數加一個注釋說明變數的用途,如果以行定義一個變數,添加行注釋也相對簡單許多。
總之,以上的這些折行的規則基本上不會影響到代碼的運行。但是,對於代碼的維護與後續的排錯、升級、二次開發等等具有不可忽視的作用。而且現在基本上應用程序開發式團隊開發,故大家都遵守同樣的代碼編寫規范是非常重要的。筆者在開發一個應用程序的時候,事先都會花一定的時間,跟項目成員強調這些折行的規則。目的只有一個,就是提高代碼的可讀性,便於後續代碼的共享與維護。畢竟後續面對這些代碼的,並不是客戶,而是我們自己。我們程序員在編寫代碼的時候,不能夠搬起石頭砸自己的腳。筆者認為,現在一個合格的程序人員,不僅技術功底上要過得硬,而且還必須要遵守這些無形規則的約束。難怪現在這么多企業在挑選程序開發人員的時候,都會註明良好的編碼規范。現在對於這些無形中的條條框框,項目經理已經開始重視起來。
Ⅳ JAVA裡面的代碼老是記不住怎麼辦
記住java代碼不是一朝一夕就能成功的,需要多學多練,熟能生巧。以下是一些注意事項和技巧,對你有幫助:
不要總對別人說的給個代碼吧!你應該多想想如何做,怎麼做?當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異,這樣才能進步。
初學者請不要看太多太多的書,只會紛亂你的心思,先找本好書完整系統的學,很多人只對部分功能熟悉而已,不系統功能體繫上還是不夠的。
看幫助,不要因為很難而自己是初學者所以就不看;多看的參考手冊,雖然你可能看不懂,總覺得不夠直觀。但這才是最根本的東西。
不要被對象、屬性、方法等詞彙所迷惑;最根本的是先了解最基礎知識。
要關注那些細小的細節的問題--他們往往並不那麼簡單,為了解決它你可能要用到很多很多的東西,幫你回顧知識點;拓寬思路。
知道一點東西,並不能說明你會寫腳本,腳本是需要經驗積累的。學腳本並不難,JSP、ASP、php等等也不過如此--難的是長期堅持實踐和不遺餘力的博覽群書;
學習java最好的方法之一就是上手動手去練習;永遠不要認為自己看的書足夠了;要看懂書,仔細看書;遇到完全看不懂的書,請硬著頭皮看; 別指望看第一遍書就能記住和掌握什麼,一次,兩次,三次知道搞懂所有的東西;
不著急,因為學習腳本不是一蹴而就的,只有厚積才能薄發。學習的過程中,記下自己喝別人不懂的思路想法。與別人經常交流,記錄下在和別人交流時發現的自己忽視或不理解的知識點;
首先你得學會出現問題自己想辦法找答案,谷歌、網路都是很好的搜索引擎,你只要輸入關鍵字就能找到很多相關資料,用自己的行動學好java吧。
Ⅵ 如果一個程序員忘記了所有的技能,那麼會出現什麼情況
編程語言能力。不用多說,作為合格的計算機程序員,精通一門語言是必須的。這種精通,不是說看了一本編程寶典,抄了幾個程序就能說精通的,要靠長時間的積累編碼能力。遵守編碼規范,是一個程序員最基本的要求,可悲的是,很多程序員根本沒有意識到這個問題的嚴重性。另外一個就是注釋,要注意不是為了注釋而注釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對於大段大段的代碼,要分段,使用空行隔開,並使用行內注釋進行說明。面向對象思維能力。如今,多數編程語言都是面向對象的編程語言。而這些面向對象的編程語言的共同的精髓就是面向對象的思想。掌握這些比面向對象語言本身更重要,比如對繼承,多態,重載的理解。對面向對象基本原則的理解,比如開閉原則,介面隔離原則,單一職責原則等。在此基礎上,應該掌握常用的設計模式,比如工廠模式,策略模式,觀察者模式,模板方法模式,命令模式等等。我面試過很多程序員,沒有一個能說得上幾句的。英語管理。新的技術資料都是英文的,英語國家的IT技術走在我們前面至少10年(這是我自己估計的數字,可能正在縮小)。就連印度,一個連基礎設施建設都不太完善的國家,因為其英語基礎較好,其在軟體外包領域的發展也非常迅猛,遠遠超過了我們。學英語,首先是有信心,其次就是花時間。多閱讀英文資料,貴在堅持。利用工具能力。工欲善其事,必先利其器。有了趁手的傢伙,工作效率可以提升數倍。你編程序,有沒有選擇一個很好的IDE,以前聽說編程高手都用記事本寫程序,我覺得那是一種自虐。就像以前看到的一篇文章,說一幫戶外旅行愛好者,出去旅遊,背了重重的旅行包,裡面裝著什麼壓縮餅乾等快速食品。他們寧可就著礦泉水啃壓縮餅干,也不肯去1里路都不到的快餐店,農家菜館吃飯。工具是為目的服務的,好用,提高效率就行,形式無所謂。學習能力。在IT業混飯吃不容易,整個環境進化的太快,你不學習,就等於落後了。學習要有針對性,別今天學ruby,明天學python,後天php的。首先要認清自己的目標,自己短期目標是什麼,1年後,3年後,5年後的目標是什麼。結合這些目標,確定自己的學習計劃,人的精力畢竟是有限的。當然,多掌握幾門編程語言也是好的,可以擴充自己的知識面,重要的是為自己的目標服務。當然,不能只學習技術,作為程序員還要關注的很多,要經常練習自己的軟技能,比如溝通能力,表達能力。創造能力。普遍認為,東方人模仿能力很強,但創造能力差。我見過很多這樣的程序員,經常說,「這個只能這么解決了,我想不出有什麼別的方法。」可能他根本都沒想過別的方法,或者懶得去想。對任何一個問題,找出兩種以上的解決法都是非常容易的,簡單的google一下,可能就是數十種。悲哀的是,有些程序員經常止步於自己構建的狹小領地之內。對待客戶也是這種態度,不是積極的幫助客戶解決問題,而是推脫這只是唯一解決方案。文檔能力。也許有人會質疑,程序員跟寫文檔有什麼關系。大家開源軟體也用過不少,看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。其實寫代碼也相當於寫文檔,只不過用的是編程語言。同樣,寫文檔,用自然語言,也相當於寫程序,簡單明了,清晰易懂,這樣的「程序」誰看誰舒服。同樣,對於想進階到設計師或者需求分析員角色的程序員,文檔能力更是非常重要。DRY。DRY是一種原則,就是Don」tRepeatYourself.這條原則可以用到很多地方,比如你經常要編譯,打包,部署應用程序,供集成測試用。每次你都在重復你自己,寫一個自動化腳本(比如用ant,批處理命令)來將這些工作自動化,以提高效率。抽象能力。抽象能力是認識事物從現象到本質的能力。如果你只是停留在「見山是山,見水是水」的層次,客戶說什麼,你就做什麼,設計怎麼做,你就怎麼實現,從來不過問為什麼,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問題,可能會引起返工。認識到本質,才能讓你的程序具備更大的靈活性和可擴展性。在做企業應用軟體開發中,抽象能力體現為對問題域的理解能力,對領域模型的抽象。合理的抽象也是代碼重構的前提,每一次重構,都是向更好的抽象邁進了一步。ITJOB
Ⅶ 程序員記憶力不好,記不住數據結構,還適合干這行么
我編程的思路就是,一次性編寫終生受益,例如我要寫一個tcp的server。我只要寫好了,我就把這份代碼存放起來。並且寫一個自己的總結,這樣在3年後我再想寫一個tcp server我可以在比別人更短的時間寫出一個能用的tcpserver。如此類推•~我有了自己熟悉的鏈表,hash。有了unix socket 、tcp、udp、raw 、有了python爬蟲、有了路由常用實現,有了很多很多。如果人叫我去憑空寫出這些來。。我完全不行,如果把我的筆記帶上。我將能比普通人更快的,而且更穩定的實現。。除了這些,我不斷在github上發現一些可能用得上的項目,學習然後總結。至今已經快300篇自己的記錄了。
記錄不僅僅是筆記,代碼,有些還是一些腳本。例如如何去安裝一個web開發環境,可能就是一個腳本。還有一些可視化的方法,例如我記不住GDB的命令,我就做一個GDB的前端,把常用的命令弄成圖形化的界面。。點呀點就好了。例如系統很多的狀態獲取我記不住命令,就做個web的圖形化顯示。啥子都可以看懂。我又何必去記憶這些命令。
只要我們能解決問題,又管他我是一行一行寫出來的代碼,還是我之前寫過的代碼呢?記憶力差又怎麼樣。。5年下來如果你寫個上千篇文檔或者類似的工具。難道生產力還會低,能力還會低么?古人雲:君子性非異也,善假於物也。記不住,就想辦法不記住也能解決問題。
世上無難事,只怕有些人。你能解決別人解決不了的問題:可以引申出你能以更低的代價解決別人覺得很難的事兒。生活就像是一場考試,而習慣靠記憶解決問題的人他是閉卷考試,而你是開卷而且以及總結好了(小抄)。
Ⅷ 程序員怎麼能牢記學習過的東西
1、要明白你能做什麼,而不是記住怎麼做
其實,代碼可以構建的功能有無數種可能性!你可以設想通過代碼構建任何內容,只有你想不到的,沒有構建不了的。學習一種新語言是一件非常令人激動的事情。
查看問題以及代碼示例,並通過這些示例學習如何利用這種語言以及/新概念完成工作,這都非常重要,但我們無法記住所有的信息,不要做無謂的嘗試!你可以在今後需要實現的時候,再反過來查看,剛開始的時候,你只需要記住這種概念可以實現什麼樣的功能。
在我深入研究React.js時,這種方式給予了我的學業很大幫助。實現的可能性太多了,你有無數種方式傳遞props、創建新state、組合組件——實在太多了!就像一個大謎團!我了解到React可以實現非常多的功能,雖然我無法確切告訴你該如何做,但我知道存在這種可能性,這很重要。
2、在需要時尋找所需的代碼
就像學說一門新語言,你知道自己想說什麼,但你不知道該怎麼說。編程語言也是如此!
在我剛開始學習編程時,人們稱Google為「終極工具」。那時我就在想:我使用Google已經很多年了……我錯過了什麼嗎?
後來才發現:重要的不是搜索內容,而是搜索的方式。無論你想尋找什麼答案,網上都有,就看你怎樣才能找到了!
在用外語與其他人交談,或用一門新語言編程時,你可以通過Google找到如何表達。你不必記住括弧放在何處,或者這里是逗號還是分號。應該使用圓括弧還是大括弧這種問題很容易出錯,而且也很容易解決!只需快速搜索,兩秒鍾就能找到答案。
但是,我有幾次因為未能寫出完美的語法而感到內疚。有語法問題那就有唄!重要的是你知道自己要做什麼,然後只需要記住該如何做即可!
3、從何處下手?
學習一門新的編程語言必然會令人不知所措,還會引起混亂。當有人說:「放手去做就好了!」時,我會覺得很迷茫,我該從何處下手呢?最終我發現:你永遠也無法為需要構建的功能做好准備,你唯一能做的就是走一步看一步,先動起來。
如果說每次沒有遇到任何問題、不需要搜索任何技術、不需要尋求別人的幫助、也不必返工就能成功構建一個項目,我就可以拿到一美元的話,那麼我告訴你……到目前為止我一美元也沒拿到!犯錯是學習過程中的一部分。
犯錯是學習、發展和提高程序員技術力的一部分。而學習故障排除和調試代碼則更重要,而不僅僅聽別人說:「我也遇到過這個問題,你所需要做的就是……」。
我強烈鼓勵你嘗試自己解決問題。努力奮斗。不要害怕搞亂或破壞你的代碼。必要的時候,可以重新構建整個項目。在學習新知識(例如編程)時,一遍遍重復才能學到真技術。一遍又一遍,直到你全部掌握為止。
4、如何實現呢?
找到你想要構建的東西,然後開始動手!不要猶豫不決。反復嘗試和失敗。當你不確定想要完成的功能時,請花點時間研究問題。分解成塊。弄清楚如何解決每個塊。
然後,再想法把所有塊聚攏到一起。如果你忘記了如何編寫for循環,或者忘記了高階函數會返回什麼,那也無需擔心。你可以參閱文檔或指南,然後再繼續。
有時這是一個緩慢的過程,但非常值得。最終,你會越來越有自信,而且有很多想要實現的新想法。
你會記住如何實現嗎?不會。
但是,你可以參考過往的項目, 在Google上尋找答案,或者閱讀論壇。答案都是現成的,你需要做的只不過是找到答案而已。