程序之美 存乎于心
我是盛安德科技天津分公司的普通WEB開發人員,本人并沒有什么特長,開發語言僅限于PHP和Javascript,同時也不是科班出身,在本次“我的編程之路”活動中現身主要是希望自己的經驗能夠讓剛剛走上程序之路的朋友們多一點借鑒。
程序員——大有可為的職業
程序員的人力缺口非常大,盛安德科技作為一個專門承接外包的公司對此更是感觸良多。雖然有時候我們也抱怨好項目太少,但是更多的時候是好項目來了卻發現根本沒有人去做。招聘廣告常年打,面試者寥寥無幾,能通過面試的更是滄海一粟。那好吧,我替大家問一聲,我們不是不想去應聘,而是面試了幾家都不成功,是不是你們根本不想招人,就是在炒作啊?就算僥幸成功了,進去工作的時候被罵的像死狗、工作累的像死狗、炒魷魚就像扔死狗,為什么?
其實很簡單,因為各個公司都是在招聘程序員,而 會寫代碼 != 程序員 。
你會換保險絲,但是你不是電工,對嗎?
你會唱歌,但是你不是歌手,對嗎?
你會做飯,但是你不是廚師,對嗎?
那憑什么你會寫代碼就一定是程序員了呢?
好吧,我承認你說的對,那么達到一個什么樣的標準才是程序員呢?
我無法給出什么答案,只能分享一些過往,期望能帶來領悟。
程序員之路
我在小學的時候就接觸到程序了,在蘋果機上按照課本的例子畫畫幾何圖形,弄個打飛機的小游戲,初中的時候也是這樣,不過就是蘋果機換成了中華學習機而已。也許是這個時候埋下了某顆種子?不知道。
從UCDOS, WPS到win31,win95,應用方式從打字變成玩兒游戲,此外由于系統不穩定被迫學會了怎么裝系統,除了“電腦很有趣”外,我對它沒有更多的印象了。
也許興趣確實是最好的老師,游戲玩兒多了(可能更重要的是體驗過游戲修改器之后)就會有寫游戲的愿望,也就順便看了一些編程的書,反正只要不帶走在書店里面隨便看。結果我發現,對于我這種沒上過正式高中的人來說,編程根本就是一件無法理解的事情,無論是匯編還是C,狗咬刺猬啊。
后來的事情可能年齡大一點的人就都經歷過了,聊天室、看網頁、OICQ,只是意外的,我從廣告上看到一個“網頁制作培訓班”的招生啟事。
我說要有光
一花一世界,一葉一菩提;代碼自在方寸。我驚喜的發現,我能看懂HTML,對于用過WPS的我來說,一眼就看懂了HTML的奧秘。
也許這輩子我也學不會C語言了,也許靠HTML永遠寫不出游戲,但是,看到親手錄入的代碼在瀏覽器中呈現出了原本僅在我腦海中的畫面,我忽然覺得,這樣也不錯,這是我期望的光。
我想此時的我已經開始了自己的開發之路,雖然我還算不上是一個程序員,但是至少我有了目標,并且也愿意為此而努力。
并非天生我材必有用
一個又有一個頁面制作出來,然后一個又一個的丟掉,直到有一天受命制作了一個內網的休閑網站。很簡單的網站,列出很多小說的超鏈接,可以在線觀看(txt格式)和下載(zip),90%的時間花費在尋找資源上,最終的頁面很丑,頂部一個標題,然后就是一堆url。但是,這些丑陋的頁面沒有被丟掉。原來并非天生我材必有用,而是沒用的早已被湮沒。我要去做有用的東西,雖然我還不是一個程序員。
讓我站得更高一點
薄薄的一本HTML教程輕松翻完,可能只用了一天不到,但是留給我太多的問題。為什么Yahoo的網頁這么好看,為什么別人能做出一些很炫的效果(比如雪花),為什么有那么多為什么?答案輕而易舉的得到了,四個字:查看源碼。
HTML -> CSS -> Javascript -> Photoshop -> Flash –> PHP -> MySQL
這個時候我覺得自己應該算得上是一個程序員了,或者說我已經不在意自己是不是一個程序員了,不斷地學習,不斷地練習,不斷地進步,不斷地超越自己,這就是我想做的、正在做的、并會繼續去做的事情。
這是一個起點
編碼、吃飯、睡覺,這種單調的生活持續了大約20天,我的第一個PHP項目完成了。開發工具就是Editplus,功能則是依附于業務數據庫構建一個輔助查詢系統。
在開發的工程中我學到了新的知識,對某些問題的處理有了新的思路,所以我相信我的下一個項目會做的更好。
所以,這只能是一個起點。
程序&程序員
用文字描述客觀真理被稱為哲學,用數字與符號描述客觀真理被稱為數學,用0和1描述客觀真理,是程序,是過程的有序組合。程序員在不違背客觀真理的前提下,對過程進行有序的組合,使事物按照我們的意愿發展從而得到必然的結果。
程序之美
有道是字如其人,代碼亦然。它是開發者思想的結晶,在我看來欣賞代碼與欣賞藝術品之類的東西大同小異。
何為美
錯落有致,別具匠心;輾轉靈動而又典雅大方;增一分則肥,減一分則瘦;不施粉黛卻渾然天成...
觀眾怒曰:說人話!囧
代碼應該格式良好,雖然每個人喜好不一,但是其代碼中的縮進、空格的使用必然是有規律的,而不是隨手為之。
結構充滿彈性,耦合適當。
沒有冗余的代碼,但是也不會放棄必要的檢查。
讀起來很流暢。
何為美
物盡其用方為美。在官方文檔中經常可以見到簡短的示例代碼,但是有沒有人嘗試過自己去寫一個示例代碼呢?如果你覺得這有什么了不起,好的,試試看。
-
示例代碼是當前話題的典型應用,就是最常見的用法;
-
如果有可能的話,該代碼應該是可運行的;
-
不能喧賓奪主,示例代碼不會讓讀者的注意力離開當前話題;
-
恰到好處的注釋,預測讀者此時可能想到問題并針對性的解釋;
-
要短。
何為美
指點江山,激昂文字,波瀾壯闊之美。初級程序員是站在開發者的高度編寫代碼,中級程序員是站在使用者的高度編寫代碼,高級程序員是站在項目價值的高度編寫代碼,頂級程序員是用上帝視角考慮取舍,不寫代碼。低頭看,萬馬奔騰;略昂首,高山仰止;再側目,節比鱗次,各逞機鋒。
再問何為美
子非魚焉知魚之樂。
心之所向,身之所往。
不滯于物,不殆于心,思而惘顧,行而桀黠。
尾聲
謹以此文分享我歷年來的感悟,希望有更多志同道合者加入程序員的隊伍。在我看來,即便是在職的開發人員也不乏大量的碼農,在規模較小的公司里面更是一個程序員帶著一群碼農在為混口飯吃努力。想要發展首先就要有交流,但是沒有同伴你又能和誰交流?何為碼農?在個人能力上不思進取,在工資收入上費盡心思的就是碼農。所以,還是做程序員吧,等你。
附言
嘩啦啦寫了不少,結果發現征文要求之中的很多內容卻都沒寫,就在末尾補注一下吧,避免被編輯說不符合要求而退稿。
我喜歡的軟件
常用的雖然很多,但是一定要說喜歡的還真沒有。
我喜歡的硬件
鍵盤和鼠標,品牌無所謂,主要是質感。不會太輕,那就飄了;不能太重,會累;不能太靈敏,觸而不發代表我還在猶豫;不能太遲鈍,靈感如白駒過隙。反面典型就是手寫筆。
工作、學習、生活中用到的神器
我想神器未必是真的神器,我的神器是魚竿,哈哈。只要看到魚竿就會立刻從當前的狀態中解脫出來,重歸平靜。
有沒有寫過一些黑科技(狂拽酷炫屌炸天)型程序
很久以前(好像是07年吧,還沒有jQuery之類的東西)基于XMLHttpRequest做了一個內網站點,包括打卡,留言,技術分享,新聞幾個小功能。整體的布局和外觀模仿的windowsXP,是的,首頁上各個應用的圖標,打開后開啟一個浮動窗口,也可以最大化、最小化和關閉,當然也包括拖動。但是這也是一個完全失敗的作品,除了很炫(在當時來看)以外沒有任何的實用價值。因為追求效果,很多用戶操作被復雜化了,同時很炫的功能導致試用者的注意力被轉移了,沒人注意到技術分享功能本身,而是被各種個性化設置帶偏了,很多人嘗試了各種個性化設置,然后完全沒有心情去寫什么技術資料了。
推薦書籍
對于中級及以下的開發人員,像C, C++, Java都有很多經典的書,前幾章都非常值得一看。你也許問我既然這么好為什么不看后面,好吧,因為后面我都看不懂。
前面幾章事實上是對語言的整體介紹,是對語言締造者觀念的剖析,我們可以由此去聆聽大師們是如何理解對象的,怎么看待和分析對象間的聯系等等。
我覺得很有用,而且每隔一段時間再看都會有不同的領悟。
此外關于語言本身就沒什么書籍可推薦了,很貴而且不如文檔全面,如果有興趣的話不如看看UI設計思想、敏捷軟件開發之類的東西。
我一直堅信程序無所不能,而對于程序員來說技術問題總是能夠解決的,但是就怕你想不到,或者不敢想。
編程的大殺器
沒有。要是說對程序員的大殺器我倒是可以推薦一個,ctrl-c + ctrl-v,絕對是對程序員的大殺器。
-
用這個手段開發的人很難進步
-
用這個方式開發的項目不好維護
好習慣與坑
好習慣就是注重細節和強烈的責任感,與之對應的就是坑。從大處說可能變身豬隊友坑了項目組;從小處說,變量名寫錯一個字符這種bug是最難發現和解決的,而且解決之后還收獲不到任何喜悅。你只會沮喪的想,浪費了4個小時原來只是把i寫成了l。
展望未來
根據前面的調子,這里也不會有什么出彩的答案。
其實我挺反感曾不不窮的新技術名詞的,嗯,是的,只是反感新技術使用的名詞,不是技術本身,比如Saas,比如大數據。
我個人并沒有覺得真的有什么新技術出現了,通常這只是宣傳的需要而已。就像win31, 95, Me, 98直到現在的win10,這是技術發展的必然結果。
用大數據來做例子,這是新的課題嗎?肯定不是,搜索引擎早就面臨并一直在解決這個問題,那么怎么突然在最近流行起來這個話題了呢?
我認為所謂的新技術通常是對前人在特定領域留下的寶貴經驗的一次總結,是為后來者提供一個用來踩踏的基石,并不是什么神秘或者高端的東西。(例如現在爛大街的Ajax,最早是用隱藏的iframe,后來才有了XMLHttpRequest,然后才被稱為Ajax然后被廣泛使用,而在HTML5以前,所謂的ajax文件上傳也仍然還是通過iframe模擬的。)
我在回答某個問題的時候也說過類似的話:程序是建立在邏輯的基礎上的,開發功能的時候可以不用別人造好的輪子,但是不等于你可以抹殺那個輪子所代表的邏輯。在我看來,新技術就是輪子的名字而已,貢獻嗎?絕對!創新嗎?呵呵。
所以,對于看好什么技術這種問題,我的回答只有四個字,適者生存。
關于追妹子
本人已婚。
本文參與了 SegmentFault「我的編程之路」計劃 ,歡迎正在閱讀的你也加入,一起分享。
</div> </div>
來自: https://segmentfault.com/a/1190000004538778