当前位置: 首页 > news >正文

如何进阶一名有竞争力的程序员?

前言

这段时间,又互联网寒冬了,你看消息满天飞。一瞬间,裁员的,辟谣的,很是热闹。这搞得我们程序员很难受,本来压力就大,还动不动有人在你耳边煽风点火制造恐慌。我想说:难道就不能消停消停吗?我还清楚地记得2017年的互联网寒冬,这2018的寒冬又来了。那么作为Android程序员如何过冬,如何进阶一名有竞争力的程序员呢?

人员永远稀缺,寒冬是相对的

这个冬天我们经常看到各个公司的裁员和优化的一种场景,可以把它定义为人才永远稀缺,而寒冬是相对的,这句话的可以理解为公司因为经济可能今年持续下行的一些情况,所以不论各行各业,都受到了不小的冲击。但是对于我们来说不断的去充电、去学习,去逆风等待时机去盘旋就可以了。当出现寒冬的时候,我们可能会面临新的机遇和挑战,大家可能都会有一些焦虑,这个是行业的一种现状,但是因为有机遇,所以对大部分人来说的话是一个比较好的机会。

如何在市场饱和中脱颖而出?

对于同一个岗位,可能有很多人在竞争,那么对于面试或者候选,面试官从哪些方面来判断你是不是适合某个岗位呢?所以我们要有与别人与众不同的地方,主要体现在以下四点。

  1. 练剑、沉淀

这个需要平时去多练,慢慢沉淀成自己的知识储备,在必要的时候拿出来会让面试官眼前一亮,但是不能仅仅局限于说、会用,要更清楚里面的具体细节,目前市场对这个的要求在不断的变高。

  1. 提高自己的一些影响力

对于那些影响力有一定相关积累的人,他面试的时候会有所加分的,因为那些影响力是有一些沉淀和积累的,是大家有目共睹的。而提高自己的一些影响力的方法就是写书、写文章。

  1. 刷大公司背景

在竞争同一个岗位的时候,你要在众多面试者中脱颖而出,最好要有大公司的背景,或者刷大公司的背景,这是公司对大公司人的能力的一种认可。当然,大公司也有混吃、混日子的,但是总体来说他们认可大厂出来的人。

  1. 面试前准备、刷题、复习和总结

面试前需要多去准备,对于大厂来说,数据结构和算法比较重要,需要去多刷题,然后复习,总结一下,至少需要半个月的准备期。

如何建立领域内深挖能力?

领域内深挖能力主要是对知识点深度上所了解的一些东西,如果你了解的细节比别人多一点,那别人对你的评价和看法就会不一样的。主要是以下五个方面的特点:

  1. 读相关领域的源码、框架

我们从事一线工作的话,肯定要读相关领域的源码,并了解里面相关的一些内容。

  1. 总结产出文档

读完源码后,自己对体会一下,理清楚里面的逻辑和流程,然后产出一些文档。如果公司不用其他公司框架的话,要你自己写一个,肯定要知道如何去写,要有思路。

  1. 写Demo求证

当我们遇到一些不太明白的地方或者看不懂的代码,这时候要去写Demo,验证一下最终的结果。

  1. 主动去学习感兴趣的技术

对于自己感兴趣的技术,一般都是自己主动去学习的,不需要别人逼着你来学。当你主动学习的时候,你的主观能动性会强一些,你对某个东西不了解的情况下,你就会越想深入探究它,从而深入学习。

  1. 要多问为什么?

要学会多问为什么,例如要问自己框架为何要这样去设计,为何要这么写,为什么中间要有这样一个流程,只有当你问为什么的时候,你才会去找答案,才会更深入了解这个知识点。这样的话,当你面试的时候,面试官问你为什么这样去设计,你就能够对答如流了。

Android市场行情如何?

  1. 大有可为

首先,移动设备的市场占有量特别多,人工智能或者其他方面的新技术仍然处在一个萌芽期阶段,要落实的话,还需要很多的东西很多的过程,所以虽然说市场上移动饱和了,但是还是有很多东西可以做的。

  1. 高级、资深、专家岗位多

Android市场饱和了,对于高级、资深、专家级别的工程师岗位很多,而初中级的岗位会显得非常少。因为整个行业都在往前推进,过去工作一两年的人,到现在已经工作四五年了,起码也是一个高级工程师了。

  1. 15-30k不等,30k以上岗位较多

薪水的话一般都是15-30k之间的样子,因为资深和专家的岗位较多的缘故,所以30k以上的岗位比较多。

  1. 过去进大厂门槛高,现在大厂太多,放水厉害,稍微努力就可以进大厂

现在大厂的门槛没有过去的高了,一般技术面三到四轮就可以了,不排除微信这样的核心的重点部门,一般要面7、8轮,因为我们技术也在不断的提升,大厂也要招很多人去干活,做一些产品的迭代。那些资深和专家可能关注的框架和性能会多一点。

  1. 我们应该关注精益求精和新技术

对我们来说,我们要对于技术精益求精,而且要时常关注一些新的技术,因为一个新的技术的出现,一定是有它的一些历史原因的,它可能是解决了过去的一些没法解决的痛点问题,但是可能它不够完善,也不够成熟,然而我们还是要时刻保持关注。

Android开发者进阶哪些方向?

  1. 应用层开发,不限于各种产品,主要还是Android或iOS原生开发,主要是各种性能优化。
  2. 嵌入式开发,不限于各种开发板,物联网,智能家居。
  3. 安全开发,不限于各种反逆向,反汇编,寻找安全漏洞。
  4. 音视频开发,不限于直播、点播、音视频通话、音视频会议、短视频等。
  5. 插件化、组件化、热修复开发,不限于自研和使用开源框架集成开发。
  6. 系统开发(Android),不限于Rom维护和Framework层定制需求
  7. 图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜
  8. 大前端开发,Flutter,RN,Weex,Cordova,小程序,JS

如何学习Android音视频开发

学习清单

  • 书:《Android音视频开发》、《新一代视频压缩编码标准--h.264/avc(第二版)毕厚杰》、《H.265/HEVC--视频编码新标准及其扩展》、《C++ Primer》
  • 博客:https://github.com/hejunlin20...
  • 知识储备:C/C++(必须),Java,Objective-c
  • 不要什么都搞,选一个方向

    • 直播(虎牙、映客、陌陌)
    • 短视频(抖音、快手)
    • 音视频通话(webrtc)
    • Android多媒体框架(rom)
    • 编解码标准(H.265/H.266)

如何未雨绸缪中年危机?

技术人员职业生涯周期

  • 沉淀积累期:毕业-工作前5年,我们需要去积累、存储知识,包括深度和广度上都要滞留沉淀。
  • 崭露头角期:5-8年,独挡一面去做一些相关的事情或独立负责一些模块、工作。
  • 如日中天期:8-13年,对自己有一个清楚的认识,包括对职场有一些理解和看法,你觉得你这辈子还能不能做技术、要不要转行有了清楚的认识。不再拘泥于过去的一些技术了,而是转向做一些别的或者相关的,发挥自己的一些长处或者说做更多有价值的事情才是最重要的。
  • 稳健回归期:13-n年,很多人混到领导层了,没混到领导层的也是技术专家或者其相关的,他们更多的是把过去的梳理和盘点来输出,培养新人做事情,传递自己的价值。

如何去做?

  • 去大厂升级打怪,混到不错管理层

    • 学历
    • 职级晋升
    • 技术能力
    • 软实力,沟通,熟悉职场隐含规则
  • 做个人IP,建立影响力,挖掘副业收入

    • 建立越早越好
    • 扩展多元化收入体系
  • 转行不能从根本避免问题,只是一个领域重新开始,无论用Java,还是C/C++,这些不是本质能避免的。

最近面试总结(不要裸辞)

  • 充分准备,不要着急面试(了解面试特点,比如哪些公司喜欢面算法或计算机网络协议,例如BAT、滴滴、美团、头条、快手、独角兽的议案公司喜欢面算法,一般的公司都是基础面试,例如你做过的项目,从项目中展开去问,考察你的基本功)
  • 机会较多,需要用力抓住
  • 先拿到电子Offer再说,不要嫌多
  • 价格没谈拢,不算拿到(Offer)
  • 坦诚项目和公司经历,不要弄虚作假
  • 想清楚职业发展,不要频繁跳槽

前期注重积累技术,后期注重积累人脉

首先,前期我们要注重一些技术的积累,至少前5年或5到8年一直这个方向都肯定是没错了,而后面要注意积累的就是行业当中的一些人脉,比如认识一些比你优秀的人或者比你厉害的人,说不定以后你会得到他的关注,他比较认可你,你可以直接去他那里上班了。

简历注意

一到两页纸就够了,把你的项目经验写一下,包括你做了一些成果,然后你觉得比较牛逼的地方,这个比较关键,因为面试官一般喜欢看亮点,有了这个亮点他就会将你筛选到入选的范围内。

相关文章:

  • 实现简单的正则表达式引擎
  • 读写配置文件模块configparser—参考杨永明博客
  • Android的WIFI局域网对讲机
  • todo: 改变字体的动画
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 翻译:Hystrix - How To Use
  • k8s应用机密信息与配置管理(九)--技术流ken
  • 如何使用 JavaScript 解析 URL
  • patchwork.ffmpeg.org 里面未被选中的优秀代码
  • c# 设计模式
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • __setitem__,__getitem,__delitem__的作用
  • MQ框架的比较
  • 更好用的集群限流功能,Sentinel 发布 v1.4.2
  • Promise面试题,控制异步流程
  • Angular 2 DI - IoC DI - 1
  • Codepen 每日精选(2018-3-25)
  • JDK 6和JDK 7中的substring()方法
  • mysql常用命令汇总
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • quasar-framework cnodejs社区
  • Spark RDD学习: aggregate函数
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vue2.0 实现互斥
  • Zepto.js源码学习之二
  • 第十八天-企业应用架构模式-基本模式
  • 关于Flux,Vuex,Redux的思考
  • 近期前端发展计划
  • 巧用 TypeScript (一)
  • 使用putty远程连接linux
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 我看到的前端
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 一些css基础学习笔记
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 大数据全解:定义、价值及挑战
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​马来语翻译中文去哪比较好?
  • !$boo在php中什么意思,php前戏
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • (06)Hive——正则表达式
  • (备忘)Java Map 遍历
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (十五)使用Nexus创建Maven私服
  • .equals()到底是什么意思?
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net mvc 获取url中controller和action
  • .sh
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @EventListener注解使用说明
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • []串口通信 零星笔记
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [asp.net core]project.json(2)