程序之美 存乎於心

我是盛安德科技天津分公司的普通WEB開發人員,本人並無什麼特長,開發語言僅限於PHP和Javascript,同時也不是科班出身,在本次「個人編程之路」活動中現身主要是但願本身的經驗可以讓剛剛走上程序之路的朋友們多一點借鑑。程序員

程序員——大有可爲的職業

程序員的人力缺口很是大,盛安德科技做爲一個專門承接外包的公司對此更是感觸良多。雖然有時候咱們也抱怨好項目太少,可是更多的時候是好項目來了卻發現根本沒有人去作。招聘廣告常年打,面試者寥寥無幾,能經過面試的更是滄海一粟。
那好吧,我替你們問一聲,咱們不是不想去應聘,而是面試了幾家都不成功,是否是大家根本不想招人,就是在炒做啊?就算僥倖成功了,進去工做的時候被罵的像死狗、工做累的像死狗、炒魷魚就像扔死狗,爲何?面試

其實很簡單,由於各個公司都是在招聘程序員,而會寫代碼 != 程序員
你會換保險絲,可是你不是電工,對嗎?
你會唱歌,可是你不是歌手,對嗎?
你會作飯,可是你不是廚師,對嗎?
那憑什麼你會寫代碼就必定是程序員了呢?
好吧,我認可你說的對,那麼達到一個什麼樣的標準纔是程序員呢?
我沒法給出什麼答案,只能分享一些過往,指望能帶來領悟。ajax

程序員之路

我在小學的時候就接觸到程序了,在蘋果機上按照課本的例子畫畫幾何圖形,弄個打飛機的小遊戲,初中的時候也是這樣,不過就是蘋果機換成了中華學習機而已。也許是這個時候埋下了某顆種子?不知道。
從UCDOS, WPS到win31,win95,應用方式從打字變成玩兒遊戲,此外因爲系統不穩定被迫學會了怎麼裝系統,除了「電腦頗有趣」外,我對它沒有更多的印象了。
也許興趣確實是最好的老師,遊戲玩兒多了(可能更重要的是體驗過遊戲修改器以後)就會有寫遊戲的願望,也就順便看了一些編程的書,反正只要不帶走在書店裏面隨便看。結果我發現,對於我這種沒上過正式高中的人來講,編程根本就是一件沒法理解的事情,不管是彙編仍是C,狗咬刺蝟啊。
後來的事情可能年齡大一點的人就都經歷過了,聊天室、看網頁、OICQ,只是意外的,我從廣告上看到一個「網頁製做培訓班」的招生啓事。數據庫

我說要有光

一花一世界,一葉一菩提;代碼自在方寸。我驚喜的發現,我能看懂HTML,對於用過WPS的我來講,一眼就看懂了HTML的奧祕。
也許這輩子我也學不會C語言了,也許靠HTML永遠寫不出遊戲,可是,看到親手錄入的代碼在瀏覽器中呈現出了本來僅在我腦海中的畫面,我突然以爲,這樣也不錯,這是我指望的光。
我想此時的我已經開始了本身的開發之路,雖然我還算不上是一個程序員,可是至少我有了目標,而且也願意爲此而努力。編程

並不是天生我材必有用

一個又有一個頁面製做出來,而後一個又一個的丟掉,直到有一天受命製做了一個內網的休閒網站。很簡單的網站,列出不少小說的超連接,能夠在線觀看(txt格式)和下載(zip),90%的時間花費在尋找資源上,最終的頁面很醜,頂部一個標題,而後就是一堆url。可是,這些醜陋的頁面沒有被丟掉。原來並不是天生我材必有用,而是沒用的早已被湮沒。
我要去作有用的東西,雖然我還不是一個程序員。segmentfault

讓我站得更高一點

薄薄的一本HTML教程輕鬆翻完,可能只用了一天不到,可是留給我太多的問題。爲何Yahoo的網頁這麼好看,爲何別人能作出一些很炫的效果(好比雪花),爲何有那麼多爲何?答案垂手可得的獲得了,四個字:查看源碼。
HTML -> CSS -> Javascript -> Photoshop -> Flash –> PHP -> MySQL
這個時候我以爲本身應該算得上是一個程序員了,或者說我已經不在乎本身是否是一個程序員了,不斷地學習,不斷地練習,不斷地進步,不斷地超越本身,這就是我想作的、正在作的、並會繼續去作的事情。windows

這是一個起點

編碼、吃飯、睡覺,這種單調的生活持續了大約20天,個人第一個PHP項目完成了。開發工具就是Editplus,功能則是依附於業務數據庫構建一個輔助查詢系統。
在開發的工程中我學到了新的知識,對某些問題的處理有了新的思路,因此我相信個人下一個項目會作的更好。
因此,這隻能是一個起點。瀏覽器

程序&程序員

用文字描述客觀真理被稱爲哲學,用數字與符號描述客觀真理被稱爲數學,用0和1描述客觀真理,是程序,是過程的有序組合。
程序員在不違背客觀真理的前提下,對過程進行有序的組合,使事物按照咱們的意願發展從而獲得必然的結果。工具

程序之美

有道是字如其人,代碼亦然。它是開發者思想的結晶,在我看來欣賞代碼與欣賞藝術品之類的東西大同小異。佈局

何爲美

錯落有致,別具匠心;展轉靈動而又典雅大方;增一分則肥,減一分則瘦;不施粉黛卻渾然天成...
觀衆怒曰:說人話!囧
代碼應該格式良好,雖然每一個人喜愛不一,可是其代碼中的縮進、空格的使用必然是有規律的,而不是隨手爲之。
結構充滿彈性,耦合適當。
沒有冗餘的代碼,可是也不會放棄必要的檢查。
讀起來很流暢。

何爲美

物盡其用方爲美。
在官方文檔中常常能夠見到簡短的示例代碼,可是有沒有人嘗試過本身去寫一個示例代碼呢?若是你以爲這有什麼了不得,好的,試試看。

  1. 示例代碼是當前話題的典型應用,就是最多見的用法;

  2. 若是有可能的話,該代碼應該是可運行的;

  3. 不能喧賓奪主,示例代碼不會讓讀者的注意力離開當前話題;

  4. 恰到好處的註釋,預測讀者此時可能想到問題並針對性的解釋;

  5. 要短。

何爲美

指點江山,激昂文字,波瀾壯闊之美。
初級程序員是站在開發者的高度編寫代碼,中級程序員是站在使用者的高度編寫代碼,高級程序員是站在項目價值的高度編寫代碼,頂級程序員是用上帝視角考慮取捨,不寫代碼。低頭看,萬馬奔騰;略昂首,高山仰止;再側目,節比鱗次,各逞機鋒。

再問何爲美

子非魚焉知魚之樂。
心之所向,身之所往。
不滯於物,不殆於心,思而惘顧,行而桀黠。

尾聲

謹以此文分享我歷年來的感悟,但願有更多志同道合者加入程序員的隊伍。在我看來,即使是在職的開發人員也不乏大量的碼農,在規模較小的公司裏面更是一個程序員帶着一羣碼農在爲混口飯吃努力。想要發展首先就要有交流,可是沒有同伴你又能和誰交流?
何爲碼農?在我的能力上不思進取,在工資收入上費盡心思的就是碼農。因此,仍是作程序員吧,等你。


附言

嘩啦啦寫了很多,結果發現徵文要求之中的不少內容卻都沒寫,就在末尾補註一下吧,避免被編輯說不符合要求而退稿。

我喜歡的軟件

經常使用的雖然不少,可是必定要說喜歡的還真沒有。

我喜歡的硬件

鍵盤和鼠標,品牌無所謂,主要是質感。不會過輕,那就飄了;不能過重,會累;不能太靈敏,觸而不發表明我還在猶豫;不能太遲鈍,靈感如白駒過隙。反面典型就是手寫筆。

工做、學習、生活中用到的神器

我想神器未必是真的神器,個人神器是魚竿,哈哈。只要看到魚竿就會馬上從當前的狀態中解脫出來,重歸平靜。

有沒有寫過一些黑科技(狂拽酷炫屌炸天)型程序

好久之前(好像是07年吧,尚未jQuery之類的東西)基於XMLHttpRequest作了一個內網站點,包括打卡,留言,技術分享,新聞幾個小功能。總體的佈局和外觀模仿的windowsXP,是的,首頁上各個應用的圖標,打開後開啓一個浮動窗口,也能夠最大化、最小化和關閉,固然也包括拖動。
可是這也是一個徹底失敗的做品,除了很炫(在當時來看)之外沒有任何的實用價值。由於追求效果,不少用戶操做被複雜化了,同時很炫的功能致使試用者的注意力被轉移了,沒人注意到技術分享功能自己,而是被各類個性化設置帶偏了,不少人嘗試了各類個性化設置,而後徹底沒有心情去寫什麼技術資料了。

推薦書籍

【增補】強烈推薦的一本書:紙牌的祕密 或者 蘇菲的世界,雖然這是兩本書,可是實際上看一本也就差很少了,有故事情節的哲學啓蒙書籍,很是好,寫這篇文章的時候忘記了。【/增補】

對於中級及如下的開發人員,像C, C++, Java都有不少經典的書,前幾章都很是值得一看。你也許問我既然這麼好爲何不看後面,好吧,由於後面我都看不懂。
前面幾章事實上是對語言的總體介紹,是對語言締造者觀念的剖析,咱們能夠由此去聆聽大師們是如何理解對象的,怎麼看待和分析對象間的聯繫等等。
我以爲頗有用,並且每隔一段時間再看都會有不一樣的領悟。
此外關於語言自己就沒什麼書籍可推薦了,很貴並且不如文檔全面,若是有興趣的話不如看看UI設計思想、敏捷軟件開發之類的東西。
我一直堅信程序無所不能,而對於程序員來講技術問題老是可以解決的,可是就怕你想不到,或者不敢想。

編程的大殺器

沒有。要是說對程序員的大殺器我卻是能夠推薦一個,ctrl-c + ctrl-v,絕對是對程序員的大殺器。

  1. 用這個手段開發的人很難進步

  2. 用這個方式開發的項目很差維護

好習慣與坑

好習慣就是注重細節和強烈的責任感,與之對應的就是坑。從大處說可能變身豬隊友坑了項目組;從小處說,變量名寫錯一個字符這種bug是最難發現和解決的,並且解決以後還收穫不到任何喜悅。你只會沮喪的想,浪費了4個小時原來只是把i寫成了l。

展望將來

根據前面的調子,這裏也不會有什麼出彩的答案。
其實我挺反感曾不不窮的新技術名詞的,嗯,是的,只是反感新技術使用的名詞,不是技術自己,好比Saas,好比大數據。
我我的並無以爲真的有什麼新技術出現了,一般這只是宣傳的須要而已。就像win31, 95, Me, 98直到如今的win10,這是技術發展的必然結果。
用大數據來作例子,這是新的課題嗎?確定不是,搜索引擎早就面臨並一直在解決這個問題,那麼怎麼忽然在最近流行起來這個話題了呢?
我認爲所謂的新技術一般是對前人在特定領域留下的寶貴經驗的一次總結,是爲後來者提供一個用來踩踏的基石,並非什麼神祕或者高端的東西。(例如如今爛大街的Ajax,最先是用隱藏的iframe,後來纔有了XMLHttpRequest,而後才被稱爲Ajax而後被普遍使用,而在HTML5之前,所謂的ajax文件上傳也仍然仍是經過iframe模擬的。)
我在回答某個問題的時候也說過相似的話:程序是創建在邏輯的基礎上的,開發功能的時候能夠不用別人造好的輪子,可是不等於你能夠抹殺那個輪子所表明的邏輯。在我看來,新技術就是輪子的名字而已,貢獻嗎?絕對!創新嗎?呵呵。
因此,對於看好什麼技術這種問題,個人回答只有四個字,適者生存。

關於追妹子

本人已婚。

本文參與了 SegmentFault「個人編程之路」計劃,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索