如何鑄就全棧程序員?
https://allluckly.cn各位大神們,多多指點啊。
不要限制自己,認為自己有什麼做不了。從學生時代開始盡量以Solo方式做項目、參加競賽。自己完成代碼、文檔、美術、宣傳、跑腿一切事務
一定要堅信「軟體這種事只要知識儲備好了,一個人就是一個軍隊(而且是永遠不會內訌的軍隊)」我覺得全棧是一個高大上的謊言,我不明白為什要成為全棧。
而且更可怕的是很多人把「全棧」等同於「Web全棧」
我覺得這個概念只有在互聯網早期和創業團隊才是有意義的,其他情況肯定是分工越細越好。說白了就是所有的事情都得你干,我們沒那麼多人手給你配齊所有角色,至於是不是每個分工細化都能幹的好,我覺得這很值得懷疑。像騰訊現在這樣連Web前端都分成了兩個部分,靠近設計、頁面這些的叫重構,屬於騰訊D族,寫js、與後台交互較多的叫前端,屬於騰訊T族,你讓T族的前端去切圖我覺得他肯定會,但做的不如D組的重構好就是了。
社會分工細化帶來的是生產力的提高。
作為個人而言,正確姿勢應該是對很多知識都有所了解,但一定會有那麼一兩門拿得出手的。至於全棧,我從來沒有想過要成為那樣的工程師選對公司,希望老闆懂技術而且比較開明而且缺人,然後獲得他的信任,然後爭取讓他給你爭取時間讓你一邊做一邊學不同的語言,然後拼盡全力不要讓他失望進入良性循環之後沒多久你就能全棧了當然最後一條最難。
如何鑄就全棧工程師?讓工程師獨立負責項目。不管他之前是做什麼的,不懂可以請教別人,但是他獨立負責。很快就鍛鍊出來了各方面的技術。鍛鍊出來之後,再去讓大家融合到同一個項目中去。-------------------------------------------
全棧工程師對公司有什麼好處?
粗看似乎沒有明確的分工,效率降低。但是好處很多!一來避免互相等待浪費時間二來避免卡殼三來避免互相推諉,有的工作會互相推來推去四來人才有備份,避免單點障礙五來,工程師對項目的理解更深,對業務的理解更深,主動性更強--------------------------------------------成為全棧工程師,對員工有什麼好處?一來,對項目理解更深,主動性更強二來避免別人給自己推責任
三來,項目卡在那裡,其實自己挫敗感很強的四來,白天的時間互相等待,效率低了就得靠加班來彌補---------------------------------------------公司和員工並不是競爭關係而是合作關係,公司項目做好了員工壓力也小,進度快了員工也開心成就感也多,萬一不爽了換工作的時候可以宣稱某個項目全是自己做的;能力提升快了漲薪也快,不要給自己不想學習找借口啦。有人認為,大公司裡面就需要分工明確...大家對大公司了解多少?我待過好幾個大公司,雖然公司大,項目組也很小,每個人也都是需要全能,什麼都做。總覺得沒有二十年以上的開發經驗沒資格說全棧。比如你不能說你會寫個爬蟲寫個restful然後可以把web架到雲服務上,寫個自娛自樂的mobile端就敢說自己是全棧了。全棧的定義應該是精的多。而不是什麼都會一點,什麼都是三腳貓的水平。
時間
何必呢,先專精一樣再說吧
我也來回答一下,我也快努力趕上全棧工程師的標準了。
首先,全棧是面向整套產品而言的,或者面向整個公司層面的系統架構技術而言的, 一般從前端到後端按微軟方向分為(我是微軟方向)
終端技術(WEB/ Service/ WIN APP/ Phone),這幾個面向用戶的終端技術。 對應的技術和類庫大概需要熟悉http://ASP.NET MVC, js類庫,css, WCF for Service, WPF winform和(手機應用程序開發沒研究過)。中間層框架積累包括框架本身的積累,服務結構的積累,負載均衡的設計,異常處理,各種類庫的積累等,因人而異,這裡的變數最大好的設計和差的設計統統體現在這。
資料庫層需要精通資料庫設計,畢竟業務層的代碼最終還是要記錄大量的數據到底層資料庫里,事務的劃分,表和索引的設計,統統影響著性能和安全性。從劃分表分區,了解選擇哪種磁碟陣列,分散IO,使用反模式手段,和為以後的報表服務做相關設計統統要考慮。
報表服務相關技術,微軟方向起碼要熟悉CUBE,和DW資料庫的設計。這裡又是另一套索引設計。使用always on技術做讀寫分離在生產環境上又是如此重要,用replication技術或者ETL等相關技術拉去數據,報表展示,和MDX編寫以及業務層數據的抽象方式在報表層統統得到驗證。差的業務層資料庫設計 直接影響報表性能和思考方式,
數據分析相關技術,報表只能做為了解公司的手段,後面還要分析數據,老闆最愛看的預測你不管怎麼樣也要弄幾套,R語言代碼就算寫不出,扣也要扣出一些演算法。來支持預測分析方面的工作。
接著是測試,以上所有設計均要考慮測試的難易度,日誌的記錄狀況和日誌本身的設計。 是時候還要給測試寫一套壓力測試框架,最好要熟悉測試的手段。
最後是安全性,安全性,安全性。這是最最重要的,放在最後說三遍。以上每一層的設計都要考慮安全性。簡單的跨站腳本攻擊,SQL注入這種常見的WEB攻擊手段,要時刻在框架選擇的時候就避免這些問題。設計一個好的驗證碼系統,防止被洪水。DDOS這種水也很深,安全性感覺又有一套很大的東西要提,資料庫方面數據訪問許可權控制,業務數據許可權控制和表設計,資料庫加密技術等。(安全性這是我的軟肋)
全棧工程師苦啊,以上所有東西。從上往下更新速度和頻率呈遞減,你得跟上腳步。別落後太多。
暫時就這麼多。我覺得是這樣:
一個項目:項目(產品)經理,美工,前端,android,ios,後端
第一天,項目(產品)經理跑了!!!
第二天,美工跑了!!!!!
第三天,前端跑了!!!!
第四天,android和ios一起跑去搞基了!!!!
第五天一直到項目完成!!!!!後端一直沒跑...
然後就被逼成全棧了
來自 phodal/awesome-developer · GitHub,就一張圖,希望你能看懂
全站工程師,就是全程站著編程的工程師。把椅子賣了換張高桌子,你就能練出來了。
大公司都玩兒T型,小公司才玩兒全棧。倒是諾基亞的全站蠻有意思的,就是很少有公司願意配。
我只是希望你口中的全棧並不只是web開發的全棧...學學內核, 學學安全, 學學靜態分析... 你要當全棧, 路子長的很啊...
一旦一個程序員開始創業,不管他以前做什麼出身,創業之後都是全棧開發者了。
1. 不要限制自己,什麼都去學什麼都嘗試。2. 多接觸不同領域。3. 不要把自己當成一個程序員,不要被需要框架限死,它們都只是你的工具。
除了不要劈圖之外,哪有什麼前端後端之分咯。苦逼一枚
function fullStack(堅持){寧缺毋濫};
客戶端全棧,我準備嘗試一下
答案就是沒有人可以成為一個全棧工程師!就·huang phodal 給那個web 全棧都無法作到,就別提其他全棧了。
上家公司太小,去的時候沒有地方坐了,就把筆記本放到牆上的閣板上,然後買個宜家的高腳椅子坐著,但那樣太痛苦,很長時間就全站,從此以後在也不相信什麼站立式辦公,什麼全站,牛逼的人都是走自己的路,而不是炒別人的,任他全站/全棧,自己做好自己的工作,並做理財投資,不知道比他們高到哪裡去了,程序員特喜歡裝,其實就是信息時代的工人而已,裝什麼,大頭都被別人分了,以前做程序員的時候脾氣大的很,現在看著手下的程序員脾氣沖,直接開掉,一天虧/賺的錢,已經不在乎他們耍脾氣,因為他們沒有議價能力,就這麼簡單
公司不需要。
推薦閱讀:
※iOS 如何進行逆向工程?
※android可以通過進入程序後台關閉運行程序達到減少內存佔用的目的,為什麼ios不行?
※哪些 iOS 應用充分發揮了 64 位 A7 處理器的性能?
※為什麼iOS偽後台,但是有很多軟體也會在後台一直運行?
※作為iOS開發,需要具備怎樣的能力,才能在北上廣,拿到1萬的薪資?