入門程序員如何選擇方向前端?後端?還是JAVA(安卓)?

大四生,本科電氣,因為對本專業實在無愛了,所以想轉向互聯網。本科階段在實驗室泡過兩年,做過一些小項目,但基本上都是基於單片機和硬體電路,算是有一點點編程基礎,而且也挺喜歡敲代碼的那種感覺和調試成功後的喜悅。還搞過一段時間zigbee(協議棧學的並不是很好==)感覺前景不看好(主要是興趣不大),於是放棄。了解了一下互聯網方向,決定以後想要做互聯網程序員,前端(老師說缺口很大,上手簡單,但是容易遇到瓶頸),後端(據說很繁雜,而且枯燥,成就感弱於前端,但是很有技術含量),JAVA安卓開發(很掙錢,實驗室師兄在杭州年薪16W,不過上手難,技術可代替性比較強),真誠地想請教一下資深人士如何選擇比較有利於以後的發展?可以被罵,自己哪裡有說的不對的地方,也請多多指點。(另:感覺自己能力還可以,肯吃苦,有耐心,願鑽研,愛思考,程序員需要的一些基本配置應該都可以滿足。)


有人邀請我回答我不擅長的問題。好吧,建議樓主都學一下,畢竟每個行當都有坑人的地方,那樣好歹還有跳槽的機會。前端確實太亂,建議當興趣學,當後端基礎好了再殺進來,react 跟 css 上手還是挺快的,就是生態太混亂。安卓不了解。樓主看自己學什麼優勢多點。


對於這種選什麼好的問題,建議你先都學習下它們的基礎知識,看下自己做夢能夢到誰,就說明你喜歡它,然後選它就好了。


選擇職業方向是個很複雜的問題啊,一兩句話說不清。我覺得題主從描述上來看好像對這幾個方向的認識還都不是太深。我和樓上幾位一樣,建議你都拿起來比劃比劃,看看自己對什麼方向最感興趣。

前端呢,你就裝一個你喜歡的編輯器,比如sublime或者atom或者啥,然後自己做個網頁。不用太複雜,比如說做個你自己的簡歷好了。做的時候盡量多琢磨點好玩的功能,比如展開收起,插入視頻等,用jquery來實現。用bootstrap來控制css。做差不多了以後,嘗試用coffeescript重寫JavaScript代碼,用sass替換css。然後去了解一下angular和react是幹嘛的,能否用在你的網頁中。這麼一圈下來你應該知道前端每天在幹嘛了。

後端更複雜一些,很多語言比如java、ruby on rails或者node.js都可以做後端。你可以去找相關技術官網的文檔,隨便翻幾頁看看代碼寫出來是什麼樣子。還可以去github上搜相關的項目,看看實際的代碼。java的話,要去了解spring、struts、hibernate這幾個技術框架。裝個IDE比如eclipse或者netbeans,把上面三個框架的hello world寫出來感受一下。ruby on rails和node.js不用IDE,用編輯器也可以寫。按他們官網上說的步驟分別安裝好,然後各自做一個hello world。然後你對它們分別有些了解了,可以選擇一個深入鑽研。如果發現哪個方向實在太費時間,就暫時放棄。

安卓開發,你要裝android studio,生成一個自帶的hello world項目,可以直接運行在你的手機上。然後你試著加一些按鈕,加一些別的控制項,做一個新的activity,或者做一個fragment。然後你可以試試獲取聯繫人列表,使用谷歌地圖等等。不知道如何做就上網搜。這樣你也大致了解安卓開發是在幹嘛了。

我猜想這樣一圈下來,你很可能會發現前端上手最快。這是正常的。前端新技術產生的速度比其他領域要快,要不停學習。安卓也很有意思。後端相對枯燥一點。總之看自己感受。每一個方向學好了都有發展,都能找到工作。加油吧。


隨意


個人以為:

不管BS前端,BS後端,還是 移動APP開發,都將是相當長期的存在。不存在誰快速替代誰的問題。

但不管哪一個,對於沒有專業知識儲備的新手來說,都不太容易。

也就只有前端,上手容易,最不濟學個PS+HTML+CSS也可以做重構工作了。

可一旦涉及真正的編程語言,沒有理論基礎的問題馬上就會暴露出來,所以,對於後端、資料庫、甚至更尖端一些的大數據、ML、AI,可能連入門的機會都沒有。

即使學前端的js,恐怕也是不太容易的。更別說前端的知識棧那麼龐大了。


謝邀~

哪個端其實差別不大,主要是你在這個方向上的學習能力和適應能力,找到最適合自己的路,而不是接收別人介紹的路


時隔半年,發生了很多事情,先佔個坑,過段時間再來回答當初我自己提的問題。

先說一下這個問題的背景。半年來,我經歷了考研失利,放棄調劑,直接工作。最開始思考這個這個問題是在考研後期,當時發生了一件事,讓我很久沒有心思複習,而一起混實驗室的同學都找到了不錯的工作,做什麼的都有吧,漸漸覺得不能不為以後的出路考慮,最壞的打算就是考研一志願沒考上。結果已經說了,背景說到此為止。

目前在一家公司實習,我選擇了JAVA,自己幾乎是零基礎進入的。其實漸漸覺得做什麼都沒問題,因為不論什麼技術,公司都是需要的(當然,行業僅限和這些技術相關)。有一點基礎的應屆生,表現積極努力一些,找一份工作其實還是不難的。我覺得和我一樣,大多數問這種問題的在校學生,都是希望找到一個方向,以後畢業能有一份不錯的工作。其實技術並沒有太多的隔閡,不管是自學還是培訓班,關鍵還是選取一個後自己要肯努力鑽研下去。

前端上手容易,精通不易,而且我感覺前端是很繁瑣的,涉及的東西真的很多,不過看著自己做的界面,做出的效果也容易有成就感。

安卓和iOS屬於移動端,我們公司大神通殺這兩個,他說不難,我不知道到底難不難。不過看有人說過,如果你想儘快找份編程工作,就去學iOS吧,很簡單,目前iOS需求大是因為蘋果電腦價格太高,沒有普及。可以先學一下iOS,工作後再慢慢找到自己的方向。

JAVA的話,先加班,下班再說。

=======一年後的分割線==================================

下班咯。這個班加了一年,你們這些想進互聯網行業的小白們知道多不容易了吧 。(?ω?)

開個玩笑,既然看到好幾個盆友在催我下班,就繼續說一下吧,也取消匿名好了(●°u°●) 」。

畢業一年多,算上實習時間,也將近兩年了,這麼長時間以來,我一直在一家公司,沒有跳槽,主要是為了多學點東西,讓以後自己有更好的選擇。工作內容主要是全棧開發,包括js開發(前端組寫好靜態頁面給我們,他們不負責任何業務邏輯),後台Java開發,還兼顧項目的發布和運營維護(這一部分只懂皮毛,能夠在伺服器上跑起來項目,能解常見問題)。這一年多的工作內容交代完畢。

下面說一下轉行和入門的問題。說這個問題之前,先說一下工作環境,包括工作狀態和內容。創業小公司,大多數都是讓你處於忙碌狀態,不可能輕鬆的,項目多的時候一個人負責四五個非常正常(負責開發和維護其中的某個模塊,小項目的話可能就是你一個人負責),加班到晚上九十點很正常。待遇的話我覺得我工作一年多,剛夠到杭州平均工資水平。我周圍人大多跟我一樣去年畢業,大家差不太多,頂多差500塊,可以忽略。個人覺得我們還是能代表廣大同行(工作年限1年多,非名校畢業)的。你們看到的超高薪程序員存在,要麼是名校的能力很強的高材生,要麼是經驗豐富的大牛,再者就是人品爆炸的極品,除了最後一類極少數人(因為能力和才華時間久了就容易看出來了,沒實力很難矇混下去),其他兩種人還是真的很靠實力和天賦的。如果你抱著轉行進入這個行業並立刻能逆襲的想法,那麼還是不要進來,因為別的行業你混久了都不能出人頭地,這個行業會更難。應屆生想走這條路,我並不反對,但是如果工作了兩三年以上還想轉,我勸還是放棄,因為這只是一份很普通的技術型藍領工作,並不比別的工作多掙多少。而且互聯網最熱的時期已經錯過(2011-2014年安卓蘋果入個門就能月薪過萬),現在越來越趨於理性,所以這份工作的待遇也會漸漸回歸到正常水平。不建議去參加什麼培訓班,培訓班出來牛人真的很少,即便你想入門找一份低工資的工作,培訓班出來的現在也漸漸達不到企業要求,我有朋友做了半年銷售後聽說程序員工資高,於是辭職花了半年時間報培訓班學Java,結果最後在北京找了兩個月工作都找不到,無奈去做了初級硬體測試。

下面說說入門選擇問題。Java工作需求量很大,但因為做的人太多了,出人頭地非常不容易,而且做的越多越深,你會覺得你懂得越少越淺,Java之路路漫漫其修遠,不想太累和深究的學生慎重選擇。前端現在已經不像前幾年那樣火了,招聘的要求也提高了,因為初級的前端開發人員已經飽和了,高級的還很缺,但是高級的並沒那麼多。現在前端的很多標準並不統一,處於戰國時代,各種框架和新技能橫飛,可以大顯身手,對於致力於投身碼農行列的學生妹妹(非常不建議妹子們做C,C++,Java等後台語言相關的工作,個人覺得對妹子不友好),其實是非常不錯的選擇。安卓的話,現在也是很不好找工作,當然如果你在這方面能力很強,研究得很深,也是很有競爭力的,畢竟安卓系統現在不管是在手機,電視,或者其他設備上,還是很有優勢的。不過安卓現在有從Java轉向kotlin的趨勢,不知道以後會不會和Java漸行漸遠。iOS的話,高端開發不太了解,低端的話,現在外行人都應該知道什麼情況了吧。對於入門,再次重申,不建議報培訓班,說了這個,不知道評論里會不會有培訓機構謾罵,可我還是要說,真的不建議。網上資料非常多,只要你自己去找,總能找到適合自己的路和學習方式,這個過程就是提升自學能力,自我解決問題能力的過程,沒有這個能力,很難在程序員這條路上走下去。這個行業要求我們得不斷學習,為了提升自己的能力,現在每天下班回家,雖然工作很累了,但還是會堅持學習兩三個小時,補充基礎知識,學習新的技術棧,當然這也直接導致了沒有時間談女朋友( ( "ω" ) )。可能有的同學已經大三或者大四,感覺沒有時間了。但是真的應該靜下心來,因為知識和技能是一點一點習得的,靠耍小聰明最後真的會吃虧,你們在企業眼裡就是白的不能再白的小白,你的那點小伎倆很容易看穿,只是有時候看破不說破而已,畢竟還要唬你多幹活少給錢呢。所以不如把基礎夯實了,讓公司看到你的潛力,這樣能去中型或者大型公司機會更大一些,即便是小公司,談判的籌碼也會更多一點。

先知道這吧,下次有心得有時間了再更。


惶恐下瀉藥

我不算資深人士,不過可以說說我的感受。

互聯網程序員和嵌入式系統程序員並沒多大的區別,基本功都在那裡,只是使用的工具不一樣罷了。

前端:缺口確實很大(我們就差個程序員了,多半就是指前端,因為要有門面拿來忽悠嘛~),繁雜程度我覺得不比後端高,js、css上手確實容易,可是各種框架各種技術層出不窮更新迭代的速度比後端快多了。

後端:其實後端上手也容易,看你要做到多後。如果是應用級別的,其實難度不大;但是要做系統或者平台級別的,需要比較翔實的計算機基礎。我覺得做系統架構搭平台的成就感確實比做頁面大,而且在不斷迭代更新看著系統越來越健壯,擴展性越來越高,接入點越來越多的時候,真是高潮迭起~咩哈哈

JAVA安卓開發:我覺得和前端差不多,前端一般指網頁前端,安卓開發就是手機端前端。就和C/S結構的軟體界面差不多,蛤蛤;但是學好JAVA以後倒是可以轉向不同的領域,比如hadoop啦神馬的~

至於以後的發展嘛,我覺得前端適合年輕人善於追求各類新技術、後端適合中年人善於沉澱各種經驗、JAVA適合各類人群。反正你現在還在學校,不妨每個方向都了解一下?做一兩個小程序看看喜歡哪個,就上咯~


可以選擇從事java或安卓開發或前端開發,或者資料庫開發也可以!學好了都有錢賺!


我不是資深人士,我是菜鳥,我覺得主要看個人興趣吧。


關於這個問題,其實就是一個方向的選擇,在前端開發,Java開發,移動開發中選擇一個。

這個我建議學Java吧,我當初也是因為這個問題糾結了一段時間的,後來決定學的Java,參加的動力節點Java培訓班,通過培訓來學習的Java。、

選擇Java有這麼幾個好處吧,大家都說從前端轉後端,不好轉,因為需要學習太多的理念知識,學會前端再轉後端的話,需要學習的東西太多,很麻煩。編寫的思考方法都需要重新學習,而反過來呢?先學習Java再學習前端,這樣的話就沒有那麼多的麻煩事了。因為Java是比前端更高級的一個語言,很多東西不需要重新學習,只要學習相關的代碼,編寫方式即可。

再說說Android,Android是基於Java進行的深入開發,你學會了Java可以深入學習去搞Android開發,但是你學會了Android,未必能去做Java。

所以我覺得學Java更好一點,學會了Java無論你想做前端還是Android,你都可以去做,而學會其他兩個,可就未必能夠很好的轉了。


java吧,Android路子窄些。學java能做Android的,學Android不一定能做java的


第一次強答,不管選啥,儘快度過入門期,然後不斷深挖。最不推薦前端。


推薦閱讀:

Teambition 與 蘑菇街 這兩家公司對於前端應屆生該如何選擇?
為什麼國外的網站很多設置不是在新選項卡中打開?
用"/(.*?)d/"正則表達式匹配"abcd"為什麼得到的是"abcd"而不是"d"?
怎麼看待2017 年三月 Angular 直接跳 4?
你前端實習時得到的第一份任務是什麼?

TAG:前端開發 | 程序員 | 後端技術 | Android開發 | Java |