摘要:本文旨在用最通俗的語言講述最枯燥的基本知識今日,看到有些文章對碼農(nóng)和程序員做了一些界限劃定和差異分析,嚇得作者趕緊研究一下自己屬于哪個身份,但當(dāng)仔細(xì)查看了這些文章后,發(fā)現(xiàn)其實(shí)對于寫代碼的人來說,無非就像周星馳嘴里的龍?zhí)缀脱輪T之分,頓時感悟,
本文旨在用最通俗的語言講述最枯燥的基本知識
今日,看到有些文章對碼農(nóng)和程序員做了一些界限劃定和差異分析,嚇得作者趕緊研究一下自己屬于哪個身份,但當(dāng)仔細(xì)查看了這些文章后,發(fā)現(xiàn)其實(shí)對于寫代碼的人來說,無非就像周星馳嘴里的”龍?zhí)住昂汀毖輪T“之分,頓時感悟,你是屬于碼農(nóng)還是程序員,并不是外界給你定義的,而是你自己對這份職業(yè)的態(tài)度和付出而形成的一個一種身份。剛好可以借助這段時間作者的一些所見所聞,寫幾個故事,逐一分析。
1. 有趣的碼農(nóng)文章提綱:
有趣的碼農(nóng)
程序員的自我修養(yǎng)
寫一下工作周報吧
不要離公司太近了
最近忙于對公司某個項(xiàng)目進(jìn)行重構(gòu),幾乎所有時間都花在搭建架構(gòu)和編寫規(guī)范等文檔上,以往都是我分析需求、建好數(shù)據(jù)庫表結(jié)構(gòu)、定好開發(fā)流程,再把任務(wù)分配下去,現(xiàn)在只能把大部分新需求直接交給項(xiàng)目的小伙子來處理。
前兩天有個需求是對用戶播放視頻的行為進(jìn)行數(shù)據(jù)收集,我直接把需求丟給小伙子讓他全權(quán)把控,脫離了我的約束,他也玩的不亦樂乎,三下五除二地就把功能給實(shí)現(xiàn)了;提交代碼上來后,我瞟了一眼表結(jié)構(gòu),其中存儲播放行為的記錄的表名叫做“video_play_log”,當(dāng)時我心里就咯噔了一下:這名字起的有點(diǎn)局限性啊,但由于時間緊迫,我也沒過多的糾結(jié)。
后來過了一周,PM跑過來跟我說:“運(yùn)營反映上次做的用戶播放視頻的行為數(shù)據(jù)收集對運(yùn)營很有幫助,他們希望對音頻也做同樣的功能”,我心里想:小伙子這下好了吧,一模一樣的需求,你是把音頻數(shù)據(jù)放到video_play_log里還是給播放音頻的記錄建一個新表“audio_play_log”呢?
事實(shí)上,這樣的現(xiàn)象在開發(fā)中屢見不鮮:
有人為了實(shí)現(xiàn)一個百葉窗效果,把jQuery1.1到2.0版本的庫全引進(jìn)來,完全不在意頁面的性能。
有人為了查到一個數(shù)據(jù),把數(shù)據(jù)庫的表關(guān)聯(lián)加子查詢再加關(guān)聯(lián)再用內(nèi)聯(lián)函數(shù)處理,完全不在意SQL的性能。
有人為了達(dá)到需求里的流程,代碼里的if else嵌套十幾層,完全不顧代碼惡俗的要命。
....
當(dāng)上級需要做什么事情時,就按部就班的做事情,干著體力能及的活,拿著適可而止的工資,也不做過多思考,需求寫完交差,按時上班、準(zhǔn)點(diǎn)下班、對代碼不做抽象,也不想解耦,更不會從可擴(kuò)展性方面思考功能的實(shí)現(xiàn)(當(dāng)然,有些人可能不具備這種大局思維的思考能力,勿怪~)。在領(lǐng)導(dǎo)看來,不差也沒有很好;在同事看來,不菜也不是大牛,在自己看來,剛好無欲無求。
誠然,對自己的代碼沒有太多思考和追求的程序員,這類人可以稱之為碼農(nóng)了吧,當(dāng)然也沒有說碼農(nóng)就是不好,沒追求就是不好,每個人對自己人生的定義不一樣,追求也不一樣,當(dāng)你的理想就是要做這樣的一個碼農(nóng)時,嗯,這就夠了。
但是當(dāng)你不停的看到《碼農(nóng)將被機(jī)器人替代》、《老程序員應(yīng)該被雇傭的五大理由!》、《程序自動生成代碼》...等之類的新聞報道或者文章時,你的內(nèi)心感到恐慌:你害怕被老板拋棄,害怕被機(jī)器機(jī)器替代,害怕你所做的工作在這個世上一文不值時,你就應(yīng)該思考:
自己應(yīng)該做一個無欲無求的碼農(nóng),還是有思想的程序員。
“我不是一個死跑龍?zhí)椎?,我是一個演員”
多少人奉周星馳的《喜劇之王》為電影中的經(jīng)典,可是有多少能像電影中星爺那樣理直氣壯地告訴別人:
”我不是一個寫死代碼的碼農(nóng),我是一名程序員“
其實(shí)要做到并不難,一個人,無論他的身份是程序員,還是掏糞boy,抑或是白衣天使;思考能力,都是人能把任何一份工作做好的必要前提。
一個需求發(fā)出,有人拿到了就埋頭苦干一通,做出來的東西漏洞百出且擴(kuò)展性極差。有的人拿到需求之后花一些時間思考,分析需求、拆分邏輯和功能,對于不合理的設(shè)計和產(chǎn)品討論得到確切可行的方案之后,才開工,架構(gòu)和流程盡可能做到具有彈性和擴(kuò)展性。
一個頁面報錯,有的人忙的滿頭大汗,折騰了一天也沒找到問題。有的人卻思考問題出現(xiàn)的可能性,使用排除法和調(diào)試法,先分析錯誤碼,再定位問題是出現(xiàn)在前端還是接口,定位出來之后,再對邏輯代碼進(jìn)行調(diào)試分析,沒多久就把問題找到并且修復(fù)了bug。
一份代碼的編寫,有的人東拼西湊,面向過程式的編碼,最終功能實(shí)現(xiàn)了,代碼冗長易讀性差,自己也沒學(xué)到什么東西。有的人會先思考分析應(yīng)當(dāng)如何寫、哪些業(yè)務(wù)應(yīng)該分層、哪些邏輯應(yīng)該怎么走、哪些代碼塊應(yīng)該抽象出來...最終編寫出來的代碼整潔可讀性強(qiáng)、可維護(hù)性高,有些抽離出來的代碼也可能成為自己的得力工具。
因此,思考能力,是你要想寫好一份代碼,做一個有修養(yǎng)的程序員是一個必備能力,在日常的開發(fā)工作中,當(dāng)拿到一個需求時,我們應(yīng)該去思考:
架構(gòu):如果構(gòu)建一個有擴(kuò)展性的可維護(hù)的工程、包、類。
設(shè)計:如何設(shè)計代碼的邏輯,哪里可以抽象,哪里可以拆分。
編碼:如何寫符合編程規(guī)范,做到簡潔、安全、耦合度更低。
優(yōu)化:從性能更高的角度去思考,而不是僅僅從實(shí)現(xiàn)功能的角度思考
調(diào)試:編碼是如何埋點(diǎn)便于問題展示更清楚,問題如何定位、如何調(diào)試,如何修復(fù)...
3. 寫一下工作周報吧這是一個很奇怪的觀點(diǎn)。
其實(shí)我們心里都有數(shù):程序員都不喜歡寫周報,覺得那是文縐縐的幾句話一個清單,浪費(fèi)時間還吃力不一定討好,有些上司不是程序出身的,發(fā)給他也不一定看得懂。
在此我修正一下:這里所說的周報,并不是交給上司那一份,而是交給你自己的那一份。
為什么是交給自己的一份周報呢?我怎么沒有交給自己呢?
在此我想你們自己內(nèi)心回憶一下:上周你做了哪些工作?解決了哪些問題?碰到了哪些坑或技術(shù)難點(diǎn)?如何攻克?
可能90%的人都會記得,那么再上一周呢?上一個月?上一年呢?
相信沒幾個記得吧
你是否曾經(jīng)因?yàn)榛艘粋€通宵攻克下來的功能而興奮自豪的睡不著?
你是否試過一個bug百思不得其解,最終網(wǎng)友幫你解決了,讓你學(xué)到一些你沒學(xué)過的只是而無比開心?
你是否因?yàn)樽约涸斐隽艘粋€很實(shí)用的輪子而迫不及待得想要分享給他人?
這些你都曾經(jīng)試過,可是現(xiàn)在還會興奮嗎?不會了
當(dāng)硝煙盡散,一切歸于平靜之后,有些你曾經(jīng)很深刻的東西,也會慢慢變得模糊,最終消失。
因此建議你給自己一份工作周報吧,內(nèi)容不用太多:
做了哪些工作
得到哪些成果
碰到了哪些坑
學(xué)到了哪些知識
你每周收集一份這樣的內(nèi)容,日記也好、文章也好、哪怕是一個Excel表格,不斷的積累和回顧,會有不一樣的收獲。
4. 不要離公司太近了由于公司業(yè)務(wù)的發(fā)展導(dǎo)致人員迅速擴(kuò)張,公司一個由廢棄的舊飛機(jī)場改造而成的創(chuàng)業(yè)園區(qū)租了一個大廠房,打算改造成一個比較藝術(shù)氛圍的公司,在裝修時,極具細(xì)心的想到了一些員工需要住宿,因?yàn)閯澚艘慌欧块g作為員工宿舍,公司搬進(jìn)來之后,就有一個名同事入住了這個“新房子”。
我們這些住在外面的同事,嘴上沒說啥,但心里都想:真幸福,住公司不擁擠地鐵,不用自己出房租,天天都可以睡到8:59起來,多好啊。
一開始他好像也挺享受的,天天睡大覺快到上班時間了悠哉悠哉的起床上班,下班看著我們匆匆忙忙的趕地鐵擠公交...
但三個月后突然有一天快下班時,我看到他在拖著行李往公司外面走,我驚訝的說你是去旅游嗎?他回答讓我出乎意料:他搬出去住了。
后來有一次我們?nèi)ゴ蚯?,打完球一起吃了飯,期間,我問他在公司住的好好的為什么搬出去跟我們一樣朝九晚六了呢,他說:
“
第一個月:沒房租沒女朋友,一人吃飽全家不餓,上班寫代碼,下班在公司看電影玩游戲,工作和生活,玩的不亦樂乎。
第二個月:游戲玩膩了電影也看沒了,上班時看著你們匆匆忙忙的來,下班看著你們滿載喜悅的走,走到只剩我一個人在公司時,我開始感到有點(diǎn)孤單,在公司住,餓了就點(diǎn)外賣,困了就回房間躺,我的所有時間,都在公司這幾百平米的空間里,有人覺得像是世外桃源,我覺得是一個只有我一個煩人的監(jiān)獄。
第三個月:當(dāng)項(xiàng)目的工作越來越多的時候,我成了加班的首先考慮對象,每時每刻,我都有可能被工作包圍,上一次數(shù)據(jù)出問題時,老板逼著我查數(shù)據(jù)查到第二天,等我忙完從電腦桌起來時,你們已經(jīng)提著早餐進(jìn)入公司。
常常在夜深人靜時,我都在想我這樣有什么意義:究竟是省了那點(diǎn)房租?還是省了每天上下班的時間?當(dāng)我把這些關(guān)系搞清楚之后,我發(fā)現(xiàn)這其實(shí)是在浪費(fèi)時間,浪費(fèi)自己的生命,我這段時間的工作收獲到的僅僅是那份不需要交房租的薪水,其它的..一無所獲。
后來我決意在外面租了一個小房子,每天都按時起床,去附近的公園跑跑步,然后跟著你們一樣在路邊買了個早餐趕來上班,下班時間,和你們一樣匆匆趕回去,在那個小出租屋里,我做了很多事情,買了一些技術(shù)書籍,我看到了在工作中我沒用到的技術(shù),我的鄰居,是一個愛好打籃球的家伙,經(jīng)常我們約一起去打打球,如果沒有什么事情,我就躺著靜靜思考一些事情,再也不用擔(dān)心領(lǐng)導(dǎo)突然跳出來叫我查數(shù)據(jù)或者改代碼。這樣的工作和生活方式,讓我能在工作和生活之間維持一個平衡的狀態(tài),我不僅僅靠工作漲經(jīng)驗(yàn),也靠生活不斷的給予我靈感和前進(jìn)的線路。
”
聽完這些話,作者心里有些失落:原來所謂人之常情的現(xiàn)象,并不是我們表面上所認(rèn)為的那樣發(fā)展的。古語云:遠(yuǎn)水不解近渴,對于公司來說,當(dāng)你離公司非常近甚至住在公司,就很可能被領(lǐng)導(dǎo)欽點(diǎn)的“加班之子”,加班的次數(shù)越多,生活的節(jié)奏越容易被打亂,對于個人來說,住得近,內(nèi)心感覺加班就成了順理成章的事情。
當(dāng)你忙到不知道自己在做什么的時候,或許就應(yīng)該做出些改變了。
覺得本文對你有幫助?請分享給更多人
關(guān)注「編程無界」,提升裝逼技能
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/72081.html
摘要:首先賣個關(guān)子,下面我們一起來復(fù)習(xí)下小學(xué)還是初中的一枚數(shù)學(xué)知識。一旦更改了,會觸發(fā)組件的重新渲染。為了頁面渲染性能的考慮,有助于在中進(jìn)行比較并確定是否重新渲染。 概念引入 對于React來說, 沒有State就沒有頁面的渲染, 我們也將什么都看不到 咋一聽怎么那么唬人?不過的確是這樣,正如標(biāo)題所言State是UI的靈魂。我們都知道React的核心思想之一是組件化,將頁面所展示的東西按一定...
摘要:本次活動中,我簡單介紹了一下開發(fā)中的測試。今天和清風(fēng)聊了聊北京的圈的線下活動。這也是清風(fēng)堅持做北京用戶組和支持活動。營造更好的環(huán)境對于一個社會人而言,更好的生態(tài)環(huán)境往往更為有利。更多更好的就業(yè)機(jī)會能夠直接的刺激生態(tài)環(huán)境向著更好的方向發(fā)展。 本次活動中,我簡單介紹了一下web開發(fā)中的測試。張教主介紹了一下Docker的相關(guān)知識,外國友人麥博特分享了他們的項(xiàng)目:http://wid.gy/...
摘要:雜七雜八會一些前后端開發(fā)。好啦,自我介紹簡單就好它是一個偏視覺交互的工具集合,它基于常用的腳本庫,幫助開發(fā)者快速完成一套完整的交互型網(wǎng)站。支持和開發(fā)模式。工具箱是針對一些特殊效果的交互的網(wǎng)站,也可以用于比較個性化的定制網(wǎng)站的開發(fā)設(shè)計。 這個產(chǎn)品維護(hù)已經(jīng)有一年了(由于業(yè)務(wù)需求不同,產(chǎn)品本身是針對國外網(wǎng)站和WordPress的需求搭配),自己本身是做UI出生,開發(fā)只是業(yè)余愛好,僅僅作為平時...
閱讀 1919·2021-11-22 15:25
閱讀 4151·2021-11-17 09:33
閱讀 2603·2021-10-12 10:12
閱讀 1882·2021-10-09 09:44
閱讀 3303·2021-10-08 10:04
閱讀 1387·2021-09-29 09:35
閱讀 2015·2019-08-30 12:57
閱讀 1376·2019-08-29 16:22