
? ? 對很多程序員來說,溝通和寫作是非常困難的事情,這里不打算舉辦寫作培訓(xùn)班,只是和大家分享立馬用得上的提升寫作水準的一點技巧。
條理性
其實技術(shù)人員在工作中遇到大部分的寫作,都是應(yīng)用文寫作,并不需要擁有豐富的想象力、風(fēng)趣幽默的文風(fēng)、小清新的玻璃心或者歷經(jīng)滄桑的過去,只需要把事情講清楚就好,所以只要內(nèi)容條理性夠好,聽眾就會認可。 我們可以用列表來寫一個提綱,比如今天你要匯報最近一周的工作,那么先寫一個一級列表,
像這樣: ·優(yōu)化招聘方請求
·提升通知到達率
·訂閱系統(tǒng)升級 然后,再為每一項寫小的列表,
比如:
·優(yōu)化招聘方請求
·根據(jù)關(guān)鍵字對請求加減分
·增加被拒絕請求的優(yōu)化提示
·提升通知到達率
·添加短信通知
·微信下行通知換成模板通知
·訂閱系統(tǒng)升級
·添加被動訂閱模式
·修改界面,改為關(guān)鍵字訂閱和條件訂閱二選一模式 不多寫了,再寫這周周報都寫完了。
那當我們匯報的時候,要先點后面,先給概要再給細節(jié)。具體起來就是這樣: 上周我們主要做了三件事情,分別是優(yōu)化招聘方請求、提升通知到達率以及訂閱系統(tǒng)升級。為了優(yōu)化招聘方請求,我們分別采取了根據(jù)關(guān)鍵字對請求加減分和增加被拒絕請求的優(yōu)化提示的措施,這兩項周三已經(jīng)完成,經(jīng)過測試并上線,用戶反饋數(shù)據(jù)正在收集中,預(yù)計下周一可完成,當天下班前我會發(fā)郵件給大家……
邏輯性
雖然缺乏邏輯性是產(chǎn)品經(jīng)理的而不是程序員的通病,這里也提一下吧。我們寫文章或者做匯報時,前后文之間是應(yīng)該有明確關(guān)系的,后一句對于前一句,或者是后續(xù)、或者是論據(jù)、或者是總結(jié)、或者是并列。不要搞跳躍性思維,不能前邊一句說你去了洗手間,后一句說你吃得很飽,這會出人命的。 只要你牢牢記住前面介紹的技巧,寫一篇條理清晰、邏輯順暢的文章還是很容易的。
走完分享的最后一公里
毋庸置疑,程序員是非常愿意分享的一個群體,正是這樣才有了數(shù)不盡的開源軟件,我現(xiàn)在正在使用的GitBook就是其中之一。 但是很多程序員在分享這件事上虎頭蛇尾。我們分享的目的就是讓別人能夠理解、重用我們的勞動成果。如果我們只是將代碼直接push到GitHub上,其實這無法達到分享的目的。 我們走過程序開發(fā)這千里“長征”,一定要堅持走完分享這最后一公里。為自己的項目寫概要說明文檔,為新手用戶寫Quick start,將項目提交到各個技術(shù)資訊站,為感興趣的同學(xué)提供討論和交流的場所。 充分的交流不但會擴大你的影響力,更會聚集各種有意思的想法,往往讓你驚喜不斷,獲得新的啟示。

渠道
如果是技術(shù)文章,下面列出了一些常見的渠道:
·首先可以發(fā)布到自己的技術(shù)博客
·然后同步到微博(可以用ifttt.com)
·如果反響不錯,可以再通過微信公眾號推送給訂閱讀者
·提交到Startup news和CSDN極客頭條,掘金等社區(qū)。
針對文章的受歡迎程度,我們還可以進行二次加工:
·根據(jù)文章內(nèi)容制作PPT,通過SlideShare.net和微盤分享
·定期精選系列文章,更新到最新后整理成PDF,通過微盤分享
·對于特別受歡迎的教程類文章,可以做screen-cast,通過在線教育網(wǎng)站(比如優(yōu)才網(wǎng)、慕課網(wǎng)等)進行傳播 如果是開源項目,當然首選GitHub。
開始你的開源項目
開源項目在技術(shù)求職中是大規(guī)模殺傷性武器,如果要面試的公司正在使用你寫的開源代碼,你會有非常高的加分;即使不是那么有名的開源項目也可以讓面試官清晰地了解你的編碼風(fēng)格、架構(gòu)能力,從而節(jié)省很多不必要的面試與筆試時間。所以現(xiàn)在就開始你的開源項目吧。
通過開源項目轉(zhuǎn)型
經(jīng)常有候選人和我說,我很喜歡XXX語言,但是在公司沒有機會做,所以我想跳槽到一家使用XXX的知名公司進行學(xué)習(xí)。 這種想法的愿景不錯,但往往很難實現(xiàn)。因為從招聘方來講,它不是做免費教育的,它是一家商業(yè)公司,所以它總是招性價比最好的人選。 除非你之前的工作經(jīng)驗?zāi)芎芎玫匾浦驳叫碌念I(lǐng)域,否則為什么不直接培養(yǎng)一個應(yīng)屆生呢?他們處于職業(yè)的成長期,對薪資不敏感,又有更充沛的學(xué)習(xí)精力。 所以如果你想轉(zhuǎn)型,做一個開源項目是非常有幫助的。它讓你在新領(lǐng)域的經(jīng)歷不是一片空白,也向招聘方證明了你對這個領(lǐng)域的真實興趣。反過來,如果你對招聘方說你對一個語言“非常感興趣”了好幾年,卻從來沒有用它寫過一個項目,很可能會被貼上光說不練的標簽。
開源項目不是遙不可及的
并不是一定做出WordPress這樣的項目才行,其實很多有名的開源項目不過是一些細節(jié)上的改進。比如iScroll這個項目,它其實只是處理滾動條的小Tip而已,技術(shù)上沒特別的難度,代碼量也不大,但由于大家都不想在這種細節(jié)上花太多時間,反而讓iScroll大規(guī)模流行,最后蘋果和微軟甚至雇傭過它的作者做兼職。 所以開始一個開源項目其實很簡單,找一些自己在做項目時遇到的費事費時的小細節(jié)做好,然后開源就可以了。 舉個例子。比如我們在做圖片列表的時候,如果圖片高度不同,就需要截圖,很容易把照片中的人臉給截沒了。但其實JS版的人臉識別庫已經(jīng)在GitHub上開源了,那么可以做一個根據(jù)識別的人臉智能截取一定高度圖片的jQuery插件,自己先使用,然后開源給其他人。 隨著用戶的增加,我們會添加對不同版本瀏覽器的支持,以及添加對手機的支持。這樣使用的人就會越來越多,他們也會幫我們傳播,最后我們就有了一個很不錯的開源項目。 比起技術(shù)能力,更多的是“來自于真實的需求”以及“持續(xù)更新的毅力”,這就是做好開源項目的秘訣。
提升架構(gòu)能力
架構(gòu)能力和寫作一樣,不是能一蹴而就的東西。這里只是在理念上和大家分享下。 在我看來,軟件本質(zhì)上是一種能力,是封裝好的、可高速、廉價、重復(fù)執(zhí)行的能力。 我讀過很多關(guān)于架構(gòu)的書,也寫過大大小小數(shù)百個項目,一路實踐下來,個人覺得最重要原則有兩個:DRY和正交性。
DRY
是Don’t Repeat Yourself的縮寫,翻譯過來就是“不做重復(fù)事”。 這正是逼近軟件本質(zhì)的一個原則,它指導(dǎo)我們把經(jīng)常使用的功能抽象成庫,把重復(fù)出現(xiàn)的代碼重構(gòu)為可重用的框架模塊。如果你用DRY來要求自己,很快你就會發(fā)現(xiàn)自己抽象和架構(gòu)能力的得到飆升。
半自動化
但是我們活在現(xiàn)實世界,所以我們不可能把所有的事情都自動化,有人類尤其是女人參與的活動,往往會毫無規(guī)律可循。 但我們不能放棄,不要二元思維,除了手動和自動,我們還可以半自動化——讓機器做完所有繁雜的常規(guī)操作,人類來處理需要智慧的那一點點工作就好,這也能極大提升工作效率。
正交性
正交性的意思是,功能和功能之間應(yīng)該盡可能互相不干擾。只有這樣,我們才能有效地控制每個部分的行為。所以功能之間的依賴盡可能少,如果有,規(guī)則一定要明確,不要試圖做一些自作聰明的事情。比如JobDeer之前的推送通知是在發(fā)布候選人時自動發(fā)的。一直用著不錯,但有一天有一個候選人需要重新發(fā)布,但我們不想推送通知,這時候我們就傻眼了。這是因為發(fā)布功能和推送功能不是正交的。 后來我們把發(fā)布和推送功能分開,在發(fā)布成功后,詢問是否需要跳轉(zhuǎn)到推送頁面。這樣發(fā)布人才不會影響推送;推送信息也不會依賴發(fā)布了?!癒eep it simple stupid”就是這個意思。 API其實也是強化正交性的利器,它通過接口規(guī)范確定了互不影響的功能,又通過接口協(xié)議隱藏了后端實現(xiàn),去除了對實現(xiàn)技術(shù)的依賴性。在這點上SinaAppEngine就受益匪淺。
