如何自學才能當一名合格的程序員?

利益相關,普通二本學生,對本專業(與計算機各專業相去甚遠)不感興趣,就業方向也是太差,一直對計算機十分感興趣,兩年了,專業東西還深入,多半這兩年是廢了,途徑除了考研(本專業),如何在保證畢業的情況下(本專業我可以畢業),從0基礎(自學)當一個合格的程序員(方向為C一類的,軟體工程師啊)?需要看什麼書啊?考什麼證啊?白話就是能糊口飯吃的。哭瞎T^T如何從零開始,應該怎麼做?準備暑假開始惡補。誠意跪求建議,來個過來人。感激不盡(^_^)ps有人理我嗎? 計算機雙學位沒有考慮(上課不太方便)


謝邀。恰好我就是那個沒報過任何培訓班,從零基礎開始自學合格的程序員。

首先從性格上分析,要適合做程序員。我恰好是那種聰明不足,勤奮有餘,對高度有期待,對速度沒要求的人。雄心的一半是耐心,如果是那種坐不住靜不下心的性格,做程序開發是有難度的。

其次,軟體開發技術容量猶如長河巨浪般宏大,又涓滴可飲。一開始想要什麼都學是不現實的,從何處著手需要先從業內人士那裡諮詢一下意見,然後給自己制定一個符合自己的學習計劃,無論是從時間安排上,還是從由易到難的學習推進上。我畢業時在實習期間工作較為清閑,工作罅隙就先從一些電子文檔看起,下班回家後就開始從網上找視頻教程。反覆看,邊看邊跟著做,一定要做,並保留每次的練習代碼,隔天再拿出來看或者重寫。

後來辭掉實習的工作,把自己關在小屋裡三個月,沒日沒夜的學。羅永浩當年就是把自己關在小屋裡學的英語成為新東方填空一哥的。自學有個先天缺陷,就是沒有人告訴你可能犯錯誤的點,也沒有人給你解決你遇到的奇葩問題阻礙開發流程的繼續。這個時候就需要你多關注一些技術論壇了,同一個問題可能有好多種解決方案,哪一種是有效的,需要你去嘗試。堅持上幾個月,基礎算是有了。

接下來就是大膽地早一份工作。我當時由於不自信,耽誤了很多時間,總覺得自己的儲備還不夠。現在回想起來,頗為後悔。因為無論自己怎麼努力自學,教程中練習的東西跟實際項目中用到的還是有很大差距的,有很多知識點在實戰中用的很少,也有很多發生在實戰中的應用技術在教程中很難找到學到。要先找一份工作,哪怕工資很低,哪怕誰都不如。放下姿態虛心請教吧,儘管期間可能遭遇不少不友好的冷眼,但是沒辦法,欲成諸佛龍象,先做眾生牛馬。技術大拿都是從菜鳥過來的,體驗過做菜鳥的艱辛,等你「合格」後,會保持一個更寬容和氣的態度去對待下面的菜鳥。

最後,要對程序開發有興趣。客觀地說,開發程序雖然辛苦,但並不枯燥。因為人機交互會有及時反饋。你程序寫對了,運行起來就能看到效果,有錯誤就接著改,這種反饋非常及時,要知道其他領域的很多工作都是努力了很久都看不到成果的,而程序開發可以,尤其是把工作模塊切割以後。需求和功能的實現,能帶給人成就感,這種人機交互的及時性與相對簡單性,比複雜的職場人人交互要公平得多,有趣得多,只要你邏輯對了,技術合格了,就會滿足你。至於後面的升職加薪,那就是意外驚喜了。干工作猶如帶孩子,在取得階段性成果的同時,讓你費神,更帶給你歡欣。


學html——學css——學js——學ajax你就可以當一個前端工程師啦

&
&
&這是一個網頁&
&

&hello world&
&

把這段複製到一個新建文本,把後綴改成html雙擊打開就變成一個網頁了,是不是很簡單?

話說這不是你第一段hello world吧……這是第一次嗎……

接下來我們對上面的代碼進行優化(雖然依然很渣)

&
&
&這是一個網頁&
&

&

&hello world 你好我是代碼&

&
&

把這段複製到你的文本(右鍵——打開方式——文本文檔)里,別忘了保存,然後會瀏覽器按一下f5(啊?你沒發現有變化?我這裡是可以的啊!)

這個時候聰明的你一定會想到,那如果我寫一萬行hello world都是這個格式的,是不是要把每行的樣式(我們管 style=「」 以及雙引號里的叫做樣式代碼)都要寫一次呢。

當然不用(不然我幹嘛提出來)

接下來我們把其中的樣式提取出來,並且讓文字居中顯示,為了怕你看不到我做了加粗並放大,然後做個引用

&
&
&這是一個網頁&

& .redFont{
font-size:24px;
color:gray;
font-family:微軟雅黑;
text-align:center;
display:block;
font-weight:bold;
}
&
&
&

&hello world 你好我是代碼&
&你好我是複製體1&
&你好我是病毒複製體1&
&你好我是super病毒複製體1&
&
&

誒是不是還不錯。

好了我來做個解釋,我不知道你的基礎怎麼樣,我設定你為完全沒接觸過任何代碼的人。

html學名叫做超文本標記語言(什麼鬼),它的作用是告訴你的瀏覽器,每個標籤(&可以理解為一個標籤)是用來做什麼的。

我來解釋上述代碼的意思

&&這兩個標籤告訴你我要開始啦以及我要結束啦!雖然你把他們刪掉了在瀏覽器依然會按之前的樣式展示,似乎沒什麼卵用的感覺,但是!

好吧你就簡單的把它們倆理解為格式要求,這叫代碼道德觀……

&&表示這是頭,是腦袋,腦袋裡會放一些控制全局的東西,比如我們剛才提取出的樣式代碼,以及引用一些其他文件,或者放入什麼w3c標準(誰能告訴我這個是什麼卵用?)

&&這個標籤是告訴瀏覽器,我要開始裝逼啦哦不對我要開始寫點關於樣式類的的東西啦。為什麼要被&標籤包圍呢我也不知道,這也是格式要求……你是個有道德的人對吧。

樣式類的東西,也就是style里寫的你可以簡單粗暴的將他們統稱css(樣式表)。

而語法是這樣的.redFont(雖然字色是高級灰)代表我要給我的樣式取個名稱,以便於我在用到他的時候直接叫他過來,然而他有了名字就得能幹活了吧,但是他能幹什麼呢,在我規定工作里他能做把字體放大(font-size:24px),變個顏色(color:gray——前女友喜歡的高級灰,雖然並不是),變個字體(font-family:微軟雅黑,為什麼要叫family?),文字居中顯示(text-align:center),文字加粗(font-weight:bold,我討厭weight……),把虛幻變成實在的塊狀體(display:block,你不理解什麼叫虛幻?可是如果你把block改成none就什麼都沒有了,oh no!)

&&標籤是用來中間放文字的,你可以簡單的把他理解成一個容器。而class=「redFont」代表這我這個時候叫了redFont過來幫我幹活。

我說了這麼一大堆並寫出了這麼炫(s)酷(b)的代(zha)碼(zha),到底是想說明什麼呢,其實敲代碼的過程就是你把前人規定好的一些東西拿來用,你覺得html這種玩意怎麼學的最快,簡單粗暴一個字:背!

當然啦我們不需要面對考試對不對,其實網上有很多手冊可以查啦,你可以把我的&改成

&

沒錯就是這麼一長串,並把後面的&改成&,然後按f5刷新你的頁面,你就會找到武林秘籍了騷年!!!

等你讀懂了這本武林秘籍以及對應的js+css秘籍!我們就可以繼續探討武林絕學java開發教程了。

所以這個時候呢,乖~快去玩吧~代碼的汪洋大海在等待著你


這個方法目前看在2015年是有效的

1、買一個macbook pro

2、報一個iOS開發的培訓班

3、夜以繼日的學習和寫代碼,保持6-8個月

恭喜你,你目前月薪過萬沒什麼問題了。

====================================

如果題主是有志和有資質的青年,夜以繼日的把學習弄好,去一個好學校讀碩士,去一個更好的學校讀博士,可以是計算機專業,你會發現這種酸爽不是那些碼農能夠比的,真心的勸題主不要在大學二年級結束時就把調用API的碼農當目標。


[傳送門](http://www.ituring.com.cn/article/198286)


短時間不太容易搞定。我感覺你還是考個計算機專業的碩士。。。


想想自己真正想要什麼。僅僅是糊口,就業,轉碼農可能有點晚了。

可能的路線有幾個

培訓班

自學CS或者SE專業課程,考點靠譜的證書

讀個雙學位?

讀個碩士博士啥的也行。不過最近深刻感覺到國內高等教育水平還是有點差,到本科還行,深造就不推薦了。(當然你要是能去讀TOP2啥的算我沒說)


其實無論是985,211大學計算機專業的學生,還是自學成才的程序員,都有幾乎一樣的學習套路。編程這個東西很講究套路,方法對了事半功倍,成功一大半。方法不對,輸在起跑線。之前看到過這篇文章,分析零基礎的同學是利用什麼樣的套路學習Java的,對任何編程也都適用。建議你看一下 經驗:初學者應該如何學習Java?


報個班吧,速成。

不過難進大公司,大公司要985、211本科以上計算機相關專業才行。除非你技術真的很牛


推薦閱讀:

程序員與軟體工程師有何區別?
零基礎轉行學習軟體測試如何入手?
北大青鳥是否在短短 5 年內從高峰跌落到瀕臨倒閉?如果是,這背後有什麼故事和教訓?
PPPOE撥號上網,取消本地連接TCP/IP協議勾選會導致什麼問題嗎?
做一名糟糕的程序員是怎樣的體驗?

TAG:程序員 | 編程 | 軟體工程師 | C編程語言 | 計算機專業學習方式 |