- 首頁|
- 網(wǎng)校|
- 焚題庫|
- APP |
-
微信公眾號(hào)
后臺(tái)的內(nèi)容很多。但是相對(duì)臺(tái)來說沒有那么炫,也不會(huì)與產(chǎn)品有過多的交互。通常包括這樣幾類:dao1.web開發(fā)。做web交互的后臺(tái)部分2.提供api,webservice或者是restful接口給其它程序。通常是數(shù)據(jù)處理,數(shù)據(jù)橋接,推薦,搜索,工具調(diào)用,統(tǒng)計(jì),計(jì)數(shù),任務(wù)管理,資源調(diào)度,監(jiān)控,驗(yàn)證碼,報(bào)表等等。
后臺(tái)開發(fā)的基本要求
語言層面
例如java, python, php , c/c++ 等,和對(duì)應(yīng)的開發(fā)框架。 這個(gè)是基本要求,因?yàn)槟阒辽僖煜ひ婚T語言和常用的框架,你才有可能接手正式的工作,要不你都干不了活。
語言和框架,包括對(duì)應(yīng)的運(yùn)行時(shí)環(huán)境,是貫穿整個(gè)職業(yè)生涯的東西。不同階段對(duì)語言和框架的要求是不一樣的;不同公司對(duì)新入職員工的要求也不一樣。大公司對(duì)畢業(yè)生甚至沒有框架的要求,就算你只會(huì)一門語言而不會(huì)任何框架也可以, 但相應(yīng)的,對(duì)算法,操作系統(tǒng)等方面的要求就會(huì)高很多。中小公司就很看重入職新人語言框架方面的實(shí)際能力。因?yàn)橹行」颈旧淼馁Y源有限,沒有那么多的時(shí)間來培養(yǎng)新人,他們更想要進(jìn)來就可以干活的。所以如果你的算法或其他方面很牛B,你可以不太理會(huì)這塊,想辦法去大廠。 但如果你其他方面都不怎么行,基本的語言和框架就是你的敲門磚了。
語言框架,這個(gè)算是最基本要求了,也是貫穿整個(gè)職業(yè)生涯的要求,越高階,需要掌握的程度也越高。
數(shù)據(jù)庫
對(duì)數(shù)據(jù)庫的要求跟語言框架是一樣的。 首先你得會(huì),不會(huì)的話,就沒辦法工作。 現(xiàn)在大部分公司的數(shù)據(jù)庫都是mysql。 當(dāng)然也有使用Mongodb ,Redis 等的。 數(shù)據(jù)庫的增刪查改操作是最基本的,是能干活的基礎(chǔ)。進(jìn)階一點(diǎn)的時(shí)候,需要開始理解數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),索引實(shí)現(xiàn),要對(duì)性能優(yōu)化有所了解。 再進(jìn)階,數(shù)據(jù)庫的鎖,事務(wù),高并發(fā)設(shè)計(jì)等。數(shù)據(jù)庫的要求也是越高階越難的,到后面甚至出現(xiàn)自研數(shù)據(jù)庫的需求。 這個(gè)就是分布式存儲(chǔ)的領(lǐng)域了,很復(fù)雜,可以講很久了。對(duì)于新人而言,會(huì)增刪查改應(yīng)該可以滿足初期需求了。后面需要開始對(duì)性能,對(duì)并發(fā)等有要求的時(shí)候,就需要對(duì)數(shù)據(jù)庫本身的實(shí)現(xiàn)機(jī)制有更進(jìn)一步的了解了。這些可以在實(shí)際工作中慢慢學(xué)習(xí)和積累。
數(shù)據(jù)庫,必備的技能,貫穿整個(gè)職業(yè)生涯,隨著開發(fā)的等級(jí)越來越高,要求也會(huì)越來越高。
算法數(shù)據(jù)結(jié)構(gòu)
算法的重要度,都已經(jīng)不需要再次闡明了。 幾乎所有人,所有公司都是覺得很重要的。 就類似武俠小說里面的內(nèi)功,擁有深厚的內(nèi)功,才能將各種招式充分的發(fā)揮出來。我這里說說,在實(shí)際工程中,算法數(shù)據(jù)結(jié)構(gòu)的應(yīng)用情況。
實(shí)際工程中,算法數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)和應(yīng)用情況,可能跟大家想象的不太一樣。 對(duì)于通用的算法,類似快速排序,快速查找,都有現(xiàn)成的庫可以使用,一般團(tuán)隊(duì)也不會(huì)讓你直接手寫一個(gè)快速排序---低效,說不準(zhǔn)還會(huì)有bug。 而類似哈希,鏈表,隊(duì)列,這幾類的使用會(huì)多很多。 特別是哈希 和 鏈表,使用頻率最高。 不過,實(shí)際工程中, 對(duì)數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的要求跟教科書上的不太一樣。 對(duì)于哈希,你可能懂得用開放地址法或鏈表的方式來處理沖突,而實(shí)際工程中這些遠(yuǎn)遠(yuǎn)不夠。 實(shí)際的生產(chǎn)環(huán)境,基本都是多并發(fā)的環(huán)境, 你還需要保證你設(shè)計(jì)出的數(shù)據(jù)結(jié)構(gòu),是線程安全的,也就是可以多并發(fā)處理,而且可能還有一定的性能要求。 這個(gè)就要比較教科書難不少了。 再比如, 你可能會(huì)被要求去實(shí)現(xiàn)一個(gè)隊(duì)列,因?yàn)橐獞?yīng)對(duì)并發(fā),你的隊(duì)列要設(shè)計(jì)成多進(jìn)多出的,所以你要加鎖,但因?yàn)橐咝В宰罱K你要設(shè)計(jì)一個(gè)無鎖隊(duì)列。這個(gè)也會(huì)比教科書的難。但在我的實(shí)際工作中,幾乎沒遇過要我去手寫一個(gè)平衡二叉樹的需求,好像我周圍的同事也幾乎沒遇到。我想除非是做數(shù)據(jù)庫的同學(xué)會(huì)遇到吧。這些都是實(shí)際工作和教科書的區(qū)別。
算法數(shù)據(jù)結(jié)構(gòu),總的來說,是最重要的內(nèi)功之一,但實(shí)際工程中的要求可能跟教科書的要求會(huì)有些不一樣。
操作系統(tǒng)(類unix, windows , 類unix偏多)
剛?cè)胄械臅r(shí)候, 對(duì)操作系統(tǒng)的理解還不需要太深入,只要知曉有操作系統(tǒng) 的存在就行。在后面慢慢進(jìn)階的過程中,操作系統(tǒng)對(duì)你整個(gè)工作的影響會(huì)越來越大。會(huì)影響你的整體設(shè)計(jì),性能,更直接的是,你在實(shí)際工作中首次碰到的很多無法解釋的“靈異事件”,都可能跟操作系統(tǒng)的機(jī)制和策略有直接或間接的關(guān)系。 這里舉個(gè)實(shí)際設(shè)計(jì)中的例子: 我一個(gè)同事,早期的時(shí)候,做個(gè)一個(gè)自研的隊(duì)列組件(類似rabbitmq那種), 設(shè)計(jì)的極其復(fù)雜。我看他的文檔看了好久才明白其中的原理。 后面找他討論, 才發(fā)現(xiàn)他很多的設(shè)計(jì)都是為了追求極致的磁盤寫入性能。 他做了寫入緩存,做了各種數(shù)據(jù)對(duì)齊,這些又使的他的上層設(shè)計(jì)變得復(fù)雜。 后來跟他一起討論了linux文件系統(tǒng)的緩存機(jī)制,發(fā)現(xiàn)直接用write 系統(tǒng)調(diào)用,順序的寫入文件就完美解決問題了。而他圍繞此處所有的設(shè)計(jì)都是多余的。類似的情況,我還遇到不少。所以操作系統(tǒng)的知識(shí),特別是對(duì)操作系統(tǒng)機(jī)制和策略的深入理解,對(duì)后臺(tái)的設(shè)計(jì),開發(fā),真的會(huì)帶來完全不一樣的結(jié)果。如果一個(gè)后臺(tái)開發(fā)對(duì)操作系統(tǒng)的理解不能深入到一定程度,我覺得他是沒辦法在這條路上進(jìn)階的。
操作系統(tǒng),這個(gè)屬于進(jìn)階需求,需要長(zhǎng)遠(yuǎn)在這個(gè)方向發(fā)展的話,就要注意這塊的積累。
網(wǎng)絡(luò)協(xié)議: tcp/udp, http, https 等
一般情況,網(wǎng)絡(luò)協(xié)議, 需要到達(dá)清楚理解機(jī)制的程度。
比如tcp 和udp 的區(qū)別。tcp 的鏈接建立和斷開的過程. http 和 https 的區(qū)別。 實(shí)際工作中, 如果你的工作涉及底層網(wǎng)絡(luò)框架的開發(fā),那對(duì)tcp /udp的實(shí)現(xiàn)機(jī)制就需要有深入的理解了,要不你無法設(shè)計(jì)出高性能的框架。 其他協(xié)議也是類似。
總得來說,如果不是專門做網(wǎng)絡(luò)框架或涉及設(shè)計(jì)類似p2p等私有網(wǎng)絡(luò)協(xié)議的。 相對(duì)其他,個(gè)人覺得這個(gè)在實(shí)際工作中的運(yùn)用相對(duì)沒有那么多。但是,大家不要混淆了網(wǎng)絡(luò)協(xié)議和 epoll / select 這種服務(wù)器開發(fā)機(jī)制的區(qū)別。 類似socket 套接字的使用,epoll/select 的深入理解,還是很重要的。目前很多公司已經(jīng)不用從socket 套接字和epoll/select 層面來構(gòu)建服務(wù)了,而是直接采用了現(xiàn)成的rpc框架,但對(duì)于想長(zhǎng)期往后臺(tái)方向發(fā)展的同學(xué),還是建議掌握socket epoll select 。我記得我當(dāng)初進(jìn)公司,第一個(gè)任務(wù)就是不用任何框架,實(shí)現(xiàn)一個(gè)服務(wù)器,要求高性能,支持高并發(fā);径际遣捎胹ocket 套接子 + epoll來實(shí)現(xiàn)。做完,基本可以熟悉和知曉在數(shù)據(jù)傳輸上需要解決的一些問題。
網(wǎng)絡(luò)協(xié)議,需要達(dá)到清楚理解機(jī)制的程度。如果是從事網(wǎng)絡(luò)框架開發(fā)或需要設(shè)計(jì)私有網(wǎng)絡(luò)協(xié)議, 則會(huì)有更高的要求。
初級(jí)會(huì)計(jì)職稱中級(jí)會(huì)計(jì)職稱經(jīng)濟(jì)師注冊(cè)會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測(cè)工程師建筑八大員注冊(cè)建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱計(jì)算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論