如何知道自己適不適合轉行當程序員?

我是國內top5高校即將畢業的研究生,地質專業,不想干本行是因為:
1.行業不景氣,待遇普遍低,常常在野外出差,不是長久之計。
2.沒什麼技術含量,去上班也就是混資歷。
3.我性格還是挺好強的,不想就這樣混過一生!
想轉行當程序員的原因是:
1.收入高,學校裡面就業最好的就是學計算機的了,那隨隨便便十幾萬二十萬的起薪是我干本行好幾年都達不到的。
2.受室友「蠱惑」。室友自稱只學過一點編程皮毛,自動化相關專業,大約用了大半年時間看了數據結構,演算法,然後找到了一份起薪大概十萬的碼農工作,這大概已經是我未來三年後才能達到的收入。
3.本人本科學過C語言,考過計算機三級證書,雖然只會點指針循環什麼的,但是覺得碼農是很酷的工作。我性格比較內向,喜歡靠自己的技術水平吃飯,感覺碼農這一行挺公平的,誰水平高誰賺的多啊,喜歡這種氛圍。
我想知道應該從何處入手,知道自己是否具有當碼農的潛力,比如看完一本什麼書,如果看懂了覺得挺有意思就挺有潛力的?怎麼學?大概學到什麼程度就可以出去找一份程序員的工作?
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2015.6.27 更新----------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------
距離這個問題提出已經半年時間了,給大家報個喜,我已經找到心儀碼農工作了哦~起薪待遇也達到了轉行前的期望值,感謝各位知友的建議和鼓勵,也希望我的經歷可以給在轉行路上徘徊的人一些幫助和鼓勵。


先別管演算法數據結構什麼的。自己寫個小程序,能實現些功能的。如果你越寫越激動,越寫越高興,情不自禁,手不能停,寫完之後還想優化一下,重構一下,你就可以放心的去當程序員了。

如果寫得想吐,想掀桌子,想砸電腦,那還是別幹了,以後的日子天天都是這樣。


2017年3月19日 針對評論區補充:


關於英語

這是一個同學通過值乎向我問過的問題。我很了解他的心情,也很明白英語學習的難度,然而……真相就是真相,挺殘酷的。

前些天哪裡看到的:

以前以為:程序=數據結構+演算法;現在才明白:程序=搜索引擎+英語

這不是段子。大致來說,英語這東西,會卡在你從中級向高級邁進的路上,非常難以跨越。

道理我也說過好多遍了,除了外資公司/涉外項目普遍待遇更好以外,就技術本身而言,如果你不會英語,對於那些以英語為載體傳播的信息和知識,你至少至少要慢人一拍——你得等人家把英語翻譯成中文之後才能了解。更何況,很多東西,根本不會有人翻譯。


程序員/碼農

如果你只是年少無知,道聽途說的話……怎麼說呢,拜託先做好一個碼農。

這個問題也已經說過很多次了,實在懶得說了。


+++++++++++++++++


這也是一個我長期的、大量的被問到的一個問題。在這裡統一答覆了吧:


1、更喜歡和人打交道,還是更喜歡和電腦打交道。

本來我覺得這不是一個問題,但發現很多人想從程序員轉行出去,他們的一個理由就是「一天到晚對著電腦」?再想想我自己,做程序員這麼開心,不就是可以「一點到晚對著電腦,不用對著人」么?人和人的差異確實是挺大的——雖然我不理解為什麼這麼多人喜歡「面對著人」。


2、能不能「上手」,抄起鍵盤就開擼。

舉一正一反兩個例子……算了,反例就不重複了,以前都說過,就那種在圖書館捧一本書《C語言教程》畫圈圈叉叉的那種。適合當程序員的,尤其是轉行的,就得是那種翻開書的同時,就能打開電腦,敲出「hello world」來的人。

說到這裡我多說兩句。目前正在直播 求助列表·一起幫 的開發全過程(所有相關信息都在這:倡議:我們「一起幫」 - 自由飛 - 博客園),直播這麼久了,只有少數的幾個同學把源代碼遷出來,跑一跑。昨天還是前天,我還在QQ群里@全體成員,催大家要儘快「上手」;似乎仍然沒什麼效果,今天上午我還想著要不要再怎麼激勵一下……現在我想明白了,這種事情,沒辦法強求!還要我催著趕著才能把代碼跑一跑的人,不能說絕對吧,絕大部分都是沒有什麼希望的。

我也差不多決定了,調整思路,把最好的資源給最優秀的苗子,這才是辦法。真正優秀的人,哪裡要你費儘力氣的拉啊推的,指條路,稍加點撥,他就一路跑遠了。


3、最後才是一點邏輯思維能力。

很多人一直對這事有誤區,把編程和數學演算法什麼的划了等號,覺得程序員都是些「科學怪人」,或者好萊塢電影里的黑客一樣的角色,鼓搗的都是一般人根本搞不懂的東西。

其實沒這麼誇張,很少很少的一部分從事特底層特尖端開發工作的程序員,確實可能是這樣。但絕大多數的開發人員,不過是做著非常普通的工作,他們用到的邏輯也就是「如果……就……如果……就……」的嵌套組合,用到的運算,也就是普通的加減乘除而已。

你覺得神秘,是因為他們用的「語言」不一樣。他們其實就像一個翻譯一樣,把人(客戶)的想法翻譯成計算機能懂的語言,僅此而已。而且這個語言,遠沒有英語法語阿拉伯語這些人類語言那麼複雜,程序語言語法規則非常非常之清晰簡單明了……

我非常不嚴謹的做一個比方:只要你初中數學能及格(是「能」!上課耳朵打蚊子去了所以沒及格的不算),做程序員的智商就絕對夠了。


+++++++++++++++++++


好了,差不多了,關於轉行做程序員的其他的內容,大家關註:野生程序員 - 收藏夾 - 知乎 就行了。自學的過程中,碰到的實務性的,操作性的問題,歡迎到:求助列表·一起幫 發布求助信息,能幫的我都會幫一幫,呵呵。


首先、不能被人洗了腦!人生就是這樣,當你決定做一件重要的事情時,總會有一幫妖魔鬼怪蹦出來大叫:「你不行!不行!就是不行!我看你彆扭,我就想打擊你,不想讓你好。這是我的權力!」 呵呵,人性之扭曲不是用語言能描述出來的。這就考驗你的決心和態度了。


其次、你要是真的喜歡計算機的話,強烈建議你去讀個學位。真的,培訓班教得那些東西。。。擦。。。對你的人生不負責任。


另外、不能光學編程語言,得把基礎打好,比如演算法、數據結構、編譯原理、操作系統原理、計算機網路、資料庫原理等等。只有把這些骨幹課程學好了才行。如果你掉到大坑裡,還能拍拍屁股從坑裡爬出來,越學越上癮,苦中做樂。那你天生就是做軟體工程師的料。做這一行並不是難於上青天的事,但關鍵得看你的態度,看你是否投入,世上沒有免費的午餐。


最後,為了你的長遠發展,你不能當純碼農。得結合自己之前的專業。圖像處理和計算機視覺在地理方面應用很多。結合地質專業和計算機專業,這可是小碼農望塵莫及的。呵呵!


建議你去讀這兩個故事,如果你能像他們一樣百折不撓,那你就勇敢的去學習計算機吧。


【慕課經驗談】從生物專業到計算機研究生的轉行之路 【慕課經驗談】從生物專業到計算機研究生的轉行之路

《一個普通IT人的十年回顧》

《一個普通IT人的十年回顧》金旭亮


應該讓讀地理的 @空明流轉 來回答


做一年技術,如果這過程中你想轉策劃、交互、運營推廣、產品經理。。。說明你不適合當程序員。


找你室友啊。。


不去做怎麼知道適不適合,我上學的時候覺得計算機很難,根本不會想到自己有一天也會做這一行,最後經歷各種挫折背水一戰去學了java,也是我最後能改變命運的機會吧,所以格外用心,現在也很順利,你的資歷比我學的時候好多了,你學肯定沒問題,適不適合,等你自己敲過一萬行代碼就知道了


你想轉行前兩條理由都純扯淡,第三條倒是有些價值。

我個人覺得沒有不能當程序員的人。想想看,那些所謂當程序員的,不過也就是大學學了4年(其中實際基礎也就兩年,後邊都是應用)。兩年在人生長河裡,屎都不是。

但是,有個問題就是,這兩年是很艱苦的。所有學過計算機的人都可以告訴你,這兩年里你基本相當於脫了一層皮,而且會非常的孤寂(計算機專業的特性)。所謂「只見賊吃肉,不見賊挨揍」,須知社會是公平的,一切工資開的高低都有其理由。他掙10萬因為他值10萬。

建議是,你先搞一台筆記本電腦,然後利用空餘的時間自學編程基礎,比如寫個app之類。無論多簡單,最終目的是要寫到這個app能夠運行。如果你可以做到,那就說明你有這個資質。那麼這個時候你就可以往編程內核的方向鑽了。

否則的話,趁早放棄吧。


這事你不找我找誰呀!!!


計算機三四級根本就和編程沒有多大關係,這個在具體工作中沒有任何含金量,你想轉行編程,難度很大。
第一,你的源動力不夠,你只是沖著錢去的,當你在裡面不停的加班,未來遙遙無期的時候你靠什麼堅持這是個問題。我很負責任告訴你,程序猿起薪十萬的除了table還沒有願意給一個大學畢業生這麼多。
第二,你現在在外面工作,進去新公司只能算社招,社招的目的是招進去就要獨立的負責一個模塊。你沒有幾年編程經歷,沒有獨立負責一個項目就不行。那麼問題來了,你要去參加培訓,免費給別人打工一到兩年中間不間斷的投入不下十萬,還要忍受經濟不能獨立依靠家裡的孤獨寂寞,請問你要強的性格能抗住嗎?
第三,冷暖自知,你看你室友年薪十萬。你沒看見他沒日沒夜加班,被項目經理逼得要死要活,而且還要人忍受面對機器打交道的孤獨寂寞。程序猿是最單純的群體,他們涉世不深,對技術的執著超過了想像。十萬都能讓你換行,請問你經得起誘惑嗎?
第四,建議你,還是先積累兩年吧,轉來轉去自己都暈了。做好自己的人生規劃,厚積薄發,多看點書吧。
第五,再看了一下你的提問,發現答非所問,一個人學編程很難的,遇到問題基本很難前行的,現在協同作業,要maven,spring,eclipse,tomcat協同作業,前期看視頻吧,馬士兵的視頻,跟著走吧。人生沒有幾個兩年可以浪費,選擇大於努力,願你能走好


自學半年你最多只能找到畢業生工資的工作
然後程序員「寫代碼」其實只佔小部分,絕大部分日常工作都是資源管理和找改bug
那個想你吹牛的朋友是我們最不願意作為同事的那種人,浮躁,隨意,自大。


你記住,要當程序員,先得靜下來,要愛上自己的代碼


作為一個物流工程專業畢業的程序員,我想說, 如果你一接觸編程就深深的著迷的話, 那肯定是適合轉行的.. 興趣是最大的學習動力.
另外轉行的話 有2種方式, 一種是花錢去培訓班, 雖然學的東西不咋地, 但是至少是有學習氣氛, 說不定還能遇到靠譜的老師和靠譜的志同道合的同學.
還有一種自學直接找工作. 難度大點


高智商在任何行業都有優勢,可不定砸在編程上才能砸出火花。
碼農不需要多麼高的智商,程序員入門門檻之低,是絕對低到大部分人的想像,這個行業之所以高大上的原因來自同行業拔尖的那些人的努力和奉獻,而不是你自己瞎寫了幾行代碼就激動,偉大如比爾蓋茨,扎克伯格,普通如我——沒有什麼雄心壯志,只想在角落安靜的維護系統的一次次升級。

網上有一堆教學視頻和各種資料,而且幾乎都免費,你分分鐘都能搜索到數以上t的。只有嘗試了才知道自己適不適合,別人跟你說,性格,智商,學歷....那些統統都是狗屁。


可以轉,有個國外學工商管理的哥們,畢業後寫了兩年程序,進了google.
不過,環境很重要,建議多去topcoder,不僅是做題,還要接活。
另外方向很重要,那哥們走的圖形學的方向,用java寫得滾瓜爛熟。
最後還要吐槽下天朝的毀人教育,從小學毀人不倦一直到大學,
喝有毒的奶長大的孩子,各方面機能都比人家差一些,
在國外能做的事,我們這裡做起來困難會很多,你要有心裡準備。


伴隨互聯網發展的是技術人才需求的大幅增加,各種IT培訓機構辦得風聲水起,他們常常把IT從業人員的薪資、前景吹噓得很高,以此來吸引更多人的來學編程技術。

但是,你真的適合做程序員嗎?肯定很多人都在問自己吧?

哪些人適合做程序員呢?

1) 注重細節

如果你討厭細節,你就別去做程序員。

「差不多」、「很接近」是只能在做馬蹄鐵時用的詞,在軟體開發中,95%的正確仍然是不能用,一個「差不多」能用方法或一個使圖片很「接近」居中的CSS樣式都是不合格、不能用的。這剩下的5%對於整個軟體的有效性十分重要,能造成完全相反的結果。

2) 學習

如果你不喜歡堅持不懈的去學習新事物,而喜歡待在一個永不變化的環境中,那你很可能成為不了一名程序員。

起初這句話聽起來會很迷人,你會很喜歡!我喜歡學習新事物!尤其是當你來自於一個無聊的工作或像釘馬掌這樣永遠不變的事情時 =-)。然而,經過了一段時間後,你會發現,這變成了一條永不停息的知識河流,如果你不喜歡水,你會感覺困在了無盡無邊的知識瀑布前,無法停止,也無法窮盡。我每天大概有學到10-20種新的東西,我喜歡這些!我的弟弟卻希望事情永遠不會變化,始終如一,他對我說他永遠都不願意去學編程。

3) 面對壓力

你面對時間限制和工作壓力會怎樣?如果你想迴避這些壓力,那你將無法成為一名程序員。

沒錯,每個人都喜歡使用軟體,但你喜歡面對任務的最後期限和最終目標嗎?需要什麼時候完成?做完這些要花多少時間?我們能在這段時間裡完成更多的任務嗎?是否還記得要注意細節?你怎麼辦?急匆匆的完成?加班加點希望能多完成一些?在理想世界裡,編程是一個很有趣的活動,我們寫出代碼,讓它們完成很酷的事情,吃著批薩,喝著可樂。而在現實生活中,有的是壓力,雖然不是時刻都這樣,但事情會比那種做一個30分鐘的簡單在線輔導要不同的多。我喜歡挑戰我的極限,我渴望成長,變成一個更棒的程序員,所以我不介意。

4) 當你學到了一個新東西時,你是否把它寫下來?你是否喜歡想出辦法來替你完成那些重複的工作?你能很好的安排各種不同的任務嗎?如果不能,那你就不適合去當一名程序員。

我知道有些程序員的生活一塌糊塗,看起來他們似乎沒自我組織能力,但我說的不是這些,我是說管理好工作流程的能力。比如,能否迅速容易的在你的計算機里找到一個東西?我認識的優秀的程序員通常能迅速的定位一個需要的文件,能夠用工具或腳本幫他們處理繁雜的事物,這些都是高效的工作。

5)不明白的事情會引起你的好奇心嗎?新事物會讓你興奮的想搞清楚它的原理嗎?如果你不具有某種程度天生的好奇心,那麼你就很可能不喜歡做一名程序員。

當我還是十幾歲時,教堂里的一位夫人幾乎每月都會對我說一次,她說我應該停止問那麼多為什麼,她說這讓人討厭。雖然受了批評,最終我還是清楚的認識到,優秀的程序員總是在問「為什麼?」這個應用的工作原理是什麼?那個橫跨街道的建築是怎麼建起來的?程序員之間的對話聽起來總是像這樣開始的:「很奇怪他們為什麼要這樣做…?」以前我以為問這麼多為什麼是很奇怪的表現,但現在我明白,至少是在軟體開發中,這是一個好的品質。

6) 自學能力

如果你需要有人教你,或者等著參加熱門的課程去學知識,那你很可能不會成為一名程序員。

我知道,很多的程序員都上過大學,出自高校的,但這不是我要說的。優秀的程序員總是在鑽研程序代碼和文檔,來弄清楚東西的工作原理,他們不會敲開老闆辦公室的們說:「我需要上培訓課,學習這款新軟體」。優秀的程序員在不斷的學習,不斷的靠自己研究出事情的原委——不論是有高學歷還是沒有學歷。

7) 人際交往能力

如果你不喜歡與人接觸,跟別人在一起時覺得很難受,那你也許就不應該成為一名程序員。

這在程序員中不是一個普遍的特徵。真正優秀的程序員善於與人交往,但大多數程序員缺乏這些能力。如果你善於溝通,你的老闆、你的公司會非常喜歡你。而且,不要因為他們不會編碼就瞧不起他們。

當然,即使不做程序員,也可以自學一些編程知識,畢竟編程語言已經成為除英語外最重要的語言。

上W3Cschool 在線教程免費自學編程,會編程的人看上去都很屌炸天哦!

公眾號:w3cschool技術教程


好多人都在講慕課,網易雲課堂上有計算機專業課程的專欄,有學習路線圖,脈絡挺清晰的(ps:不是廣告)


有個必然的情況就是,IT編程應用到各行各業,將是大勢所趨!你要麼現在開始學IT編程,要麼以後學IT編程。擺脫不了這東西,因為只要工作一天,IT編程就將佔據你的工作。就跟2000年的時候,電腦PC會擠占你的工作一樣。


可以去 轉行之家論壇 看看


我也來試著說說自己,我和樓主一樣。本科地理專業,研究生為地理信息系統,移動Gis方向。現在畢業第5年,騰訊碼農。

其實是否適合做程序員,可以從3方面考慮:1、就像大家說的,興趣,最最重要,有過刷牙的時候想bug,直接把牙齒捅出血,也有過做夢再想實現方案。2、技術積累,入門很容易,但往後走,基礎知識的積累就很重要,我不是科班出生,所有計算機相關,都是旁聽或者自學。3、機遇或者實際情況:當時畢業,拿了不少offer,地質、遙感、事業單位,計算機都有,最後選擇南下,一來是想到處走走(學地學的通病),而來也是誤打誤撞,來之前本來是做lbs相關,後來入職才發現,原來根本不是。


適合:發自內心喜歡編程;願意一直學習下去;業餘也會做點東西消遣。

不適合:學一點皮毛,認為經驗多了就能一直混;貪圖高工資,躲避複雜的人際關係;英語差。


推薦閱讀:

誰能深入淺出地說說IT外包服務具體是怎樣的?
程序員屬於什麼階級?上升空間如何?
HR們如何看待創過業的人?
編程真的能改變人的思維方式嗎?
作為 IT 從業者,你們是從哪些渠道了解IT動態資訊、新技術、新模式等資源?

TAG:程序員 | 編程 | 自學 | 計算機科學 | IT行業 |