99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)大數(shù)據(jù)時(shí)代6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯
6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯
2021-03-09
收藏

來(lái)源: 麥?zhǔn)寰幊?

作者:麥?zhǔn)?

很多在校生或者自學(xué)編程的人表示:我沒(méi)有項(xiàng)目經(jīng)驗(yàn),應(yīng)該怎么辦?

在開(kāi)源盛行的今天,我們根本不缺乏項(xiàng)目,隨便在Github上搜索一下就可以找到成千上萬(wàn)的高質(zhì)量的項(xiàng)目供你學(xué)習(xí)和實(shí)踐。

我們?nèi)狈Φ氖?/span>:把開(kāi)源項(xiàng)目內(nèi)化的方法,讓開(kāi)源項(xiàng)目變成自己的項(xiàng)目的例子。

本文分享6個(gè)內(nèi)化開(kāi)源項(xiàng)目的步驟,以及4個(gè)加深項(xiàng)目經(jīng)驗(yàn)的步驟。如果你認(rèn)真執(zhí)行這些步驟,項(xiàng)目經(jīng)驗(yàn)將不再是問(wèn)題。

一、步子大了容易扯著蛋

這里說(shuō)的項(xiàng)目是指比較綜合的項(xiàng)目,具有一定商業(yè)價(jià)值的項(xiàng)目,寫(xiě)在簡(jiǎn)歷上可以給你加分的項(xiàng)目,比如:

  • 一個(gè)在線(xiàn)教育網(wǎng)站
  • 一個(gè)內(nèi)容完善的博客系統(tǒng)
  • 一款有價(jià)值的手機(jī)App
  • 一個(gè)設(shè)計(jì)和功能都不錯(cuò)的游戲

項(xiàng)目雖好,但我不推薦初學(xué)者上來(lái)就做這種項(xiàng)目,步子大了容易扯著蛋。

在做項(xiàng)目之前,必須先有一定的編程基礎(chǔ):

  • Java是否掌握了Core Java的核心知識(shí)?
  • Python是否掌握了基礎(chǔ)語(yǔ)法,面向?qū)ο螅K和包等?

否則就算你比著葫蘆畫(huà)瓢把項(xiàng)目運(yùn)行出來(lái)了,項(xiàng)目隨便出點(diǎn)問(wèn)題,你就傻眼了,因?yàn)橐恍┗A(chǔ)的知識(shí)你都不懂?;蛘咦屇阕鳇c(diǎn)復(fù)雜點(diǎn)的功能,完全沒(méi)有思路。

所以在實(shí)踐本文的步驟之前,先掂量一下,自己是否已經(jīng)有了一定的基礎(chǔ)。

并不是說(shuō)從零開(kāi)始學(xué)習(xí)編程就不能實(shí)戰(zhàn)入門(mén),相反,我非常推崇實(shí)戰(zhàn)項(xiàng)目入門(mén)的方法,所以我在B站分享很多Python,Java的小游戲,小項(xiàng)目的教程:

6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯
6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯

這些都很適合零基礎(chǔ)學(xué)習(xí)編程,但如果放在簡(jiǎn)歷上就太單薄了。

在B站搜索:麥?zhǔn)寰幊?/span>,可以查看這些視頻。公眾號(hào)在近期也會(huì)開(kāi)通相關(guān)的小程序。

在接下來(lái)兩周,我會(huì)發(fā)布學(xué)習(xí)文章,也是防止扯了蛋:

  • 不扯淡Java學(xué)習(xí)路線(xiàn)圖
  • 不扯淡Python學(xué)習(xí)路線(xiàn)圖

請(qǐng)保持關(guān)注。

二、找開(kāi)源項(xiàng)目

如果你已經(jīng)有了一定的基礎(chǔ),就可以開(kāi)始找個(gè)開(kāi)源項(xiàng)目,練練手。

找項(xiàng)目的方法很簡(jiǎn)單,可以去github,或者國(guó)內(nèi)的gitee上,搜索你感興趣的項(xiàng)目,挑選點(diǎn)贊數(shù)比較多的就可以了。

但這里我想提醒一下,一定要循序漸進(jìn),找適合自己的項(xiàng)目,并不是點(diǎn)贊多的就是最開(kāi)始學(xué)習(xí)。

以Java開(kāi)源項(xiàng)目為例,我認(rèn)為要分成幾個(gè)層次:

  • 先做一個(gè)Web,Servlet,JDBC為主的項(xiàng)目,不要上來(lái)就上框架項(xiàng)目。所有的框架都是基于Java語(yǔ)言的特性,如果你不理解語(yǔ)言本身,上來(lái)就做框架,必然會(huì)造成根基不穩(wěn),你不會(huì)成為大牛,工資也不會(huì)很高。
  • 再做一個(gè)以主流框架為基礎(chǔ)的項(xiàng)目,比如以Spring/SpringBoot + MyBatis為主要技術(shù)棧的項(xiàng)目。在上一個(gè)項(xiàng)目的基礎(chǔ)上,你更能理解這些框架的好處,也知道他們的實(shí)現(xiàn)原理。有了問(wèn)題,你有你能力去看源代碼。
  • 再做一個(gè)分布式的項(xiàng)目,比如基于Spring Cloud的項(xiàng)目,在這個(gè)項(xiàng)目中用上緩存,Message Queue等技術(shù)。這是在上一個(gè)項(xiàng)目上的自然延伸,如果這樣的項(xiàng)目你也比較熟悉了,你的表達(dá)能力又不錯(cuò),你運(yùn)氣好,應(yīng)該可以拿到比較高級(jí)的崗位了。應(yīng)該在阿里P6的水平。

再說(shuō)一遍,我的主要意思是:要循序漸進(jìn),找適合自己的項(xiàng)目。

如果你不知道如何循序漸進(jìn),在接下來(lái)的一兩周之內(nèi)我會(huì)發(fā)布:

  • 不扯淡Java項(xiàng)目推薦和案例分析
  • 不扯淡Python項(xiàng)目推薦和案例分析

請(qǐng)保持關(guān)注。

三、6個(gè)步驟

假設(shè)你已經(jīng)確定了一個(gè)開(kāi)源項(xiàng)目,怎么下手呢?

按照下面的6個(gè)步驟來(lái):

  1. 運(yùn)行項(xiàng)目讓項(xiàng)目運(yùn)行起來(lái),了解它用什么服務(wù)器,用什么數(shù)據(jù)庫(kù),如何啟動(dòng),如何關(guān)閉。如果是分布式項(xiàng)目,這個(gè)步驟就有一定的難度。在運(yùn)行的過(guò)程中可能會(huì)碰到各種類(lèi)庫(kù)不能下載的情況,這個(gè)過(guò)程本身就是一種鍛煉。
  2. 測(cè)試它的功能,寫(xiě)一份功能列表運(yùn)行起來(lái)后,不要急于去學(xué)習(xí)代碼,先了解項(xiàng)目的功能,并且自己寫(xiě)一份功能說(shuō)明書(shū),越詳細(xì)越好。如果功能都不了解,談什么構(gòu)架,談什么技術(shù)?面試的時(shí)候也會(huì)掛掉。
6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯
  1. 瀏覽代碼,做一個(gè)技術(shù)棧列表現(xiàn)在可以開(kāi)始學(xué)習(xí)代碼了,不要盲目的學(xué)習(xí),學(xué)習(xí)完了要有一定的產(chǎn)出,那就是出一份技術(shù)列表。這個(gè)項(xiàng)目中都用到了哪些技術(shù)?不用太漂亮,把用到的技術(shù)都列出來(lái)。用了什么Web框架,什么業(yè)務(wù)層框架,什么數(shù)據(jù)庫(kù)層框架,什么數(shù)據(jù)庫(kù)?要詳細(xì)一點(diǎn),用到那些模塊,那些類(lèi)庫(kù),分別用的什么版本,統(tǒng)統(tǒng)都列出來(lái)。這個(gè)產(chǎn)物就是一個(gè)簡(jiǎn)單的列表。這個(gè)過(guò)程你必然要全面的瀏覽代碼,了解代碼的結(jié)構(gòu),對(duì)代碼有個(gè)比較好的總體的理解。
  2. 畫(huà)一張技術(shù)架構(gòu)圖,畫(huà)一張流程圖這時(shí)候需要把這些東西內(nèi)化了,給你的作業(yè)是兩張圖。一張是技術(shù)架構(gòu)圖,前面你已經(jīng)有了一個(gè)技術(shù)列表,現(xiàn)在把列表中的東西放到一張相互依賴(lài)的圖中去,進(jìn)一步消化項(xiàng)目的架構(gòu)。相信我,在面試的時(shí)候,如果你能輕松畫(huà)出你的項(xiàng)目的架構(gòu)圖,面試官一定對(duì)你刮目相看!還有一張是流程圖。挑選一個(gè)主要的業(yè)務(wù)流程,比如電子商務(wù)系統(tǒng)中的下單流程,畫(huà)出這個(gè)流程的詳細(xì)的流程圖。這個(gè)流程圖中最好有兩部分,一部分是業(yè)務(wù)流程,一部分是代碼流程:這個(gè)流程中一步步是如何調(diào)用的,最后數(shù)據(jù)被存在了那張表中等等。

架構(gòu)圖示例:

6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯

流程圖示例:

6個(gè)步驟獲得高質(zhì)量的項(xiàng)目經(jīng)驗(yàn),告別沒(méi)有項(xiàng)目經(jīng)驗(yàn)的炯
  1. 添加一個(gè)功能/修改一個(gè)功能經(jīng)過(guò)了上面的4個(gè)步驟,你對(duì)這個(gè)項(xiàng)目的理解已經(jīng)很透徹了,可以說(shuō)擊敗了90%的小伙伴,但是還不夠。你只是在學(xué)習(xí),你還沒(méi)有實(shí)戰(zhàn)?,F(xiàn)在修改產(chǎn)品功能列表,添加一個(gè)新的功能,你把這個(gè)功能開(kāi)發(fā)出來(lái)。這個(gè)功能不能太簡(jiǎn)單,需要有一定代碼量,你至少要兩周才能開(kāi)發(fā)完成才行。對(duì),這個(gè)步驟非常關(guān)鍵!你需要有實(shí)際的項(xiàng)目經(jīng)驗(yàn),不只是道聽(tīng)途說(shuō),不是把別人的東西說(shuō)成自己的?,F(xiàn)在就是你建立實(shí)際項(xiàng)目經(jīng)驗(yàn)的時(shí)候。
  2. 給自己出10個(gè)問(wèn)題,找出優(yōu)秀的答案你對(duì)這個(gè)開(kāi)源項(xiàng)目很了解了,也自己開(kāi)發(fā)了新的功能?,F(xiàn)在來(lái)檢驗(yàn)一下自己,嘗試站在面試官的角度,給自己提10個(gè)問(wèn)題。提問(wèn)題的時(shí)候不要想答案,不要想這個(gè)問(wèn)題我會(huì)不會(huì)。就只是想問(wèn)題,列出你認(rèn)為的最難的10個(gè)問(wèn)題。找出這10個(gè)問(wèn)題的答案。這個(gè)過(guò)程,你需要再去深入研究相關(guān)的技術(shù),要的就是這個(gè)效果。

經(jīng)過(guò)這樣的6個(gè)步驟,你一定有信心把項(xiàng)目寫(xiě)到自己的簡(jiǎn)歷上。實(shí)際上,你可能會(huì)比真正有工作經(jīng)驗(yàn)的人還要表現(xiàn)的好。

我見(jiàn)過(guò)很多工作了幾年的人,都不能畫(huà)出自己的項(xiàng)目的架構(gòu)圖,對(duì)項(xiàng)目需求一知半解,問(wèn)到點(diǎn)深入的問(wèn)題就答不出來(lái)。如果你有實(shí)際的工作經(jīng)驗(yàn),也可以應(yīng)用上面的幾個(gè)步驟。

如果你覺(jué)得這個(gè)幾個(gè)步驟很好,但還是感覺(jué)不知道怎么下手,在接下里一兩周,我會(huì)選取一個(gè)開(kāi)源項(xiàng)目,帶你一步步實(shí)踐上面的6個(gè)步驟。請(qǐng)保持關(guān)注。

四、獲取團(tuán)隊(duì)合作經(jīng)驗(yàn)

經(jīng)過(guò)上面的6個(gè)步驟,你的項(xiàng)目經(jīng)驗(yàn)應(yīng)該沒(méi)問(wèn)題了,但是你沒(méi)有真正的在一個(gè)團(tuán)隊(duì)中工作過(guò),你沒(méi)有團(tuán)隊(duì)合作經(jīng)驗(yàn),這可能會(huì)是一個(gè)問(wèn)題。

下面分享的4個(gè)步驟幫你獲得團(tuán)隊(duì)合作經(jīng)驗(yàn):

  1. 找兩個(gè)同學(xué)或朋友一起研究同一個(gè)項(xiàng)目你們就是一個(gè)團(tuán)隊(duì),制定計(jì)劃,分配角色。也可以各自研究一個(gè)模塊,再互相交流。這個(gè)過(guò)程不僅僅是做項(xiàng)目,你在培養(yǎng)你的團(tuán)隊(duì)協(xié)作能力,溝通能力,甚至領(lǐng)導(dǎo)能力。以后的公司會(huì)有越來(lái)越多變成虛擬團(tuán)隊(duì),大家就是通過(guò)網(wǎng)上交流,互相協(xié)作。所以你和你同學(xué)成立的團(tuán)隊(duì),和公司的團(tuán)隊(duì)是一樣的。你獲得的也是貨真價(jià)實(shí)的團(tuán)隊(duì)合作經(jīng)驗(yàn)。
  2. 各自修改一個(gè)功能,通過(guò)git管理代碼你們共同討論,確定要增加什么功能。每個(gè)功能分配一個(gè)人開(kāi)發(fā)。你們共用同一個(gè)代碼庫(kù),通過(guò)git管理和協(xié)作代碼。原本你只能開(kāi)發(fā)一個(gè)功能,現(xiàn)在因?yàn)橛辛?個(gè)人,你可以給這個(gè)開(kāi)源項(xiàng)目增加3個(gè)功能了。你的項(xiàng)目經(jīng)驗(yàn)也更多了。
  3. 互相審查對(duì)方的代碼,互相測(cè)試對(duì)方的代碼團(tuán)隊(duì)中,代碼審查是重要的一個(gè)環(huán)節(jié)。你們3個(gè)人,互相審查對(duì)方的代碼,給對(duì)方提出意見(jiàn)。互相測(cè)試對(duì)方的代碼,給對(duì)方報(bào)bug。
  4. 互相審查技術(shù)構(gòu)架圖,互相提問(wèn)對(duì)方的問(wèn)題在6個(gè)步驟中的各項(xiàng)產(chǎn)物,你們都可以互相審閱。重要的是,你們可以模擬面試對(duì)方,用你覺(jué)得最難的問(wèn)題,去狠狠的考驗(yàn)對(duì)方。比面試官還要狠。

如果你很難找到合作伙伴,我創(chuàng)建了一個(gè)“項(xiàng)目實(shí)戰(zhàn)互助群”,也許這里你能找到你的合作伙伴。請(qǐng)?jiān)诠娞?hào)回復(fù)項(xiàng)目加入群聊。

五、后記

我知道,說(shuō)起來(lái)容易,做起來(lái)難!但是不做會(huì)更難。

如果下決心,嚴(yán)格執(zhí)行這些建議,項(xiàng)目經(jīng)驗(yàn)絕對(duì)不會(huì)成為你的障礙。

為了更好的幫助大家,在下面的一兩周我會(huì)推出相關(guān)的文章:

  • 不扯淡Java學(xué)習(xí)路線(xiàn)圖
  • 不扯淡Python學(xué)習(xí)路線(xiàn)圖
  • 不扯淡Java項(xiàng)目推薦和案例分析
  • 不扯淡Python項(xiàng)目推薦和案例分析

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }