-
1 # 一個數據挖掘dog
-
2 # 韓冰移動電商
所謂會者不難,難者不會。程式碼分兩種,一種指令碼需要,一種編譯語言。
難,怎麼個難法,需要懂資料結構、高數等,不然你學到死也就是入門。
易,很多學數學的轉行開發很容易。
看你怎麼個學法了,你以為興趣為主的話,自學就可以了。csdn、部落格園都不錯。
要是以謀生為由,建議還是先基礎後上手,有個循序漸進的過程。不然大公司肯定不要你
-
3 # 逆月翎
出來工作到現在滿打滿算剛好過一年了,其實計算機技術更新換代真的很快。我算是比較幸運,我是因為自己熱愛這個行業所以大學選擇了計算機專業,一開始學c,可能很多人都有一種想法,c太無用了,Java做app,桌面程式,網站。python能做人工智慧,unity 3D能開發遊戲,c能用來幹嘛呢?我大一開始自學Java,後來覺得能做出一個個人網站那太酷了,然後又開始學web,學php。後面加入工作室,自己帶隊參加大創,當時老師給定的題目是樂夕陽專案,是一個app,當時Java學的一般般,沒有做過一個完整專案,然後又開始轉向Android的學習,因為後面發現Java確實非常熱門,我又重新回到Java的學習道路了。其實我看到很多知名部落格說大學生四年時間正常需要學習8--10門語言,其實我是不以為然的,因為一門通入門其他語言很輕鬆,其實大學更多的是考驗大家的自學能力,其實學的雜而不精,還不如專攻一個方向,其實技術是學不完的,一直在不斷更新換代。很多關於我多少歲了學程式設計還來不來得及,說實話現在從事it行業要求越來越高了,不再是以前你會個靜態頁面就是個人才的時代了。我講講現在幾個方向的基本趨勢給你參考參考。
學了兩三年的Java,但是我出來工作第一份工作卻選擇了前端開發。前端開發往簡單說就是設計頁面,設計特效。但是技術方面是不斷改進的,前幾年基本都還是前後端不分離,我當時接手的專案就是一個基於JSP的OA系統,因為系統比較龐大,加上前後端未分離,邏輯與前端介面設計混在一起,維護問題成為了一個巨大的挑戰。因為現在基本都流行前後端分離,這使前後端協同合作更為的方便,我們當時和技術總監提出想要重構整個OA系統,最後開了兩次會議最終決定老專案先扔伺服器繼續跑,用時一個月使用前後端分離重新搭建整個OA系統,技術選型使用了Vue.js + Node.js + Mysql。
說到這就不得不說前端三大基本框架:react、vue、angular,現在面試前端開發基本都會要求至少會使用三大框架之一,其中要求會react的可能佔據一半,剩下的一半可能vue和angular五五分。
react開發門檻也相對來說比較高,所以當時我們選擇了單頁面開發框架Vue來作為前端框架,配合BootStrap進行前端開發。至於為什麼選擇Vue呢,其實原因很簡單,更新速度很快,而且相對react門檻比較低,發展潛力很高,使用Vue-cli腳手架可以非常迅速搭建出一個基本框架模型。所以其實我更推薦以後想從事前端開發可以從Vue進行前端入門學習。react框架我未曾有機會在實際開發中使用,所以對這個框架只是有著最基本的瞭解。
在這裡我更想說說angular,我過年那段時間剛好在架構個人部落格網站,一開始架構準備使用Vue.js + Node.js + Mysql,後面覺得了解一下新知識,所以前端最後採用了angular4進行開發。使用angular-cli腳手架很快的搭建出專案基本雛形,不過angular是使用TypeScript作為主語言進行開發的,而不是我們常用的JavaScript,而瀏覽器無法直接執行TypeScript,所以我們還得對TypeScript進行配置解析成JavaScript,所以開發門檻相對Vue可能更高。部落格第一階段開發測試階段差不多完工的時候,我本地測試都是馬上響應我的部落格首頁,我就準備打包釋出伺服器進行測試,ng build生成打包後的dist資料夾,我上傳到伺服器nginx的80埠,嘗試進行訪問,第一次訪問竟然高達43秒才進行響應,原因就是angular引用了許多第三方的包,打包會將所有依賴的第三方包全部打包到同一個js檔案裡面,訪問的時候得下載這個js檔案,所以第一次訪問會非常緩慢。然後我就開始了我前端的最佳化工作,我進行了分模組打包,打包完又使用了uglify進行壓縮,然後同時在nginx開啟了gzip壓縮,雙重壓縮將首次訪問響應需要43秒給降到了三秒之內。angular還有一個坑就是你得開啟路徑快取,不然你進行頁面重新整理就會404找不到你當前介面了,經過本地部落格開發,我個人對angular算是路轉黑了,我覺這可能也是為什麼angular會被Vue這個後來慢慢後來居上的原因吧。所以我更建議想從事前端開發的朋友三個框架都瞭解一下,然後選擇之一深入學習。
我們再來說說JQuery,最早期的開發,大多都使用jQuery,它給我們帶來了很多的便利:快速選取元素,方便操作DOM元素的API,各個瀏覽器之間完美的相容性,動畫、ajax等等都是jQuery為前端開發人員來帶的好處。為什麼現在越來越少人用了呢?
1.對於大部分喜歡使用jQuery的前端工程師來說,能夠快速選取DOM節點,這個無疑是一個重要的原因。但是document.querySelector和document.querySelectorAll這兩個API可以透過傳入CSS選擇器形式的字串,就可以匹配到想要的DOM節點。Vue現在也是使用這兩個方法進行DOM元素的獲取,所以JQuery在選取DOM元素的好處蕩然無存。現在React 、Vue 、Angular框架,將操作DOM的事留給框架去做,這比傳統jQuery開發效率高,程式碼可維護性強,效能好。
2.現在CSS3動畫技術非常的成熟,已經完全可以取代jQuery做的動畫,而且比jQuery的Animate方法相容性更好。jQuery的ajax操作,為我們省去了相容瀏覽器方面的問題,但是現在這個優勢也已經不算什麼了。
3.Axios為我們提供了強大的Ajax使用能力,並且Axios還有攔截器這個優勢。相比之下Axios來說更為的優秀。
4.使用框架開發,可以使用腳手架,極大提高了開發的效率,在編碼體驗上,就提高了一個檔次。
總結:前端開發不再是網際網路初期發展那時候會寫簡單的靜態介面就足夠了。現在想要從事前端開發,不僅要求你對HTML,CSS,JavaScrict有著紮實的基礎。而且對各大主流框架你也得有一定的深入瞭解。而且對效能最佳化也需要有自己的方案,現在前端開發越來越重視使用者體驗,你不可能讓使用者耗費幾十秒去等待你網站的響應,所以現在對效能要求也會越來越高,對使用者體驗的要求也越來越高。
相對前端來說,後端更多的是對資料的處理。其實後端技術現在也已經非常成熟,前幾年PHP挺熱門的,放到現在來說不能用PHP過時這樣的詞去形容,而是PHP初級開發崗已經接近飽和,而且PHP也確實存在一些缺點需要調整:
1、 php 最大的缺點就是沒有連線池,因為不是常駐記憶體的嘛,淘寶拋棄 php選擇Java據說就是因為沒有合適的代理連線池。
2 、異常和 warning/error 混在一起,就算前段時間更新的php7也沒有完全解決這個問題。
3、執行時不說和 jvm 比,連v8的速度都無法達到。
4、Laravel 框架過度設計,速度又慢,連單步除錯都做不到。
所以說其實現在入行PHP不一定會是一個最理智的選擇。相對之下現在Java確實會更為的熱門。從一開始的SSH,再發展成目前比較主流的SSM,搭建SSM的時候你可能會經常接觸到maven這個工具,這個工具幾乎是從事Java開發必須要使用的工具。你可以熟練的使用SSM進行專案的開發,那就代表你有了初級Java工程師的水準了。接下來你需要去看一些JDK中類的原始碼,也包括你所使用的框架的原始碼。這些原始碼能看懂的前提是,你必須對設計模式非常瞭解。否則的話,你看原始碼的過程中,永遠會有這樣那樣的疑問,這段程式碼為什麼要這麼寫?為什麼要定義這個介面,它看起來好像很多餘?由此也可以看出,這些學習的過程是環環相扣的,如果你任何一個階段拉下來了,那麼你就真的跟不上了,或者說是一步慢步步慢。所以說研究一門新技術時,切忌朝三暮四。有的同學今天去整整大資料,搞搞Hadoop、hbase一類的東西。過不了一段時間,就覺得沒意思,又去研究分散式快取,比如redis。然後又過不了一段時間,又去研究分散式計算,比如整整Mapreduce或者storm。結果到最後,搞得自己好像什麼都會一樣,在簡歷上大言不慚的寫上大資料、分散式快取、分散式計算都瞭解,其實任何一個都只是浮於表面。到時候面試官隨便一問,就把你給識破了。
一月份我進入現在的公司,從前端開發轉型做服務端開發,沒有用Java,也沒有使用PHP,而是使用這幾年迅速發展的Node.js。其實對於前段工程師想要入行後端,我覺得最好的選擇就是選擇Node.js,因為Node.js其實還是基於JavaScript的ECMAScript的基礎上進行拓展,而前端工程師一般對JavaScript都會相對來說比較瞭解,所以用Node.js作為入行後端是一個再適合不過的選擇了。而且Node.js單執行緒,非同步執行的機制降低了很大的學習難度,不會出現Java多執行緒要考慮執行緒安全,還要考慮同步鎖之類的執行緒之間的資料同步問題。但是,Node.js因為幾乎所有方法都是使用非同步回撥,所以一不小心可能就會陷入地獄回撥的陷阱當中,可以使用Promise/Defferred方式去接近完美的解決地獄回撥的問題。其實現在Node.js作為服務端開發也相對比較流行,阿里巴巴也將一些模組分離出來使用Node.js進行實現。所以說Node.js也是想要從事後端開發的同學的一種相對較好的選擇。而且也為後期往全棧發展降低了學習難度。
現在都在喊網際網路的冬天,所以說就業壓力比前幾年的黃金時期確實會更大。所以說就業競爭對你的技術能力會要求更高。我覺得就後端技術而言,入行Java可能是最好的選擇之一。因為Java的生態圈實在是太過龐大。可以在深入學習的同時嘗試自己去搭建一個底層框架,一般公司後端都會搭建一個底層基本框架,然後需要具體功能直接在框架基礎上進行拓展就可以非常迅速的實現功能。我前兩週工作之餘就用Node.js自己搭建了一個底層的框架,將資料庫操作,全域性方法以及請求第三方介面的一些方法給進行封裝,可以更為清晰的梳理所有需要掌握的知識點。
對於移動開發,使用原生開發一般就是分為Android和ios陣營。現在原生開發的市場也已經趨近飽和,現在招聘一般對原生Android開發都會有一定的要求,比如兩年以上Android開發經驗之類。而且原生開發開發成本比較高,對Android與ios得單獨開發。這兩年混合式開發越來越熱門,可以實現一個前端專案直接打包生成Android和ios不同版本的app,而且難度相對原生開發來的更低,更為簡單的平臺甚至能你提供一個網址,直接將網址對應的網站打包成app。我從學校參與制作樂夕陽app之後就沒從事移動開發的工作,所以對移動開發也不甚瞭解。現在混合開發比較熱門的框架我覺得一個是APICloud,是一箇中國產的框架,我倒是自己學習過一段時間。還有一個是React Native,不過最初的React Native僅僅是對iOS的支援,不過隨著微軟,三星等各個大佬的入夥。主流的iOS和Android支援度已經很好了。目前React Native尚未穩定,很多原生的功能尚未很好的實現。是一個依然處於開發階段的庫,這也意味著,深層次的最佳化和相容操作,React Native目前是無法像原生開發一樣便捷的。同時針對不同的裝置,React Native開發需要更多的邏輯開銷去思考不同裝置之間的相容問題。而在對於除錯成本來說,React Native是一個相對比較重的庫。會增加程式碼庫的複雜度,其除錯與原生相比有著一定的困難。目前我公司在使用React Native進行混合開發,至於好不好用不同人就見仁見智吧。
-
4 # 碼農遊者
程式碼好不好學?寫程式碼是一個因人而異的事,首先前端程式碼和後端程式碼是分開的,當然一般也都會一點。下面說的很多,不是要求所有,而且一部分,當然基礎是基本要求。
從基礎說起,前端的基礎需要html+css+js,這幾樣東西很簡單,堅持看一下多練一練就可以學會。然後進階一點學jq,vue,react等js拓展(這裡我想不出什麼好的稱呼),掌握webpack,node等一些基礎東西。樣式的話,從基礎樣式得上升到viewpoint,media query,flex等,當然,bootstrap等ui框架也得了解下。html的東西就是標記,如果要jsp那得再學下jsp,如果.net得學下asp等,這個不用細說。
後端的基礎,java,php,c#等等,任選語言一項,這要求有點語言基礎。還有資料庫基礎,如sql server,oracle,mysql等基礎不可少。
後端分支比較多,就簡單的開發來說,執行緒,設計模式這些進階的東西得學一下,資料庫這邊,事務,鎖等高階一點的也得了解到,當然還有架構師等等,基本要麼就是要基礎紮實,要麼就是有創造力,要麼就是得懂演算法。當然,一般都是碼農,有基礎的東西就行,創造力啥的,不都是逼出來的嗎。。。
-
5 # 江西新華電腦餘
你可以去學習一門很不錯的選專業呢,現在都是網際網路的時代,學習電腦會很不錯,在社會之中還是需要很多電腦行業的人才,電腦對於現在的年輕人是一個瞭解的行業,所以學習電腦會很容易上手的,而且學習電腦專業是0基礎入門學習的呢
回覆列表
對小白來說,開始學習會比較困難,特別是對非科班的同學,但是入門瞭然後能夠在工作中實際運用,堅持在工作中學習,慢慢的就越來越厲害了!