如何選擇業餘學習編程的方向?
來源:互聯網
上載者:User
回複內容:
python flask web,別想別的了,三心二意發私信問我的你也不是第一個,認清自己,好好乾吧。
別想什麼成就感了,你不是說了,是為了錢嗎
你就不能直說你都看了什麼書?每本書又看了多少?為什麼看不下去嗎?
藏藏掖掖的,有什麼意思,如果你只能問我一個問題,你就希望問這種毫無誠意的低品質問題?
————————
我現在沒空,先隨便說幾句。
(建議你搞個頭像,不然都不知道該 @ 誰)
找工作的話,第一步看這本書,把裡面的東西消化理解
Flask Web開發:基於Python的Web應用開發實戰 (豆瓣)
其中遇到不懂的概念,積極使用搜尋引擎,入群和人討論,知乎提問都可以(只要是你自己思考過的問題,我不回答也會有別人回答的)
可能需要補充的知識有
1,web基礎知識(HTTP,HTML等)
2,資料庫基礎知識
然後,第二步,通讀 flask 原始碼(理由、方法待補)
這樣找工作不成問題,先改變生活再改變人生吧。
其實這段話我說過好幾遍了既然大家都推薦題主寫Web,而題主又無從下手的話,跟著我這個練習做起就好了:
簡單建模練習:任務管理(task management)
算起來,如果每天都有兩個小時的時間的話,就算是新手也能用一個月左右搞定吧。
Rails/Flask隨便你來定,可以的話在Github上搭建一個repo,順便跟大家分享你的進度和成果。
不知道怎麼做的話可以先跟著官方的tutorial走一段,熟悉一下概念,有問題多去搜尋,實在不行的發到知乎上來討論也可以。
利益相關:科班出身(然而並沒有什麼卵用。我也不太建議題主去c++方向,蕭大神言辭犀利,我就告訴你為什麼吧。因為需要的基礎太多了,你需要好好學資料結構和演算法,作業系統,網路什麼的,就算除去這些,光一個c艸本身都是個坑。。這顯然和你的想儘快找工作的目標是不一樣的,而且也容易讓人喪失信心。
還是python方向好一點,我同學自己學了python,後面自己做了個網站玩,前後也就差不多兩個學期的時間,你有python基礎的話會更快。 至於你說能看懂但是不會寫代碼那肯定是自己寫的少了,一定要自己多寫才行,很多大神其實剛開始都是用最笨的辦法,就是把書上的代碼全部自己敲一遍。
至於資源建議看看慕課網的,比較偏實用。還有網易雲課堂,比較偏基礎理論,類似本科電腦課程。書的話就在知乎和豆瓣看看大家都推薦的,我不怎麼用python,所以不熟,還有SICP那種書太難了,並且你現在看了也沒什麼協助,留著以後吧。
還有你說的補數學英語什麼的我覺得不用急,學編程就學編程,編到需要哪個單詞不會就去記住,需要哪些數學就再去學,其實剛入門用python寫寫網站,爬蟲什麼的用不了多少數學的。如果你先學數學,再學英語。。還沒等你從你的六人間出來自己的信心都被磨掉了。
網上有很多python爬蟲的部落格教程,百度一下就好了。最容易入門,需求又非常高的編程手藝,就是寫網頁。從純HTML給個別需要渲染的內容貼上常用標籤,到添加CSS來統籌渲染,再到添加JS來實現動態網頁面效果,然後慢慢開始學AJAX與伺服器端的程式交流,編程的門路就摸得挺清了。
剛開始編程,最大的坎兒應該就是不會主動去構造抽象。從純HTML到AJAX這個過程,能幫你從最直白具體的技術一步步走向抽象和強大。
這個過程的一個好處是知識基本上自成一體,不需要什麼額外的傳統理論和經驗。另一個好處則是,編程反饋快;寫點東西,不需要寫完整,就可以開啟瀏覽器看看效果,特有成就感:) 額外的好處還有一個,你要看到哪個網頁有你想實現的漂亮效果,在Chome,Firefox或IE下按F12功能鍵,就能看到它們是怎麼被實現的,所以可用的編程案例觸手可及。看了老蕭那指南和答案,雖然寫的不錯,其實很不適合自學。
作為自學者要先穩定信心。所以從進階語言開始做demo起步,哪怕用php,Java,js寫一個註冊登陸驗證功能都比一開始學編碼,電腦構造與解釋好。
有成就感後,慢慢做更複雜的功能再深入。多問自己為什嗎?比如瀏覽器發個請求他為啥就到你寫的的那端後台代碼了,而不是跑去別的地方?中間經過了哪些步驟?你追根究底就會學http,IP ,TCP,socket,cdn,網域名稱解析等等,深入一門語言,你深入下去自然會遇到很多疑惑和問題,你會學相關的知識,這時資料結構,演算法,電腦網路,基礎,你自然感興趣了,到了這裡可以找份不錯的工作了。
這時你以為懂得差不多時其實還差的遠。還有很多高峰等著去登,你還得學習下軟體工程,設計模式,設計原則。設計模式又分宏觀和微觀,宏觀以posa那套書為經典,微觀就是設計模式和其他小技巧。要想走的更遠更高其實還得深入某方面和行業,比如機器學習,Recommendation Engine,自然語言處理,搜尋引擎,大資料處理與分析,移動開發,每個方向都不錯。
如果愛折騰想搞搞圈子,可以學學德魯克,稻盛和夫,傑克韋爾奇,多讀政治經濟人文書,這時你發現已經超脫了技術,能有一定的統禦力了。江湖就是這些人的我自學c#了兩個月勇敢地去應聘了程式員。我告訴你,唯讀書沒用,把別人的項目完完整整地做,做到熟練,不懂得的地方去書上找答案。
我覺得應試教育讓很多人產生了一個非常糟糕的習慣:總要先把所有東西學會,花很多很多時間學基礎,然後再出來做事。當然,這個是正確的,也有助於你日後的發展。但是,針對不同情況要有不同的策略。
我認為,人應該是目標導向型的,特別是對於程式員。編程是一個技術更新迭代很快的工作,每天都有新的東西產生,你不可能學會所有的東西。你應該先有一個目標,然後安排需要學的東西。每種東西也不用學透,但是你一定要知道這個幹嘛用的能幫你解決什麼問題,至於為什麼,可以先不管。當你遇到疑惑的時候,和實際情況結合起來去查資料,去思考,往往事半功倍。
比如.net的頁面生命週期,不知道大家是如何,反正我光看書是根本不懂,但是它很重要因為涉及到http://asp.net
的底層,可以保證你對頁面的控制(不知道我說得對不對,大家可以指正)。我也不怕你們笑我,我當時就上網找資料,然後把整個周期硬背了下來,為什嗎?是面試用的。現在我工作了一段時間,才明白生命週期的意義。我發現,其實很多人幹了很多年,也不懂什麼是頁面生命週期的意義。
所以你的問題在於,你不知道自己該怎麼發展,而不是學習能力差。
你要當什麼方向的程式員呢?
前端還是後台,bs還是cs,確定一個方向,再去擴充技能樹,把技能先點一級,至少可以用。然後去網路上down項目,好的項目做個幾遍,你會明白很多東西。
然後就可以去找工作了。
你不要找那種太牛逼的公司,去找一些創業的公司,做一個初級程式員。面試的時候展現出你的熱情和對一些程式的基本瞭解。反正你進去也是幹一些重複性的搬磚活,那些活真的用不到什麼太高深的東西。當然,不要亂開薪水,3k,4k可以試著開。
然後在工作裡慢慢地磨礪自己,你會發現。
我現在常常在想,當時找工作的勇氣哪裡來?
現在我明白了,是源於“無知”。
所以,找到一份程式員工作,真的兩個月足矣。
但要成為一名優秀的程式員,要一輩子。
希望你謙虛,不浮躁。- 摘自某位「非業餘程式員」的回答- 摘自某位「非業餘程式員」的回答
我覺得這是最「中肯」的意見。。
---
黑都看不出來嗎。。我是來灌雞湯的,題主張嘴來,啊~
我是EE類專業的,我一同學和我一起大學玩war3的,畢業之後由於各種原因(成績啊,身高相貌啊等等吧)最後去賣電梯,一年多下來托關係賣了一部,拿了獎金跟家裡借了點錢報了培訓班學編程開發了。
這哥們待過的地方有人民網(鄧亞萍那個)、搜房網等等,後來得到個機會從北京轉回西安老家,現在任某小公司cto,安卓/ios通吃,自己在開發遊戲,房車老婆已有還準備自己創業。
要說旁人看來這哥們的成功轉型有什麼借鑒之處是說不到點子上的,這隻是個案例。我覺得可能是以下幾點:
1、性格倔強,這也是我們最煩他的,嘴炮;
2、容易沉迷,也可以說是所謂的專註吧;
3、風太大。
所以題主有心就去幹,不要太在意別人說什麼,祝好運。JAVA,C#,PHP,Python任選其一就行。C不容易有成就感,C++過於難了。
JAVA有Android可以依託,C#有案頭軟體和windows phone 應用可依託,至於Python和PHP都是學習起來比較順暢的語言。
請相信我,想要快速入行,他們推薦的那些書目前對你都沒什麼卵用。最快入門的方法當屬看視頻,看比較全面的入門視頻。現在網上能搜到的教學視頻太多了。不要問我怎麼搜資源,如果你連這點搜尋水平都沒有,那就別想做程式員了。
學安卓開發:MSDN李興華JAVA視頻(或者馬士兵的JAVA)+黑馬Android4.0開發教程
學習周期定位4個月,邊看邊做筆記邊練,以後再花兩個月大量練習,之後就可以找工資一般的工作先幹了。(都是全脫產學習,也就是一天至少能學8小時的那種)
學C# .net 開發,可先看傳智播客的C#基礎視頻教程,然後看C#的wpf 教程,然後找.net視頻教程看。
至於看書,剛開始啥也不懂看書純屬浪費時間,效率太低。以後視頻的內容已經不能滿足你了,這時候看書提高內功則很有必要。
至於什麼演算法,什麼acm 對你來說沒什麼卵用。先成為一個新手碼農先入行最重要。你要是沉迷於造輪子(研究底層基本原理和演算法),以你目前的水平恐怕在造出輪子之前就餓死了。作為半路出家的非業餘程式員來說。
1. 我從買第一本書,到開始真正理解什麼是編程,花了6個月時間。
2. 需要大量的閱讀。在開始幾年,我購買了大量的編程相關書籍,花了絕大部分業餘時間去閱讀和理解。
3. 不停的寫程式。這也佔有了我幾乎全部的業餘時間。
4. 即使如此。8年後的今天,我很多東西也是不會的,水平只能算一般般。
所以,我認為你才剛剛接觸,什麼都不懂是非常正常的,你欠缺的知識是太多的。並沒有什麼捷徑可以協助你,無非是大量的閱讀理解和編碼。
所以我認為,如果不是真愛,不太可能一個人會成為一個真正的程式員。這是一條枯燥的道路,需要不斷的學習,那些見錢眼開轉行學編程的,我估計大多數在學會之前就放棄了。
**************
順便吐槽下,你看中國人寫的guide、指南什麼學了6個月什麼也明白是正常的。買本老外寫的入門書看看比什麼都強。