摘要:如何才能成為一名專業(yè)的開發(fā)者資深開發(fā)者在其博客上分享了一些心得。要想成為一個專業(yè)的程序員,首先要成為一個中級程序員。永遠不要低估陪伴的力量結論當你專注于實踐上面所提到各種方法的時候,你就在成為專業(yè)開發(fā)者的路上。
如何才能成為一名專業(yè)的PHP開發(fā)者?資深Web開發(fā)者Bruno Skvorc在其博客上分享了一些心得。
當閱讀各種和PHP相關的博客、Quora問題、Google+社區(qū)、資訊和雜志的時候,Bruno Skvorc注意到討論的問題出現(xiàn)了兩極分化的現(xiàn)象。例如“我如何連接到一個MySQL數(shù)據(jù)庫?”,或者是“在不增加服務器的前提下,我如何使得郵件系統(tǒng)能夠每小時發(fā)送超過一百萬份電子郵件?”
Bruno Skvorc根據(jù)對PHP的使用能力將應用者分為四類:初級、中級、專業(yè)和精英。
兩極在PHP語言中,初級用戶會用一些變量、includes、表單處理,等等。還會學一些簡單的邏輯結構。借助教程他們能用PHP發(fā)郵件,甚至他們可能接觸到一些面向對象編程的例子,當然他們不一定理解背后的原理。他們使用WordPress,修改一些CSS類。他們憑著這些知識去申請工作,然后很不幸地被拒了。
PHP專業(yè)用戶能讓很多項目煥發(fā)生機。他們使用眾多框架開發(fā)商業(yè)應用,高效地使用各種不同的數(shù)據(jù)庫,參加各種研討會,學習各種設計模式,很輕松地開發(fā)出一個完整的項目——從流程設計到最后運行。他們早已不再使用過程式編程范式了。
精英程序員就是傳說中經(jīng)過10000+小時磨練的專業(yè)人士,自己編寫擴展來擴充自己部署的PHP的功能,只要粗略地瀏覽一下源文件就能抓出bug,對代碼布局極為講究,只認可極為復雜的項目,在別人還沒察覺之前就找到解決問題的創(chuàng)造性的替代方案。他們還會寫一些暢銷的關于PHP語言的書籍,在大量研討會上發(fā)言,甚至創(chuàng)建一個屬于自己的PHP分支或者一兩個非常成功的框架。
那么,那些中級用戶在哪里?
缺失的一環(huán)一個程序員如何從初級升到專業(yè)級甚至更高?如果一個人只會基礎的編程知識,他如何提升自己的技能,舍棄糟糕的實踐,使用高級的方式實踐呢?初學者經(jīng)常問Bruno Skvorc這個問題。要想成為一個專業(yè)的程序員,首先要成為一個中級PHP程序員。
接下來的列表指出了流暢地使用PHP需要注意的一些方面:
放棄意大利面式代碼很多人認為使用類就意味著是在編寫面向對象的代碼,而使用函數(shù)就意味著是在編寫過程式代碼。大錯特錯!讓我們復習一下廣泛意義上的定義:過程式代碼就是不使用類和對象的代碼,面向對象的代碼就是盡可能多地使用類和對象。
Bruno Skvorc的建議是完全放棄過程式代碼。盡可能多地采用面向對象風格——編寫類,封裝邏輯,考慮真實世界的術語。考慮到可復用性,過程式代碼相對于基于類的代碼的性能優(yōu)勢微不足道。適當?shù)腛OP代碼可以讓未來的開發(fā)者接手你的項目。通常人們會這么反駁:“但是,WordPress可是過程式的!”老實說(也許不好聽),如果WordPress的開發(fā)者是PHP開發(fā)者的話,那Instagram的開發(fā)者可就是攝影師了。這并不意味著WP沒什么用——對于博客、簡單的網(wǎng)站和一天項目而言,WP很棒。用WP能很快地賺些小錢,對不太懂技術的用戶而言也很好用。但是精通WP絕不意味著你是一個專業(yè)的PHP開發(fā)者——那就是一堆意大利面一樣的代碼,那些代碼可沒法教會你合理的設計原則。
從小事做起。思考現(xiàn)實世界的概念,嘗試用面向對象的代碼表達它們。學習一些基本的教程,再慢慢向高級方向發(fā)展。練習面向對象編程直到你真正理解類。在此之前,不要急著去學習各種框架,以及 MVC 之類的抽象術語。
鉆研現(xiàn)有項目不管你是在哪里看到的源代碼,都要仔細鉆研。例如,在Github里查找PHP項目,克隆下來,部署在自己的機器上,嘗試加以修改。一個文件接著一個文件,一行代碼接著一行代碼,直到你真正理解它們的意義。
學習搭建的PHP環(huán)境搭建PHP環(huán)境也是一項寶貴的技能。這不僅允許你調整優(yōu)化自己的配置,還可以讓你熟悉如何通過源碼構建插件。
別用Windows開發(fā)——如果你的主要桌面是Windows,你需要安裝一個虛擬機軟件,然后運行一個Linux虛擬機——Windows的大小寫敏感,行結尾,和大多數(shù)服務器環(huán)境不同的怪異之處,都會給你造成麻煩。所以最好在一個和服務器相似的環(huán)境下開發(fā)。
虛擬機也有利于實驗——如果出現(xiàn)了問題,你可以重新開始或者回滾一下。你也可以盡情實驗,而不用擔心把一切搞砸。掌握工具的使用方法是很重要的,但有一個好的工作平臺也同樣重要。
用你自己搭建的環(huán)境做實驗也可以讓你熟悉不同的服務器——該用Nginx還是Apache,或者使用Appserver,等等。
盡早應用最佳實踐在編寫自己代碼的時候,要確保詳細注釋、完美縮進、仔細架構。在構建一個類、項目和庫之后,使用知名的的文檔工具(PHPDocumentor、ApiGen)來提取文檔,并在此基礎上加以改進。
一個好的IDE是很寶貴的,熟悉一個跨平臺的編輯器有利于你在架設新環(huán)境后馬上進入代碼,而不是把時間浪費在設置鍵盤快捷鍵和主題上。確保你將IDE配置文件保存在云端,(例如Google Drive),這樣即使你新安裝了系統(tǒng),你也可以很方便地導入它們。Bruno Skvorc推薦PHPStorm和Netbeans這兩個跨平臺的IDE,后者是免費的。
早一點適應最佳實踐能夠幫助你在項目進程里保持一致,更有助于別人流利地閱讀你的代碼。找到你的風格并堅持下去——這對你自己和別人都有好處。盡可能嚴格遵循PSR標準(PSR-0、PSR-1、PSR-2、PSR-3)。標準可不是徒有虛名。大部分人遵循這些標準,喜愛這些標準,因為它們增加了每個人的代碼的可復用性和可讀性。
對于初學者來說,PHP之道是一個非常有用的資源,提供及時的指引。通過此書,你可以熟悉最新的最佳實踐,面向對象的基本概念,安全,部署,代碼標準,等等。
嘗試不同的框架后做出選擇很久以來,PHP是一個具備最多框架的編程語言(JavaScript最近已經(jīng)趕上了)。很難說這到底是意味著社區(qū)的分裂還是語言的流行。但事實是,選擇一款框架是一個很糾結的事情,尤其是在剛開始的時候。
試用了大多數(shù)框架之后,Bruno Skvorc推薦穩(wěn)定優(yōu)質的Phalcon框架。其實Phalcon是用C語言編寫的,可以當作PHP擴展安裝,因此比現(xiàn)存的框架都要快。無論如何,嘗試使用不同的框架絕對是很有必要的。
當你嘗試不同框架的時候,你每次都能學到解決常見問題的新方式。每個框架都有自己的特性和坑,但是最重要的是,你能學到別人(主要是框架開發(fā)者)的思路。你將接觸新的用法和方式,用所有你能找到的框架重構你的項目是一個非常好的練習。這將幫助你有效地衡量某個特定框架的效率:開發(fā)的速度和性能。
閱讀千萬不要忽略別人給你的提示和小建議。盡可能多地閱讀。訂閱好的博客,閱讀網(wǎng)站上的教程,在StackOverflow上面閱覽問答,訂閱郵件列表,關注Google+上的優(yōu)質資源。但是要避免PHP基礎教程類的書本,它們很快就會過時。相反,要關注網(wǎng)上有用的、最新的代碼片段和教程。即使是已經(jīng)接觸過的主題也可以再讀一遍,常常能從別人的觀點里領悟出新的想法。
如果沒有工作,那就發(fā)明一些出來總有事情可做。永遠別對自己說:“我沒有一個項目。”更別對自己說:“我很無聊?!比绻阏也坏绞裁错椖孔?,那就開一個新的。你是不是因為天天使用的工具缺乏某個功能而沮喪?做一個更好的替代品!沒有新產(chǎn)品的創(chuàng)意?那就重復已有的創(chuàng)意——嘗試重建一個基本的facebook,重新創(chuàng)建一些你已知的項目來練手。
最重要的是永遠別?!绻阃O铝?,就不會有驚人的一萬小時了!持續(xù)地工作,維持自己的興趣,持續(xù)投入。做一個簡單的地址薄應用。然后用別的框架重構一下。然后再換個數(shù)據(jù)庫(比如將 MariaDB 換成 Mongo)。保持忙碌!
找一個伙伴或者指導者和人合作學習起來更容易。尋找一個和你一樣有激情的伙伴。也許你是少數(shù)好運氣的人,能找到一個能和你分享極客興趣的伙伴。也許你在學校里,能找到一個想開始學習也需要伙伴的同伴。你甚至可以找一個指導者,接受一些專業(yè)指導。
永遠不要低估陪伴的力量!
結論當你專注于實踐上面所提到各種方法的時候,你就在成為PHP專業(yè)開發(fā)者的路上。堅持原則,永不放棄(即使周圍的人放棄了),持續(xù)練習。
原文 ecoming a PHP Professional: The Missing Link
編譯 SegmentFault
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/20625.html
摘要:為了成為一個專家,他必須先成為中級者。它非常適合于急于求成或者沒有太多技術的人,但掌握絕對無法使你成為一個專業(yè)的開發(fā)者它使用意大利面條式的編碼,教你的是不合適的設計原則。 這一篇文章是Becoming a PHP Professional系列 4 篇博文中的第 1 篇。 當瀏覽各類與PHP相關的博客時,比如Quora上的問題,谷歌群組,簡訊和雜志,我經(jīng)常注意到技能的等級分化。問題都類...
摘要:第一階段基礎階段基礎程序員重點把搞熟練核心是安裝配置基本操作目標能夠完成基本的系統(tǒng)安裝,簡單配置維護能夠做基本的簡單系統(tǒng)的開發(fā)能夠在中型系統(tǒng)中支持某個功能模塊的開發(fā)。本項不做重點學習,除非對前端有興趣。 第一階段:基礎階段(基礎PHP程序員) 重點:把LNMP搞熟練(核心是安裝配置基本操作) 目標:能夠完成基本的LNMP系統(tǒng)安裝,簡單配置維護;能夠做基本的簡單系統(tǒng)的PHP開發(fā);能夠在P...
摘要:我從沒有聽到有人問如何做一名優(yōu)秀甚至卓越的前端工程師。作為一個優(yōu)秀的前端工程師還需要深入了解以及學會處理的這些缺陷。再者,優(yōu)秀的前端工程師需要具備良好的溝通能力,因為前端工程師至少都要滿足四類客戶的需求。 我所遇到的前端程序員分兩種: 第一種一直在問:如何學習前端? 第二種總說:前端很簡單,就那么一點東西。 我從沒有聽到有人問:如何做一名優(yōu)秀、甚至卓越的WEB前端工程師...
閱讀 3364·2021-10-21 17:50
閱讀 3326·2021-10-08 10:05
閱讀 3477·2021-09-22 15:04
閱讀 640·2019-08-30 14:00
閱讀 2033·2019-08-29 17:01
閱讀 1564·2019-08-29 15:16
閱讀 3275·2019-08-26 13:25
閱讀 910·2019-08-26 11:44