首頁  >  文章  >  程式設計師工作以後該如何提升?

程式設計師工作以後該如何提升?

步履不停
步履不停轉載
2019-06-24 13:58:495559瀏覽

程式設計師工作以後該如何提升?

剛好最近Coding Girls 有同學問了這樣一個問題:

在現公司的開發日常已經脫離hard 模式,就是日常寫業務無壓力,程式碼品質也OK,但是寫完業務就沒事了。這樣子應該怎樣提升?

其實在工作一年多左右的時間,我也曾經提出過這樣的問題。不知道是否曾有人也有過一樣的煩惱,就是當你能夠 handle 現在的工作之後,要怎麼提升自己?這個問題無關性別,任誰都會有。所以還是想根據自己的經驗來寫寫。如若有相似之處,純屬正常。

這裡是 PHP 的社群,我們就基於 PHP 來講。相信很多剛開始接觸 PHP 的人,甚至是剛開始接觸程式碼的人,百分之七十都是先接觸的框架。比如我。 Laravel 是個極度優秀的框架,最優秀的地方在於,它能夠讓一個連 SQL 都寫不好的女同學愛上寫程式碼。許多開箱即用的工具、各種技術教程帖子使得我們不需要在深究其原理的基礎上,寫出自己的畢業設計,寫出自己在代碼世界的一丟丟自信和存在感,從此一腳邁進了程式碼世界的大門。

於是乎你帶著剛學會對框架的使用和一些在學校學得零零散散的稍微能理解的知識開始參加工作了。工作之後你突然發現自己對框架的理解還不夠深入,於是你開始從頭開始啃各種文檔: 

 ●  PHP 的文檔,了解了每個函數的使用。

 ●  Composer 文檔,開始折騰各種潮流包。 (相關影片推薦:PHP Composer 影片教學

 ●  Laravel 的文檔,如何用 ORM 寫出複雜的 SQL,控制反轉到底是個什麼鬼? (相關影片推薦:2019年最新的五個Laravel影片教學推薦

## ● 

Redis 的文件 ,學會它,定時任務佇列快取等優化開始不在話下。 (推薦課程:redis影片教學

 ●  Vue 的文檔,可能你覺得只掌握一點點前端知識還不夠,於是你又開始折騰。 (相關影片推薦:

2019最新的5個vue.js影片教學精選

甚至隨著公司業務的發展,你會開始跟著你的團隊接觸一些對你而言還很高大上的技術,微服務、分散式、讀寫分離、主從備份等等~ 甚至你還開始嘗試寫開源項目,但遲遲不肯發布。

慢慢開始覺得自己變得牛逼了,因為產品同學的需求你能很快完成了,測試同學即使提出來bug,那也是你沒好好看看需求文檔或者粗心寫錯了個符號導致的。工作變得越來越沒有難度,於是乎你開始不知足了,這時候如果公司沒能給你更多的挑戰,你就會開始想著要換份工作了。

但是一般換份挑戰無非是換個工作環境、組織、換個框架或多兼顧一個語言的事情,當你適應這一切之後,你又開始會覺得好無聊,沒有挑戰的同時又對重複勞累的加班工作產生厭倦,終於你開始連週末也不想寫代碼了。興許你會換個打發時間的事情,例如學一門樂器、談個戀愛、養個貓、實現一些 Flag ~~

這樣真的好嗎? 你開始這麼問自己。即便能做很多事情,卻仍舊有很多事情是自己做不了的。你開始有種比上不足比下有餘的感覺,你開始慌了,開始覺得迷惘、不知所措。於是乎你開始抓著身邊的人問,這該怎麼辦才好?可是當有人給你換行換崗的建議時,你卻不想如此。是因為你熱愛還是因為除此之外你不知道做什麼好了? Anyway~ 我希望下面的內容能為有著同樣疑惑的你帶來些許答案。

提出疑問

提出什麼疑問?

 ●  你的程式碼品質真的 OK 嗎?你是拿什麼來衡量自己的程式碼品質呢?拿什麼來保證介面的健全性嗎?你知道你寫的介面能承受多少請求數和並發量嗎?百萬級的數據你能 handel,千萬級甚至 PB 級呢?

 ●  日常寫業務無壓力?平均每寫一個功能測驗給你提多少缺陷你數過嗎?你知道你寫的功能有多少人在用嗎?你寫的功能別人用得可還順手嗎?生產上你寫的功能可曾產生過「不可能出現」的髒數據?
 ●  例如某天系統突然崩了十幾分鐘,CTO 和幾個技術組長出面解決了。你可曾去了解為什麼崩了?如何解決的?了解什麼程度? (例如有慢SQL,遇到慢SQL 導致系統阻塞怎麼解決,慢SQL 是怎麼產生的,平日裡要如何避免慢SQL ?怎麼根據崩了發現是慢SQL 的?)
 ●  把框架文檔看熟看透了就夠了嗎? Laravel 的框架為什麼要這麼設計?為什麼我們都說它好?它跟其他框架的差別在哪裡?有去翻過底層的程式碼嗎?
 ●  PHP 函數的背後都用了什麼樣的演算法來保證其運作的高效?了解過嗎?

脫離 hard 模式,究竟是事情很 easy 還是因為你把自己置身於 easy 就算了?

積極主動

根據上面隨意提出的疑問再延伸出更多的疑問,就可以舉出大把你需要學習的內容了。

 ●  MySQL 你真的會優化嗎?優化的原理是什麼?為什麼有些 SQL 語句邏輯相同,效能差異卻如此龐大?框架是怎麼跟資料庫連結的,事務是怎麼處理的?為什麼加了索引會讓查詢變快?如何更好的利用索引? order by 是怎麼運作的?

 ●  Nginx 你真的會用嗎?除了拿來簡單的部署項目,你知道如何設定反向代理來實現負載平衡嗎?跨域和快取的問題該如何處理?
 ●  Linux 熟練嗎?命令都會用了? Linux 系統中出現大量不可中斷程序和殭屍程序怎麼辦?如何迅速分析出系統CPU的瓶頸在哪裡? Linux 記憶體是怎麼運作的?進程切換的過程是怎麼樣的?磁碟 I/O 效能最佳化有幾個思路?怎麼使用 tcpdump 和 Wireshark 分析網路流量?怎麼緩解 DDoS 攻擊帶來的效能下降問題?服務吞吐量下降很厲害,怎麼分析?

接下來就不詳細列舉了,例如基本崗位技能Web 協定、Redis 等,內功心法之資料結構、演算法、設計模式等等~ 如果真的不知道自己有啥技能上的欠缺需要補充,看看自己心儀公司心儀職位的招聘簡歷唄~

提出疑問,知曉自己的缺漏,下一步就是自己想辦法補缺了。上面的問題,你知道答案嗎?此刻的你是否有複製貼上百度答案的衝動,如果還有,那就去找到答案吧!

在這個資源共享的時代,學習成本可以說幾乎是零。你能提出的疑問幾乎都有人提出過,也有人解答過。如若你需要更有系統更深入的理解,書籍、影片、課程,網路上的資源大把。買了就踏實的去看,辛苦加班賺回來的錢不要浪費了。反正沒看過厲害的人說他們是不看書的。

 ●  知識付費的時代,各大社區現在都多多少少有在營運相關技能的教學
 ●  極客、慕課也有很多深入理解底層原理的好課程
 ●  極客、慕課也有很多深入理解底層原理的好課程

 ●  補充相關的知識該去看什麼書,實在找不到人推薦你就上知乎

寫點什麼

學而不思則罔,思而不學則殆。有道是學以致用,如若看完一個知識點,把自己的理解寫下來,自己能看懂,別人也能看懂,還能把不懂的人講到懂,那你就是真的懂啦!還是那句話,沒看過哪個大牛沒有輸出自己的知識見解的。 So,看了書、學了視訊課程之後,請務必強迫自己寫點什麼。知識點筆記、讀後感等等~

加入圈子

一個人走得快,但一群人能走得更遠。於我個人的經驗而言,我的技術成長離不開圈子裡面的人的幫助。因為偶像安正超,來到 Laravel China 認識了站長 Summer,進而認識了更多社區裡的人。在一次次交流探討、耳濡目染之下,知道了自己的不足勤加修煉的同時,也知道有誰能解答我的問題、有誰願意與我探討,還有誰和我一起互相監督共同成長。一路走來,十分感謝伴我同行的人、耐心幫助我的人、願意花自己的時間給我建議的人。

因此,去積極加入圈子,或是自己開闢圈子吧。尋求幫助、或幫助別人。有道是教學相長,互相裹挾成長,一個人你學不下,一群人你旁聽總該有點收穫吧。花點時間建立自己的技能圈子,去找厲害優秀的人跟著他們學習,有什麼難的呢? ###

題外話

在這裡列出一大堆學習資源可能無法保證會對你有用。更何況學習本身還帶著堅持、自律、方法這樣的標籤去將我們很現實般地劃分為三六九等~ 需要學習的東西還很多,對程式設計師而言,知識的更新速度之快是我們永遠始料未及的。有道是,路漫漫其修遠兮,不管工作了多少年,時刻想著如何去提升自己是人生的一門必修課,你不想可不行啊!

如果有需要,可以在貼文下面留言,我或社群裡的熱心的同學都會跟你分享我們學過的可能對你有用的課程、有用的書。例如網路相關的書有哪些值得一看~ 社群本身就是個很大的圈子,好好利用起來呀!

另外,一個程式設計師的成長肯定不只技術,還有職場、管理、交際圈等等~ 如若有機會,再來寫個《職業篇》吧! (因為現在暫時還不夠格呀喵~)

本文作者:JokerLinly,感謝!

相關文章推薦:

《做為優秀的php工程師,這些 Linux 指令你都掌握了嗎? 》

《一步步教你寫不可維護的 PHP 程式碼》

#
陳述:
本文轉載於:JokerLinly。如有侵權,請聯絡admin@php.cn刪除