畫個圖很重要
服務器端開發是開發者中技術性偏強,對邏輯思維要求更高的一個細分方向,不同于前端,移動端等等,后者很多在做偏UI的事情,而服務器端處理的只有邏輯和業務。所以從長遠的職業規劃來講,從事服務端開發作為技術道路的起點對長期是很有利的。
web服務器端根據服務的種類會逐漸細分:小型公司小型業務一般是簡單工程化,簡單部署,開發選型多種多樣(php,java,Python,Node.js...)這時候招的服務端主要還是看對語言的熟悉程度,一般要求是快速搞定。
中到大型公司隨著業務復雜度上升開始進行架構上的拆分,做一些服務化,中間件,近些年又有專門做數據分析(大數據,機器學習)的數據分析師,其實也是從服務器端演化出來的。在一些公司中甚至web容器的業務邏輯開發(本人做的事情)被稱為前端,而真正的后端是做數據分析、推薦系統、算法支持等等。這時候招聘web服務端往往要求業務架構能力,如何解耦和模塊化一個工程,如何做分布式。

實際上普通的web服務端開發掌握個語言,學兩個框架基本就可以上手了,但是后續提高必須很好的掌握所有相關基礎,這個基礎就包括了協議層(TCP/ip),操作系統知識。
比如大流量下如何配置nginx服務器參數? 流量進來服務器會有各種各樣的問題:連接恢復的連接風暴、高并發秒殺型應用如何做限流、內存吃緊如何優化、連接數cpu內存各種被占滿如何分析瓶頸在哪?這時候只知道幾個框架的人完全是一頭霧水,必須從計算機的更底層去分析原因。
初入職場先只能面試普通服務器端開發(非資深)攢點項目經驗,形成自己的一套分析問題的方法論,設計和架構一個復雜系統的經驗。
內功包括:
建議傳統一點的,比如Java,PHP。一些前沿的還不穩定不適合你玩,比如Python、Node.js(Javascript)、GO、scala。必須精通,沒得商量。常用框架需要精通,否則招你進去沒法快速上手干活也不會招你。如Java棧的需要了解SPRing, MyBatis, 容器Tomcat,Jetty
WEB架構必須懂其一:SpringMVC,SSH,個人懂SpringMVC,現在看SpringMVC前景似乎更好。權限驗證用Shiro
擴展分布式RabbitMQ(ActiveMQ), zookeeper ,hadoop目測以后會成為必備技能,做了解。工具類jar包apache系列:common-lang.jar, common-io.jar, common-bean.jar。搜索ElasticSearch(lucene, solr)Python棧的需要了解django, Flask 至少其一PHP棧我只知道一個Lavarel,囧
適當的全棧全棧是趨勢,起碼要懂一點頁面的東西,包括html, Javascript, CSS常用的JavaScript框架和標準:CommonJs, jQuery, Bootstrap擴展(選擇性了解):Angular, React, vue, Backbone, zepto (適可而止,一入前端深似海)
協作:Git使用
MySQL必須精通,沒得商量。nosql需要了解:MongoDB, Redis, Memcached 原理和基本部署方式和使用方式。
這個程度的面試是會考鏈表、棧、二叉樹、B+樹、快速排序的,不能答不出來。
需要精通常用幾個,了解大部分。比如工廠模式、狀態模式、命令模式、裝飾模式……
TCP/IP協議,unix系統使用經驗,shell編程等等。。如果你能說出unix的基本啟動過程,還有常見的分析問題所用的一些命令,如sar,free,du,top,awk,sed等,Java棧的有jmap,jstat,jstack等應該有加分。

專業名詞的拼寫不要出錯,不要寫java,要寫Java。不要寫mysql,要寫MySQL。
不要一大堆精通xx。看到這種簡歷我直接pass,摸不清他的底,還得面試好好問問,簡歷沒方向還不知道怎么問。精通什么就是什么,可以寫具體一點,比如精通Java可以寫精通哪一部分,是socket還是多線程?不了解的就不要寫上去了。
簡歷中做足對對方公司的準備。你可以詳細了解你要去那個部門是做什么的,當前有哪些產品,產品有什么缺陷,技術的核心價值在哪,技術難點在哪,你在這上面有什么優勢。技術一樣的情況下,hr喜歡準備充分的人。
還是把基礎先鞏固了再去面試,前面提到幾個基礎知識不掌握,一般面試都會掛,除非面試官是瞎子。
先寫這么多,未來會寫寫開發面試技巧。
原文地址:http://www.jianshu.com/p/814d05ddb54a,感謝大俠的無私分享。
本文會在原文基礎上修改,完善,謝謝閱讀。
新聞熱點
疑難解答