本人鐵匠一枚,某年某月的某一天陰差陽(yáng)錯(cuò)地踏入了程序開(kāi)發(fā)的世界苗沧,我沒(méi)有后悔當(dāng)初這個(gè)決定,相反我還非常感謝我自己做了這個(gè)改變自己的選擇炭晒。
鐵匠是個(gè)什么職業(yè)待逞?這里說(shuō)明一下,材料熱處理專(zhuān)業(yè)畢業(yè)的學(xué)生网严,畢業(yè)之后順理成章地找到對(duì)口的工作识樱,從事和熱處理專(zhuān)業(yè)關(guān)系緊密的工作。這是我對(duì)這個(gè)專(zhuān)業(yè)的定義震束。
你可能感到好奇怜庸,一個(gè)處于工業(yè)制造領(lǐng)域的鐵匠怎么會(huì)跨界到計(jì)算機(jī)軟件領(lǐng)域,是工作不順利還是其他原因垢村?這里先賣(mài)一個(gè)關(guān)子割疾,在講這個(gè)故事之前先聊一聊 程序猿 。
說(shuō)起編程嘉栓,有些人的看法就是:
- 用腦強(qiáng)度高
- 邋遢
- 生活無(wú)規(guī)律
- 起早貪黑
- 黑眼圈外加目光呆滯宏榕,永遠(yuǎn)是處于缺覺(jué)狀態(tài)
- 性格內(nèi)向不愛(ài)說(shuō)話
- 沒(méi)有女(男)朋友
- 身材瘦弱
......
剩下的自行腦補(bǔ)
各位程序員請(qǐng)息怒拓诸,上面這些都是假象,至少很大一部分是
在互聯(lián)網(wǎng)領(lǐng)域英雄輩出的年代麻昼,其實(shí)程序猿是一個(gè)光鮮亮麗并且前景無(wú)限的職業(yè)奠支,絕對(duì)的潛力股,我可以舉出很多的栗子抚芦,哈倍谜。很多的大佬都是寫(xiě)程序出生的,例如QQ叉抡、Baidu尔崔、Facebook、Google...很多的IT巨頭企業(yè)創(chuàng)始人都曾經(jīng)是程序員或者參與到編程活動(dòng)中卜壕。
so您旁,編程是很值得學(xué)習(xí)的一項(xiàng)技能。
認(rèn)知的蛻變
很長(zhǎng)一段時(shí)間我都在工作崗位上兢兢業(yè)業(yè)轴捎,從技術(shù)員到管理崗位鹤盒,為了如何達(dá)到月薪10萬(wàn)苦苦思索并且為了這個(gè)目標(biāo)努力工作。盡管崗位在不斷變化侦副,但是沒(méi)有創(chuàng)新點(diǎn)侦锯,踩著前輩們的足跡按圖索驥,以至于在長(zhǎng)期單調(diào)的工作中將自己的創(chuàng)造力消耗殆盡秦驯,每天做著重復(fù)的事情尺碰,在而立之年還沒(méi)有達(dá)到月薪1萬(wàn)的目標(biāo)。這是非常令人沮喪的事情译隘,年齡在增長(zhǎng)亲桥,對(duì)新事物的敏感度降低,激情減退固耘,面對(duì)中年危機(jī)题篷,生活壓力逐年增加,心情也好不到哪里去厅目,無(wú)奈番枚、迷茫、恐懼隨之而來(lái)损敷,這是一個(gè)惡性循環(huán)葫笼。
為什么會(huì)陷入這種境地?
創(chuàng)新對(duì)很多人來(lái)說(shuō)是一件奢侈的事情拗馒,為什么奢侈路星?創(chuàng)新是一種行為,這種行為建立在改變事物現(xiàn)有運(yùn)作方式的基礎(chǔ)上诱桂,在大部分領(lǐng)域中奥额,特別是傳統(tǒng)行業(yè)苫幢,創(chuàng)新成本還是很高的,改變并不被積極提倡垫挨,現(xiàn)有的盈利模式可以維持企業(yè)運(yùn)作韩肝,管理層不愿意去冒險(xiǎn)投入太多資源到創(chuàng)新活動(dòng)里,投入的資源有限九榔,也就意味著也只是極少部分人能參與哀峻。沒(méi)有充足的創(chuàng)新機(jī)會(huì),自然個(gè)人發(fā)展受到限制哲泊,空有一腔熱血剩蟀,沒(méi)處灑。
有沒(méi)有一種可能跳出這種循環(huán)切威?
我不會(huì)做那種說(shuō)話說(shuō)一半的事情育特,我就來(lái)說(shuō)說(shuō)我的看法。
選擇合適的時(shí)機(jī)主動(dòng)將自己置身于以創(chuàng)新為驅(qū)動(dòng)力的行業(yè)
比如互聯(lián)網(wǎng)行業(yè)就是非常具有代表性的例子先朦。實(shí)現(xiàn)方式很簡(jiǎn)單缰冤,跳槽到自己感興趣的初創(chuàng)公司或者自己創(chuàng)業(yè)。合適的時(shí)機(jī)很重要喳魏,并不是今天想到了改行棉浸,一拍大腿就決定走人改行,這叫沖動(dòng)刺彩,一不小心就人仰馬翻迷郑,然后一段時(shí)間單曲循環(huán)《沖動(dòng)的懲罰》。
合適的時(shí)機(jī)要滿(mǎn)足三點(diǎn):
- 我真的喜歡這個(gè)領(lǐng)域创倔?我做好了準(zhǔn)備大干一場(chǎng)嗡害?至少問(wèn)自己100遍,最后得出答案:我熱愛(ài)這個(gè)領(lǐng)域畦攘,我確定我能做到就漾!
- 我憑什么融入到這個(gè)行業(yè)?沒(méi)錯(cuò)念搬,問(wèn)題就是這么簡(jiǎn)單粗暴,對(duì)自己就要狠一點(diǎn)摆出。出國(guó)深造至少得會(huì)當(dāng)?shù)卣Z(yǔ)言吧朗徊,做順風(fēng)車(chē)司機(jī)總得有輛自己的車(chē)吧,做飯至少得有一口鍋和食材吧偎漫,在簡(jiǎn)書(shū)上寫(xiě)文章至少得有一個(gè)簡(jiǎn)書(shū)賬號(hào)吧(好像有點(diǎn)跑偏了)爷恳。客觀認(rèn)知自己的能力是很難的象踊,我一直這么覺(jué)得温亲。如果你熱愛(ài)互聯(lián)網(wǎng)行業(yè)而且是編程高手棚壁,卻一直在苦逼的做行政管理,那是自己壓制自己栈虚,日子久了會(huì)憋出残渫狻;你要投身互聯(lián)網(wǎng)行業(yè)魂务,但是只會(huì)在簡(jiǎn)書(shū)寫(xiě)雞湯曼验,連互聯(lián)網(wǎng)是啥都不知道,那就是自大粘姜。兩個(gè)例子極端了點(diǎn)鬓照,可以說(shuō)明白道理就行了。改行有風(fēng)險(xiǎn)孤紧,沒(méi)兩把刷子豺裆,連溝通都會(huì)困難,所以還是要謹(jǐn)慎号显,湊齊兩把刷子再改行臭猜。
- 知道磨合期不,別把自己餓shi了咙轩。
好吧获讳,反正我是打算融入互聯(lián)網(wǎng)行業(yè)了,人生就那么幾十年活喊,想做什么就努力去做丐膝。
跨界##
2009年我第一次接觸編程這個(gè)事物,同時(shí)被深深觸動(dòng)钾菊,通過(guò)互聯(lián)網(wǎng)共享信息非常方便帅矗,這讓普通人通過(guò)一個(gè)想法改變世界成為了可能。信息傳播成本低煞烫、效率高浑此,在英雄不問(wèn)出處的互聯(lián)網(wǎng)時(shí)代,我找不出什么理由不參與其中滞详,需要做的只是拿到一張入場(chǎng)券凛俱。
入場(chǎng)券有很多種,像馬云一樣不懂技術(shù)但是擁有敏銳的互聯(lián)網(wǎng)思維并且成功開(kāi)啟中國(guó)電商新時(shí)代的傳奇勵(lì)志模式不是每個(gè)人都能企及的料饥,也不可能每個(gè)人都能有一個(gè)“拿1億去嘗試一下”的富豪老爸蒲犬,這些入場(chǎng)券對(duì)于普通人來(lái)說(shuō)虛無(wú)飄渺。
學(xué)習(xí)編程作為一種入場(chǎng)券岸啡,是無(wú)限量供應(yīng)的原叮,幸運(yùn)的是,起點(diǎn)高低和成就并沒(méi)有因果關(guān)系
我相信大部分人都明白這個(gè)道理,為什么喜歡編程的人兒并沒(méi)有那么多奋隶。
- 過(guò)程枯燥(讓我天天對(duì)著電腦擼代碼擂送,真無(wú)聊)
- 代碼密集恐懼癥(字母符號(hào)密密麻麻的看了想吐)
- 我沒(méi)有想過(guò)要改變世界(真的沒(méi)想過(guò)?)
- 一個(gè)Hello World就夠了唯欣,這么多條條框框嘹吨,讓我寫(xiě)一個(gè)程序等于殺了我,還是安靜的刷微博吧
額黍聂,我想是普遍覺(jué)得太難了躺苦,面對(duì)著各種冷冰冰的字母符號(hào)實(shí)在打不起精神,一本Think In Java
都比新華字典厚产还,現(xiàn)在所有漢字還沒(méi)認(rèn)全呢匹厘。
既然決定跨界編程,必然和程序做了好朋友啦脐区。我是這么理解的:
如果賦予程序代碼生命愈诚,程序的世界和現(xiàn)實(shí)世界中的“管理”就會(huì)如此相似,學(xué)會(huì)懷著一顆感恩的心看待程序牛隅,了解學(xué)習(xí)它炕柔,程序自然會(huì)配合完成你的需求。
- 我無(wú)法讓某個(gè)人每天24小時(shí)站在店門(mén)口招呼來(lái)往的客人媒佣,并細(xì)致入微的聆聽(tīng)和反饋匕累,但是HTTP服務(wù)器能做到。
- 我無(wú)法讓某個(gè)人毫無(wú)怨言地從100萬(wàn)顆稻谷中篩選出長(zhǎng)度為6.66毫米的所有稻谷默伍,對(duì)于程序一個(gè)循環(huán)幾行代碼就能完成欢嘿。
- 我無(wú)法錯(cuò)怪了某個(gè)人之后讓他繼續(xù)毫無(wú)情緒地為我工作,程序只會(huì)友好地報(bào)個(gè)錯(cuò)也糊,修正了之后該干嘛干嘛炼蹦。
- 我無(wú)法相信會(huì)有合伙人在公司發(fā)展過(guò)程中一點(diǎn)股份都不要,但是作為開(kāi)路先鋒狸剃、中堅(jiān)力量的軟件程序是不會(huì)要你一丁點(diǎn)股份的掐隐。
對(duì)不起我調(diào)皮了。當(dāng)你有一個(gè)改變世界的想法(是不是又扯遠(yuǎn)了钞馁,好吧虑省,我差點(diǎn)寫(xiě)成了宇宙),正在苦惱該怎么去實(shí)現(xiàn)它僧凰,現(xiàn)在就打開(kāi)你的電腦探颈,了解編程,編程可以讓想法變成現(xiàn)實(shí)允悦。
論刷子是怎樣煉成的
咱闖蕩江湖的,沒(méi)兩把刷子可不行。刷子是非賣(mài)品隙弛,裝備完全靠打架馋!
這里用一件事來(lái)說(shuō)明。有朋友問(wèn)我做一個(gè)電商系統(tǒng)要掌握什么技能全闷,怎么學(xué)習(xí)叉寂。對(duì)這種問(wèn)題我是排斥的(誰(shuí)讓他是我的朋友呢),這真是一個(gè)很寬泛的問(wèn)題总珠,根據(jù)規(guī)模大小需要的技術(shù)有很大的不同屏鳍,我想可以從基本的數(shù)據(jù)庫(kù)和HTTP服務(wù)器開(kāi)始侃大山,一直侃到搜索引擎局服、標(biāo)簽的聯(lián)合索引钓瞭、redis隊(duì)列和數(shù)據(jù)持久化、圖片cdn淫奔、傳輸安全問(wèn)題山涡、事務(wù)安全、緩存唆迁、負(fù)載均衡鸭丛、分布式數(shù)據(jù)庫(kù)...等等,反正點(diǎn)幾份快餐唐责,咱促膝長(zhǎng)談24小時(shí)鳞溉,而且99%的可能性會(huì)聽(tīng)不下去。
設(shè)計(jì)一個(gè)程序就是做好兩件事鼠哥,一是了解用戶(hù)行為的流程熟菲,二是怎么盡可能讓這個(gè)流程進(jìn)行地順暢和安全。對(duì)于電商肴盏,核心流程是用戶(hù)挑選商品->交易付款->生成訂單->配送跟蹤->確認(rèn)收貨后出賬完成交易科盛。把這個(gè)業(yè)務(wù)流程轉(zhuǎn)化為數(shù)據(jù)的流轉(zhuǎn),就是程序的具體實(shí)現(xiàn)菜皂。
- 為了方便管理和統(tǒng)計(jì)這個(gè)流程的運(yùn)行情況贞绵,衍生出了后臺(tái)和中臺(tái)。
- 為了解決高并發(fā)導(dǎo)致庫(kù)存和訂單統(tǒng)一的問(wèn)題恍飘,需要解決原子操作的問(wèn)題榨崩。
- 為了提供體驗(yàn)良好的交互界面,需要提高前端的響應(yīng)速度章母、美觀度母蛛,改進(jìn)內(nèi)容編排方式。
- 為了提高用戶(hù)獲取信息的效率乳怎,需要提高程序響應(yīng)速度彩郊,簡(jiǎn)化中間環(huán)節(jié)。
- 當(dāng)然還有很多需要考慮的因素。
列出這么多的為了秫逝,就是為了說(shuō)明一個(gè)觀點(diǎn):
會(huì)素描的童鞋都知道恕出,先畫(huà)輪廓再勾勒細(xì)節(jié),無(wú)論多么美麗多么色彩豐富的畫(huà)作都是從幾筆單調(diào)的輪廓開(kāi)始的违帆。無(wú)論多么復(fù)雜的系統(tǒng)浙巫,初衷都是極度簡(jiǎn)單的一件事。
進(jìn)行系統(tǒng)設(shè)計(jì)的時(shí)候可以簡(jiǎn)單粗暴地僅僅實(shí)現(xiàn)核心流程刷后,簡(jiǎn)稱(chēng)原型的畴。很快就會(huì)發(fā)現(xiàn)原型漏洞百出,簡(jiǎn)直弱爆了尝胆,團(tuán)隊(duì)小伙伴們開(kāi)始強(qiáng)化原型吧丧裁,這是一個(gè)很快樂(lè)的過(guò)程,也是一個(gè)產(chǎn)品茁壯長(zhǎng)大的過(guò)程班巩。
這個(gè)過(guò)程是需求主導(dǎo)的開(kāi)發(fā)流程渣慕,初始階段我們完全不需要去糾結(jié)一個(gè)Button該怎么放置,側(cè)邊欄的比例是1:5還是1:6抱慌,如果以后數(shù)據(jù)量上億了這個(gè)數(shù)據(jù)庫(kù)字段這樣設(shè)置是不是不合適了逊桦,顏色看著怎么總不對(duì)勁,服務(wù)器是否能承載大流量抑进,數(shù)據(jù)庫(kù)會(huì)不會(huì)down掉强经,用原生實(shí)現(xiàn)還是用哪個(gè)框架實(shí)現(xiàn),Java還是PHP還是Python或者nodejs...
現(xiàn)實(shí)生活中我要打車(chē)去見(jiàn)朋友寺渗,這個(gè)時(shí)候我不會(huì)去糾結(jié)出租車(chē)是現(xiàn)代還是桑塔納匿情、輪胎是什么紋路、車(chē)牌有多少個(gè)8信殊、司機(jī)是不是美女炬称,我關(guān)心的是如何能在約定時(shí)間安全到達(dá)目的地與朋友見(jiàn)面。我們無(wú)法讓產(chǎn)品從誕生就是完美的涡拘,所謂的完美只不過(guò)是傷仲永的另一個(gè)版本而已玲躯,事實(shí)上沒(méi)有任何一個(gè)產(chǎn)品是完美的。
這幅圖看著很搞笑鳄乏,不過(guò)這確實(shí)就是很多軟件開(kāi)發(fā)的現(xiàn)狀跷车。我不會(huì)把像新華字典一樣的文檔一股腦背下來(lái)(文檔是用來(lái)查的,不是背)橱野,我不會(huì)為超過(guò)半年才會(huì)發(fā)生的未來(lái)事件去花太多的心思(變數(shù)太大)朽缴,我不會(huì)去爭(zhēng)論什么是世界上最好的編程語(yǔ)言(呂布戰(zhàn)秦瓊,想多了只會(huì)浪費(fèi)糧食)水援。
非專(zhuān)業(yè)人士的非專(zhuān)業(yè)觀點(diǎn):不要為了技術(shù)本身而學(xué)習(xí)技術(shù)密强,技術(shù)服務(wù)于現(xiàn)實(shí)需求茅郎,脫離了需求技術(shù)就沒(méi)有價(jià)值,技術(shù)更迭速度是如此快或渤,可以說(shuō)技術(shù)本身就是抽象的只洒,學(xué)過(guò)編程的童鞋都知道面向?qū)ο笾械慕涌冢覀儾槐匕殉橄蟮慕涌趶?qiáng)制定義為一個(gè)實(shí)例劳坑,接口的設(shè)計(jì)思想不就是抽象功能,多種實(shí)現(xiàn)么成畦。程序員應(yīng)該把自己定位成不斷實(shí)現(xiàn)需求的接口距芬,而不是某一個(gè)技術(shù)領(lǐng)域的實(shí)例,如果真成為了一個(gè)實(shí)例循帐,就算這個(gè)實(shí)例非常強(qiáng)大框仔,最終也難逃被淘汰的命運(yùn)。與實(shí)例不同拄养,接口天生具備適應(yīng)環(huán)境的能力离斩。
根據(jù)實(shí)際需求學(xué)習(xí)技術(shù)遠(yuǎn)比根據(jù)技術(shù)現(xiàn)狀實(shí)現(xiàn)需求要好,至少對(duì)于互聯(lián)網(wǎng)行業(yè)是這樣的