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

熱線電話:13121318867

登錄
首頁精彩閱讀我如何在1年內(nèi)轉(zhuǎn)行成了一名軟件工程師
我如何在1年內(nèi)轉(zhuǎn)行成了一名軟件工程師
2018-12-05
收藏

作者 | Amanda Bullington
翻譯 | Mika
本文為 CDA 數(shù)據(jù)分析師原創(chuàng)作品,轉(zhuǎn)載需授權(quán)

 

在決定轉(zhuǎn)行前,我是科技公司的一名營銷人員。我嘗試過很多類型的營銷工作,具備活動、公關(guān)、搜索引擎優(yōu)化、內(nèi)容創(chuàng)作、數(shù)字廣告、郵件營銷,但從未找到最適合自己的。

我的上家公司是個人理財?shù)膭?chuàng)業(yè)公司,品牌知名度很高。公司的座右銘是“內(nèi)容為王”。與大多數(shù)科技公司不同,這家公司里有大量的編輯和記者,只有少數(shù)軟件工程師。

在我入職一年后,公司決定改變策略。單純靠內(nèi)容已經(jīng)不夠了,許多個人理財初創(chuàng)公司在當(dāng)年都推出了app,為了不被落在后面,我所在的公司開始減少內(nèi)容方面的業(yè)務(wù),同時迅速招聘產(chǎn)品人員、工程師和設(shè)計師。

在這一刻我意識到,是時候轉(zhuǎn)行了。在本文中,我將介紹我是如何轉(zhuǎn)行為一名軟件工程師的。下面讓我們開始吧。


第1步:沉浸式課程

我開始找軟件工程方面的沉浸式課程。App Academy和Hack Reactor都提供了一些免費(fèi)的入門課程,幫助感興趣的人群入門。Hackbright也有針對女性開展一些編程課程。

最終,我選擇了Hack Reactor,它提供了為期一個月的結(jié)構(gòu)化學(xué)習(xí)計劃(SSP)課程。課程設(shè)置很實用,我認(rèn)識的三名學(xué)員在完成課程后都獲得了軟件工程方面的工作。


第2步:沉浸式編程

決定選擇Hack Reactor,之后我需要為SSP做準(zhǔn)備。為此,我完成了Udacity上JavaScript的入門課程以及其他一些JavaScript在線課程。

針對SSP和Hack Reactor的沉浸式項目,我共花了四個月的時間學(xué)習(xí)編程,每周學(xué)習(xí)6天,每天12小時以上。這段時間,我不僅提高了解決問題的能力,還提高了對JavaScript的理解,而且還學(xué)習(xí)了前端和后端框架。



第3步:提高求職技能

在學(xué)習(xí)在線課程的過程中,我學(xué)習(xí)了很多概念,其中最主要的是算法和數(shù)據(jù)結(jié)構(gòu)。

沉浸式課程中涵蓋了工程師在工作中所需的技能。針對面試的練習(xí)時,掌握算法和數(shù)據(jù)結(jié)構(gòu)是關(guān)鍵。

在提高面試技能時,我用到了以下資源:

* CodePath :為期8周的課程,涵蓋從數(shù)據(jù)結(jié)構(gòu)到系統(tǒng)設(shè)計的所有最常見的面試問題。

* InterviewCake:針對算法思維中最常見模式的指南

* LeetCode :海量練習(xí)題

* Grokking the System Design Interview: 解釋如何權(quán)衡常見的系統(tǒng)設(shè)計問題,例如如何設(shè)計Instagram


第4步:咨詢經(jīng)驗豐富的工程師

我向許多資深工程師詢問了求職建議。以下是一些最有用的建議:

* 邁出第一步:每個工程師都是一步步成長起來的。許多工程師在找到心儀的工作之前,都經(jīng)過了不斷的嘗試和努力。如果你沒有馬上找到合適的工作,也不要泄氣。

* 重寫簡歷:如果你是剛?cè)胄械墓こ處?,你的簡歷可能有些稚嫩。關(guān)注你所做的內(nèi)容和技術(shù)決策,而不是實現(xiàn)了什么。

* 尋找指導(dǎo)機(jī)會:關(guān)注擁有30多名工程師的團(tuán)隊,因為這將讓你很快提升編程技能,并獲得指導(dǎo)機(jī)會。

* 進(jìn)行個人項目:這將展示你在求職過程中對軟件工程的熱情,讓你在面試中脫穎而出。


第5步:忽略無益的建議

我找工作的時間是2018年的夏天,當(dāng)時我收到了很多善意但無益的建議。有些來自招聘人員,工程師同事和一些朋友。以下是其中一些:

* 過去幾年,初級工程師的市場需求已經(jīng)放緩。中型公司只招高級職位,并暫緩招聘初級職位。

* 過去幾年,不僅市場過度飽和,而且培訓(xùn)機(jī)構(gòu)學(xué)員的質(zhì)量也有所下降,很難找工作。

* 你是很有能力的求職者,但我們公司沒有足夠的資源來培養(yǎng)你。請保持聯(lián)系,我們很樂意等你有更多經(jīng)驗時再面試你。

* 在暑假期間找工作很難,你還需要與計算機(jī)科學(xué)專業(yè)的學(xué)生競爭實習(xí)機(jī)會。請在秋季有更多職位空缺時再試試。

* 秋招形勢也很嚴(yán)峻,隨著公司接近第四季度,招聘將放緩。如果你今年夏天找不到工作,你就得等到明年了。

* 你可以試著找找產(chǎn)品經(jīng)理的實習(xí)機(jī)會。等你有一定經(jīng)驗了,也許可以轉(zhuǎn)行到軟件工程。

我確信很多工程師都聽過類似的建議,關(guān)鍵是要學(xué)會忽視它們并保持專注,否則很容易分心。


第6步:制定學(xué)習(xí)計劃

在學(xué)習(xí)Hack Reactor之后,我花了很多時間復(fù)習(xí)技術(shù)概念,為面試做準(zhǔn)備。以下是我大致的學(xué)習(xí)計劃:

* 學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)
* 學(xué)習(xí)系統(tǒng)設(shè)計
* 完成一次黑客馬拉松
* 建立個人作品集
* 記錄下電話面試和現(xiàn)場面試的問題
* 與他人一起練習(xí)


第7步:充分利用社交網(wǎng)絡(luò)

讓招聘人員更容易找到你。以下幾個平臺都是不錯的選擇:

* LinkedIn
* Hired
* AngelList
* GitHub

向未來的雇主展示你的工作能力非常重要。項目鏈接,文檔和清晰的代碼更容易吸引招聘人員。


第8步:記住,這是數(shù)字游戲

我經(jīng)常聽到工程師說“這只是數(shù)字游戲”,以下是我的一些數(shù)字:


投簡歷:156次 共26小時
電話面試:41次 共20.5小時
技術(shù)面試:11次 共11小時
編程挑戰(zhàn):10個 共80小時
現(xiàn)場面試:6次 共28小時
總計:165.6小時 約6.9天


了解數(shù)字能幫助你進(jìn)行分析,例如:

* 所投簡歷的26%轉(zhuǎn)化為電話面試

* 51%的電話面試將轉(zhuǎn)化為技術(shù)面試或任務(wù)

* 28%的技術(shù)面試將轉(zhuǎn)化為現(xiàn)場面試

根據(jù)這些數(shù)據(jù)我發(fā)現(xiàn),我的簡歷能夠引起招聘人員的興趣,在最初的電話面試中取得了成功,但在展示技術(shù)方面我有些薄弱。

因此我花更多的時間去提高技術(shù)能力,目標(biāo)是提高從技術(shù)面試到現(xiàn)場面試的轉(zhuǎn)換率。


第9步:搞定現(xiàn)場面試

現(xiàn)場面試涵蓋的內(nèi)容很廣,持續(xù)2到6個小時不等。我參加的現(xiàn)場面試中主要涵蓋了以下內(nèi)容:

* 算法
* 系統(tǒng)設(shè)計
* 使用公司的API開發(fā)應(yīng)用程序
* 關(guān)于我的編程語言(JavaScript)的問題
* 關(guān)于HTML / CSS的問題
* 關(guān)于前端框架的問題
* 關(guān)于各種數(shù)據(jù)庫的問題(SQL / noSQL
* 解釋你創(chuàng)建的GitHub項目,你做了哪些權(quán)衡,以及將來會采取哪些不同的做法

在每次技術(shù)面試和現(xiàn)場面試后,我會記下當(dāng)中的問題,這構(gòu)成了我之后面試的學(xué)習(xí)指南。


第10步:進(jìn)行職業(yè)規(guī)劃

你認(rèn)為5年后你的職業(yè)發(fā)展會是怎樣的?

在面試中我常常會被問到上面這個問題。

關(guān)于職業(yè)發(fā)展我有好幾種選擇,比如web端、移動端、網(wǎng)站可靠性和DevOps等等。

同時還有后端、前端和全棧的選擇。有時這些角色之間的界限很明顯,有時卻模糊不清。在學(xué)習(xí)和搜索的過程,雖然我不知道只會會選哪條路,但有些工作我更喜歡做,而有些卻不喜歡做。

比如,我不喜歡涉及到網(wǎng)站像素的問題,但我對移動端設(shè)計很感興趣;設(shè)計架構(gòu)和建立數(shù)據(jù)庫有點乏味,但我喜歡獲取大量數(shù)據(jù)并對其進(jìn)行操作或可視化。



一些建議

* 編程挑戰(zhàn)是學(xué)習(xí)機(jī)會

我進(jìn)行過很多編程挑戰(zhàn),但最終因為效果不好而沒有提交。也有一些未完成但提交了的。不過在進(jìn)行這些挑戰(zhàn)中,我學(xué)習(xí)到了很多,也意識到自己的不足。

* 坦然接受拒絕

每次技術(shù)面試和現(xiàn)場面試都是如此。被拒絕是很正常的,起初我會感到自我懷疑,但慢慢地我開始擺正心態(tài),并從中學(xué)到了很多東西。

* 尋找導(dǎo)師

我很幸運(yùn),在我參加面試過程中有導(dǎo)師的幫助。在求職的三個月中,導(dǎo)師每周會跟我交樓,詢問我求職情況以及面臨的困難。


結(jié)語

轉(zhuǎn)行比我想象的要困難得多。

成為一名工程師需要花費(fèi)很多時間。這意味著我要擴(kuò)大專業(yè)人們,坦然面對學(xué)習(xí)中的困難,忽視所有的反對者。

在學(xué)習(xí)中,我需要找到適合自己的學(xué)習(xí)資源。不斷參與新的項目,研究新算法。

這些努力值得嗎?絕對的。

我很高興地說我找到了自己心儀的工作,并可以繼續(xù)學(xué)習(xí)和成長。最重要的是,我在工作中獲得了信心,不斷充實和提升自己。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

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

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } 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)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".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 = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+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); }