主頁 > 軟體設計 > 誰能想到,Android外包作業三年,能入職某大型互聯網公司

誰能想到,Android外包作業三年,能入職某大型互聯網公司

2020-09-17 21:18:22 軟體設計

誰能想到,作業三年的我,后來能入職某大型互聯網公司,

我是怎么入職大廠的?

剛畢業那年,我以外包身份進入某公司,那個時候幾乎每一天都很焦慮,大家技術能力沒差太多,為什么我是外包身份?

后來辭職,**去了一家不到20人的創業公司,擔任Android技術人員,**當時還挺滿足現狀的,畢竟壓力不大,薪資也不錯,

有一次和前同事聚會,和幾個在BAT的同學聊到技術,發現自己在創業公司這幾年,完全是吃老本的狀態,一直在純輸出,創業公司的業務發展很慢,不管是管理還是技術都很受限制,

**然后我就針對自己的一些弱項,刻意輸入一些東西,達到提升技能效果,**慶幸年紀還不是很大,學習能力比較強,又通過一位前同事的引薦,就進入了現在的公司,并且一路成長,薪資基本上可以碾壓同齡人了,這期間我一直都保持著對技術誠懇學習的態度,

回顧自己做技術的3年,總結一句話就是:

打破個人局限性,保持刻意學習,輸入與輸出并行,才有進入大廠的可能,

關于如何學習?

如今技術的發展非常快,程式員怎么跟上?很多人會問我是怎么“一路逆襲”的,后來發現剛畢業的新人都有普遍的問題:作業那么忙,根本沒時間學習,

確實如此,互聯網行業的作業節奏快,強度高,下班又晚,但如果你就這么下去,確實是又忙又累之后,還在原地焦慮,有針對性的瞄準自己要提升的技術專案,系統性地學習,才是關鍵,

這不趕上金九銀十,最近就跟我的朋友技術大牛交流了一下,于是就有了這篇文章,

作業三年多了,做技術不能只顧埋頭搬磚,也要定期回顧,思考未來,不要讓自己成為那種一年經驗用了十年的開發者,這點要時刻提醒自己,

作業三年多,很多有能力的小伙伴都離職了,去百度搞云計算的,去阿里搞AI的,去大疆的,去美團的…對自己有觸動嗎?那是肯定,沒有才是假的,但是自己卻在舒適區里天天按部就班的過著,績效薪水都還不錯,但是技術能力呢?本來就不高,還遇到提高瓶頸了,囧~ 反觀周圍的老同事,好多搞管理了,帶版本管專案,天天拉通對齊端到端… 既然想走技術路線,就該好好想下作業后如何有效的學習了,

作業中積累的局限

從自己的作業談起,三年多Android開發,第一年識訓最多,作業需要的編程方面技能補齊后,就可以很好的應對業務需求的開發了,「作業后,你只需要比大家多努力10%,回報則勝過50%」,親身體會真是一點不假,

作業后,稍微深入點知識的學習都只能靠自己,觀察周圍同事,對技術很有熱情的并不是很多,除了一些專家大牛,很多老員工單就技術能力而言跟入職兩三年新員工的技術能力沒什么差距,我思考了下原因,大概如下:

  • 作業所用到的技術知識有限,很多人也沒有去深入了解背后的原理;
  • 業務代碼對演算法的鍛煉不太夠,時間長了演算法能力會減弱;
  • 沒有那么多特性會給你架構設計的機會,并且架構都是專家定好的;
  • 不去主動拓寬知識面,去學習新東西,技術堆疊長期不更新;
  • 基礎知識掌握的不夠透徹與深入,畢竟經典是需要反復研讀理解的;

我作業這三年覺得自己識訓的最有用的經驗就是:問題定位能力,提前識別坑,快速填好坑,當然,也見識了一些優秀架構的設計,但也僅限于見識與使用,

作業外有效的學習

先說說我自己平時作業之外的學習,基本就是下面的三項:

  • 看看書和網上的文章:作業相關、興趣愛好、技術熱點;
  • 動手實踐并總結博客:類似課后題和課程設計,實踐總結;
  • 刷刷LeetCode演算法題:提升演算法能力和寫代碼的手感;

自己的學習個人認為還是有效的,學習成長自己是能體會的到的,并且作業也做的不錯,只要稍微比同事多努力一點,就能有很多回報,作業后真的是這樣,但是呢,自己的水平自己清楚,并且自己的努力程度遠遠不夠,看一個大牛的心得《如何成為一位技術專家》:

如何成為一個技術專家?答案其實很簡單,努力學習,

從學生時代一路萬馬奔騰而來,什么時候努力的效果最差,高三的時候,因為大家都是如此努力,作業后,你只需要比大家多努力10%,回報則勝過50%,不止在技術上,其他領域也是如此,

《最牛B的編碼套路》一文提到了技術上的訓練方法:預期留出時間,集中鍛煉,留出技術梯度,時刻關注自己有完成目標,到達瓶頸,

程式員最重要的素質是“不斷努力學習”,要不斷地挑戰自身能力之外的東西,運動愛好者們經年的跑步鍛煉,可是仍然跑不過劉翔,業余象棋看上幾千盤,仍可能被一個初出茅廬的棋院學生殺個大敗,

不斷努力學習,不斷訓練,在于發現短板,并有針對性的提高,

套路一文提到了很多訓練方法,其實我很贊同最后的兩個方法:

1. 寫博客;2. 參與開源專案,

關于寫博客,牛人們是非重點不寫,自己則沒必要非得高大上,還要解釋一下,個人感覺剛開始寫博客則是要養成定時習慣,有什么寫什么,蝦米再小也是肉,這個月不寫,下個月要補上,當然中間的區別是,現在我是寫給自己看的,牛人們是傳播知識,

參照大牛的文章反觀自己:開源專案沒參與過,這點自己有待提高,

對于寫博客我比較認同大牛的看法,寫博客也就是記錄總結下自己學習筆記,方便自己回顧查看,沒必要想著多高大上,自己也就一水平普通的程式員記錄點東西而已,

之前在知乎看過一個問題,是關于微軟一員工和Facebook一員工PK的,覺得很有意思,我很欣賞里面一個回答,摘錄部分:

老鄉,江漢臣,他在一個回答里說自己得清華特獎的經歷是”下課做很多題目,然后提前看一些考研的題目,然后就超過了同班的同學,可以去幫助他們”,體會一下,特獎誒,清華誒,課下不應該去讀普林斯頓數學講義實作突飛猛進么,考研試題什么回事,太low了吧,清華peer pressure這么弱的么,實際上這一點都不low,這叫”祛魅”,這叫”平實”,你看ZB就從來不說自己是怎么學習的,他說自己是天才嘛,可能用的是記憶面包,所以我們快來膜拜他,

作者要表達的是什么?大牛靠的也是科學的方法和踏實的努力,

吹捧神化之類的真的也沒必,不盲目崇拜,不妄自菲薄,踏踏實實學習,博客寫的東西簡單不low,LeetCode題目做不出來也沒啥,靜下心來學習就是了,

天才是極少數,大部分牛人還是厚積薄發一步步積累出來的,靠的還是樸實科學的方法,再加上多一些勤奮,

在關于LeetCode刷題難不難時,很多北美FLAG員工也現身說法了,初期都會難,練的多了就好了,自己知道的讀書時的大神,作業后的大牛同事,靠的都是平時踏實的努力,

關于LeetCode刷題

單獨把刷題拿出來說,是因為刷題真的很重要,而且很有用,

作為一名developer,最本質最核心的作業就是:用代碼把功能特性給實作,能夠使用合適的演算法,快速寫出盡量bug-free的代碼!

作業三年來,我LeetCode其實沒刷多少,100道都還差的遠,真是慚愧,不過公司內部的OJ刷了100多道,因為是轉正要求,相比LeetCode水了點,囧~~ ,

雖然自己OJ刷的不多,但是仍然可以明顯感覺到刷題讓寫代碼的手感提高不少,也可能是因為自己當時太菜,再次囧~~,

定期刷題,是做的針對性訓練,這個是一般專案給不了的,

關于學習的時間安排

技術的學習,不像是背單詞,可以零散著來,需要有完整的大塊時間集中注意力去學,尤其是啃硬骨頭時,很多難點都是靠長時間專注思考突破的,

對于技術的學習,要做到長時間的專注,如果不能做到長時間的專注,那么學習的效果就要大打折扣了,知乎上一個問題:如何做到長時間(4 個小時以上)精神專注?,里面有個回答我非常贊同,

PS: 贊同來自己的經歷和親身的體會,而不是因為這個答案本身的高票,摘錄部分:

我聽聞番茄作業法已久,但是我自己從來沒用過,我很好奇的是,無數的人贊同他的時候自己是否用過,

對這個問題我有很多疑問,要是打斷的時候正好是我精力最集中的時候,怎么辦?不停地這樣中斷,每一次中斷我就要保存一次現在看到哪兒了,然后下一次開始的時候我再去進入狀態,接上思維,這個開銷可以忽略不計嗎?

還有不停的設定時間提醒自己,不嫌麻煩嗎?

PS: 這個我用過,發現不適合技術學習和編程練習,每次時間太短!讓你的注意力聚焦在你所做的事情上,你的處理速度趨近于你的接收速度,你的思維跟上你所做的事情的發展,然后保持,就OK了,

你就很難兩小時精神專注于教科書上,首先,你就不一定感興趣或者不想看教科書的內容,注意力就集中不了,其次就算你集中注意力開始看,你的處理速度是跟不上你的接受速度的,因為教科書的知識密度大,一頁書包含了可能很多的資訊,你大腦處理不過來,

PS: 學有點難度的新東西,我一般適當放慢速度,筆記演算,反復看!過快是沒有效果的,還容易注意力降低走神懈怠,

舉個閱讀的例子,閱讀長篇英文的時候,大家是不是會有經常看著看著就不知道看到哪兒去了的經歷?這時你的大腦就不是在積極主動作業,而是被動作業的,事實是,如果你一邊讀一邊想這段文字的他在表達什么,和上一段是什么聯系,和文章主題是什么聯系,說完這一段,下一段你預期他應該講什么,到了下一段是否符合你的預期,如果符合的話你可以加快處理速度,如果不符合你就去修正你的預期,

這樣去閱讀的話,那么你會發現你就不容易走神了,保持運動、充足睡眠,

保持運動是為了睡眠質量高,身體健康,醒著的時候精神狀態好,

精神狀態好,你的機體都能發揮正常的功能,大腦能夠正常處理它接受到的資訊,眼睛能夠正常地閱讀,

要對自己誠實

認清自己的不足,坦誠面對不逃避,自己過得好不好,作業開不開心,能力有沒有提高,技術怎么樣,自己最清楚,千萬不要自欺欺人,混混沌沌的過日子,一個前Google 程式員的文章寫得很好:從對自己誠實開始,摘錄部分:

現在回看以前自己的博客,悲哀的發現自己已遠沒有當年對技術的熱情,或是對人生目標的清晰——上學時自己的想法很單純——寫最好的程式,然后以此作為基石找到一份好作業,

現在看這個目標是實作了:找到了一個對應屆生而言還不錯的作業,自己還寫了一篇現在看起來十分可笑的心路歷程,當時那篇文章被各種轉發,自己的虛榮心也得到了極大滿足,

可笑的是,我在 Google 里作業不順,并沒有自己想辦法改變現狀,而是在作業以外的地方尋找慰藉,以填補自己的虛榮心,在這段時間,我創建了自己的獨立博客,并花費大量業余時間撰寫了諸如 Sublime 教程和程式員必讀書單之類的質量長文,這些文章的反響很好,我因為這些文章也成為了讀者口中的大牛,

虛榮心再次得到滿足,然而與網路的“成名”相比,自己在現實作業中毫無進展,自己在 Google 3 年始終停留在入門級別(一般來說,正常表現一年半到兩年就可以升一級),盡管有換組和專案被砍這些因素,但無可否認,自己前三年的作業(也許是最寶貴的三年),徹底的 doomed,

在 Google 時有不少人通過我的博客找到我,想和我約飯聊天(他們可能認為我真的是大牛吧),都被我自己的偷偷的躲掉了——我并不想讓他們看到現實中的自己,

2017 這一年中,我在 FB 寫了不少東西,也結識了不少新的朋友,讀了一些書,也獲得了一些新的技能(開車,攝影,舉重),

最大的識訓,是終于可以誠實的面對自己,不會因為自己在線上和線下的不一致而產生自我認知矛盾,

與其在網路上打扮成自己希望別人所看到的自己,不如對自己誠實,在現實中成為自己希望的自己,

希望這篇文章可以終結我自己的浮夸,終結我 5 年前寫的那篇文章的“詛咒”,Stay hungry, stay foolish, and be honest to myself,這是 18 年的第一篇文章,但不會是最后一篇,希望我可以通過寫作,鍛煉自己的思考能力,總結自己的識訓,清晰自己的目標,讓自己對自己更誠實,

最后

真情實感的故事,總能引起共鳴,

想成為自己期望成為的自己,首先要坦誠面對真實的自己,改變不是一蹴而就,而是從每天的一點一滴做起,謹以此文督促自己的改變!

越努力、越幸運,如果你不是官二代、富二代、紅二代,那么請記住:

勤奮才是改變你命運的唯一捷徑

我相信喬布斯說的:

只有那些瘋狂到認為自己可以改變世界的人才能真正地改變世界,面對壓力,我可以挑燈夜戰、不眠不休;面對困難,我愿意迎難而上、永不退縮,

為此,我分享一份大佬收錄整理的Android學習PDF+架構視頻+原始碼筆記,高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料

這些都是我現在閑暇還會反復翻閱的精品資料,里面對近幾年的大廠面試高頻知識點都有詳細的講解,相信可以有效的幫助大家掌握知識、理解原理,

當然你也可以拿去查漏補缺,提升自身的競爭力,

相信它會給大家帶來很多識訓,如果你有需要的話,可以點擊獲取!

喜歡本文的話,不妨順手給我點個贊、評論區留言或者轉發支持一下唄~

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/68557.html

標籤:其他

上一篇:SQL Server2019 Express下載安裝教程-——孟師傅

下一篇:生活雜談-最美的青春

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more