程序员

如何做一名有高度的移动开发工程师?10年大厂Android开发者经验总结

。_饼干妹妹 提交于 2019-12-24 18:26:43
2019年对应程序员来说,是一个多灾的年份,很多公司都进行了不同比例的优化和裁员。最近是找工作的高峰期,从很多同学的面试经历来看,现在只会单纯写业务代码的人找工作特别难,比如很多大厂的面试官都会针对性能优化的细节,考察你是否真正搞懂底层的机制和原理。环境的要求越来越高,所以我们也要积极转变,踏踏实实的学习。 如何成为一名 Android 开发高手 ,是很多Android开发人员的终极理想。作为一名Android开发工程师,除了需要掌握基础的Android知识,能够熟悉的进行应用开发之外,了解Android 系统层、Linux 内核层再到硬件层的优化路径,也是想要成为 Android 开发高手的必备技能。 之前,我写了一篇《 2019总结:Android 寒冬难前行?—我的进阶之路,送给正在迷茫的你! 》的文章,文章中将Android开发进行了初级、中级、高级和专家的划分,当时思考的是层层递进,并不是说掌握某项技能你就是专家了。 做一名有高度的工程师 作为一名技术工程师,不管你是从事前端开发还是后端开发,T 型技术人才理论都比较适合,所谓的“T”指的是横向和纵向两个维度。纵向解决的是深度问题,横向解决的是广度问题。并且我比较推崇先有深度再有广度,因为技术都是一通百通的。 作为一个有高度的移动开发工程师,需要能纵向深入,也要能横向全面地思考每一个问题。比如说

你距离月薪30k的iOS程序员,只差了一个完善的职业规划

牧云@^-^@ 提交于 2019-12-24 16:02:56
前言: 一直以来程序员这一职业都给人高薪资的印象,近年来随着互联网行业的快速发展,程序员更是人满为患,然而很多人关注的却是程序员的薪资,而非职业本身。 一批批程序员进入工作岗位,但是很多人并没有对自己的职业生涯有清醒的认识和系统的规划,由此会在职业发展过程中遇到很多问题。 在此我整理出自己对程序员的职业规划的一些见解,希望能帮助到他人,也是自己对职业生涯规划思考的一次总结。 一、程序员是好职业吗? 虽然很多程序员总是调侃自己,但是这个问题我想对于大多数程序员都是肯定的,包括我自己。 不说什么改变世界的豪言壮语,单单就程序员本身的工作性质而言也是有无限魅力的:不用把太多的精力放在处理上下级、同事间的关系上,通过自己的敲敲打打做出产品本身就是一件很有成就的事。 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长! 当然,还有老生常谈的程序员的薪资,程序员确实是一个薪资相对丰厚的行业,特别对于刚走向社会的人来说,据说那些说不看薪资选职业的一般不是骗子就是富二代…… 近几年程序员这一行业的薪资基本没出过年度薪资排行榜前五名,这就足以说明问题。既然程序员是个好的职业,那么,如何才能让自己的职业生涯健康的发展?我认为,首先要了解这一行业

Language Oriented Programming:下一代编程样式 Part I (翻译)

烂漫一生 提交于 2019-12-24 10:54:59
原文信息 原文地址 作者信息 Sergey Dmitriev JetBrains Sergey Dmitriev is the cofounder and CEO of JetBrains Inc., makers of the IntelliJ IDEA Java IDE . Sergey's personal website can be found at www.sergeydmitriev.com Contact Sergey via email: dmitriev (at) jetbrains.com Introduce:简介 现在是在软件开发领域进行下一代技术革命的时候了,而且革命的形式也越来越清晰。下一代编程样式正呼之欲出。例如有着不同的名字以及不完全相同的形式的几种技术: 意识编程(Intentional Programming) 、 模式驱动编程(MDA) 、 产生式编程(Generative Programming) 等等。我建议统一这些新的技术为: 面向语言编程(Language Oriented Programming) 。这篇文章主要讲述这个新的编程样式的主要概念。 当前相近的主流的编程范式有一些严格的内设的假设,这些假设就像缠绕在我们脖子上的蛇一样阻止我们的前进,虽然大部分的程序员没有意识到这一点。当编程技术发展到今天时,我们依然停留在石器时代

程序员应该有的一些好习惯!

爷,独闯天下 提交于 2019-12-24 06:26:02
程序员修炼之路 学习/编程好习惯 正确提问 健康生活 高效搜索 解决 bug 善于总结 写博客 多用 Github 实践 注意代码规范 其他 沟通能力 如何提升个人影响力 面试必知 如何获取大厂面试机会? 面试的时候应该穿什么? 面试前有哪些需要注意的地方? 怎么自我介绍比较好? 如何介绍自己的项目? 如果面试官问"你有什么问题问我吗?"时,你该如何回答 面试官问你的优点是什么,应该如何回答? 面试官问你的缺点是什么,应该如何回答? 如何写出更优秀的代码 Java 作为 IT 行业的过来人,你有什么话想对后辈说的? 程序员修炼之路 学习/编程好习惯 养成一个学习习惯和编程习惯真的太重要了,一个好习惯的养成真的对后面的学习有很大帮助。说实话我自己当初在这方面吃了不少亏,很多比较好的习惯我也是后面自己才慢慢发现,所以这里想着重给大家说一下有哪些好的学习和编程习惯。 正确提问 我们平时任何时候都离不开提问特别是初学的时候,但是真正知道如何正确的提问的人很少。问别人问题前不要来一句“在吗”,你说你问了在吗我是回复好还是不回复好呢 ?不要让别人给你发 32 位的JDK,除非你是喜欢那个人。 更多关于如何提问的内容,详见 github 上开源版『提问的智慧』 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob

程序员没有周末

不打扰是莪最后的温柔 提交于 2019-12-24 02:55:55
周五下午下班了,看着路上比平时多的车和快餐点里比平时少的人,知道是周末了,一样的和几个同事走在吃饭的路上再一样地走回公司,知道这个周末依然不属于我们。尽管好不容易有和父母吃饭的机会,但晚上的OT还是让我又少了一次和他们团聚的机会,他们也习惯了。从小我们就受到这样的教育:‘不要浪费时间!’‘吃得苦中苦,方为人上人’、、、诸如此类,所以中华民族是个勤劳的民族,所以我们在抱怨没有周末的时候脑袋里想得更多的是如何把事情做好,所以听到老外说:ENJOY YOUR LIFE EVERY DAY的时候,感觉更多的是‘劳动是人的第一需要’,确实如此,如果让我漫无目的地游荡在大街上我不会觉得是ENJOY,而把手上的项目做好哪怕是有阶段性的进展我就很开心,当然是开心且累着,或者说老外的老祖宗们烧杀掠夺已经积累够了血淋淋的财富,足够子孙们ENJOY LIFE。也有安逸的朋友,过着平平淡淡的生活,很羡慕他们,但这毕竟不是适合我的方式,或许自己确实不够洒脱,确实有点利欲熏心,但我觉得自己更多地还是为了实现自己的价值,我选择了这么一种人生的充实,起码现在是这样。 来源: https://www.cnblogs.com/jambol/archive/2004/06/11/15068.html

IBM总架构师寇文东谈程序员的职业规划

徘徊边缘 提交于 2019-12-24 00:07:15
  有些年轻的程序员向我咨询,将来的路该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功,到底选择哪条路,取决于自己的兴趣。可能有程序员会问:如果还没有找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。当你积累了一定的技术和经验之后吗,就会面临多种选择。选择哪条路,因人而异。常见道路如下:    专家级程序员   如果对某一种或几种技术非常感兴趣,并且能够持续钻研,经过一定时期的积累,你可以逐渐成长为 专家级程序员 。专家级程序员对所掌握的专业技术的熟练程度非一般程序员所能及,给类常见的变成问题在他们手中都能够迎刃而解,可以说这类专家“越老越值钱” 。但是这类专家也有一定的风险性:随着经验的增加和年龄的增长,这些人的工资会越来越高,当公司改变技术路线而不再需要专家级程序员所掌握的专业技术时,或者想降低做事的成本,他们就可能面临失业或者另找工作的局面。   资深培训专家   资深培训专家也是个不错的发展方向。成为培训专家,不仅需要深厚的技术功底,同时还要具备优秀的沟通和表达能力,因为他们的主要工作不再是研发某种技术,而是传播技术知识。这条路很宽,有一些优秀的技术培训师除了担任本职工作,还会兼职到大学里讲课。虽然培训专家的技术可能达不到专家程序员的水平,但是工作内容相对更为丰富,接触的人也更多。   技术总监   成为公司的技术总监是很多程序员的梦想

让程序员跳槽的非钱原因

隐身守侯 提交于 2019-12-23 22:36:03
  程序员工作仅仅是为了钱吗? NO!工作的一个很重要的目的是获取薪水,获取更多的薪水。但,这仅仅是一方面,很多时候,决定你是否愿意在一家公司持续工作下去的原因和钱无关。   马云说员工离职的原因林林总总,但基本上可以归结为两点:钱,没给到位;心,受委屈了。这些归根结底就一条:干得不爽。这篇文章咱就来看看程序员会因为哪些不爽而跳槽——与钱无关的那些哦。    2B 领导   为什么把“2B 领导”放在第一位?   因为相当一部分人离职,是因为他们觉得领导很傻B、不专业、不称职、不配领导自己,在这样的 2B 领导治下,干活让人绝望。   2B 领导通常不把程序员当回事儿,认为程序员就像机器,只要按吩咐干活儿就行。他们通常不尊重程序员和程序员的劳动。比如他们可能会说这些让人难堪、窝火、愤怒的话,丝毫不考虑程序员的面子。   “又请假?活干完了吗?”   “我觉得这个需求简单得很,一天搞定。”   “干不完就加班,通宵也得搞定,明天一定要上线!”   “干活不动脑子啊!”   “这肯定是你改出来的 Bug!”   “活都没干完,还一下班就走,一点儿责任心都没!”   “你昨天怎么没来加班啊!”   “咋这么不让人放心呢,这么简单的事儿都搞不定!”   “没见过你这么笨的家伙!”   有的领导喜欢给程序员扣屎盆子。   比如网站新版上线后,购物车功能不正常,要添加的商品超过 4 个就崩溃

[转]Lisp.自下而上的编程

不问归期 提交于 2019-12-23 07:11:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一个程序的函数元素不能太大是一个长期存在的编程风格原则。如果程序的某些组件增长到读难以理解的成都,它就变成一大堆的复杂东西,它们隐藏错误就像一个大城市隐藏逃亡者一样简单。这样的软件将很难读、很难测试、很难杀臭虫。 遵循这个原则,一个大的程序必须被分成很多片,一个程序越大,就需要被越多地分割。你怎样分割一个程序呢?传统的方法是自上而下的设计:你说“这个程序的目的是做这7件事情,所以我把它分成7个子功能”等等。这个过程持续到整个程序有正确水平的粒度——每块都可以独立地做一些事情,但是能够作为一个单元小到可以读懂。 有经验的Lisp程序员以不同的方式来分割他们的程序。就像自上而下的设计,他们遵循自下而上的设计——改变语言以适应问题。在Lisp中,你不仅仅是根据语言去写你的程序,你也根据你的程序区建立语言。当你正在写一个程序的时候,你可能想"我希望Lisp有这样这样的操作符",所以你就去写它。之后,你意识到使用新的操作符将简化程序其它部分的设计,等等。语言和程序一起演进。就像两个正在战争的国家的边界一样,语言和程序的边界被不断地重画,知道最后沿着山脉和河流,你问题的自然边缘。最后你看的程序,就像这门语言就是为它设计的一样。党语言和程序相互协调很好,你得到的将是清晰、小巧和高效的代码。 值得强调一下

适合程序员的优秀学习类网站

℡╲_俬逩灬. 提交于 2019-12-23 01:40:07
1、易百教程 是一个自由免费,专注于 IT 实例教程的网站 http://www.yiibai.com/ 2、w3cschool 领先的 Web 技术教程 http://www.w3school.com.cn/html/ 3、码农网 程序员编程资料和编程经验分享平台码农网是一个专注程序员编程资料、编程经验、职场面试分享的博客平台,帮助程序员在编程开发中获取第一手的实用资料。 http://www.codeceo.com/ 4、github 开源代码库以及版本控制系统 https://github.com/ github使用教学: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 5、The Code Project 免费公开源码的程序设计网站每一篇文章几乎都附有来源码(src)和例子(demo)下载 http://www.codeproject.com/ 6、Stack Overflow Stack Overflow是一个与程序相关的IT技术问答网站 http://www. stackoverflow.com 7、InfoQ 一个在线新闻/社区网站,旨在通过促进软件开发领域知识与创新的传播,为软件开发者提供帮助。 http://www. infoq.com 8、