0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一名Android开发工程师的学习之路

工程师人生 来源:网络整理 作者:工程师吴畏 2018-08-03 09:37 次阅读

最近因为在学习一些新的东西,所以Android的东西没有怎么更新。趁着有些闲工夫,简单说说技术上的学习,也算是自己对这几年工作来的一个小结和经验吧。

希望这篇文章可以给那些在校的,亦或是才踏入工作没多久的程序员同伴们一些帮助。毕竟我自己也曾经止步不前,不知所措迷茫过。

英语

老实说,没有比英语性价比更高的,需要学习的东西了。靠着别人的翻译,或者机翻,终究不是办法的。笔者自己日语英语姑且算是熟练掌握的地步,但在初期直接看那些全英文的书籍,仍然会觉得头痛(谢谢HKUST虐我),但坚持下来就会发现其实计算机的英语还是有一个范围的,多看看熟悉起来,就会觉得并没有什么难,甚至比起很多翻译来说更容易看懂。

混迹GitHub就会发现国内的很多开发者英语上欠缺还是很大的,尤其是一些description和readme直接就上中文的。即便你英语渣,机翻也行啊。毕竟是计算机社区,英语才是通用语言。用中文去一些国外开发者的仓库里提issue或者回复也是一种很粗鲁的行为。

如果让我说一种对技术帮助做大的语言,那必然就是英语。有了英语,才能真正地独立学习。

Google

问小白问题之前,你Google过吗?如果让我看到一个开发动不动去搜百度,那我估计会武断地认定他很菜。其实Google是我们最好的老师,只要能正确把握问题的关键字,几乎没有找不到的答案,大部分会在StackOverflow上,其他散落在GitHub、博客等等地方。

如果你要找的知识实在冷门,比如react native的一些深入用法,android上的视频so阉割这种,那恐怕只能找找做这块的朋友或者自己研究了,国内有一些好心的开发者或许会分享在自己的博客。

至于科学上网,这个话题相关的技术太多了,请自行找方法,VPN也好,SS也好,都很简单,相对的投入和产出对程序员来说性价比是很高的。实在不想花钱的去用AWS的免费云服务器搭SS也行。

实践

看是没有用的。比如看一篇关于Hybrid App原理的文章,或许它写得很好,但其实就算看完了,让我自己去写一个,或者讲讲怎么去做一个我们应用的版本,Android/iOS端通用的方案,最后也是支支吾吾说的不知所以。最后还是要去实践做一些Hybrid页面才能真正掌握,能说清楚这里面的原理和应用场景。

纸上谈兵终觉浅。

警惕体力劳动

当你的工作成为一种体力劳动,而自己无法从中获得新的体验和知识的时候,需要警惕究竟发生了什么。

想得太少

对做的内容停留在完成的阶段,而不对更好的方案,实现细节去思考更多,比如用了某个API,会不会去仔细看看其究竟是怎么做的。或许你知道Handler,Looper,那你知不知道主线程的一切,四大组件的生命周期,各种View的触摸事件都是消息驱动,在mainLooper里面进行处理的呢?

工作内容重复

当Focus在一块上太久之后,难免会碰到这种瓶颈,这时候可以看看是不是能换一块做,比如做做缓存、Hybrid、启动优化、视频等等。可以做的领域很多,实在发现兴趣不在此,换着做后台或者前端也行。倘若因为个人原因,比如公司不让换或者可能工资会低很多,挤一挤时间在side project里面搞搞也可以,只是有没有心的问题罢了。

我面试过一些做Android 5-6年的程序员,但大部分真的连一些优秀的2-3年经验的开发者都远远不如,问设计不懂设计,问流行的开源项目回答就是“好像听说过”。我不希望我认识的开发者以后变成这样的人。但你若是总是重复劳动,难免像这样1年的工作经验重复了5年。

在额外学习的时候,更多关注的应该是不同的地方,而不是说这个学Python,下个月去学Go,想想语言的差异性在哪里,自己试试看做一些项目,培养全栈工程师的底子。还在念大学的时候,我学了C、C++JavaNode.js、Python、Ruby、PHP、HTML、Perl、SQL/Redis/HBase等等等等,但对每个的理解都不够深刻,现在想来那时候是做错了的,思考的都不够深刻,也直到这一两年,我才足够明白这个错误。

你应该有自己的专长,但也要能从全局的角度思考问题,一个不懂前端的后端老大会导致前端过重不灵活,反正只要自己这儿的模块清晰就好,一个不懂前端的前端老大也会让下面的人不要抱怨,做出来就好。

公司问题

发生在一些项目经理逼得特别紧,老大又比较无能的地方。项目经理为了向上面交待,对工程师说“这个进度能不能再压一下呀”,或者干脆直接不听工程师的意见强行缩短工期,导致没有时间去深入学习。老大明知这种情况,却睁一只眼闭一只眼。这种公司,还是离开为妙。

一个合格的leader,或者说mentor应该做些什么?至少从我的角度来看,尽管对公司他需要对项目负责,但对团队内的开发者,他更应该做的是观察和指导,看清楚那些团队毒瘤(不做正经事,得过且过,假加班,抢功劳推脱责任,等等),营造团队氛围,而不是一味Push催进度和表现自己。

记录和总结

写博客是为了什么?

至少对我来说,写下的东西更多是对自己的一个总结和交待。如果我能写下来,至少能证明我有信心自己确实是这么去理解的,没有去坑人。另外,姑且也算是一种成长的足迹吧,偶尔自己还会去看看笔记。

分享也是目的之一,希望大家能互相进步,这样才能促进发展。

写博客也好,写一些笔记也好,点点滴滴也是对自己的一种整理。

问自己

想清楚自己要的究竟是什么。

做全还是钻?想做一个超强并发量的后台?想黑别人的系统?想做出精准有效的推荐算法?还是想做别人能实际用到的产品

笔者正是因为想要的是后者,所以成为了Android开发(为什么没有选iOS,大约是Android的开放性吸引了我)。而现在,因为发现自己欠缺的(对前端驾轻就熟,大部分的事情对我来说只是体力活,而自己想承担一个完整的项目却又不行),所以又重新拾起了Node.js,看起了ES6,思考设计和产品的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3886

    浏览量

    126127
  • Google
    +关注

    关注

    5

    文章

    1735

    浏览量

    56963
  • 工程师
    +关注

    关注

    59

    文章

    1557

    浏览量

    67866
收藏 人收藏

    评论

    相关推荐

    嵌入式软件工程师如何提升自己?

    相关的实验室项目或参加开源项目以积累宝贵的项目经验。 4.不断学习与成长 嵌入式软件领域的技术更新速度非常快,因此,作为一名嵌入式软件工程师,需要不断学习与成长,保持对新技术的敏感性和
    发表于 06-12 11:20

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之。成为一名嵌入式C语言高手需要长时间的
    发表于 04-07 16:03

    单片机如何通过代码控制硬件:一名工程师的分享

    今天跟大家聊聊单片机是怎样通过代码来操控硬件的。作为一名单片机工程师,我们平时的工作就像是给单片机编写“指令集”,让它按照我们的意图去驱动各种硬件设备。
    的头像 发表于 03-06 14:46 798次阅读
    单片机如何通过代码控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程师</b>的分享

    鸿蒙Harmony是如何影响Android工程师的呢?

    迅猛,目前已经有包括社交、金融、影音、游戏、资讯、食品等多个领域的企业以及开发者加入到鸿蒙的生态建设中,可以说是从日常工作生活的各个领域全面展开。 为什么会影响Android开发工程师
    发表于 01-14 22:14

    一名嵌入式工程师的涨薪经历

    下面是位嵌入式工程师的涨薪经历,希望可以帮助到你,帮到其他的在校学生。   阶段 1 大到大三这个阶段我与大多数学生相同:   学习
    的头像 发表于 01-05 08:39 228次阅读

    优秀电源工程师的必备技能大揭秘!

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有位电源工程师会错过让自己变得更优秀的机会。作为
    的头像 发表于 12-19 08:23 1006次阅读
    优秀电源<b class='flag-5'>工程师</b>的必备技能大揭秘!

    如何成为一名优秀的嵌入式工程师

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第步,首先是C语言。 1.理解内存管理:C语言不同于高级语言,它不会自动管理内存。因此,你需要理解并掌握如何使用malloc()、fre
    发表于 11-07 15:36

    【华秋DFM】助力硬件工程师高效开发

    硬件开发的工作流程般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB板生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件
    的头像 发表于 10-26 09:40 298次阅读
    【华秋DFM】助力硬件<b class='flag-5'>工程师</b>高效<b class='flag-5'>开发</b>

    【社区之星】彭仲维:扎实的基本功与时间的沉淀才是工程师成功的关键!

    入了电子行业。 社区小助手:作为一名从业多年的工程师,能否分享你的工作经历和些比较成功的工程项目或优秀作品?开发这个产品的整个过程,有什么
    发表于 10-13 14:15

    《电子工程师必备——九大系统电路识图宝典》+附录5学习方法

    jf_39110170 网名“还没吃饭”阅读《电子工程师必备 九大系统电路识图宝典第2版》附录5的读后感:探索科学学习方法 作为一名对电子技术学科充满热情的嵌入式工程师,你是否曾因
    发表于 10-06 23:25

    电源工程师常用的几个典型电路分享

    具有电源知识水平的工程师来完成设计和开发。作为一名合格的电源工程师平时工作经验的积累很重要,但同时也应该提高理论水平,通过积累几个常用的电源电路,说不定下次就能用上,还是
    发表于 09-20 07:59

    深度学习算法工程师是做什么

    深度学习算法工程师是做什么 深度学习算法工程师种高级技术人才,是数据科学中创新的推动者,也是实现人工智能应用的重要人才。他们致力于
    的头像 发表于 08-17 16:03 950次阅读

    人工智能工程师就业如何

    如果你正在考虑成为一名人工智能工程师,那么选择个合适的专业至关重要。许多人工智能工程师在大学里选择了计算机科学或数学,但是在实际应用中,他们可能会使用其他学科,如物理、语言学、生物学
    的头像 发表于 08-13 10:03 612次阅读

    数字工程师需要掌握的射频知识

    做为一名高速数字电路设计或测试的工程师,仅仅借助于传统的时域方法去对信号和传输通道进行研究会面临很多制约。数字工程师需要掌握哪些射频知识呢?让我们分两期带大家去了解下。
    发表于 07-15 09:53 1298次阅读
    数字<b class='flag-5'>工程师</b>需要掌握的射频知识