正文

从我个人的角度写写30多岁码工的感受:的确是受年龄压力开始增大了。比如二十多岁的小年轻,可能什么都懂,对组里的东西很熟悉。有时候我也怀疑自己是不是智商不够,是不是自学能力太差,是不是基础不行,别人是不是都玩命加班,你知道30多岁的人那种危机感。

一.你应该承担怎么的责任

这是专业和不专业的分水岭。对于一般的程序员来说,责任就是及时、高质量的完成任务;对于 一个领导者来说,其责任就是统领全组,合理安排任务,让组员各司其职。这里包括3点:

  • 承担合适的责任。**选择自己能力范围内、自己喜欢做的。**一旦选择了工作,请承担完成的责任;
  • 学会说不。经常看到,产品经理或者领导会催促在极短的时间内完成任务,而程序员这个时候总是欲拒还休,说我来试试吧。专业的程序员对于任务有靠谱的预判和掌控力。当完成不了的时候,一定要说不。否则既是对自己不负责任,也是对他人不负责任。
  • 应对最坏的情况。程序员最悲催的莫过于搞不定任务,这个时候一定不要推卸责任。这时候最重要的是给出一个切实可行的补救方案,最好有一个完成任务的时间点。老板不在乎你为什么完不成,在乎的是究竟怎样能完成。

二.代码的质量

  • 没有Bug,每一段代码都要有相应测试。很多人不写测试,那是因为他们抱着侥幸心理觉得自己代码没问题,同时写测试又很浪费时间。实际上保证代码质量的第一要素就是测试,测试可以让你检测不同输入所产生的输出,有时候甚至可以推动你去修改开发代码以提高质量。
  • 可读性要高,让别人看懂理解非常的重要。
  • 可扩展性和解耦性。最好的代码不仅针对当前特殊的情况,还可以应对其他情况;以后即使对现有的代码进行大量修改,也不应该影响其他模块。

三.敲代码所需要的时间长短

一个专业的程序员一周的花在计算机上的时间应该为每周60小时。最基本的40小时,要花在工作中。剩下的20小时,要花在提高自己身上。提高可以是多种多样的:读博客、做项目、看文档、上公开课。

有人说没时间,我们来算一笔账。一周有168个小时,假设你一天睡8小时,吃喝拉撒2小时,这样你还剩 168 - (8 + 2) x 7 = 98小时。然后你花在代码上60个小时,你还剩 98 - 60 = 38小时。你完全可以用20个小时陪伴家人(我知道很多人没有成家),再用10个小时与朋友聚会出游,就算这样,你也还有8个小时可以自由支配。

之所以要在代码上花费这么长时间,是因为软件这一行这一行变化太快了:乔布斯逝世才5年,Google已经声称移动时代已经过去,现在是人工智能时代;Objective-C还没火几年,转眼Swift已经出到了第3个版本;Html 5刚刚落寞,Facebook又推出了React Native试图整合Android和iOS两个平台。。。技术的进步,总是让程序员有太多的东西要去学习。

三.有自己精通的专属领域

无论是那个领域,都有自己的一套架构体系。作为一名专业的程序员,我觉得应该至少对自己领域所有的知识都有涉猎了解;对于核心的部分,则要做到烂熟于心的程度。
之前看过一篇文章,是说新技术又新又酷,鼓励大家快来学啊。**学习新技术的原因永远不是因为它新、它潮,而是因为它可以更好的解决当前问题。**对于深度和广度两个维度谁先谁后的问题,我个人永远支持深度优先。只有本专业弄通的情况下,才能融会贯通。Andrew Ng出名是因为他在Machine Learning的专长;提到John Carmack,大家都会想到游戏编程狂人;谈起乔布斯,大家都绕不开iPhone。专业程序员能做普通程序员不能做的,这才叫专业。

###四.拥有自己独特的思考问题的方式
很多程序员平常写代码只在乎能快速解决问题,不在乎选择解决问题的方法和原因,这是典型的不知其所以然。专业的程序员,理应对每一个问题、每一步设计都有自己的理解
所以,在我们做开发的过程中,不过遇到什么样子的问题,我们应该注重考虑我们如何提升自己的技术内功,用什么样子的方法最完美的解决问题,而不是只求解决问题的速度。提升技术内功才是关键所在

五.团队沟通

绝大多数程序员都是:一壶水一盒烟一行代码敲一天。
只想写代码,做个安安静静的美男子,这当然无可厚非。但是你真的确定,正在在做的东西是老板希望、客户期待的吗?作为一名程序员,理解自己应该做什么、达到什么效果、同时让老板知道什么能够实现、什么实现不了,才是专业的表现。
举个工作的实例:
部门经理:我们组A这个项目要赶紧干完,老大盯着我们。
程序员甲:好,那我赶紧做。
程序员乙:好。但能问一下这个项目为什么老大盯着?做了对整个组或者项目有什么好处?A项目的所有功能都要完成吗?有没有具体的截止日期?

上面我们可以看到,也许程序员甲和乙技术能力相同,但是甲更偏向于兢兢业业、努力干活的老黄牛程序员,他写出的代码很有可能是他认为非常好的代码;而乙则更擅长沟通,更有大局观的程序员,他写出的代码就更有可能被大家都认可。他们的专业程度高下立判。

小结

有了这么多优秀的开发工具,可以做出更高质量的Android应用。

当然了,“打铁还需自身硬”,想要写出优秀的代码,最重要的一点还是自身的技术水平,不然用再好的工具也不能发挥出它的全部实力。

在这里我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

如果你有需要的话,可以点击这里领取

搞懂开源框架设计思想真的这么重要吗?终获offer相关推荐

  1. 腾讯T2亲自讲解!搞懂开源框架设计思想真的这么重要吗?系列篇

    Java相关 无论什么级别的Android从业者,Java作为Android开发基础语言.不管是工作还是面试中,Java都是必考题.如果不懂Java的话,薪酬会非常吃亏(美团尤为重视Java基础) 详 ...

  2. 温故而知新!搞懂开源框架设计思想真的这么重要吗?大厂直通车!

    一.前言 刚拿到字节offer,经历了5次面试,其中4轮技术面,1轮HR面试.在这里分享一下自己的面试经验和学习心得.希望能够帮助更多的小伙伴. 我本科毕业于四川师范学院计算机系,刚毕业时也是小白,也 ...

  3. 五分钟带你了解Django框架设计思想!

    Python编程语言的持续火爆,在最新Tiobe编程语言排行榜中位列第五,热度持续增加,尤其是在 AI 和 大数据时代,Python是 AI 和大数据时代的第一开发语言.这已经是一个不争的事实了,唯一 ...

  4. 快速搞定开源框架Flowable

    对接Flowable开源框架感想: 出于项目得要求,开始对接Flowable工作流,本来以为有第三方得对接经验,跟着他们提供得文档可以快搞定,没想到过程确实一波三折.别人把开源框架改了一些Log就当作 ...

  5. 揭秘支撑百度搜索、Feed、小程序三大业务的MVVM框架设计思想,San 核心人员倾力打造...

    如果你是一名前端工程师,那么一定接触过组件化框架,比如 Angular.React.Vue-- 对于前端开发者而言,无论是初入职场的新兵还是久经沙场的老将,在面对纷繁复杂的业务需求和层出不穷的技术选型 ...

  6. Android源码分析(三)-----系统框架设计思想

    一 : 术在内而道在外 Android系统的精髓在源码之外,而不在源码之内,代码只是一种实现人类思想的工具,仅此而已...... 近来发现很多关于Android文章都是以源码的方向入手分析Androi ...

  7. 升阳云ERP,基于开源框架设计的三大特点

    升阳云ERP基于互联网技术,采用开源框架体系进行研发并对企业开放源码,成功应用互联网云技术于传统制造业.由于成熟新技术的支撑,升阳云ERP与生俱来拥有了先进性.便利性.易用性.可扩展性. 升阳云ERP ...

  8. nodejs爬虫puppeteer框架设计思想与应用

    先说明一下技术栈的应用,使用typescript进行编写基于nodeJS环境的爬虫,也就是说puppeteer建立在nodeJS中,而开发者进行编写typescript代码,这样比较优美一点也有良好的 ...

  9. 【BDTC 2015】深度学习分论坛:DL的图像识别、语音识别应用进展及MxNet开源框架设计

    发表于2015-12-15 17:18|4514次阅读| 来源CSDN|0 条评论| 作者王玮 大数据技术大会深度学习论坛 摘要:12月10-12日,2015中国大数据技术大会盛大开幕,11日下午深度 ...

最新文章

  1. 使用eclipse生成javadoc的方法
  2. linux zookeeper安装并设置开机自启
  3. c++标准程序库异常
  4. 使用Eclipse构建Maven项目 (step-by-step)
  5. android chrome cast,有了它 任何安卓设备瞬间变身ChromeCast
  6. html怎么添加5px高的线,css给div添加0.5px的边框
  7. Android项目增加混淆
  8. WebSocket和WebRtc的一些心得
  9. HTML5 Security Cheatsheet
  10. SQL Server维护工作详解
  11. 展锐sc8541E多媒体网络摄像播放-液晶驱动一体板
  12. 韩立刚老师 -- 1、Linux 入门
  13. Linux服务器如何修改登录用户的密码
  14. APM, EAM, AIP都是什么鬼?
  15. MySQL数据误删恢复
  16. C#AE将当前地图导出为一张图片地图
  17. 【深度学习】(10) 自定义学习率衰减策略(指数、分段、余弦),附TensorFlow完整代码
  18. UE5回合制游戏【2-摄像机控制】(蓝图版)
  19. 自动驾驶中的模型预测控制(Model Predictive Control)
  20. 爱无尽头,爱无尽头在线观看,免费在线看

热门文章

  1. asp.net mvc使用的心得和问题的解决方法(陆续更新ing)
  2. rsa加密算法python_模拟新浪微博登录(Python+RSA加密算法)
  3. mysql表单查询_MySQL表单集合查询
  4. java中不能定义为变量名称_Java,“变量名”不能解析为变量
  5. 《MySQL——约束》
  6. 快速傅里叶变换(FFT)——按时间抽取DIT的基
  7. 算法中的Strassen矩阵乘法
  8. 五、“嵌段共聚醚酯型”易去污整理剂的结构特点及对织物服用性的影响?
  9. 分析染色温度对染色热力学性能和染色动力学性能的影响?实际生产时,染色温度选择应考虑哪些因素?举例说明?并阐明实现低温染色的原理。
  10. 计算机公式column,函数公式的左膀右臂:ROW、COLUMN函数知多少