Ⅰ 大學程序員自學編程的6種方法高效學習
程序員6種自學編程高效方法
1、最好的學習方式
對干初學者來說,可以採用視頻+書籍的方式進行學習。這兩種方式形成互補關系。另外閱讀代碼也可以幫助你解決問題,了解最佳做法,這里的閱讀代碼是指書籍,博客文章,開源代碼等等。編程教學視頻可以讓你迅速掌握編程語法等等,但通常比較生動、淺顯,不成系統。而書本是比較系統深入,但是枯燥,所以最好的方法是書和視頻結合。但在閱讀代碼後,你需要自己實際去寫代碼。可以是任何東西。可以是小的編碼任務或者是一個小模塊必須確保你能將之付諸干實踐,並用某種方式使用你學到的東西。如果你不這樣做,你會發現自己面對編輯器會無從下手。知識等待使用的時間越長,知識這把斧頭就越鈍。等待學習新知識的時間越久,你就越難以將其融入到代碼中。
2、入門期堅持學習
自學編程難免遇到這種現象:學了一兩個月,發現自己會的不多。
編程在一開始不會有那麼大的反饋,這種現象非常正常!關鍵是你要堅持個三個月到半年的時間,熬過這個艱難的入門期。
推薦三件事情以避免僵局。第一是試著閱讀更多關干技術的文章,並總體掌握正在發生什麼。通常,當你陷入困境時,意味著你對需要澄清的事情做出了不正確的假設。**第二是咨詢互聯網。這一點很顯然是值得一提。在網上查找並詢問有過這個問題的人是一個非常重要的技能。Stackoverflow可以說是互聯網上最好的網站。不要害怕在那裡問自己的問題。通常只要盡力正確地闡述你的問題就OK了。小編的第三個建議是向你認識的人請求幫助。
3、初學者盡量不要鑽牛角尖
對於人生來說,其中任何目標的實現都離不開耐心。編程學習就如其它任何學習任務一樣,都需要反復努力並投入大量時間。
如果遇到難題,耗了半天時間還是沒弄懂,可以暫時跳過,知識積累到一定程度,回頭再進行解決你會發現簡單多了。不要一味的去鑽牛角尖,一定要解決這樣會耗費大量的時間與精力。
4、尋找良師益友
學習編程的一個很好的方法就是和其他的程序員交談。不必談論任何特定的內容。可以是你正在學習的東西,也可以是你認為很酷的東西,更可以是你正在工作的東西,皆可。你會發現很多程序員並不喜歡只是聊編程。這樣做可能會讓你學到很多關於庫,伺服器,編程語言和模式方面的知識。但是,最重要的是,你將了解到其他人是如何看待編程的。你會發現,你認為理所當然或從來沒有考慮的事情在人與人之間是非常不同的。
還有你遇到的那些小問題,已經有無數前輩也曾遇到過,他們總結了並分享在互聯網上了,前人的經驗是你的寶貴資源,要善於利用谷歌等軟體。
5、有目的的練習
不要想著學習完就可以賺1w+這樣很容易放棄編程編程語言是一個很大的知識庫,需要你不斷的學習。最好是奔著一個小項目而學習編程,當你把作品做出來了,有了成就感,同時基本上具備找工作的能力,就找個初級的開發崗位,再進階,你的自學之路功與名都有了。
沒有什麼可以與工作於自己的項目以學習編程更有用的了。有了一個點子並試圖實現這個點子是非常具有挑戰性的。它需要很強的自律心及耐心。但是,通過嘗試實際做一件事情,你可以學到如何分解問題並應用技術。你面對的各種問題,以及你如何解決它們才真正是所謂的編程。此外,想要完成項目的驅動力是繼續學習的動力。從業余項目獲得的滿足感遠遠超過你在抽象中學習東西的滿足感。
6、完美主義者和搬運工的區別
編程是一門手藝,需要反復練習,脫離書本和視頻看是否能獨立實現?學到最後的境界無非就是:我亦無他,惟手熟爾
有兩種類型的程序員:
完美主義者和搬運工。有些人希望一切都是正確的他們希望完美,他們希望遵循所有的最佳實踐,並寫出漂亮的優雅的代碼。他們想要理解每一行代碼。有別於那些不管三七二十一,只要自己的代碼能工作即可,即使對代碼庫有損害的人。平衡這兩種技能是非常重要的。有時你應該深入鑽研一個問題或項目,看看發生了什麼。有時你應該讓它工作即可,即使你不知道發生了什麼。
Ⅱ JS優化技巧,可以解決 90% 的屎山代碼
優化 JS 代碼,讓代碼更簡潔高效,是提升開發效率與閱讀體驗的關鍵。以下是 18 個基本技巧,掌握這些可以解決大部分低質量代碼問題,從而提升代碼整體體驗:
1. 簡化函數定義與變數聲明:使用箭頭函數與解構賦值。
2. 字元串拼接:利用模板字面量。
3. 數組與對象操作:展開運算符。
4. 高階數組方法:簡化循環與數據操作。
5. 條件判斷簡化:使用條件運算符。
6. 函數參數優化:對象解構與默認參數。
7. 函數式編程:純函數與函數組合。
8. 對象字面量簡化。
9. 命名與注釋:提高代碼可讀性。
10. 條件語句優化:使用對象 Map。
11. 函數專注單一功能。
12. 給默認對象賦默認值:Object.assign。
13. 函數參數限制:兩個以下為宜。
14. 解釋性變數:使用擴展運算符。
15. 自定義屬性操作:set/get 方法。
16. 私有成員:通過閉包實現。
17. 方法鏈式寫法:提升代碼優雅性。
以上技巧結合實際項目,可以有效提升代碼質量與可讀性。記住,代碼的優雅在於簡潔與高效,而不是復雜與難以理解。在實踐中不斷學習與優化,是每位開發者成長的必經之路。
Ⅲ 高效整潔CSS代碼原則
CSS學起來並不難,但在大型項目中,就變得難以管理,特別是不同的人在CSS書寫風格上稍有不同,團隊上就更加難以溝通,為此總結了一些如何實現高效整潔的CSS代碼原則:
1. 使用Reset但並非全局Reset
不同瀏覽器元素的默認屬性有所不同,使用Reset可重置瀏覽器元素的一些默認屬性,以達到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:
*{ margin:0; padding:0; }
這不僅僅因為它是緩慢和低效率的方法,而且還會導致一些不必要的元素也重置了外邊距和內邊距。在此建議參考YUI Reset和Eric Meyer的做法。
/** 清除內外邊距 **/
body, h1, h2, h3, h4, h5, h6, hr, p,
blockquote, /* structural elements 結構元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input, textarea, /* form elements 表單元素 */
th, td, /* table elements 表格元素 */
img/* img elements 圖片元素 */{
border:medium none;
margin: 0;
padding: 0;
}
/** 設置默認字體 **/
body,button, input, select, textarea {
font: 12px/1.5 '宋體',tahoma, Srial, helvetica, sans-serif; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
em{font-style:normal;}
/** 重置列表元素 **/
ul, ol { list-style: none; }
/** 重置超鏈接元素 **/
a { text-decoration: none; color:#333;}
a:hover { text-decoration: underline; color:#F40; }
/** 重置圖片元素 **/
img{ border:0px;}
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }
2. 良好的命名習慣
無疑亂七八糟或者無語義命名的代碼,誰看了都會抓狂。就像這樣的代碼:
.aaabb{margin:2px;color:red;}
我想即使是初學者,也不至於會在實際項目中如此命名一個class,但有沒有想過這樣的代碼同樣是很有問題的:
h1My name is span class="red blod"Wiky/span/h1
問題在於如果你需要把所有原本紅色的字體改成藍色,那修改後就樣式就會變成:
.red{color:bule;}
這樣的命名就會很讓人費解,同樣的命名為.leftBar的側邊欄如果需要修改成右側邊欄也會很麻煩。所以,請不要使用元素的特性(顏色,位置,大小等)來命名一個class或id,您可以選擇意義的命名如:#navigation{...},.sidebar{...},.postwrap{...}
這樣,無論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯系。
另外還有一種情況,一些固定的樣式,定義後就不會修改的了,那你命名時就不用擔憂剛剛說的那種情況,如
.alignleft{float:left;margin-right:20px;}
.alignright{float:right;text-align:right;margin-left:20px;}
.clear{clear:both;text-indent:-9999px;}
那麼對於這樣一個段落
p class="alignleft"我是一個段落!/p
如果需要把這個段落由原先的左對齊修改為右對齊,那麼只需要修改它的className就為alignright就可以了。
3. 代碼縮寫
CSS代碼縮寫可以提高你寫代碼的速度,精簡你的代碼量。在CSS裡面有不少可以縮寫的屬性,包括margin,padding,border,font,background和顏色值等,如果您學會了代碼縮寫,原本這樣的代碼:
li{
font-family:Arial, Helvetica, sans-serif;
font-size: 1.2em;
line-height: 1.4em;
padding-top:5px;
padding-bottom:10px;
padding-left:5px;
}
就可以縮寫為:
li{
font: 1.2em/1.4em Arial, Helvetica, sans-serif;
padding:5px 0 10px 5px;
}
4. 利用CSS繼承
如果頁面中父元素的多個子元素使用相同的樣式,那最好把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你可以很好的維護你的代碼,並且還可以減少代碼量。那麼本來這樣的代碼:
#container li{ font-family:Georgia, serif; }
#container p{ font-family:Georgia, serif; }
#container h1{font-family:Georgia, serif; }
就可以簡寫成:
#container{ font-family:Georgia, serif; }
5. 使用多重選擇器
你可以合並多個CSS選擇器為一個,如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節省時間和空間。如:
h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
可以合並為:
h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
6. 適當的代碼注釋
代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋,可使得結構更加清晰。你可以選擇做的樣式表的開始添加目錄:
/*------------------------------------
1. Reset
2. Header
3. Content
4. SideBar
5. Footer
----------------------------------- */
如此你代碼的結構就一目瞭然,你可以容易的查找和修改代碼。
而對於代碼的主內容,也應適當的加以劃分,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利於團隊開發:
/*** Header ***/
#header{ height:145px; position:relative; }
#header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;}
/*** Content ***/
#content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;}
#content h1{color:#F00}/* 設置字體顏色 */
#content .posts{ overflow:hidden; }
#content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; }
/*** Footer ***/
#footer{ clear:both; padding:50px 5px 0; overflow:hidden;}
#footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }
7. 給你的CSS代碼排序
如果代碼中的屬性都能按照字母排序,那查找修改的時候就能更加快速:
/*** 樣式屬性按字母排序 ***/
div{
background-color:#3399cc;
color:#666;
font:1.2em/1.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 0 10px 5px;
width:30%;
z-index:10;
}
8. 保持CSS的可讀性
書寫可讀的CSS將會使得更容易查找和修改樣式。對於以下兩種情況,哪種可讀性更高,我想不言而明。
/*** 每個樣式屬性寫一行 ***/
div{
background-color:#3399cc;
color:#666;
font: 1.2em/1.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 0 10px 5px;
width:30%;
z-index:10;
}
/*** 所有的樣式屬性寫在同一行 ***/
div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }
當對於一些樣式屬性較少的選擇器,我會寫到一行:
/*** 選擇器屬性少的寫在同一行 ***/
div{ background-color:#3399cc; color:#666;}
對於這個規則並非硬性規定,但無論您採用哪種寫法,我的建議是始終保持代碼一致。屬性多的分行寫,屬性少於3個可以寫一行。
9. 選擇更優的樣式屬性值
CSS中有些屬性採用不同的屬性值,雖然達到的效果差不多,當性能上卻存在著差異,如
區別在於border:0把border設為0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經佔用了內存值。
而border:none把border設為"none"即沒有,瀏覽器解析"none"時將不作出渲染動作,即不會消耗內存值。所以建議使用border:none;
同樣的,display:none隱藏對象瀏覽器不作渲染,不佔用內存。而visibility:hidden則會。
10. 使用link代替@import
首先,@import不屬於XHTML標簽,也不是Web標準的一部分,它對於較早期的瀏覽器兼容也不高,並且對於網站的性能有某些負面的影響。
11. 使用外部樣式表
這個原則始終是一個很好的設計實踐。不單可以更易於維護修改,更重要的是使用外部文件可以提高頁面速度,因為CSS文件都能在瀏覽器中產生緩存。內置在HTML文檔中的CSS則會在每次請求中隨HTML文檔重新下載。所以,在實際應用中,沒有必要把CSS代碼內置在HTML文檔中:
style type="text/css"
#container{ .. }
#sidebar{ .. }
/style
而是使用link導入外部樣式表:link rel="stylesheet" type="text/css" href="css/styles.css" /
12. 避免使用CSS表達式(Expression)
CSS表達式是動態設置CSS屬性的強大(但危險)方法。Internet Explorer從第5個版本開始支持CSS表達式。下面的例子中,使用CSS表達式可以實現隔一個小時切換一次背景顏色:
background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
如上所示,expression中使用了JavaScript表達式。CSS屬性根據JavaScript表達式的計算結果來設置。
表達式的問題就在於它的計算頻率要比我們想像的多。不僅僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動滑鼠時都會要重新計算一次。給CSS表達式增加一個計數器可以跟蹤表達式的計算頻率。在頁面中隨便移動滑鼠都可以輕松達到10000次以上的計算量。
如果必須使用CSS表達式,一定要記住它們要計算成千上萬次並且可能會對你頁面的性能產生影響。所以,在非不得已,請避免使用CSS表達式。
13. 代碼壓縮
當你決定把網站項目部署到網路上,那你就要考慮對CSS進行壓縮,出去注釋和空格,以使得網頁載入得更快。壓縮您的代碼,可以採用一些工具,如YUI Compressor,利用它可精簡CSS代碼,減少文件大小,以獲得更高的載入速度。
Ⅳ 如何一次記住47家航空公司的二字代碼
國內航空公司共計47家,每家擁有IATA二字代碼。如「中國國際航空公司」簡稱「國航」,二字代碼為「CA」。疑問在於,「Air China」應縮寫為「AC」,為何表示為「CA」?答案不重要,關鍵是如何簡單易行地記住這47家航空公司的二字代碼。
記住全部47家航空公司的二字代碼,可能只需半天時間。若在候機大廳等待飛機時,這個任務可能已經完成。如果飛機晚點,記住代碼的時間肯定比等待時間更短。
記憶策略分為五步:首先,將航空公司分為四個大系,每個大系包含一組航空公司,便於記憶。這四個大系分別為:國航系(8家)、東航系(4家)、南航系(5家)、海航系(13家)。接下來,將航空公司進一步分類為川航系(2家)、吉祥系(2家)及其他(13家),繼續簡化記憶。
為方便記憶,航空公司按其大系和次級分類進行分組。國航系、東航系、南航系和海航系的航空公司可以作為一組,川航系和吉祥系可以作為另一組,最後將剩餘的航空公司歸為一組。這樣,將復雜的信息拆分成更小、更易於管理的部分,有利於快速記憶。
總結:通過將航空公司分為四大類,並進一步細分,可以更高效地記憶47家航空公司的二字代碼。只需半天,甚至在候機時間或飛機晚點時,就能輕松記住所有代碼,讓等待時間變得更有意義。