web前端實習小結
實習總結,就是把一個時間段的實習情況進行一次全面系統(tǒng)的總檢查、總分析、總研究,分析成績、不足、經(jīng)驗等。下面就是小編整理的web前端實習小結,一起來看一下吧。
2個月的暑期實習結束了,不能算非常圓滿但是也有許多感受。畢竟,擠了兩個月的地鐵,每天3個小時,無論是上班還是回家身體都是濕的,也算是體驗過了社會人的生活。
在公司做的是后端工程師,其實就是協(xié)助團隊實現(xiàn)一些小的模塊,修改頁面等一些外圍的工作。這些都在預料之中。我找實習的初衷還是想體驗一下互聯(lián)網(wǎng)公司的工作環(huán)境、工作模式和方法,同時了解一下他們是如何了解并學習新知識的,從這一點上來說算是如愿以償。
在學校,無論是作項目還是產(chǎn)品,往往是一個人大包干。從產(chǎn)品(網(wǎng)站)設計,前臺html,javascript編寫,數(shù)據(jù)庫架構,后端coding,都是一個人完成的。而在正規(guī)的公司里,這一套流程是有著嚴格分工的,大致如下:1 首先由產(chǎn)品經(jīng)理與客戶交流,討論、溝通并產(chǎn)生需求,作出產(chǎn)品原型圖,(在軟件領域應該算是工業(yè)設計原型圖?) 。將原型圖交付設計師,讓設計師通過構想的原型圖設計出相關圖片。前端工程師通過設計師的圖片切圖并作出靜態(tài)頁。同時,產(chǎn)品經(jīng)理通過溝通和文檔的方式將需求告知后端開發(fā)人員。研發(fā)人員根據(jù)需求設計數(shù)據(jù)庫并進行相應coding,其中還要與前端工程師溝通并完成一些接口交互(比如json等),產(chǎn)品完成后最后進行測試等步驟。
首先說說產(chǎn)品經(jīng)理。我認為,對于產(chǎn)品經(jīng)理來說,需求和體驗是靈魂,溝通和設計是方法,而制作原型圖與撰寫相關文檔是必備技能。體驗就不用說了,產(chǎn)品經(jīng)理就是為優(yōu)質的用戶體驗而生的,‘用戶體驗’往往被他們掛在嘴邊。而需求分兩方面,一方面是與外界進行溝通,從而了解到的一些需求。這里面的溝通是有一些技巧和方法需要注意的。另外一方面則是自己通過對產(chǎn)品的理解,對生活的感悟自己創(chuàng)造出來的,這里也是見真功夫的地方。這兩方面,前一種主要靠溝通,后一種主要靠自己的設計(create)。
然后是原型圖,什么是原型圖呢?比方說你想設計一個網(wǎng)站,那么,在大刀闊斧開工之前,你總要在在紙上寫寫畫畫,作出網(wǎng)站的一個view草圖,這個草圖就是原型圖。只不過把你原來要在紙上完成的工作放到電腦里進行,加快工作效率和將草圖交付他人進行交流的效率罷了。這里推薦兩款軟件,一個是balsamiq,一個輕量級的原型圖制作工具,我實習公司的產(chǎn)品經(jīng)理一直在用。另一個的功能就相對較多同時軟件本身也相對臃腫許多,axure。百度的產(chǎn)品經(jīng)理在用它。
產(chǎn)品經(jīng)理由于是站在全局去把握產(chǎn)品的設計方向,所以需要有相當強的思想和眼光,更多的時候的確是需要從管理的眼光去看問題。產(chǎn)品經(jīng)理需要見多識廣,思維活躍才能不斷為產(chǎn)品注入新的能量。同時又要腳踏實地去把握用戶而不能脫離用戶,“用戶至上”這一點微信的產(chǎn)品經(jīng)理張小龍是一個榜樣。
個人認為走互聯(lián)網(wǎng)也就是電子商務方向的信管人比較適合做產(chǎn)品經(jīng)理,基于技術而又高于技術(就是不用掌握太多的技術),同時需要一些創(chuàng)造性思維和較強的溝通能力。
接下來說說設計師,這個我了解的的確比較少了。。諸如PS AI等相關工具的熟練掌握肯定是必不可少的。我主要是想強調設計師的不可或缺。誠然,即便沒有設計師,你仍然可以讓前端工程師直接作出一個符合大致標準的靜態(tài)頁出來。不過,像一些復雜的邊角光影效果你肯定不能指望能達到一個比較好的效果吧。一些細節(jié)方面的地方可不是你摳摳其他網(wǎng)站配色和插圖就能搞定的。
下面講一下前端工程師。前端,多么絢爛的一個字眼啊。所有復雜又牛逼哄哄的動態(tài)特效全部經(jīng)自我手,想想都是激動人心的一件事。其實,前端工程師大部分工作還是蠻辛苦的,需要將設計師的圖稿轉化為html頁,要適應chrome 要適應火狐,要適應IE, 要適應IE6(這個囧),要適應iphone,要適應ipad,要適應ipod....適應你妹啊適應! 各種js效果不好調試有沒有?需要不斷大刷(清空緩存)瀏覽器有沒有?css要各種hack有沒有? 要考慮SEO優(yōu)化,要sitemap有沒有?
上面全是前端苦逼而且做起來又略無聊的地方,有沒有除了js特效還讓前端大顯伸手的地方呢? 看看阿爾法城的前端設計吧。前端MVC架構。恩你沒看錯,就是前端mvc。事實上,做網(wǎng)頁經(jīng)常遇到這樣的情況,就是網(wǎng)站的頁面很少但是單個頁面的前端設計及其復雜。這個時候普通的單一js文件就不適用了,你需要自己架構或者使用現(xiàn)有的javascript的MVC框架解決問題。這時如何優(yōu)化js,css代碼,如何建立起一個低耦合,復用性高的框架,如何靈活地運用一些設計模式,這都是前端工程師面對大型需要而考慮的。
除此之外,現(xiàn)在html5的流行與移動互聯(lián)網(wǎng)的興起也讓前端有了更多的用武之地。最后推薦一些干貨吧。bootstrap是twitter推出的一個能夠使前端工程師快速開發(fā)出兼容性強,組件功能豐富的javascript開源庫;一個名為Alice-css的base.css文件也能解決一些兼容性方面的問題;backbone是一個javascriptMVC框架,這個我也有待學習。
接下來就是后端啦,geek們 哦不,hacker們一起high起來吧!這才是我們程序員的天下啊。各種算法數(shù)據(jù)結構、設計模式、各類語言各類框架各類大規(guī)模架構方案軟件讓你學個夠!
現(xiàn)在的編程語言百花其放,各自適合的工作均不同。使用哪種語言還真是蘿卜青菜各有所愛。注意一定要發(fā)揮各個語言之所長:python就要做膠水語言,java在業(yè)務處理方面非常出色,php最適合網(wǎng)頁展現(xiàn);.NET在MIS方面獨領風騷。
選擇什么語言不重要,關鍵是要看清語言背后的東西。絕不是你學過一門語言,然后再使用過那門語言的相關框架開發(fā)過項目你就能出師了。那只是一種你掌握的技術,而單純的技術并不能轉化為自己的理解,不能轉化為自己的能力。先說面向對象。要搞清楚的是基于對象和面向對象是兩碼事,java是一門基于對象的語言,而不是你使用java編程你就面向對象了。在實踐中不斷地領悟GoF提出的設計模式原理,慢慢地學會對象的用法。能根據(jù)需要,靈活地運用接口與繼承是關鍵。
有人認為算法和數(shù)據(jù)結構在互聯(lián)網(wǎng)方面作用很?抱有這種觀點的人一定沒涉及過web智能推薦算法以及大規(guī)模分布式算法等領域。其實這也是互聯(lián)網(wǎng)方向的另外一片天地,當網(wǎng)站規(guī)模不斷擴大,服務器數(shù)量不斷增多,如何靈活地去設計服務器架構,拆分數(shù)據(jù)庫表結構,并提出相應的分布式方案,也是一個非常有挑戰(zhàn)性的難題。這其中也涉及很多算法需要自己實現(xiàn),因為數(shù)據(jù)庫默認內核封裝的.算法并不能滿足你網(wǎng)站架構的具體需要。還有一些是根據(jù)用戶需要而產(chǎn)生的算法,涉及到了一些交叉學科領域(比如MachineLearning),剛才舉的web推薦算法就是一個例子。
一個合格的程序員很大程度上也是半個運維工程師。平時數(shù)據(jù)庫、服務器的維護往往也需要自己親歷親為。這就要求你熟練掌握linux,unix各項指令的使用,一些常用的服務軟件比如memcache,sphinx等的使用方法。
對了,還漏了移動開發(fā)。想做手機開發(fā)的人,我想說的是,做IOS吧,Android的各種不兼容實在是太蛋疼了,而且安卓市場有一些不合理的地方,相對來說不太容易賺錢。另外,wp7,wp8應用也可以嘗試一下。
說到做應用,微軟最新的office13提出了支持社交的理念,同時也支持針對office進行第三方應用的開發(fā),感興趣的同學可以嘗試一下。
最后是測試。無論是做網(wǎng)站還是做系統(tǒng)都需要測試。公司曾經(jīng)在的周末分享會上請來了IBM的測試MM專門講了測試的過程與方法。主要講的是黑盒測試。大公司的測試步驟簡單說來分為這么幾步:1 開發(fā)團隊派遣一名負責人向測試團隊發(fā)出Test申請。Test團隊然后根據(jù)需要對其進行評估,主要考察是否值得動用團隊精力去做測試以及動用多少人力資源。確立之后,Test團隊再進行測試項目啟動會,制訂計劃,并向開發(fā)團隊索要需求文檔。之后就是很關鍵的一步:根據(jù)文檔設置測試用例,就是case。case會根據(jù)項目需要和測試團隊自己發(fā)掘出的一些問題不斷增加和細化。
細化到什么程度呢?IBM有一個進行了一年的項目,而根據(jù)需要產(chǎn)生的case就已經(jīng)有上千多個了,每一個case的填寫字段超過20個。從這里首先可以看出測試和開發(fā)時并行的而不是先開發(fā)后測試,然后,根據(jù)項目的不同,測試用例可能會增長到非?植赖某潭。所以其他人的經(jīng)驗不能照搬照抄,要根據(jù)自己團隊的規(guī)模合理地決定測試用例的粒度。
測試除了黑盒測試還有白盒測試。這就需要測試人員自己去寫自動化測試腳本,還有可能借助現(xiàn)成的諸如loadrunner等測試工具輔助工作完成。說明測試人員自身也要懂一些技術的。
扯的越來越遠了,簡單說說我實習做后端的收獲。首先是學會了個MVC框架,又再次顛覆了我對MVC的認知(又顛覆了。。。。),了解了開源領域的猿們是如何快速接受新東西的。在選擇開發(fā)工具方面,我想對IDE說再見了,不輕量的東西就不靈活,不簡潔。公司里的人大部分都使用sublime 一個輕量級的文本編輯器,其優(yōu)點在于能靈活地自定義快捷鍵、高效的查找替換、更便捷地代碼書寫方法以及優(yōu)美的UI(說到UI最近新出的vs2012也是我的菜)。如果你夠牛比,你可以嘗試emacs ,一個操作系統(tǒng)級的文本編輯器,為什么是操作系統(tǒng)級呢,因為它的設計初衷就是你能在里面干任何事情,比如敲代碼,比如發(fā)郵件,比如看電影,比如玩游戲,比如。。。不過相應的,學習門檻也很高。最后是一款大家公認的殺手級工具,vim 誰用誰知道吧。我是用不習慣。
實習中除了技術上提升之外更多是不斷體會溝通的技巧。比方說,客戶說:“我想要實現(xiàn)一個XXX功能”,然后你說好,然后去做了。最后給客戶看,客戶說,“你怎么作成了這樣的東西呀,我想實現(xiàn)的是XX效果”,你很委屈地說“你上次跟我說需求時并沒有提到這一點啊”。就此僵持。
誰的錯?客戶的錯嗎?其實是不完全的。首先,你要知道,往往在客戶的腦海里,他所想的需求就是不清晰的,是模糊的,也很有可能是整個客戶團隊經(jīng)過各種討論最后折中的一個結果。其次,不同的人語言表達的方式和能力是不一樣的,他以為你能理解,你也以為你理解了,中間的差別也可能有十萬八千里。
如何解決呢?記得SYN的三握手嗎? 為什么要三次握手而不是一次就行呢? 就是要反復確認。溝通時要學會去向客戶提問題去驗證客戶的需求,這也是讓客戶明確自己需求的一個過程。我用信息的傳輸打個比方?蛻纛^腦中的需求是信息。從客戶嘴里說出來是編碼,然后通過耳朵傳輸?shù)侥愕哪X子里,這個過程是信道傳輸,最后你通過自己的理解(就是信息的解碼)轉化為自己的信息。信息在傳輸?shù)倪^程中是肯定會有丟失和錯誤(誤碼)的。原因可能出自多個方面:也許信息在源頭就是不確定的(客戶頭腦不清晰),也許信息在編碼時就發(fā)生了錯誤(客戶不懂得表達的技巧),在信道傳輸時發(fā)生丟失(客戶的話你左耳朵進右耳朵出),信息解碼發(fā)生錯誤(你自己理解能力有問題)。怎么辦呢? 我們說提高信息傳遞效果有多種方式,比如信息要有冗余,多次傳輸去驗證是否接受信息正確(要求客戶反復說明),信息傳遞后你要有校驗碼驗證(自己向用戶再次確認)?傊罢_領會客戶的意圖和弦外之音”。
還有一大感悟就是:在工作時是否要追求完美?追求到什么地步?這個時候我們可以嘗試遵循80/20原則,即先集中精力解決80%的問題,再慢慢解決剩下20%的問題。“許多失敗并不是因為人不夠優(yōu)秀,而是做事情的方法不對,一開始最求大而全的方案,之后長時間不能完成,最后不了了之。”
實習的遺憾也是有的,本來打算好實習3個月的,結果開學有很多事情出乎我的意料。很多學校的事情是推不掉的,權衡再三,只好決定提前結束實習,不然兩方面的事情都做不好。感謝實習期間團隊的各位伙伴對自己的提攜和教導,使自己進步很多。臨行前公司贈書一本,望我繼續(xù)努力。
感覺自己還沒掌握的知識還有很多,至今我還沒學如何用git;在面向對象方面仍有許多困惑;前端代碼實現(xiàn)起來依舊有很多問題;很多框架和軟件都只是了解而沒有實踐操作過。在實習業(yè)余時間在網(wǎng)上還報了個MachineLearning公開課,望能堅持下去。
新的一周要開始了,公司里的伙伴們依舊要開會、工作,為geekpark,itvalue的成熟壯大而奮斗。我也要開始忙碌一些自己的事情,前面依舊是一片天空。
【web前端實習小結】相關文章:
web前端技巧解說09-04
web前端應聘自我介紹12-20
web前端設計基礎知識09-06
Web前端工程師簡歷模板06-20
如何在家自學web前端開發(fā)11-10
web前端面試自我介紹06-14
web前端工程師面試經(jīng)驗技巧10-20
網(wǎng)頁設計和web前端開發(fā)哪個好09-30
web前端面試注意事項02-09