編程炫技
㈠ Web前端開發有哪些良好的編程習慣
個人建議, 多看別人的代碼,多給別人看自己的代碼。多思考怎麼簡化邏輯,怎麼容易維護。相關的文章和書籍還是挺多的。把js學透,在頁面重構方面學好css,盒模型把bfc都學懂。編程技術方面就是不斷的模仿和吸收,沒事多折騰,但不是瞎折騰。
布局的話去看css那些事兒,js的話去妙味課堂花100弄個會員可以看裡面的視頻資源很多,一年堅持下來就到中級了,之後再考慮向重構還是專寫js上發展,不管怎麼樣多寫一下總結,多問幾個為什麼,多練習。
以上就是一些良好的習慣,希望參考。
㈡ 編程老手的哪些特點,是值得新手程序員學習
1. 活躍斗膽地谷歌。你得知道怎樣有用地安排查找要害字,查閱他人寫的代碼,然後合理地用在代碼里,然後處理疑問。
2. 擁抱改動,持之以恆。內行程序員在觸摸新技能時,能欣然承受像個初專家相同處處受挫,並總能在完結作業的一起自學成才。
3. 供認細節的首要性。例如變數和函數的命名、CSS 特點的命名、該用哈希仍是用數組,以及別的看起來微缺乏道,但也許對項目有深遠影響的作業。
4. 供認大大都的 「首要抉擇」 本來並沒有那麼首要。通常的開發者經常在技能選型等 「嚴峻疑問」 上墮入唇槍舌戰,而程序員老鳥們會防止糟蹋時刻在罵戰中。這一點上,他們就像禪宗大師相同(zen-like)。
5. 挑選適宜的東西處理疑問。網上有很多的開源庫、東西和結構,讓人目不暇接。而內行們了解地知道關於怎樣的疑問,應當用啥樣的東西。
6. 了解代碼「不值錢」(該刪就刪)。你有必要習氣於刪掉幾百行代碼來重寫程序的某一有些,毫不留情。
7. 在評價技能的時分要悉數。例如,我一向在宣傳 Elixir。它語法美麗,社區完善,有很大的潛力。但 Elixir 誕生的時刻太短,所以假如要構建雜亂的功用,也許會難以找到能幫你行進功率的開源東西。因而,在評價要不要挑選運用一項技能時,你得把一切這些要素都考慮在內。
8. 學會說 「我不知道」。沒有比回絕供認自個不知道更能糟蹋一個開發者的時刻了。
9. 細心剖析過錯信息里的條理。傳統教育通知咱們:失利是壞事。報錯信息這種東西也經常被跟失利聯絡起來,但是優異程序員了解,這些過錯音訊里本來隱藏著能將你指向終究准確處理計劃的條理。
10. 了解過早優化和必要的 「炫技式」 優化的區別。內行們了解在啥時分需求寫一些看上去沒那麼好懂,但會讓程序運轉更快的代碼。
11. 每自個都會犯錯,為自個的過錯擔任。而格外在團隊里,把職責推來推去沒有任何含義,由於過錯的發作通常不只僅一方的要素構成的。
12. 變成你所用的開發東西的重度用戶。假如長時刻在某個開發環境下有恰當份額的開發作業,那你應當去把握運用它的細節。
13. 學會用 Vim(最少會一點)。 你最少應當在這個修改器里學會牽強地移動和翻頁。
14. 不要接生疏技能范疇的私活。自個做自在作業項目,其間很大一有些應戰即是評價項目時刻。不要計劃自個未知范疇的作業,那會讓你處於想當為難的地步。
15. 不要數你幹活花了幾個小時。技能大牛會把時刻花在有深度的作業上,並且他們了解花了多少時刻徹底不首要。
16. 學會安然承受批評。當你的代碼由於各種要素支離破碎時,你需求培育用理性和邏輯的辦法來應對(而不是心境化處理)。
17. 同有更多閱歷的人結對編程。沒有比這個更高效的編程學習辦法了。
18.必定要先自個做一遍代碼檢查。當你在 GitHub 上建議一個 pull request 之前,先把代碼當成他人寫的,自個先檢查一遍。
19. 認識到做自在作業的難點不是寫代碼,而是別的的一切作業。出售、推行、客戶支撐,質量確保以及產品處理,一切這些都會花費很多時刻。
20. 發現並處理更大的疑問。優異的程序員不拘泥於眼前的疑問,而是了解怎樣用更久遠的辦法徹底的處理這一類疑問。
21. 深化了解一些大型開源項意圖基地能讓你開發時如虎添翼。假如你知道怎樣給你的項目打山公補丁 (Monkey Patch), 那麼你將無所不能。
22. 越過大都的會議。你的公司雇你是來寫代碼的,而不是談代碼的。當會議多到失控的時分,不去參與也沒有任何疑問。並且一旦你開端這么做,他人會更愛惜你的時刻。
23. 知道啥時分開端回饋。 到了某個時分你需求將你的技能和閱歷傳授給年青的開發人員,就像你的導師其時教授你相同。
24. 能寫爛代碼。有時分可以當一當 「膠帶式程序員」。要害是跟著時刻推移,你需求弄了解啥時分可以走捷徑,啥時分有必要走捷徑。這本來是最難把握的技能之一。
25. 禮貌地通知他人你作業到很晚。假如你是作業室里終究一個,可以發一封簡略的報告郵件。他人通常會留心到郵件上的時刻戳的。
26. 像一個領導者 (Leader) 相同幹事,而不是老闆 (Boss)。老闆是讓他人為他作業的人,領導者是我們跟隨的人。做個領導者。
27. 去打打桌上足球。從長時刻來看,同別的開發者(或不相同崗位上的搭檔)樹立聯絡會比在緊巴巴的期限里交給一個功用更有價值。
28. 在壓力下學習。你需求知道怎樣應對像體系宕機而你要擔任將它恢復的狀況,即便一開端你徹底沒有條理。
29. 「Move fast and break things」 別讓完美主義阻撓你幹事。過錯通常是最好的學習時機。所以別把犯錯當作失利,而應當把它們當作值得學習的閱歷,並意識到:恰是不斷戰勝和打破這些過錯,作為一個程序員,你才幹不斷生長起來。
㈢ 如何成為一個程序老手,新手必知的40個小技巧
老鳥和新手的一個很大區別來自於debug的能力。其中最主要又可以從兩方面看出來:
從高層往底層找錯。
科學方法。
0.重構是程序員的主力技能。
工作日誌能提升腦容量。
先用profiler調查,才有臉談優化。
注釋貴精不貴多。杜絕大姨媽般的「例注」。漫山遍野的碎碎念注釋,實際就是背景噪音。
普通程序員+google=超級程序員。
單元測試總是合算的。
不要先寫框架再寫實現。最好反過來,從原型中提煉框架。
代碼結構清晰,其它問題都不算事兒。
好的項目作風硬派,一鍵測試,一鍵發布,一鍵部署; 爛的項目生性猥瑣,口口相傳,不立文字,神神秘秘。
編碼不要畏懼變化,要擁抱變化。
常充電。程序員只有一種死法:土死的。
編程之事,隔離是方向,起名是關鍵,測試是主角,調試是補充,版本控制是後悔葯。
一行代碼一個兵。形成建制才能有戰鬥力。單位規模不宜過大,千人班,萬人排易成萬人坑。
重構/優化/修復Bug,同時只能作一件。
簡單模塊注意封裝,復雜模塊注意分層。
人腦性能有限,整潔勝於雜亂。讀不懂的代碼,嘗試整理下格式; 不好用的介面,嘗試重新封裝下。
迭代速度決定工作強度。想多快好省,就從簡化開發流程,加快迭代速度開始。
忘掉優化寫代碼。過早優化等同惡意破壞;忘掉代碼作優化。優化要基於性能測試,而不是糾結於字里行間。
最好的工具是紙筆;其次好的是markdown。
leader問任務時間,若答不上來,可能是任務拆分還不夠細。
寧可多算一周,不可少估一天。過於「樂觀」容易讓boss受驚嚇。
最有用的語言是English。其次的可能是Python。
百聞不如一見。畫出結果,一目瞭然。調試耗時將大大縮短。
資源、代碼應一道受版本管理。資源匹配錯誤遠比代碼匹配錯誤更難排查。
不要基於想像開發, 要基於原型開發。原型的價值是快速驗證想法,幫大家節省時間。
序列化首選明文文本 。諸如二進制、混淆、加密、壓縮等等有需要時再加。
編譯器永遠比你懂微觀優化。只能向它不擅長的方向努力。
不要定過大、過遠、過細的計劃。即使定了也沒有用。
至少半數時間將花在集成上。時間,時間,時間總是不夠。
與主流意見/方法/風格/習慣相悖時,先檢討自己最可靠。
出現bug主動查,不管是不是你的。這能讓你業務能力猛漲、個人形象飆升; 如果你的bug被別人揪出來.....呵呵,那你會很被動~≧﹏≦
不知怎麼選技術書時就挑薄的。起碼不會太貴,且你能看完。
git是最棒的。簡單,可靠,免費。
僅對「可預測的非理性」拋斷言。
Log要寫時間與分類。並且要能重定向輸出。
注釋是稍差的文檔。更好的是清晰的命名。讓代碼講自己的故事。
造輪子是很好的鍛煉方法。前提是你見過別的輪子。
code review最好以小組/結對的形式。對業務有一定了解,建議會更有價值(但不絕對)。而且不會成為負擔。管理員個人review則很容易成team的瓶頸。
提問前先做調研。問不到點上既被鄙視,又浪費自己的時間。
永遠別小看程序媛(╯3╰)!
㈣ 分享一下你知道哪些能炫技的代碼寫法
向堆棧壓入某個游戲模塊內的地址,而這個地址指向一個跳轉指令,例如JMP [0x????????] ,修改這個跳轉的目標讓它跳回原調用者。最大的問題在於cdecl可以不定參數長度,由調用者清棧,如何為傳給目標函數的參數清棧就成了問題。於是這里利用了一個stdcall 函數負責傳參,主動替換掉返迴路徑到trampoline,再從trampoline到原函數的一個標簽。
貼個當時一個功能效果,拖拽滑鼠完美力場。
㈤ c語言問題啊
*str=0的意思在於把這里的空格改變成一個'\0',這樣是不是對於c語言來說,等於在這裡面製造了一個字元串結束的標志?該程序的巧妙之處就在於,沒有額外申請空間來保存一個一個的詞,而是通過在原句中把空格替換成'\0',然後讓指針數組分別指向每個詞的首地址,來完成把句子分組的。空間節約度非常高。
不過這種技巧在現代編程中並不提倡。現在編程內存充足,這點節省帶來的改善遠遠不如喪失可讀性的代價大,這算是一種「炫技」吧,並不實用。
㈥ 好程序員:技術分享 有哪些新手程序員不知道的小技巧
1.積極大膽地谷歌。你得知道如何有效地組織搜索關鍵字,查閱別人寫的代碼,然後合理地用在代碼里,從而解決問題。
2.擁抱變化,堅持不懈。老手程序員在接觸新技術時,能欣然接受像個初學者一樣處處受挫,並總能在完成工作的同時自學成才。
3.承認細節的重要性。例如變數和函數的命名、CSS 屬性的命名、該用哈希還是用數組,以及其他看起來微不足道,但可能對項目有深遠影響的事情。
4.承認大多數的「重要決定」其實並沒有那麼重要。一般的開發者經常在技術選型等「重大問題」上陷入唇槍舌戰,而程序員老鳥們會避免浪費時間在罵戰中。這一點上,他們就像禪宗大師一樣(zen-like)。
5.選擇合適的工具解決問題。網上有無數的開源庫、工具和框架,讓人眼花繚亂。而老手們清楚地知道針對怎樣的問題,應該用什麼樣的工具。
6.明白代碼「不值錢」(該刪就刪)。你必須習慣於刪掉幾百行代碼來重寫程序的某一部分,毫不留情。
7.在評估技術的時候要全面。例如,我一直在鼓吹Elixir。它語法優美,社區完善,有很大的潛力。但Elixir誕生的時間太短,所以如果要構建復雜的功能,可能會難以找到能幫你提高效率的開源工具。因此,在評估要不要選擇使用一項技術時,你得把所有這些因素都考慮在內。
8.學會說「我不知道」。沒有比拒絕承認自己不知道更能浪費一個開發者的時間了。
17. 同有更多經驗的人結對編程。沒有比這個更高效的編程學習方式了。
18. 一定要先自己做一遍代碼審查。當你在GitHub上發起一個pull request之前,先把代碼當成別人寫的,自己先審查一遍。
19. 認識到做自由職業的難點不是寫代碼,而是其餘的所有事情。銷售、推廣、客戶支持,質量保證以及產品管理,所有這些都會花費大量時間。
20. 發現並解決更大的問題。優秀的程序員不拘泥於眼前的問題,而是清楚如何用更長遠的方式徹底的解決這一類問題。
㈦ 編程老手的哪些特點是值得新手程序員學習的
下面是一位 CTO Ken Mazaika 的觀點,目前已有 6700+ 贊同
有經驗的程序員會做到下面 29 項事情,這也是每個新手程序員應該知道的事情。
如果你想成為更好的開發者,你應該尤其注意第 15 點和第 29 點。
1.積極大膽地谷歌。你得知道如何有效地組織搜索關鍵字,查閱別人寫的代碼,然後合理地用在代碼里,從而解決問題。
2.擁抱變化,堅持不懈。老手程序員在接觸新技術時,能欣然接受像個初學者一樣處處受挫,並總能在完成工作的同時自學成才。
3.承認細節的重要性。例如變數和函數的命名、CSS 屬性的命名、該用哈希還是用數組,以及其他看起來微不足道,但可能對項目有深遠影響的事情。
4.承認大多數的「重要決定」其實並沒有那麼重要。一般的開發者經常在技術選型等「重大問題」上陷入唇槍舌戰,而程序員老鳥們會避免浪費時間在罵戰中。這一點上,他們就像禪宗大師一樣(zen-like)。
5.選擇合適的工具解決問題。網上有無數的開源庫、工具和框架,讓人眼花繚亂。而老手們清楚地知道針對怎樣的問題,應該用什麼樣的工具。
6.明白代碼「不值錢」(該刪就刪)。你必須習慣於刪掉幾百行代碼來重寫程序的某一部分,毫不留情。
7.在評估技術的時候要全面。例如,我一直在鼓吹Elixir。它語法優美,社區完善,有很大的潛力。但Elixir誕生的時間太短,所以如果要構建復雜的功能,可能會難以找到能幫你提高效率的開源工具。因此,在評估要不要選擇使用一項技術時,你得把所有這些因素都考慮在內。
8.學會說「我不知道」。沒有比拒絕承認自己不知道更能浪費一個開發者的時間了。
9. 仔細分析錯誤信息里的線索。傳統教育告訴我們:失敗是壞事。報錯信息這種東西也經常被跟失敗聯系起來,然而優秀程序員明白,這些錯誤消息里其實隱藏著能將你指向最終正確解決方案的線索。
10. 了解過早優化和必要的「炫技式」優化的區別。老手們清楚在什麼時候需要寫一些看上去沒那麼好懂,但會讓程序運行更快的代碼。
11.每個人都會犯錯,為自己的過失負責。而尤其在團隊里,把責任推來推去沒有任何意義,因為錯誤的發生往往不只是一方的因素造成的。
12. 成為你所用的開發工具的重度用戶。如果長期在某個開發環境下有相當比例的開發工作,那你應該去掌握使用它的細節。
13. 學會用Vim(至少會一點)。 你至少應該在這個編輯器里學會勉強地移動和翻頁。
14. 不要接陌生技術領域的私活。個人做自由職業項目,其中很大一部分挑戰就是評估項目時間。不要規劃自己未知領域的事情,那會讓你處於想當尷尬的境地。
15. 不要數你幹活花了幾個小時。技術大牛會把時間花在有深度的工作上,並且他們清楚花了多少時間完全不重要。
16. 學會坦然接受批評。當你的代碼因為各種原因四分五裂時,你需要培養用理性和邏輯的方式來應對(而不是情緒化處理)。
17. 同有更多經驗的人結對編程。沒有比這個更高效的編程學習方式了。
18. 一定要先自己做一遍代碼審查。當你在GitHub上發起一個pull request之前,先把代碼當成別人寫的,自己先審查一遍。
19. 認識到做自由職業的難點不是寫代碼,而是其餘的所有事情。銷售、推廣、客戶支持,質量保證以及產品管理,所有這些都會花費大量時間。
20. 發現並解決更大的問題。優秀的程序員不拘泥於眼前的問題,而是清楚如何用更長遠的方式徹底的解決這一類問題。
21. 深入了解一些大型開源項目的核心能讓你開發時如虎添翼。如果你知道如何給你的項目打猴子補丁(Monkey Patch), 那麼你將無所不能。
22. 跳過多數的會議。你的公司雇你是來寫代碼的,而不是談代碼的。當會議多到失控的時候,不去參加也沒有任何問題。而且一旦你開始這樣做,別人會更珍惜你的時間。
23.知道什麼時候開始回饋。 到了某個時候你需要將你的技能和經驗傳授給年輕的開發人員,就像你的導師當時教授你一樣。
24. 能寫爛代碼。有時候可以當一當「膠帶式程序員」。關鍵是隨著時間推移,你需要弄清楚什麼時候可以走捷徑,什麼時候必須走捷徑。這其實是最難掌握的技能之一。
25. 禮貌地告訴別人你工作到很晚。如果你是辦公室里最後一個,可以發一封簡短的匯報郵件。別人一般會注意到郵件上的時間戳的。
26. 像一個領導者(Leader)一樣做事,而不是老闆(Boss)。老闆是讓別人為他工作的人,領導者是人們追隨的人。做個領導者。
27. 去打打桌上足球。從長期來看,同其他開發者(或不同崗位上的同事)建立聯系會比在緊巴巴的期限里交付一個功能更有價值。
28. 在壓力下學習。你需要知道如何應對像系統宕機而你要負責將它復原的情況,即使一開始你完全沒有頭緒。
29. 「Move fast and break things」 別讓完美主義阻止你做事。錯誤往往是最好的學習機會。所以別把犯錯當作失敗,而應該把它們當作值得學習的經歷,並意識到:正是不斷克服和突破這些錯誤,作為一個程序員,你才能不斷成長起來。
像生活中的很多事情一樣,編程也是你做的越多,了解的就越多。所以如果你是一個新手程序員,還是直接去編碼吧。記得將這些最佳實踐應用在日常工作中,來不斷提升你的編程技藝。
㈧ 大學期間學編程好不好
個人認為,在大學期間學編程是最好的,首先,在大學里屬於自己的空閑時間比較多,可以充分利用,其次,在大學中很多人都是初學者,可以更好的進行技術交流。
在這里向樓主提幾個建議,希望有所幫助。
如果樓主有一定編程基礎的話,可以跳過C的階段,直接開始使用自己感興趣的語言,不過在此之前樓主需要明確自己喜歡做那方面的程序,如果喜歡做關於硬體底層的(比如做個游戲引擎或者操作系統),-建議使用VC++,如果喜歡做個軟體系統(比如某某收費系統,電玩網路中心)就可以選擇用Java或者C#入門。
如果打算看Java的話,這里推薦兩本入門書,Java2實用教程(綠皮書)和Java2簡明教程(白皮書),都是清華大學出版社的。
別忘了要多上機實踐,一般初學者一開始會遇到個瓶頸,就是學完基本東西後,不知道要做什麼,建議上網找找課題,或者做我下面說的一些小內容,作為練習:
1.做個簡單的界面,實現事件處理。
2.做個某某信息管理系統,這一塊會讓你對於文件的操作有一定認識。
3.做個C/S(客戶端/伺服器)的網路小程序,可以傳輸各種文件,這樣會讓你對流和網路有一定認識。
4.做個完整的管理系統,採用資料庫,讓你掌握一下資料庫。
最後再說一下編程應該掌握的基礎:一開始不需要數學好,但是數據結構應該好好掌握,如果想要做底層開發的話,應該好好學數學。
說完了,希望對樓主有幫助。
㈨ 作為程序員,有哪些簡便工作的技巧呀
每天早上正式工作前,列個簡單的計劃列表;同事有類似項目經驗的,盡可能在工作啟動前請教;工作中盡可能避免外界干擾(不需要立即回復問題,可能等工作完成一個節點再回復);下班前抽取十分鍾,總結當天工作情況,簡單思考一下第二天工作要點及難點。
㈩ 自己學編程3個月了,感覺越來越瓶頸,不照葫蘆畫瓢寫不出來
JS本就是個先天殘廢的語言,能把DOM操作好就行了。。。真要搞大一點的項目,你有更好的語言可以學。。。
由於JS的諸多劣根性,不面向對象,弱類型,動態語言。。。其實靠學習JS,很難養成邏輯思維。。我相信錄制視頻的那個老師,在只學過JS,而沒學過其他語言的時期,也是寫不出2048的。。。
其實編程語言的特性和設計模式有很多,而JS的語言劣根性,導致其只具備了其中最基礎的部分。。。稍微高級一些的東西。。在JS里其實是沒有的。。所以JS即便學得再精。。。其實編程思想依然只是小學生水平。。。
比如繼承,多態,委託,工廠模式,觀察者模式,單例模式,二叉樹,行為樹,狀態機,等等。。。如果只是通過學習JS,而不接觸一門強類型,面向對象語言的話,這些特性,永遠都無法涉足。。。所謂編程思想,也就止步於小學生水平了。。
這里推薦C#。。。為什麼?因為它是未來JS改進方向的參照原形。。。2.0版的JAVASCRIPT,基本就可以看作是C#的山寨版。。。ECMA的JS改進計劃,就是讓JS越來越像C#。。當你學到這一步,會接觸到一個叫unity 3d的東西,到時候你自然就能做出2048了。。。甚至你可以做出一個CS之類的3D游戲來。。。
不過這是以後的事情了。。。學習是一個循序漸進的過程,沒有誰是一步登天的。。在學習JS的階段,能把DOM操作好就足夠了。。。這才是JS的本分。。。不需要指望JS再去干那些「與自己無關的事情」。。。那些都是一群學了JAVA,C#或者C++的老東西們,跑回JS的新手圈炫技裝逼的產物而已。。。。。。。