0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

優(yōu)秀Android軟件工程師的定義

工程師人生 ? 來(lái)源:wv ? 作者:簡(jiǎn)書(shū)網(wǎng) ? 2019-09-25 15:25 ? 次閱讀

在過(guò)去五年中,我一直做Android相關(guān)的工作。在這期間,我與不同背景,不同水平的工程師進(jìn)行過(guò)合作。有些工程師有非常豐富的經(jīng)驗(yàn),有些是剛走出校園的應(yīng)屆生,它們擁有的只是學(xué)校學(xué)習(xí)到的知識(shí)并利用業(yè)余時(shí)間進(jìn)行App的開(kāi)發(fā)。還有些工程師甚至不是CS專業(yè),僅僅是自學(xué)的。在合作過(guò)程中,我目睹了不同類型工程師的工作交付內(nèi)容和方式。

所以,如果你是一個(gè)Android軟件工程師,可以嘗試讀一下這篇文章。首先,很多人誤認(rèn)為移動(dòng)開(kāi)發(fā)非常簡(jiǎn)單,移動(dòng)應(yīng)用就是把根據(jù)后端的設(shè)計(jì)把一些界面組合在一起。真的是這樣嗎,其實(shí)這與實(shí)際情況差的很遠(yuǎn)。實(shí)際上,如果你看一下PlayStore上的應(yīng)用,你就會(huì)發(fā)現(xiàn)app的質(zhì)量分布其實(shí)是一個(gè)高斯分布,低質(zhì)量的app很少,同時(shí)高質(zhì)量的app也很少。

這里我定義一下平庸的App是什么

在一個(gè)非?;镜膶用嫔希?一個(gè)平庸的app 與操作系統(tǒng)不能很好地兼容。首先,不遵循平臺(tái)要求的 設(shè)計(jì)語(yǔ)言,這會(huì)使得用戶感到困惑。第二,不考慮運(yùn)行環(huán)境(內(nèi)存、cpu、帶寬、電量)實(shí)際上是有限制的。第三,在某些條件下不能工作(比如在弱網(wǎng)環(huán)境下)。現(xiàn)在的大部分軟件都存在最后一個(gè)問(wèn)題。

簡(jiǎn)而言之,以上三點(diǎn)就是構(gòu)建一個(gè)好的移動(dòng)應(yīng)用的挑戰(zhàn)。此外,App需要與公司的基礎(chǔ)需求合理地整合,適應(yīng)不斷變化的業(yè)務(wù)需求。

所以如果我要尋找可以處理以上三個(gè)挑戰(zhàn)的軟件工程師,以下幾點(diǎn)是我關(guān)注的:

較好的軟件工程和技術(shù)水平 這包括:SOLID(面向?qū)ο笤O(shè)計(jì))原則,clean code,應(yīng)用架構(gòu)和測(cè)試。數(shù)據(jù)結(jié)構(gòu)和算法也很重要。但是我不在意面試者是否可以平衡二叉排序樹(shù)。我關(guān)注面試者是否理解基本的數(shù)據(jù)結(jié)構(gòu)(Lists, queues, trees, hash maps),是否理解 O 是什么,可以討論時(shí)間和空間的交換,就是最基本的技能。

熟悉java語(yǔ)言(如果面試者非常熟悉其他的語(yǔ)言,我也不會(huì)拒絕)。

理解并發(fā) 因?yàn)锳pp是響應(yīng)式的,所以不可以在主線程中執(zhí)行耗時(shí)任務(wù)。很多事情需要在其他線程執(zhí)行,如果面試者不能處理并發(fā)編程,他們需要在工作和項(xiàng)目中學(xué)習(xí)。

理解分布式系統(tǒng) 隨著移動(dòng)應(yīng)用變得越來(lái)越靈敏,需要設(shè)計(jì)為可以離線使用。這意味著如果網(wǎng)絡(luò)有故障,相同的用戶可能會(huì)面對(duì)不同的狀態(tài)。因此,面試者需要了解CAP(Consistency,Availability,Partition Tolerance theorem)理論和分布式系統(tǒng)的共識(shí)模型。

分析解決問(wèn)題的能力 面試者需要對(duì)事物的工作原理保持好奇,并且有大局觀。

較好的口頭和書(shū)面表達(dá)能力 在技術(shù)上,溝通交流非常重要。面試者清晰地表達(dá)自己的想法,同時(shí)合理的文檔說(shuō)明是非常重要的。其實(shí),是否擅長(zhǎng)寫(xiě)文檔一定程度上也代表了代碼能力。

理解當(dāng)前的技術(shù)環(huán)境和對(duì)設(shè)計(jì)與工程的影響

我并不擔(dān)心面試者是否對(duì)SDK本身理解多少。如果面試者理解以上的幾點(diǎn),即使他只是一個(gè)Android的用戶,也可以快速地學(xué)習(xí)。也就是說(shuō),面試者同時(shí)擁有好的CS背景,了解android生態(tài)環(huán)境,還要知道以下的一些基本概念:

可以畫(huà)出Android的基本架構(gòu)

可以描述在點(diǎn)擊Android studio的一個(gè)按鈕之后具體發(fā)生了什么邏輯

理解基本的Dalvik和ART 虛擬機(jī)

Android進(jìn)程間通信原理

app的沙箱機(jī)制以及為什么要用沙箱

權(quán)限系統(tǒng)(權(quán)限在底層是如果實(shí)現(xiàn)的)

進(jìn)程和應(yīng)用生命周期

還有一點(diǎn)是可以和面試者聊他擅長(zhǎng)的話題,如果他擅長(zhǎng)ui,就可以和他聊UI。

可以發(fā)現(xiàn)重要的是判斷面試者是否知道核心的基礎(chǔ)和概念,從而較好地處理分給他們的任務(wù)。一定不要雇傭只會(huì)使用一兩個(gè)library的員工。工程師不僅在必要時(shí)會(huì)使用library,而且可以在提供解決問(wèn)題的方法之前可以分析使用情景,預(yù)見(jiàn)可能的問(wèn)題。

再次強(qiáng)調(diào),一定不要雇傭只會(huì)使用一兩個(gè)library的工程師。

當(dāng)然,我這里描述的條件適用于senior 工程師。同樣也需要雇傭一些junior工程師。但是一定要控制好兩種工程師的比例。如果團(tuán)隊(duì)中有太多初級(jí)工程師,那么開(kāi)發(fā)過(guò)程非常艱難,需要修改一個(gè)接一個(gè)的線上問(wèn)題,直到可以代碼達(dá)到維護(hù)性和測(cè)試性良好的程度。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3943

    瀏覽量

    127803
  • 軟件工程師
    +關(guān)注

    關(guān)注

    8

    文章

    218

    瀏覽量

    21156
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Testin云測(cè)獲智能化軟件工程工作組優(yōu)秀單位榮譽(yù)

    隨著人工智能技術(shù)的深度應(yīng)用,大模型等AI技術(shù)在推動(dòng)軟件行業(yè)智能化進(jìn)程中的重要性日益凸顯。軟件工程,作為大模型、智能體等AI技術(shù)落地應(yīng)用的前沿領(lǐng)域,正加速推進(jìn)智能化轉(zhuǎn)型。在這場(chǎng)變革中,企業(yè)、科研機(jī)構(gòu)以及眾多行業(yè)專家紛紛投身其中,共同探索智能化
    的頭像 發(fā)表于 01-21 10:46 ?109次閱讀

    特斯拉招募軟件工程師強(qiáng)化無(wú)人駕駛與機(jī)器人遠(yuǎn)程操作

    近日,據(jù)外媒最新報(bào)道,特斯拉正緊鑼密鼓地招募軟件工程師團(tuán)隊(duì),旨在加強(qiáng)其無(wú)人駕駛出租車及Optimus機(jī)器人的遠(yuǎn)程操作能力。這一舉措標(biāo)志著特斯拉在推動(dòng)自動(dòng)駕駛與人工智能領(lǐng)域邁出了重要一步。 特斯拉此次
    的頭像 發(fā)表于 11-27 10:26 ?601次閱讀

    FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?

    ,還需要與軟件工程師、硬件工程師緊密合作,對(duì)整個(gè)系統(tǒng)進(jìn)行集成和測(cè)試。 總的來(lái)說(shuō),F(xiàn)PGA 算法工程師著重于算法優(yōu)化,F(xiàn)PGA 邏輯工程師專注于邏輯設(shè)計(jì),F(xiàn)PGA 原型驗(yàn)證
    發(fā)表于 09-23 18:26

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個(gè)充滿機(jī)遇和挑戰(zhàn)的領(lǐng)域里,如何提升自己顯得非常重要,它決定了你未來(lái)的發(fā)展方向和成就。接下來(lái),我們一起探討一下。 1.奠定扎實(shí)
    發(fā)表于 06-12 11:20

    索尼誠(chéng)邀軟件工程師參與PS免費(fèi)手游平臺(tái)設(shè)計(jì)

    據(jù)悉,近日,澳大利亞知名媒體TweakTown發(fā)現(xiàn),索尼互動(dòng)娛樂(lè)正在為其旗下的PlayStation Studios Mobile招募一名資深的軟件工程師,負(fù)責(zé)設(shè)計(jì)PlayStation的免費(fèi)手機(jī)游戲平臺(tái)。
    的頭像 發(fā)表于 05-23 17:08 ?769次閱讀

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    、機(jī)器人等。 定義和工作職責(zé) 嵌入式軟件工程師的主要職責(zé)包括但不限于:設(shè)計(jì)、開(kāi)發(fā)、測(cè)試和調(diào)試嵌入式軟件應(yīng)用程序,以滿足特定硬件和軟件要求。他們需要理解并掌握嵌入式系統(tǒng)的基本原理,熟悉相
    發(fā)表于 05-16 11:00

    大廠電子工程師常見(jiàn)面試題#電子工程師 #硬件工程師 #電路知識(shí) #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    Cognition發(fā)布首款A(yù)I軟件工程師Devin

    據(jù)報(bào)道,Cognition公司今日公布了其首款人工智能軟件工程師——Devin,掀起了打造軟件模式變革的序幕。該產(chǎn)品在SWE-bench代碼測(cè)驗(yàn)中展現(xiàn)出卓越表現(xiàn),甚至超過(guò)了部分頂級(jí)人類工程師的水準(zhǔn)。
    的頭像 發(fā)表于 03-13 10:57 ?651次閱讀