Android開發和前端開發,該選擇哪個?

做安卓原生開發和前端開發,你覺得哪個比較有前途?哪個學成比較快?


在一個充分競爭的領域是不存在低投入高收益的東西的。

碼農就是個充分競爭的領域。學得快又有前途的東西是不存在的,即使偶爾存在,那麼很快會有大批人湧入,因為學得快啊,所以很快就會競爭慘烈。

想找個學的快前途好的方向,其實是個危險的想法,這種想法會導致短視、跟風,競爭激烈時這些人就會退縮,總是容易第一批被淘汰。


安卓和前端都很簡單,入門極易(至少本人如此吧)。但是任何編程領域過了初期的入門,晉級高手之路都不易,可說是極難,需要花費很多心思,就像談戀愛,過了看臉的階段以後,才是最難的。從一個宏觀的角度去看,移動端開發是必然趨勢,而移動端開發又會以Native APP開發更佔優勢(從Facebook和Linkedin放棄HTML5可見一斑,HTML5背後的博弈也不會隨著標準的退出消失) 。但宏觀角度其實與個人又沒有多大關係,無論你成為這兩個陣營中哪個陣營的擁躉,你都不會輸得很慘,因為在賭桌上你我只是個小角色,不過混口飯吃,真正要考慮這個問題的是像扎克那樣的人。

Java和JS都是目前大火的語言,火就意味學好你不用擔心沒工作,目前兩個行業人才確實也未飽和。但是,火就等於好這一點我持保留意見,有時小眾意味獨特,意味難學,意味強大,比如Lisp。Java是一門中規中矩的語言,很多人感覺這門語言毫無創新,只是妥協的C++,而且他還不願意吸取新特性。Java是我第一門學的比較好的語言,至今也是學的最好的,但隨著學的語言越來越多也愈發感覺這個「糟糠之妻」該下堂了。Java是那種越看越平淡的語言,而JS則是了解越多給人驚喜越多的語言。這隻當初的「會跳舞的猴子」變得越來越重要,正是她實現了Java那個古老的諾言「一次編寫,到處運行」。我本人是函數式編程的忠實擁護者,所以JS的編寫非常有吸引力。而且,Node.js的出現已經補全了這麼語言的短板,當初格雷厄姆在《黑客與畫家》書里表示並不看好JS(當然Java就更沒看上了),但在後續修訂版的文章中提到「JavaScript現在能用了」。Jeff Atwood(StackOverflow的聯合創始人)還在2007年炮製出了所謂的Atwood法則:任何可以用JavaScript寫成的應用最終都會用JavaScript寫。

以上。


哈哈,三年前的大一,我思考過這個問題,後來選了前端。不過現在形勢跟三年前不一樣了。現在思考這個問題,我應該會選擇 iOS。

其實選擇什麼不重要,重要的是堅持下來+專註。哪一行有深度都會很厲害。


前端,作為一名安卓開發者,建議你選前端,長遠來看。


現在拿塊磚頭隨手一扔,准能砸死一個像我這樣的EE轉CS的Android developer。

高手奇缺,初學者接近飽滿了~


半年速成的算快嗎?


還是做產品狗吧


我不知道你指的前端是WEB還是 mobile client,以及我也沒明白你說的原生開發是說android的框架層還是說內核層的開發,所以我就把這些都以一個半外行的觀點說說吧(我是server端開發,也涉足過WEB前端和mobile client)。我這裡是當你無基礎寫的:

WEB前端:做web前端,你需要知道web端也是有UI的,很多web端的UI是只會html和css的,當然有些也會js,因此,如果你做web端ui的話,必須至少學會html和css,這兩種學起來還是很快的,唯一的一點是要用css適配不同瀏覽器,不過隨著IE6,7,8逐漸在被淘汰,這種適配可能也會成為過去;如果你要做web端開發工程師,你就必須還要會javascript,以及或許可以捎帶再學習一種像jsp,php,asp中的一種語法來加速你的開發。按照每天八小時學習來算,這個大概花一個半月到兩個月時間學習,再花十幾天做幾個demo,就可以上崗了,然後以後再深入學習。

mobile client:這類開發從不知道代碼是什麼樣到入行,其實只要你知道了java中的基本類型,集合的用處,再捎帶理解線程在移動app中的作用,學會了if~else,switch,for語句這些,你就可以學習android了,在android方面,需要深刻理解五大組件以及它的幾個布局,還有對於view的層級結構也需要了解一些,可能還需要了解socket網路開發(再深入一些就是nio開發)。因此學習android端開發,你需要學習java基礎以及android中的幾個重要的基本點基本上就可以上崗了,以後再深入理解裡面的東西就可以了。如果按照每天八小時的學進度,你可能需要一個月到兩個月時間就能學完,然後再狂做十幾二十個demo,你就可以出山了。

android feamework:這個的話,你要是沒有深厚的android與java基礎,那就先別談了。

andeoid底層:它的底層是linux的內核kernel,因此如果你要做這個底層開發(也就是定製android OS),你就必須要學習linux的一系列基礎知識,以及超級厲害的c語言基礎,還有就是已經閱讀了kernel內核源碼之後,你就需要自己先去改動android內核,找幾個測試機器先測測,如果你真的可以定製了,那你就完全可以出山了,而且此時,你再學習其它語言,那就很快能夠上手了。這個要花的時間最長,我把它定為無期…

嗯,就這些了,對於IOS開發,沒有長時間接觸過,所以不寫了。


速成的話前端更快一些。


選個自己喜歡的。


如果只是學,我建議都學。上下游互相不理解,互相想當然的情況太多了。如果你從前到後到客戶需求挖掘一起做一個完整的練習,你會發現,中等水平語言/語法/演算法甚至調試經驗不是最值錢的,那些都是可以速成的。能全流程無縫切入的人才才值錢,但那不可能速成,要積累


去做IOS吧


要我說肯定Android開發,一方面現在移動互聯網這麼火熱,不投身進去怎麼對得起處於這個時代。另一個最主要的方面是選擇Android開發有 Android學習之路 學習指南,詳細完善,還怕自己學不會?


都一樣。不過安卓很容易斷了路。。。還是學前端吧~~~真心的


只談感受:

學習網站開發那一套時,感覺在沙灘上往自己口袋裝沙子。

在學安卓的時候,感覺在一點一點揭開一位裸體女神的面紗。

總之,建站那一套,因為歷史和現狀的很多原因,知識點很零散,學了一個,還有一大堆,而且似乎沒什麼聯繫。

而安卓完全不一樣,雖然我現在看不全面,但是由於Google某一位或者幾位的設計,感覺自己在深入一位大牛的內心,學了什麼當時感覺沒什麼用,但是時間長了,就會感覺是早就設計好的,是一整塊的,聯繫很緊密的,感覺後面是一個整體,是一群人智慧的結晶。


前端開發要適配各種稀奇古怪的瀏覽器,基本是用來折磨犯人的。


如果你還沒有能力分辨那說明比較適合android 至少有個能提示的ide


帖子已非常久遠了,現在的局勢呢,選擇安卓還是web前端呢


幾個我比較贊同的觀點是:

  1. 前端和Android的知識具有相關性
  2. 現在資深的Android項目負責人以前都不是做Android的
  3. Android上手相比於前端快,因為知識體系更系統
  4. 適配的問題前端和安卓都存在,或者說無論那個層適配都存在。不過前端是調瀏覽器,Android是調屏幕大小
  5. 這兩個行業都是資深人士奇缺,入門者一堆

條條道路通羅馬,只有踏踏實實認真積累,才是資深之路的捷徑

我的建議是:

  • 如果你喜歡Android,那麼你可以速成之後趕緊繼續補知識,同時關注移動端開發領域,不要掉隊。在業餘時補充後端知識。
  • 如果你喜歡前端,那麼你要踏踏實實的學HTML和CSS,同時多做案例多實踐。之後立即補充js知識,之後學習後端。

主要是自己感興趣,但是要有自己擅長的,不管做哪一個只要是做好了,並且做得開心做得好,就OK。這兩個都是入門簡單,學精了很難


推薦閱讀:

Minecraft開發圈內應不應該開發出降低門檻的程序?
C++求余用的「%」有與它效率相同的其它演算法嗎?
C語言中,main為什麼可以不是函數?
有沒有中英文均有,且有字重和斜體的等寬字體?
當我們討論一個功能是用軟體實現還是用硬體實現時,我們究竟關注的是什麼?

TAG:程序員 | JavaScript | 編程 | 前端工程師 | Android |