我學習的程式設計,都給我帶來了什麼?
前言
寫這篇文章的主要的原因是什麼呢?主要是想到了自己是怎麼從一個工科專業然後轉行來做到計算機專業,這中間的酸甜苦辣,人間疾苦想分享給大家,以及學習了程式設計之後我的世界觀、價值觀的變化,希望能與大家產生共勉。
我的程式設計之路
作為一個從農村出來,家住四川,自然就來到天府之都——成都,開始了我的大學生涯,然而當時在那落後的農村,完全沒得啥遠見,也沒有高人指點的,自己又沒得啥高瞻遠矚,最終陰差陽錯的就選擇了個機械電子工程專業。
這裡並沒有說這個專業不好,只是自己學的不好,大學的生活是那麼的豐富多彩。這裡的豐富多彩是豐富多彩的玩,平時上課選修課必逃,必修課選逃,那麼這些時間都拿去幹嘛了呢?打遊戲、打球、睡覺、出去嗨。提到打遊戲必然是當時最火的遊戲LOL了,回想起來大學裡面的大好時光都荒廢在了LOL上面了,真是LOL害人不淺(但是這就是青春嘛,總要揮霍那麼些時間,你回頭想起來才知道時間的寶貴),所以即使是這樣,我也不會後悔上大學。
晃眼,時間流逝飛快,大學四年就那麼完了,感覺自己是虛度了這四年,什麼東西沒學到就要參加工作了。最終畢業的時候找了個工作在一個電子廠裡面上班,現在回想一下,我才覺得可能這才是我人生過得最頹廢,最無知,最慘淡的一段工作經歷。為什麼這麼說呢?可能在電子廠裡面上過班的夥伴應該都知道,那種上班的日子是早進晚出,無法看到太陽(誇張了點);早上太陽剛剛升起你就進入工廠,然後就是暗無天日工作,直到加班到8、9點再下班出來,此時太陽已經落山了。在流水線上做著重複沒有技術的工作,靠著加班才能多掙點錢,讓自己過得好一點。
剛開始可能還感覺不到詫異、奇怪,但是這個工作我自己很不開心,沒有積極性,沒有追求,沒有衝勁,因為每天都是做著重複的沒有任何的技術含量的工作,沒有一點讓你有拼搏的勁,學校和自己現在的情況一對比,好像並沒有什麼和學校不一樣的,住的是公司,吃的是食堂,領著固定的工資,週末的和同事約著出去嗨一下,這完全就是和學校的生活複製過來的。沉思了之後,我連自己單獨出去租房子的經歷都沒有過,總感覺自己的人生缺少什麼,所以我毫不猶豫有了這個想法之後提出辭職。
為什麼說我毫不猶豫的辭職呢?因為我連我辭職了要做什麼?想做什麼?想過上什麼樣的生活我自己都不清楚,對未來充滿了迷茫、疑惑,完全可以說是一條在大海中心一艘船,不知道我應該往哪裡劃,會遇到的下一個小島是什麼?下一個小島會不會就是我駐足的地方。就是在這樣一種狀態下辭職,迎來的是我父母的說詞,放著每個月固定的幾千塊的收入不要,要辭職換工作,而且還沒有一點目標。對於農村來講,每個月固定的幾千塊的收入,他們還是比較滿意的了。但是我父母好在只是說說而已,但是我做什麼他們都是比較支援我的。
辭職後還是選擇了投大學相關專業的工作,畢竟讀了4年的專業還是不忍心就丟棄了。但是投了簡歷之後才發現,既不是應屆生而且還沒有工作經驗,根本沒有人要,2個月過去了,依然沒有找到。心灰意冷,然後就想著乾脆學計算機,因為有朋友在做這一行,收入不錯,工作環境又好,當時想的重點是大學還考了全國計算機VB 2級證書,後來還看過些C語言,儘管當時已經忘記完了,但是對程式還是挺感興趣的,用程式實現某種功能,那種成就感還是很吸引我的,萌芽了這個想法之後,當即是想的自學,當然是失敗的;自己買了些書,看了些視訊,但是並沒有什麼效果;於是就多番的打聽、瞭解了之後,最後選擇了去培訓機構學習,學習的什麼呢?因為我一直都覺得寫出介面展示出各種炫酷的效果,是非常有趣的事情,Android當時還比較火然後就選擇了Android程式設計學習之路,至此我就走上了我的程式設計之路。
對我來說這相當於一個新的起點,中間的學習過程也是必然辛苦的,可以堪比讀高中一樣的學習,累但是內心充實著。 可能會有很多人會看不起培訓機構出來的,但是我還是要說我就是培訓機構出來的,我相信我慢慢的腳踏實地的一步一步的走,終會成功得到認可。從培訓出來到現在已經2年多了,先後在三家公司待過,雖然三家公司都是小公司,但是自己的進步和成長還是看的見的。
聯想到自己的過去,忍不住話就有點多,說的有點長了。也算是自己對以前的一些回顧和感想,請原諒我話多。通過上面的鋪墊,我就來說說程式設計給我帶了什麼好處?
程式設計帶給我的好處?
1.思維方式的改變
喬布斯說過:「每個人都應該學習程式設計,因為它教會你思考的方式」我們學習程式設計,是不一定要成為程式設計師的。就像每個人都應該學習法律,但不是都要成為律師;就像每個人都應該學習經濟學,但不是必須成為經濟學家;就像每個人都要學習數學,也不是為了成為數學家。
思維改變歸結為一條就是:不能夠忍受不清晰的表述。不清晰的表述包括:指代或個體不清晰,邏輯/推斷不清晰,表達結構不清晰。
例如:
比如如果某組員報告進度時說:“他們。。。” 我肯定會想:“他們是誰?”
比如有人發郵件指出“舊版本不支援”,我肯定會想“你是指xxx.x號版本及以前嗎?“
比如有人報告“發生了A事件,我們進行了B操作”我肯定會想“你是說A是你進行B的理由嗎?”
比如開會時有人跑題,我肯定會想立刻把他拉回來。跑一次拉一次,跑一次拉一次,直到他不講話為止。
2.專注力和細心度
我相信每個程式設計師的專注力和細心度,那都是被鍛煉出來的。你是不是遇到過一個字母大小寫原因,然後排錯一下午,最後恍然大悟的發現就是一個字母大小寫問題。還有很多的這種原本是個很小的問題,但是對於程式設計師來說都是大問題。寫程式是不能得過且過,敷衍了事,馬虎行事,避免當一個差不多先生。
3.整理資訊和融會貫通
整理資訊和融會貫通應該是我們每個程式猿必備的能力;我相信程式猿都會遇到BUG,都會遇到技術難點。那麼這個時候我們是怎麼去克服這些困難的呢?可能通常會先百度,然後翻牆Google,或者是去看官方文件等等手段去獲取整理資訊,然後通過這些資訊我們去融會貫通,解決問題、技術難點等等。
5.認知的改變
說到認知的改變,這個可能有很多的人和我不一樣。我之前說過我來自農村,偏僻的地方,什麼都比較落後,大學那會兒也是虛度過去,雖然增加了一些知識面,但是還是太為狹窄。學程式設計前後生活圈,知識圈,交際圈如果用比喻來說的話井底之蛙也不為過。學習程式設計之前,生活圈估計就是些同學,家人和同事;知識圈指的是我們在上網查詢、瞭解學習新技術或者新的能力方面,以前估計就只是侷限在國內;交際圈那麼和生活圈就是一模一樣沒有變化。學習程式設計之後,可以說是發生了翻天覆地的變化,生活圈、交際圈可能就不侷限在了身邊這些人,可能通過網上群、部落格、或者技術會,一群志同道合的組織的活動等等,這個知識圈最明顯了,比如:以前學習的話預計度娘就是你經常找的地方了,度娘沒有的估計就只能詢問前輩。但是現在國內搜尋不到、那就翻牆去國外,總之就是你的獲取知識的途徑多樣化,獲取到的內容豐富化。最後說個最明顯的改變,那就是對電腦的認知、對電腦世界的認知,科學的獲取資訊,清楚C/S的原理,我們平常獲取的資訊從哪兒來,怎麼來,知道電腦發生的各種錯誤等等,還有很多就不一一舉例了。
6.眼界、知識面
眼界和知識面,那必然是我們的網際網路的世界了。網際網路的世界是豐富多彩的,以前的我可能就是看看電視、打打遊戲或者購物等事。學習了程式設計之後我想我們更多的是瞭解這個網際網路世界的變化,隨時關注的是新的技術、國內外的科技界發生的大事,像BAT大公司的變化等等。技術界的大佬都不是單一的,他們的知識面、眼界都是比我們高很多的,因此也會模仿這學習他們,瞭解房產、理財、股票、區塊鏈、虛擬數字貨幣等熱門的內容,假如換做我沒有學習程式設計的話,可能只有需要的時候才會瞭解一點。
7.奮鬥和努力
奮鬥和努力不分人,不管任何人都是在奮鬥和努力著,我這裡要說的是行動力和執行力。程式猿是個比較特殊的行業,技術更新疊加快,有著不進則退的特性,只要你停止了學習,你就可能被淘汰,因此不像很多的行業,只要你工作經驗豐富,你就能有一席之地,然而程式猿就不行,假如你不學習進步、奮鬥努力,你可能幾年之後還是個初級碼農都是完全有可能的。每個人都攀比之心,我們經常在技術圈交流、請教看到各種大佬的各種牛逼的地方,你會不會有一種我也要成為這樣的技術牛人的成就感,同樣會迫使你努力奮鬥。所以程式猿是一個比其他行業都要努力、奮鬥的行業。
總結
以上只是個人的一點感悟,並不是鼓勵每個人都學程式設計。可能很多人都不會贊同,但是這確確實實是帶給我的改變。還有一個改變就是我學習寫作公眾號,寫文章的同時自己也能增長技術,每天進步一點,日積月累,量變引起質變,這就是我程式設計給我帶來的變化;我希望有志同道合的朋友和我一起變化。
原創不易,如果覺得寫得好,掃碼關注一下點個贊,是我最大的動力。
關注我,一定會有意想不到的東西等你:
專注分享Android、JAVA乾貨
備註:程式圈LT