*****請準備好,花80%的時間用于思考、調試、測試、開會、談話……*****
關於編程,大學沒有傳授的10件事::::
我們總是錯的
事情若有可能出錯,就一定會出錯
所有的代碼都爛
(Bug)總會存在
客戶最大
紙上談兵是行不通的
Keep it simple, stupid
編寫代碼只是我們所做工作的20%而已
客戶永遠不知道他/她想要的是什麼!
已經有人做過了
*****為什麼編程是件獨一無二的職業???*****
1. 簡介
有些人說編程很難,有些人認為很容易。
編程不僅依賴於你的能力,而且還取決於你工作的態度。
編程的確很難,但比起那些需要偽裝、欺騙和表演來生活的惡棍或者小丑來說,真的一點也不難。
作為一個程式員,知道你在做什麼,會讓生活變得更加有趣和快樂。
2. 與不會說話的機器為伍
電腦是不會說話的機器。
除非你向它發送精確的指令,否則電腦是不會懂(你的意思)的。
和啞巴一起工作,明顯是困難的。
因此,程式員必須很聰明。
阿獃與阿瓜永遠不會是一對好組合。
3. 電腦是專橫的(一個不可避免的惡魔)
不會說話的電腦明顯也是專橫的。
電腦語言之所以如此的專橫,其中的一個好的理由就是讓程式變得更精確而且沒有歧義。
精確性是人們喜歡使用軟體而不是由人來完成一件事情的最主要理由之一。
4. 人不能欺騙程式
編寫什麼代碼就得到什麼運行結果。
沒有所謂的隱藏設計或者隱藏代碼bug。
Bug總是會顯現的。
因為當軟體啟動並執行時候,它已經不再處於你的控制之下了。
編寫正確的代碼是唯一的選擇。
5. 沒有地方可以禱告
不可能通過祈禱讓代碼工作。
如果你想要完成軟體,只要設計一個方案然後編碼實現。
在代碼面前你與天才程式員的機會是平等的,這是很酷的一件事情。
6. 沒有地方調情
一些人通過調戲其他人以完成工作。
電腦不是一個可愛的人。
在編程時僅僅調情是沒有任何優勢的。
編程適合真正(實幹)的人。
7. 程式員都是解決問題的人
有很多看上去很像專業人士的人,他們其實是問題的製造者。
大多的律師為了他們的生計給別人找不必要的問題。
大多的銷售為了他們的生計向別人推銷不需要的東西。
一些很懶的或者不勝任工作的人,努力地成為管理別人工作的管理者。
但是,編程是在真正解決現實世界中的問題。
只有真正有才能的人才能成為程式員。
8. 邏輯思考真的很重要
八卦適合漂亮的女人。
占星術/迷信適合啞巴。
科學適合老古董。
編程適合邏輯思考者。
編程適合善於分析的人。
邏輯思考和分析也會讓你變得聰慧 —— 一個對你人生的獎勵。
9. 聰明人,編程以及職業
如果你是聰明人,並且很擅長你所做的工作。
你不需要向別人乞討才能生存。
你不需要通過調情才能生存。
你會獲得均等的機會。
你會獲得自主。
你會獲得自由(除非你是電腦的奴隸)
你會變得聰慧。
10. 編程適合不做作的人
“世上有兩類人:一類人完成工作,另一類接受榮譽。努力成為第一類,那裡競爭會少一點。”英吉拉·甘地
優秀程式員??????
對技術充滿熱情
編程是生活的一部分
會在你的耳邊談論技術相關的話題,如果你有興趣的話
主動學習新技術
對自己不能認同的技術,感到不適應,無法全身心投入
聰明,對很多話題都感興趣
在大學/工作之前就開始編程了
有隱藏的冰山,自己完成的大項目
對許多不相關的技術有瞭解
*****PHPer*****
一、MySQL能力
(1)瞭解:知道用PHP串連資料庫;懂得寫一些簡單的SQL;建一些簡單的索引;懂得用工具簡單操作一下資料庫(增刪改庫表結構資料等等)。
(2)熟悉:懂得在開發應用上設計資料庫,建立一些有效索引,用explain分析SQL效能,壓力測試等等。
(3)很熟悉:深入瞭解資料庫索引、儲存引擎原理以及運行機制,能有效地構建高效能可擴充的資料庫結構/架構,有效地最佳化資料庫效能配置並加以調試,分析資料庫運行狀態。
(4)精通:簡單地說具備以上所有能力的同時,有多年高負載分布式環境下的最佳化管理經驗。
據觀察以及交往經驗,70%的PHPer處在瞭解階段,25%處於熟悉階段,>4%很熟悉,精通的人基本就不是PHPer了。
◆70%這個群體最容易忽視MySQL,以為MySQL只是簡單的儲存媒介,沒有最佳化意識,認為加個記憶體、CPU就能解決問題。
典型事件:join、order by、group by等語句效能一塌糊塗,資料庫根本沒有設計(僅限於拆成一個主表,N個附表等),搞不清欄位類型及作用,碰到大表的複雜查詢就沒轍。
◆20%這個群體的人只是MySQL運行機制理解不透徹,對影響MySQL效能的關健因素把握不明確,不熟練。
典型事件:熟讀手冊,但說不清索引原理,不知道二叉樹、HASH等演算法對於資料庫的作用
◆4%的群體已經基本可以勝任DBA的職能。
二、OOP能力
(1)瞭解:瞭解變數的範圍、類型,及其意義,瞭解繼承機制等,懂得複用、封裝概念。
(2)熟悉:熟練應用介面、抽象等技術混合開發程式,並理解其中含義,一般研究過Java。
(3)很熟悉:有過OOP架構設計經驗,熟悉設計模式、UML,熟悉PHP對象運行機制,內容管理等。
(4)精通:應該是架構師層級了,不限於PHP。
經常我們會碰到一些自稱熟悉OOP卻連public、private、protected、static都解釋不清的人,是肯定沒有經曆過正規的OOP項目。
三、大型網站經驗
(1)瞭解:熟悉PHP開發下的緩衝應用(Memcache、APC等);接觸過LVS、SQUID應用;有一定的Session處理方案;熟悉負載平衡;熟悉PHP資料連線池應用;瞭解PHP編程效能最佳化。
(2)熟悉:掌握分布式緩衝及緩衝效能最佳化、熟悉儲存系統、檔案系統、資料庫,開發可擴充平台。能結合負載平衡合理布置流量,對PHP運行效能進行監控與分析。
(3)非常熟悉:具備系統分析師能力,已經超出PHPer環節;
(4)精通。
四、Linux應用能力
(1)瞭解:可以運用工具對項目進行Linux伺服器部署,瞭解簡單常用命令,會設定一般配置,vi簡單操作
(2)熟悉:……