自學編程的人,都是怎麼找到第一份軟體開發工作的?

非計算機專業,畢業兩三年之後才開始自學編程的人,都是怎麼找到第一份編程工作的?

招聘要求中有很多學歷,專業和n年工作經驗的要求,感覺會很難的樣子。

從零基礎自學到獲得第一份編程工作又需要大概多久?

我現在在自學.net,想轉行做程序員,目標很明確,也有興趣,不過迫於生計問題只能邊工作邊業餘時間學習,問這個問題並不是因為急於求成,而是希望能對未來狀況,這個目標的可實施性以及我目前最擔心的問題:能否順利獲得入行工作的機會有一個大概的了解。

希望能得到各位行業內前輩的幫助指點!先謝!!!


看了很多回答,根據題主的情況,微軟亞洲研究院、騰訊的經歷,還有名校博士出身的,動不動CS(我們只知道這是遊戲),不太適合題主了,你們應該給題主出出主意,別光顧著顯擺,這樣除了能嚇尿題主,對題主或者題主這樣工作3年以後自學編程找工作的人來說,一點幫助都沒有。

題主這樣,即使學好了,軟體公司的HR多半不會瞧上一眼,所以面試機會基本沒有,所以必須尋找各種面試機會,才能使自己的才能展現出來,才能有機會進公司。

給題主出三策,不用說是上、中、下,所有對策的前提是必須學得紮實,努力獨立完成一個比較像樣的項目,其次認真寫好簡歷,工資么要求低點,目標:小公司(別灰心,只是開始而已)。

上策,

在親戚朋友同學同事中找熟悉軟體公司的人,那怕是親戚的親戚,朋友的朋友,同學的同學,同事的同事(錯了同事的同事還是同事),一般如果有這樣的人,那怕出於面子,也會給個面試機會,這個時候,只要能力,就可以,工資要求低點,畢竟這一行,換工作方便,積累一年工作經驗就可以換公司,工資就可以恢復到和你能力一致的水平了。

中策

安裝好自己開發的軟體,相關源碼及開發工具帶上,做好簡歷,換件精神點的服裝,到人才市場去,主要是去計算機相關的專場招聘會,現在軟體互聯網企業到人才市場招聘不多,但還是會有企業去,一家一家去找招聘人員說明,不管大小,態度誠懇,只要有實力,把自己的情況說清楚,肯定會有企業對你的印象深刻,會有企業讓你參加面試,一場不夠兩場,只要足夠誠意,足夠水平,大中企業不敢說,急用人的小企業肯定是可以的,人家到人才市場去招人也是因為急著用人。

下策

下策,就是包裝簡歷,寫一家小公司10個月的開發經驗,然後去投簡歷,簡歷只投小企業,畢竟是假簡歷,小企業運作不規範,好人才也招不到,應該會有企業要求面試,只要能力過關,就OK了,這是現在不少培訓機構教唆學員做的事。但事關人品和道德,可能會讓你一輩子都會留下污點,所以稱為下策,慎用。

在你學得不錯的情況下,關鍵就是面試機會,要創造一切條件爭取面試機會,有面試就成功了。

-------------------------------------------------------------

更新:

還有,你想學.net,這個選擇不知道出於什麼考慮,如果沒有特別的考慮,還是建議學JAVA,或者前端,畢竟企業需求量差很多,JAVA和前端對於人才的需求比.net大多了,應用領域也更為廣泛, 可以參考java的就業前景如何? 而且JAVA學習,網上的免費學費資料也更多,更容易學習,包括視頻、源碼等,懂JAVA的人比懂.net的人多得多,所以找個幫你的人也容易。

至於要學多久,這個因人而已,畢竟每個人的學習能力,每個人能得到的幫助,每個人的學習環境不一樣,所以,可能半年,有可能一年,可能二年,可能...,可以參考java初學者,如何學習java?

-------------------------------------------------------------


我就是自學編程然後找到工作的。

我當時是先謀求公司內轉型,結果失敗了。【這是首選,如果可能,就選這個,成本最低。】

後來就離職,然後自學C語言,然後不停地投遞簡歷、做筆試題,面試了幾十家,往往因為沒有經驗而被拒絕。三個月後,找到了工作。【這是不得已的辦法,但必須要堅信自己可以找到,堅持。】

有幾點經驗可供參考:

1)要不斷根據筆試來學習,還可以看看常見的筆試題,爭取讓自己能夠通過筆試。

2)知道自己的長處,比如學習能力強,找到實例來說明;比如善於發現問題,找到實例說明;比如承壓能力強,找到實例

3)挖掘目標職位需要什麼能力,有時你沒有直接相關經驗,但很多能力是通用的,也相關,比如學習、比如溝通、比如組織協調能力。在簡歷和面試時強調自己與職位的匹配性,強調自己的價值,不要在短板上糾纏。

4)相信雙方平等,保持自尊和自信。

5)把目標公司分分類,A類,最想去的,B類,比較想去的,C類,不想去。然後按照C、B、A的順序來筆試、面試,鍛煉經驗。

6)機會最重要,薪水等稍後考慮,別糾結。

7)最後一點,這也是最重要的,發動一切關係找人推薦,這可以讓你成功的概率大大增加。

希望對你有用。


招聘要求中的那些什麼多少年工作經驗啊,都是為了壓低你的工資用的,你願意被壓低工資的話,你就直接投簡歷,然後被壓低,然後就進去了。多容易。


說下自身經歷僅供參考,以前國企乾的文員,31歲自學半年找到現在的工作,面試5家,有家公司直接要了但是要我做實施,沒去;有一家二面失敗了,但是回頭給我打電話又讓我去,估計是招不上人;現在這家公司我面了兩次都失敗了,但是各種機緣巧合又進來了。下面是一點體會

1簡歷寫好,不要全些精通也不要全寫熟悉,盡量寫細些速食麵試提問。

2定位精確點,比如我最早找工作,什麼職位都覺得可以,什麼方向都想要,最後HR可能都直接pass這種簡歷

3以前的工作經歷公司會很詳細問,像非本專業的,盡量強調相關性跟特長吧,比如我強調的是英語水平不錯,可以輕鬆閱讀文檔,在國企鍛煉的溝通能力比較好,工作有條理,適合團隊合作。了解下你公司有的項目,看以前工作內容上有什麼比較貼近的地方多靠下

4項目經驗這個是我這種外行的硬傷,我這次是運氣好,有時間有條件的盡量熟悉些簡單項目,這家公司一面的時候項目經理十分想問這方面問題發現我基本為零,最後給我提意見,盡量做個簡單項目,哪怕是JDBC寫的論壇這樣也行

5一定要自信,其實好多幹了幾年的人未必水平很牛,跟我一起來的說是幹了5年,帶項目,後來發現太水,給的任務完不成,自己跑了

6你看到的招聘廣告好多是HR從別的公司複製粘貼的,有點唬人,有時候在IT群里有人會貼出來笑話,這種條件招的絕對是大牛,實際上能對半就已經不錯了。

7面試最後一般都談待遇,網上教的反問的辦法基本行不通,人家人事見那麼多人了不會上當的,老老實實說出來就行,不要太低,太低會讓人懷疑你能力

8如果有公司願意給實施的崗位我覺得也不錯,實施要求低些,但是雜一些,可以曲線救國//註:此條一年後更正下,我感覺還是不要曲線救國了,喜歡編程有條件一定直接搞研發。


我也是自學的編程。一開始從最簡單語法開始,沒學數據結構,沒學演算法,沒學計算機原理。慢慢靠寫幾千行級別的小遊戲練手。

之後上了中學,上了大學,上了研究生。第一份工作就到微軟亞洲研究院。從零基礎自學到獲得第一份編程工作大概15年。


咱的程序「早教」是遠遠比不上知乎大牛的。中學的時候,學校教過QB,不過並沒有學會太多,只記住了程序有順序選擇循環這個事情。然後大一的時候有C課程,使用文物級的Turbo C。這顯然沒什麼卵用:課上連malloc和free都沒講,我一直疑惑於如何接受一段不定長的數據,直到我在多年之後,從大駱駝書里學會C為止。

大四進入實驗室之後,導師讓我跟一位專做生物信息的老師,於是就開始用shell腳本和EMBOSS什麼的,弄一些處理程序。期間還搞過Adobe Flex,認識了一下SOAP、Ajax,不過並沒有往前端方向有啥發展。後來越來越覺得shell不適合做「真正」的編程,開始學Perl,一用就用了7年。毫不誇張的說,簡單的序列處理程序,我可以閉著眼睛打出來。

在實驗室混了兩年,期間申請出國未果(我GPA 2.99哇哈哈哈!!!),就考了本實驗室的研。中科院的研一是統一教學,下半學期的時候,由於蛋疼,選了計算機圖形學,學了一些OpenGL的用法,順便學會了C++,取得了比他們專業的大部分學生都要好的結課成績(現在看來,主要是那幫學生太弱,而不是我有多牛B)。之後用Perl和C++弄了一些工具,主要是序列分析和基因組可視化方面的玩意,順便熟悉了CMake、Cairo、Gtk一類的玩意。

再後來就越來越覺得搞生物分析不適合我的取向:我對生物學的興趣,只是限於看看生物學進展,當個樂子;但要是自己真去做,儘管也能做出些玩意,但並不與我內心的慾望相投:我在搞基因組學分析的時候,與其說是在分析其中的生物學意義,不如說是在享受建構分析系統的過程,然而日常數據分析並不需要建構多麼複雜的系統。於是就逐漸下定了轉做程序的決心。

博士最後一年,在大型綜合生活類網站「知乎」里,看到有個哥們在招人,我就去了。面試的時候被問了非常基本的數據結構問題:寫一個最小堆。然而我不但不知道最小堆的原理,實際上就從來沒用過這個玩意,於是在面試官的反覆提示下,艱難地寫了出來。至今每次想起面試官大人,都有種小朋友沒寫作業被老師發現的窘迫感。不過後來和公司的老闆談得還很愉快。

再後來就在這個公司了,每天過著被MSVC、Clang、MinGW輪流教做人,並被某奇葩架構頻頻喂屎的愉快生活。


希望我的經歷能對你有幫助

本人中部211院校地質類專業畢業(非985),碩士在一個研究所讀物理海洋(專業冷門,大多數人都沒聽說過),讀研的時候就發現自己不適合做基礎研究,家境不好,急需錢,實在坐不了十年冷板凳。就業面窄,嘗試投奔CS,某創業公司要招聘一個會Python的配管,看過幾天Python,真沒做過正式項目,但活人不能被尿憋死,硬著頭皮去試,結果面試官搞錯了,直接當c開發給面了,居然還覺得不錯,後來我主動提示不是面Python配管么?然後面試官就忽悠說,配管多沒意思,不如來搞c開發,啥也不懂,從了。

這家公司氛圍很好,給我分配了mentor,mentor是正經CS畢業的,對我的幫助非常大,非常感激,至今還常聯繫,出差遇到一起喝個咖啡,扯扯淡。那段時間如饑似渴的學習,基本每周都要看一本書。我看書速度比較快,基本上每次出差在機場都要買本書,到達後就看完了。在這家公司大量的學習,大量的coding,調試各種線上bug,有時晚上很晚回來會想著第二天快點去公司解決問題。08年的時候金融危機,公司上市失敗,進入了動蕩期,管理層分歧很大,很多人走了,隔三差五就有人請吃散夥飯,而且也沒事可干,天天就溜達扯淡,呆了2個月覺得不寫代碼時間長了就廢了,閑得發慌,和幾個同事一起投了騰訊簡歷,在一個周末參加了面試,面試前幾輪問的問題平常工作基本都有遇到,回答得比較順利,最後見大boss,問我有啥愛好,我說喜歡閱讀,他就問我最近在讀哪些非技術類書籍,那段時間枕頭邊剛好有本資治通鑒,就說了,結果他問我能否複述其中印象深刻的一個故事,我就如實開講,講了一半,他就接著講了剩下的故事,後面叮囑我繼續保持閱讀學習的習慣,整個過程沒有問技術問題,也沒有畫大餅,就一臉懵逼的過了。

在騰訊繼續專註技術,的確有很多牛人,很好的學習環境,進步很快,做了一些公共平台和服務,架構能力有較大提升,架構這玩意其實真正原創的東西很少,大部分都是貼近業務需求,借鑒此前的設計,解決具體的問題。騰訊是家很不錯的公司,工程師文化明顯,全面的培訓。

到後來做的偏業務,技術深度上進步相對較難,而自己過分偏執於技術深度,對業務理解,產品設計方面都非常弱,沒有主動的學習,其實騰訊在這方面非常強,騰訊出的產品沒有做得很糟糕的,大多數都是很不錯的。現在反思,覺得自己當時不夠成熟,偏執於技術,眼界不夠寬,在這麼好的環境下沒有積極鍛煉自己的業務理解能力,沒有訓練自己的產品思維。

個人更看重技術深度,對雲計算很有興趣,而且不想去深圳,在騰訊呆了將近4年後跳槽到阿里雲,在阿里雲飛天團隊,這是一個偏底層的技術團隊,非常理想主義,技術做得很深入,牛人非常多,技術氛圍好,所有的人都非常拼。某次和公司內的一個ACM世界冠軍一起做優化,發現差距真TMD大,思維敏捷性,記憶能力,代碼熟練,簡單說就是太TMD聰明了,難以望其項背。此前我一直覺得人都2個肩膀扛一個腦袋,能有多大差別?此前遇見牛人時就像小時候和大點的孩子打架輸了的感覺----他比我也厲害不了多少,我加把勁就能幹倒他,但遇到這哥們就有完全不同的感覺,遇到他只能閃人,再加油也打不過,但和這樣的牛人一起工作受益匪淺,公司內部大家都叫他「人肉邏輯機」,寫代碼前深思熟慮遲遲不動手,一旦開始就一氣呵成,連編譯錯誤都極少,而且寫的UT非常規範,真是職業的牛人。和這樣一群牛人一起工作非常愉快,本來壓力很大,有時候都會不覺得了,只感覺時間飛快,有時候會覺得太TMD爽了,做這麼有趣的事情居然還有人付我薪水,當然也有低谷的時候,這時看看書,跑跑半馬,很快就過去了。很慶幸遇到雲計算風起雲湧的偉大時代。

洋洋洒洒寫了不少文字,手機碼字真不方便,答題主的問題,學歷,學校對職業發展有一點點影響,但非常小,此前創業公司的一個同事 號稱 「大師」,只有中專學歷,擔任過國內一家上市公司的CTO,現在在自己創業,現在的團隊也有同事是成人自考的。招聘的時候更多的還是看能力,而非學歷,尤其是社招,校招可能更看重學校和學歷,其實也不絕對,只要你夠牛,學歷不重要。

一路走來覺得持續的學習能力非常重要。另外最好是培養一個工作無關的興趣愛好,並且持續投入時間,這點也很重要,碼字碼不下去了,就不解釋了。

原答見

http://www.zhihu.com/question/33438253/answer/106417845?f3fb8ead20=2889bfb08d752d394089da3d8b8d2b59


2016.6.25更新

最近一個禮拜的加班,恰巧今天下班早,就花時間更新一下,沒想到距上一次更新正好一個月哈哈,好巧。

分享一些我自己的心得,新手們可以仔細看看,大大們權當看故事吧。

首先前端的內容挺爆炸的,這個不可否認,各種框架庫滿地飛,我來談談我的看法吧。首先初學前端的人html,css和js這三個基本功先開始學那是肯定的,html+css估計快的人一個禮拜,慢的人一個月就可以模仿出大部分靜態頁面了,這個學習可以跟著codecademy學,或者按照另外一種方法,就是看w3c的教程,我的意思是第一遍先慢慢的有啥標籤啥樣式都跟著試一遍,第二遍就是快速的過一遍,主要記得有哪些功能即可,比如你只要記得我想要一個按鈕,似乎有這麼一個標籤專門是寫按鈕的,我想要字變顏色,似乎有一個樣式是變顏色的,這一個過程是讓你明白,你能做什麼,順便幫你再梳理一遍,然後就可以模仿著做了,還記得我第一個模仿的是百度首頁,足足話了我一天的功夫哈哈哈。不用過多的去關注html5和css3這些有點虛的東西,只是一個版本而已,作為新手只要看看html5有哪些規範,多了哪些標籤,多了哪些新的樣式能幹什麼就行了。

js的學習我因為之前學過四個月的java,所以對一些基本的內容都跳過了,這裡面書推薦jsdom編程藝術,網站英文依然推薦codecademy,中文推薦ife吧。視頻也可以看,不過推薦視頻看項目實戰,不要看他們的基礎教程,因為基礎教程永遠是以官方文檔和書作為第一資源。對於新的東西你要明白,他們誕生的目的不是去給我們這個職業增加難度讓我們學著玩看誰學的厲害的,相反是幫助我們的,他的目的是解決我們當下的問題的。當你寫js發現為了加一個事件而要去兼容各個版本,為了取一個dom要輸入一長串的document,getElementbyId()在想有沒有解決辦法的時候,恭喜你,你是這個時代需要的人——懶人,並且已經有人去幫我們成功的偷懶了,那就是jQuery,而當你使用jQuery被jQuery神奇的魔力所折服的時候你的好奇心開始了,想研究一下究竟這jQuery是如何實現這神奇功能的,於是你開始看起了源碼,這也許你是第一次讀這麼長的代碼,但我要恭喜你,你離優秀更近了一步,要知道作為程序員,讀代碼的能力有時候甚至比寫代碼更重要。你會發現jQuery取dom原來是用正則的啊,嗯,這個方法不錯學習了,下次我遇到類似要取東西的時候也用正則,你看,是不是又學習到了新的內容。當你發現寫的css在各種屏幕下總是不能很好的表現,你在想有沒有什麼布局可以靈活的在電腦和平板手機靈活的變換的時候,恭喜你,你又get到了新技能,bootstrap的柵格化布局解決了你的問題,於是你用久了又產生了好奇,開始研究bootstrap的源碼,發現了lsee和各種媒體查詢等響應式布局策略,恭喜你,你離優秀又更近了一步。這一切的一切都是那麼的水到渠成,不需要你去刻意學習。對於新的東西,先看看他是用來解決什麼問題的,你有這樣的問題嗎,沒有,那就了解一下,有,那麼就學習一下,很簡單。至於angularjs,react,vue等等,他們並沒有那麼高大上,那麼遙不可及,只是他們所解決的問題對於現階段的你來說都是個問題(此問題非彼問題),因為你現在的水平根本遇不到這些問題,你也不知道這些問題到底是個什麼玩意,所以不要感到迷惑,等你遇到了這些問題,那麼那些框架你就會自然而然的去學習去使用了。只要記住,跳出舒適區,擁抱新事物,做一個偷懶的人,不對,是做一個會偷懶的聰明人。好啦太晚了,我要睡了,各位晚安。

2016.5.25日更新

針對有人私信我學習方向的

其實我自己也會經常迷茫,也只是一個小白而已,而且非常白,因為沒有受到過系統的專業教育。

我能給的初學者的唯一建議就是,目標驅動,或者說項目驅動,給自己一個你想做的東西,然後去把這個任務拆解,分成一個一個小任務,然後去一個個學習完成他。

你也可以反過來,找一個想學的技術,然後想想利用這個技術能做什麼,然後就根據你要做的和你要學的去做吧。

---分割線


我是如何從一名文科生成為程序員的

準確來說,是從一名軌道交通運營管理專業的應屆生(其實還差2個月畢業),成為了一名前端工程師。

這篇文章我每天晚上都想寫,每晚做夢都想寫,為了讓自己不那麼浮躁,我一直告誡自己,努力學好技術,什麼都不要想,不要看錢,要看前。

本以為我會在今年年底實現我的大業,也想著在今年年底開始找工作,先在地鐵工作一年再說,可是沒想到,一切都是這麼突然,在2016年的五月初,我提前終止了。


一點點回憶
迷茫

還記得在15年中旬,那時候正是我一段迷茫的時期,對於銷售和技術,這兩個我都深愛的方向,一直都不知道該如何抉擇,折磨了我很久。想學技術覺的技術踏實,可是看著我大專幾年的工作經歷,明顯是一個銷售的模子,心裡也一直幻想著我西裝革履侃侃而談的樣子,可是現實很無奈,銷售對我來說是一個不可控因素太高的職業,我害怕自己很努力可是到頭來卻一無所獲;但是技術對我來說除了穩之外無一點優勢,因為我從沒接觸過。這期間蕾蕾給了我很大動力,也讓我毅然決然選擇了技術,並以計算機作為我的職業發展方向。

我認為,以技術為方向的職業方向是最容易獲得成就的,因為他需要的就是你在一個領域裡不停的鑽研。


小白

剛開始編程對於我來說就是零,我傻的跟一張白紙一樣。好在我記得有張圖書卡,打算著等雙休日去圖書館借本計算機的書來開始我的大業。

還記得我打算去圖書館的前幾個晚上,每晚都很興奮,激動的心情根本無法入睡,估計就是從那個時候開始,我的睡眠就開始不怎麼好了- - 反正每天晚上我都要思考好久人生才能睡著。

我讀的第一本關於計算機的書,具體名字忘記了,隱約記得是什麼計算機導論,反正是一門大學課程配套教材。看之前我還特意去網上攻略了一下,聽說入門書是挑薄的,越薄越好。拿回家後我真是愛不釋手,洗洗手,正襟危坐,打開書認真的看起來,並認真做起了筆記,忘記是從第幾天起,那本書就不知道跑哪去了,具體筆記本在哪,我也找不到了。


車禍——是福也是禍

很巧的是,在我終於找到那本書,把那本書還掉,從圖書館回家的路上,被車撞了。。。有點尷尬,是不是上帝在跟我說:「小夥子,你居然敢不看完就還書,看我打斷你的腿」。還好當時我電瓶車沒電我騎的很慢,索性沒什麼大礙,只是要拿繃帶綁著,我記得那時候正好是我暑假的開始,媽的,看來整個暑假要在家待著了。

這兩個月,我看了兩個月的java視頻,到現在還記得看的人是畢向東,真心推薦,畢老師的教課方式真的是簡單暴力,反正那段時間看的我整個人都變的搞笑了哈哈。

後來找到了網易雲課堂,上了翁凱老師的java課程,信誓旦旦的交了五十塊錢費用,(這五十塊錢就是如果你堅持通過了考試,就給你一個畢業證書,如果你沒有,五十就是懲罰)。一開始跟著做感覺沒什麼問題,到後來越來越難,這也體現出我暑假裡光看視頻學習的短板,理論還行,實踐是渣。不過我也是迎難而上,期間還得到了浙江大學給的一個獎品。其實這個獎品還是有水分的,當時是這樣評分的,做一個遊戲,大家把自己做的遊戲放到一個討論區里,參與該課程的學生可以給討論區里的遊戲點贊,誰的贊多誰就能得到一個獎品。看知乎讓我明白了一個道理,就是每個人都喜歡聽故事,我的作品如果只是冰冷的作品,那麼肯定比不過他們,於是我在提交作品的時候敘述了我的自學經歷,想引起更多的共鳴來讓大家點贊,當然,結果也如我所料嘿嘿。但是最後的java考試,因為跟我的電工證有衝突,所以就沒能參加,五十塊錢都打了水漂。


入坑

反正不知道學了多久,java這種長半衰周期的編程語言讓我再一次感到了迷茫,後來聽人說非科班出身可以做前端,前端更加容易,於是我就這樣入了前端的坑。

現在知道了,沒有容易的,都是坑。從一月份開始,從html到css一點一點,好在我後來找到了好的學習方法(關於學習方法可以看我的博客——【我說學習】板塊),參加了百度前端的課程,也鞏固了我的css,進入了下一個環節JavaScript。

好吧,學了JavaScript跟其他編程語言並無兩樣,也是一個完整的編程語言啊,不過它的弱類型什麼的一開始用起來還確實不習慣,但是它既可以函數時編程,又可以面向對象,看起來更具有靈活性一點。不過好在它寫的東西可以直觀的在網頁里看到,給了我更多的反饋,也給了我更多的動力。

這期間我停止了博客,轉向把我的總結寫在印象筆記里,因為寫給自己看,排版什麼的就很隨意,也節省了更多時間,至此我的印象筆記內容大約有一百五十多條吧。也把我的方向從單純的學編程,分散到學習如何學習(很重要),以及英語上來。對於一個人的不可替代性,外語能力絕對算一條,因為它不是你一朝一夕能夠學會的,不過目前對我來說夠用就好,現在已經可以看原版的編程書了哈哈。


我的時間安排

其實沒什麼,我的時間安排就是充分利用我的一切時間,反正從15年中旬到現在,我基本沒看過電視,空餘時間不是學習,就是看看ted之類關於心理學或者如何更好的學習之類內容,偶爾跟朋友出去玩玩。

這看起來挺簡單,一般人剛開始還真的挺難適應的。在一個沒有人督促,沒有人陪同,沒有人引導的前提下,我的學習就像是在漆黑的山洞裡探險,一開始我甚至連燈都沒有,想看看自己都看不見,因為我根本不知道自己學習的怎麼樣,對不對,哪裡需要改進,哪裡需要鞏固……

這對於自控力,自我管理,自學能力以及耐心都是一個考驗,好在這個考驗我暫時通過了。


第一份工作

就在16年的5.2號,也就是現在,我找到了一份前端工作。一切都起源於我在蘇州前端群裡面的一句發問:「請問xx你們招前端嗎?有什麼要求?」機緣巧合讓我遇到了高先生,他是我的貴人,通過短短的聊天我知道,他不是一個看中當下的人,他看中的是一個人的潛力以及後期爆發力。而我很有幸的,成功轉型,高先生以及貴公司給予我的信任,我一定不會辜負。以後當別人問我的職業的時候,我會自豪的告訴他

寫代碼的

但是我會緊接著告訴他第二句話

code change the world


我也是自學的編程。一開始從最簡單語法開始,沒學數據結構,沒學演算法,沒學計算機原理。慢慢靠寫幾千行級別的小遊戲練手。

之後上了中學,參加過比賽,在 BBS 上找到志同道合的做遊戲開發,中二中三時學習一些底層知識及開發一些工具,中四開始主導一個遊戲項目的開發,中五時遊戲在台灣發行。如果這算是工作的話就是自學四、五年的樣子吧。如果全職工作計,再加七、八年吧。


如果學歷不能證明你的價值,就用工作成果,開源項目也好,低價打工也好。

我以前有個同事,十多歲在重慶某工廠焊電路板的同時自學編程,利用每天下班後的時間免費幫一個公司幹活,後來順利獲得該公司的職位。90年代重慶最早一批通過高級程序員資格考試的人(是的,那時程序員是一種職稱,有證的)。之後讀了北大計算機碩士,進微軟,在阿里雲帶團隊負責計算平台網路模塊,yy上市前兩年加入該公司,昨晚還用他團隊剛做的網路電話跟我聊天。


畢業後,自學到現在10餘載,沒參加過任何培訓,沒有上過一門跟計算機相關的課程,然後自己一步一個腳印摸索,走不少彎路,從開始用C#練習了半年的編程,學習各種當時流行的框架實現原理,練習這些框架的實現(自己擼一遍),半年後找了一份Java相關的開發工作,開始嘗試各種語言,不滿足於工具,語言和API的應用,遇新技術必究其原理,後來將慢慢將計算機基礎理論課程(編譯原理,操作系統,演算法與數據結構,圖形學基礎,網路與協議等),在工作之餘一一補回來,用各自己喜歡的不同語言練習,用力啃過linux 0.11內核源碼,還算有些收穫,而且英文還算不錯,所以能獲取到一些不錯的優質學習資源,現業餘時間有了專註方向,入坑程序語言設計和編譯器領域。

跟著知乎的大神們和國外大神們的步伐,一步步向前進步。

從來沒有過「程度員是吃青春飯的想法」,希望快樂地寫一輩子程序。


15年6月底在深圳走投無路,決定自學編程試試,先從大學時憑著自己興趣看過一點點的數據結構開始,當時給自己定目標,十天時間內,我就一心一意的看這個,如果能夠學進去,我就學,學不進去,就再考慮做別的。我學到7月十幾號把嚴蔚敏的書上演算法都實現了,發現對混口飯吃並沒有卵用,於是開始學JAVA,學到10月底,開始找工作,在深圳面試了10幾家單位,上來問,你有工作經驗嗎,沒有,你是科班出身嗎,不是,你培訓過么,自學的。沒人要啊,後來有個北京的單位願意要我,在我把深圳都處理好準備去北京的時候,機票都買了,人家給我發一條簡訊說我不用來了,結果我再也聯繫不上這個公司了。家離北京不遠,在家呆了三四天,又找到北京另外一個公司,願意要我,一個月5200,11月10幾號開始上班,幹了一個月我發現,媽的賺10000塊的人和我干一樣的活兒,我找老闆給我加錢,老闆不鳥我,我也開始不給他好好乾了。不出意外,到1月剛剛過完新年沒幾天,我讓開除了。我又開始找工作,這次我學乖了,我和人說我工作經驗有一年,面試我沒什麼問題,於是拿到了一個10k的工作,一月10幾號開始上班,鄙人現在在蘇州,在這裡,我能提現我的價值,頭兒也這麼覺得,三個月試用期縮成兩個月了,現在過的還過得去,仍然在堅持學習中,想將來有更大的發展,演算法導論看了400頁,csapp看了260頁,想著將來能夠進入更牛逼的公司,做更牛逼的程序員,今年30了


想起來曾經的N個同學和同事,編程這行只要你會寫代碼,寫的好,面試的時候演算法編程題你能過的了,很多時候學歷經歷可以無視。

別學.NET了,學Java吧,然後去投個移動開發的職位。有一年的經驗以後,再去找個年薪30w的工作,只要能過面試是絕對么問題的。


思想決定命運啊,孩子。一直以來都覺得自己是個很有想法的人,當年第一份工作,不在乎待遇多少,全當拿著工資還能學習,多爽對不對?想想,我還是賺到了。然後我花費了很多年才慢慢的填滿自己一開始跳進的坑,現在才剛剛爬上地面,然而,很多同期的都已經爬上樹了。

-----------------------------------------------------------------------------------------------------------------------------

坑什麼樣,不重要。

給你們幾點忠言吧:

起點能高則不低;

技術不要放在第一位;

不要樂於安逸。


十三年前,機械專業的我面試的時候,我說:我會做網站,ASP、FLASH都會

然後給他們看網址

然後就OK了。。。


因為熱心幫一個朋友免費寫了一點很緊急、很重要的程序,在他的推薦下獲得了一次面試機會。

將自己的作品刻錄成光碟,直接帶過去面試,遇到了一個脾氣特別好的老美面試官,搞定。


大學專業是紡織工程。。。然後熱愛編程。。。然後機緣巧合幫學校做了個網站 而且還是有人看有人用的網站(想想學校這麼摳也是醉了)。。然後拿著這個網站找實習進了某500強。。。然後走上正軌

期間學習的路徑是這樣:國產XX小時精通c#教程》CSS,HTML,等等網頁設計課程》c#高級教程》數據結構/操作系統/演算法導論(很抱歉這本我只看了個開頭。。。智商捉急)》設計模式》深入理解計算機系統(這本書真的很好 據說是MIT還是哪個牛校的大一教程)》CLR VIA C#/.NET設計模式/C# IN DEEPTH

僅供參考


自學--學完了去招聘站--關鍵字.net--選好城市--搜索職位--全選投遞簡歷(翻頁繼續)--接電話--面試--面試的問題不會--翻書、百度、提問解決之--學完了去招聘站......


也是初中開始接觸點編程,慢慢開始寫幾百行的小遊戲到幾千行的遊戲和小DEMO,到大二和朋友寫了一個很簡單的3D引擎,大三的時候因為學業太差轉係為了混畢業,當時非常擔心畢業以後找不到工作,然後在大三暑假莫名其妙地收到了Adobe的一封信問我是否願意去北京RD做實習生,所以想想如果當初不是Adobe收留的話我現在恐怕應該是一個盲流。。。


首先看到了很多牛人自學後第一份工作都起點那麼的高大上啊…

有全職工作的情況下,靠私下時間學習編程去改行,我建議多點耐心,不要急於求成。如果是理工科專業的,我建議給自己2年時間,文科畢業再至少加半年吧。這是因為我建議要把基礎打好,不要一上來直接就是找本書/課程,跟著從hello world寫起。這樣雖然可能見效比較快點但是會為日後進階留下隱患,很可能成為你日後進步的瓶頸。

建議從基礎學起,學點C,學習下2,8,16進位,演算法,操作系統的一些基本原理先搞清楚。

然後再選個方向:前台還是後台,網路還是移動,現在desktop比較少了吧……,一上來就全棧有點大啊,還是先定個小目標比較好。

然後再選個語言(根據上面的方向)

然後開始學習這個語言(不停的寫,先是抄寫書上或者視頻里的,然後根據自己的理解改改,寫點新的)。然後你覺得你已經會寫了,那就找個簡單的項目寫寫看是不是真會了(八成還是需要再多寫一些來練習),這時可以開始學習選的語言相關的輪子了,順便看看輪子是怎麼寫的。

然後還要學習下常規套路和基本思想(總不能一個class解決所有問題,為什麼要加個抽象,為什麼要用個interface,什麼地方該封裝,萬一這個地方以後需要改動怎麼辦...),還得學點testing的東西。

基本要學東西很多,但是絕對可以實現的。這個年代學習很多東西都不需要花錢,網上都有。你英語好的話就更簡單了,麻省理工,斯坦福等名校網路課程都是免費的。如果你喜歡看文字。那更簡單了,牛津劍橋的計算機系的課程講義全在網上!總之你不需要擔心資源問題。

你需要的是耐心和毅力,還有一個小目標…


推薦閱讀:

有什麼好的學編程的網站或者是軟體?『編程入門』?
使用 Codecademy 這類編程學習網站能夠有效提高編程水平嗎?
程序員工作只接觸一些不需要高難技術的小項目,該如何提高自己?
編程中常用的數學公式和理論有哪些?
Matlab中循環體中的循環變數怎麼在運行後顯示為它代表的數字?

TAG:程序員 | NET | 程序員面試 | 編程學習 | 自學編程 |