现在还在迷茫阶段嘛?看看六年iOS开发怎么说!

前言

每一个开发者,都有一段不愿提起的经历,很多年前,刚刚从大学毕业的时候,很多公司来校招。其中最烂俗的一个面试问题是:“你希望你之后三到五年的发展是什么?”。我当时的标准回答是(原话):“成为在某一方面能够独当一面的技术专家“。后来经历了几家不同的公司,换了不同的方向,才知道这个真是一个很难的问题。因为兵无常势,什么东西都是在不断的变化,一早的时候看好的东西可能会被淘汰。

(几乎)没有人能够看准技术的下一个方向,因为这个问题实在是太难了,能够做到这一点的你就成为了技术界的巴菲特了。比如说11年加入Google,14年加入Facebook,16年加入阿里巴巴。做到这一点的人肯定有资本也有眼光去做风险投资,就算不做风险投资那么财务自由也是妥妥的。

现在毕业六年,从北京到上海到硅谷,从国内互联网公司外企,看到了公司好的地方和坏的地方,这里只是根据自己的经历写一些大方向选择建议,仅供参考。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:763164022,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

一、行业背景很重要

行业背景非常重要;工作3年后必须确定自己的行业背景,比如一直从事电信行业,一直从事银行项目,一直从事ERP行业等等。

一个程序员不可能是一直写代码的,就是写代码也要知道业务逻辑,满足什么需求;俗话说隔行如隔山,每个行业的业务都不一样,甚至差别很大,比如你一直从事流媒体的研究,让你跳槽到一家银行项目,完了,一切从头学吧,以前的行业经验都用不上了;而且,一个公司公司招人,就是希望找到那些很容易上手,不需要培训业务很久的程序员;频繁跳槽的朋友,一定要注意这点;

一直在一个行业呆久了,就可以成为这个行业的专家;我们可以经常看到,一个项目组的某个leader,代码写的一般,但是却可以跟客户流畅的沟通,控制着新需求的提出,bug的修正等等;而客户也很愿意跟他打交道,因为那些老的项目只有他能维护,他甚至熟悉系统的每一张表结构——-可想在这个行业呆的时间有多久啦。

二、合理的职业规划

什么是职业规划—-就是你短期或者长期的一个职业计划!大道理不讲,咱简单点。先问你几个问题:

a.你工作几年了,你愿意一直和新入行的新手一样就是个简单的程序员吗?
b. 你愿意一直写代码,而不关心其他吗?
c. 一个项目的前期需求,设计,后期部署维护,领导找到你,你说咱搞不定,行吗?

程序员不是敲代码的机器。第一年太多东西不懂,你可以一切听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码;但是第二年,你还是这样吗?不可能的,一年的经验你完全可以入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各类文档,怎么写更好的代码?这是高级程序员的要求!

三、什么是高级程序员?

具有分析设计能力,能进行技术攻关,而且具有某行业深厚背景的程序员!

所有,一个项目立项后,你要积极的参与到前期设计中,跟老同志们一道思考分析问题,学习经验!OK,你这就成长啦!

千万不要认为程序员就是写代码的哦!!!

而且,通过一个项目的开发,你要能粗略的统计出一个功能的开发时间;比如一个模块有20个小功能点,你开发了80个小时,每个小功能点平均2小时——这时在前期就能评估工作量啦。当然每个人的效率和工作质量是不同的,因人而异,但是大概的工作量应该是可以统计出来的,用于统计一个项目的工作周期;

据不完全统计,截至目前(2018.03)为止,中国iOS程序员的数量已经超过了60万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,iOS程序员面临的竞争压力越来越大。那么,作为一名iOS程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。

四,工作内容枯燥,创新少。

现在进BAT工作,大多数都是干一些非常基础的体力活,虽然说BAT很难进,但是进去之后你会发现,你所从事的工作其实并不难,干个1-2年之后,你的进步就变得越来越缓慢,所以很多人都被外面的花花世界所吸引,在BAT工作1-2年之后离职了。

五,升职难。

要知道BAT不是每个项目都成功的,很多的项目最后都难逃失败的命运。现在进BAT工作,大多数都是干一些非常基础的体力活,去的项目组大多也并不好,如果你进的项目组没啥爆发力,那你想升职基本是无望的,就如百度,干个3-5年能升到T5已经非常不错,再想更进一步难如登天,不是每个人都能分到当年百度贴吧那样的项目组。

六,职业规划难。

由于4,5点原因,大多数人都很难在BAT坚持3年以上,就受不了外面小公司的各种诱惑而跳槽,小公司会给予你很多的原始股期权,给你一个“上市”之后变成亿万富翁的美梦。但是,一旦你从BAT离职,那么基本上,你的职业成长就会陷入停滞状态,因为小公司能给你的也就是那么点钱和股票了,他没有BAT那样的技术积累,所以基本上是小公司用钱买你的技术,而你想获取更多的知识,基本已经没那么多的精力和求知欲了。所以越来越多的工程师把自己的工作形容成“搬砖”,其实就是因为工作时间越久,你的重复劳动就越多。

七,来自大城市的压力。

众所周知IT公司集中在北上广深杭,尤其是北京,基本一半的知名互联网公司都在北京。而北京的房价大家都懂得,就算你30W年薪又如何,你能在30岁之前在5环内买个100平的房子么?没房子你娶的到媳妇么?我见过太多30多岁打着光棍的程序员了,太多了,一方面不愿意舍弃自己的工作回老家,一方面是天价的房价和孤独的夜晚。对了,女朋友在我眼里不能算是媳妇,结婚才算是。

八,技术更新非常快。

一项热门技术,也许过个2年,就不再热门,可以说是各领风骚两三年,如果你花了两三年的时间学习一门技术,但是当你发现他逐渐落伍的时候,也就是你迷茫的时候。

九,人际关系简单。

很多的程序员的人生轨迹都是这样,尤其是帝都的程序员:

进入BAT工作——2-3年后跳槽到小公司——小公司项目不景气,继续跳槽——项目继续不景气,不断的循环——年龄优势不再,结婚难,事业瓶颈,迷茫——回家,or坚持最后,我想说的是,程序员在目前来说确实是一份好工作,至少薪水高,但是他毕竟是社会生态链的下游,程序员的工作与其他行业的技工,其实在产业的生态链上处于的位置是一样的,只是目前赶上了整个行业的爆发,所以程序员能才能不断的跳槽,不断的找到新的工作机会。但是一旦行业不景气,或者你的技术领域被淘汰,

又或者你的年龄优势不再的时候,就不一定还如刚毕业那时候那般雄姿英发了。

最后希望我们在职iOS开发者以奋斗为目标,在iOS的这条路上越走越好,给自己定位,不断的学习,不断的提升自己,接触新技术,在这大千世界中找到努力的自己。

原文地址:https://blog.51cto.com/14121524/2404864

时间: 2024-10-12 19:20:30

现在还在迷茫阶段嘛?看看六年iOS开发怎么说!的相关文章

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump、LV’s snapshot、xtrabackup)

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump.LV's snapshot.xtrabackup) 一.相关概念 备份:副本,mysql-database备份不同于RAID(RAID是保证硬件损坏而不会业务终止) 备份内容:数据.配置文件.二进制日志.事务日志 1.备份类型: >热备份.温备份.冷备份 热备份:读写不受影响,复杂度高,InnoDB(xtrabackup,mysqldump),lvm快照功能可实现几乎热备: 温备份:仅可执行读操作,MyISA

【Gamma阶段】第六次Scrum Meeting

[Gamma阶段]第六次Scrum Meeting 每日任务内容 今日工作任务 明日待完成任务 课程列表页针对移动端进行调整 首页样式优化设计 戴荣 移除部分tag.log语句,更新部分文档 移除所有tag.logger.累赘设定 赵智源 密码找回页面 个人信息页面添加设置问题弹窗 肖萌威 完善wiki的项目简介部分 wiki的功能简介部分 刘峻辰 补充wiki的后端接口文档 辅助完成功能简介部分 焦云鹏 例会照片 燃烬图 签入记录 原文地址:https://www.cnblogs.com/tb

从零开始学ios开发(六):IOS控件(3),Segmented Control、Switch

这次的学习还是基于上一个项目继续进行(你也可以新建一个项目)学习Segmented Control和Switch. Segmented Control Switch Segmented Control和Switch的主要区别在于Segmented Control可以有多个值进行选择,而Switch只有2个值. 1)添加Segmented Control从object library中拖一个Segmented Control到iphone界面上然后调整Segmented Control位置以及它的

iOS开发——淫技篇&iOS开发中各种淫技总结(六)

iOS开发中各种淫技总结(六) swift中指针的使用 在 Swift 中,指针都使用一个特殊的类型来表示,那就是 UnsafePointer<T>.遵循了 Cocoa 的一贯不可变原则,UnsafePointer<T> 也是不可变的.当然对应地,它还有一个可变变体,UnsafeMutablePointer<T>.绝大部分时间里,C 中的指针都会被以这两种类型引入到 Swift 中:C 中 const 修饰的指针对应 UnsafePointer (最常见的应该就是 C

IOS学习之斯坦福大学IOS开发课程笔记(第六课)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/28398697 作者:小马 这节课主要讲述多个MVC是如何协同工作的.到目前为止,所有的课程都只是涉及到一个视图.从这节课开始,将会持到多视图应用的例子. 多视图开发这里用navigationController举例子.这个也是比较常用的.如上图所示,一个 navigation Controller(MVC)会指向一个rootViewController(另一个MVC),这个是第一

荣品电子2代三星六核5260开发板支持GPS+北斗4G上网蓝牙4.0

荣品2代三星六核Exynos5260开发板搭配Android4.4.2+10.1寸IPS液晶屏(1920*1200),运行主频1300MHz~1700MHz:2G DDR3内存+16G EMMC存储,800W自动对焦摄像头,支持UBS3.0.GPS+北斗.4G上网(包括移动.联通.电信),蓝牙4.0 产品名称:RP5260开发板(4G全功能版) 产品型号:RP5260-4G 核心板型号:RP5260核心板(2G内存+16G存储) RP-Exynos5260开发板评估板是荣品电子于15年初发布的一

iOS开发Swift篇—(六)流程控制

iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这些语句后面一定要跟上大括号{},在C语言中不是必须的 说明:跟C语言对比,用法基本一样的有:for.while.do-while.if 因此,只需要关注for-in和switch即可 二.for-in结构 简单使用: for-in和范围运算符 for i in 1...3 { println(i)

iOS开发学习 阶段过程简述

下面就简单介绍一下我iOS开发的感受,也是学习iOS开发的一个体系架构. 1 iOS开发环境 1.1 开发环境 标准的配置是Mac OS X + Xcode. MacOSX的话首选用苹果电脑,macmini最便宜只要4000多就好了然后自己配一个显示器,macbookpro 也可以,不推荐使用macbookair.还有很多人使用黑苹果或者虚拟机甚至在windows上装一些工具都是不可取的. 另外官翻版的也可以去买,很便宜就可以买到好机子,官翻版. Xcode这个开发工具自己继承了iPhoneSD

iOS开发网络篇—文件下载(六&#183;压缩和解压)

iOS开发网络篇—文件下载(六·压缩和解压) 一.完成文件下载 需求:完成文件下载 1.在本地服务器中,添加一个图片的压缩文件. 2.代码示例: 文件下载器代码: 头文件 1 // 2 // YYfileDownloader.h 3 // 01-文件的下载(不合理) 4 // 5 // Created by apple on 14-7-1. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import <Founda