⑴ IT行业都有什么职位
1、信息处理和服务产业,该行业的特点是利用现代的电子计算机系统收集、加工、整理、储存信息,为各行业提供各种各样的信息服务,如计算机中心、信息中心和咨询公司等。
2、信息处理设备行业,该行业特点是从事电子计算机的研究和生产(包括相关机器的硬件制造)计算机的软件开发等活动,计算机制造公司,软件开发公司等可算作这一行业。
3、信息传递中介行业,该行业的特点是运用现代化的信息传递中介,将信息及时、准确、完整地传到目的地点。因此,印刷业、出版业、新闻广播业、通讯邮电业、广告业都可归入其中。
4、后端工程师行业,这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司。很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计。
然后后端程序员从JS到CSS到Java全写,完全就是一个通道,所有的复杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因。
5、UI1 工作内容:收到产品原型,给原型上色,偶尔会自作主张调整下原型的位置,出不同的风格给老板和客户选,然后听他们的意见给出一个自己极不喜欢的风格,最好给Android,IOS或者是CSS做好标注,还有的需要直接帮他们切好图。
最后要练出来象素眼,看看这些不靠谱的程序员们有没有上错色或者是有偏差。2 需要技能:PS,Illustrator,Sketch,耐性,找素材。
⑵ ios软件工程师职业前景
目前培训机构培训的工程师太多了,市面上低级工程师远超需求,高级工程师则供不应求,如果还没开始入行,现在准备学习的话,个人是不建议的!招聘网站上看下招聘需求有多少也能看出来呢。不要轻易听信培训机构的那套话术
⑶ 回答一个合格的IOS开发工程师应具备哪些条件
一、Objective-C
C语言是iOS开发的语言基础,而Objective-C是iOS开发的标准语言,也是为众多iphone开发工程师所公认的标准,所以必须要掌握。内容包括以下这些:
(1)Objective-C语言基础;
(2)library,framework的制作;
(3)Runtime编程;
(4)LLVM原理和调优。
二、操作系统
操作系统使计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。所以,必须对ISO操作系统很熟悉才行。包括以下方面的内容:
(1)iOS内存管理和调优;
(2)iOS的文件系统和沙盒机制;
(3)iOS多线程编程(Thread,GCD,NSOperation);
(4)iOS网络和服务器编程(NSURLConnection,NSURLSession);
(5)iOS系统的各种安全机制。
三、网络编程
网络编程是学习iOS开发必须掌握的编程技巧,涉及到Htpps、Socket编程等;在这一部分处理的规范程度,直接影响到苹果AppStore的审核。
(1)iOS网络发送机制调整和优化(NSURLSession);
(2)Socket编程;
(3)网络传输中的各种保障;
(4)对传输协议的调整优化。
四、数据库&持久化方案
数据库持久化就是把数据保存到可永久保存的存储设备中,持久化的主要应用是将内存中的数据存储在关系型的数据库中。
(1)常规持久化方案(Keychain,NSUserDefaults,Sqlite,CoreData);
(2)数据库的使用和设计(Sqlite);
(3)数据结构优化,Sql调优。
五、图形图像编程
iOS开发过程中,大部分的APP都是采用多视图设计来完成的。所以要熟悉一些图像的绘制:
(1)UIKit,CoreAnimation和CoreText的绘制;
(2)CoreGraphics,Quartz2D,MediaPlayer,AVFoundation;
(3)OpenGLES,GLKit,SpriteKit,SceneKit,Metal。
六、数据结构&算法
懂得基本的算法:
(1)基本的算法和数据结构(排序搜索算法,数组,队列);
(2)较复杂数据结构的灵活应用(二叉树,图等);
(3)复杂的专项算法(图像识别算法,拓扑定位等)。
七、业务能力
作为一名优秀或者说是及格的iOS程序员,必须要有一定的将功能需求转化并实现的业务能力:
(1)一般性业务功能需求分析及实现;
(2)重要业务模块的需求分析及实现;
(3)中小规模产品的架构,系统设计和实现;
(4)大规模产品或产品线的架构,系统设计和实现;
(5)平台级产品的架构,系统设计和实现。
八、安全方案
另外,还需要提供对数据安全方面有利的方案:
(1)本地数据存储安全(Keychain);
(2)授权和身份验证;
(3)传输安全(对称,非对称,SSL);
(4)App代码安全。
九、专业素质
作为一名iOS工程师,需要具备一定专业素质,包括:
(1)团队协作能力。软件开发要求开发参与者间有一定默契度,从事自己工作之余为其他同伴创造条件;
(2)沟通能力。能清晰的把你对项目的理解、开发中的问题等转达给同事和用户;
(3)强烈的好奇心和学习精神。IOS软件开发的变化和创新几乎是每时每刻的,优秀的程序员要适应和主动迎合行业变化的大环境;
(4)冷静、细心。及时发现问题和判断对策。
⑷ 如何面试 iOS 工程师
程序员面试iOS开发工程师都会遇到哪些问题?下面是一些问题分享,希望对以后的面试会有所帮助。
首先需要声明的是,此次的面试者大多在有1~3年的iOS开发经验,并非需要找一个真正的大牛,所以准备的题目,自己觉得大多数还是比较基础,比较能够看出这个层次的人的水准的。如果也是个有3年左右开发经验的从业者,不妨一试。
面试开始的时候,会让面试者选择一个他最熟悉的项目,给介绍一下它的技术架构,以及面试者在其中参与的模块和具体工作。事实上,很多开发者并不明白提到的“架构”的具体意思,有些人说了一大堆产品的功能,还有人说的非常笼统(比如,遵循MVC架构之类),一般这种时候会打断他们,直接让他们给讲一下这个APP的层次结构,或者是核心模块等。
之后会问两个问题:
1. 讲述一次在这个APP中,用户触发了一个事件,引起了一个服务请求,然后获取服务端返回,并且更新前端界面的过程。请说的详细一点,比如数据经过了哪些类的处理,每一次传递时的格式是怎么样的?
2. 参与的APP,是如何处理多个服务的同步发起的?随后让面试者说一下APP的界面架构,这个比较随意。
问完了项目,就开始基础知识题啦~
Model层:
数据持久化存储方案有哪些?
沙盒的目录结构是怎样的?各自一般用于什么场合?
SQL语句问题:inner join、left join、right join的区别是什么?
sqlite的优化
网络通信用过哪些方式(100%的人说了AFNetworking...)
如何处理多个网络请求并发的情况
在网络请求中如何提高性能
在网络请求中如何保证安全性
语言与基础知识:
内存中的栈和堆的区别是什么?那些数据在栈上,哪些在堆上?
#define和const定义的变量,有什么区别
什么情况下会出现内存的循环引用
block中的weak self,是任何时候都需要加的么?
GCD的queue,main queue中执行的代码,一定是在main thread么?
NSOperationQueue有哪些使用方式
NSThread中的Runloop的作用,如何使用?
.h文件中的变量,外部可以直接访问么?(注意是变量,不是property)
讲述一下runtime的概念,message send如果寻找不到相应的对象,会如何进行后续处理 ?
TCP和UDP的区别是什么?
MD5和Base64的区别是什么,各自场景是什么?
二叉搜索树的概念,时间复杂度多少?
架构:(招的不是架构师,这方面问的不多,而且从之前对APP的架构介绍里可以边听边问)
哪些类不适合使用单例模式?即使他们在周期中只会出现一次。
Notification的使用场景是什么?同步还是异步?
简单介绍一下KVC和KVO,他们都可以应用在哪些场景?
APP相关:
如何添加一个自定义字体到工程中
如何制作一个静态库/动态库,他们的区别是什么?
Configuration中,debug和release的区别是什么?
简单介绍下发送系统消息的机制(APNS)
UI:
系统如何寻找到需要响应用户操作的那个Responder
多屏幕尺寸的适配
UIButton的父类是什么?UILabel呢?
push view controller 和 present view controller的区别
描述下tableview cell的重用机制
UIView的frame和bounds的区别是什么
最后是几道场景题,也是最喜欢问的:
发送10个网络请求,然后再接收到所有回应之后执行后续操作,如何实现?
实现一个第三方控件,可以在任何时候出现在APP界面最上层
实现一个最简单的点击拖拽功能。
上面那个拖拽之外,如果在手放开时,需要根据速度往前滑动呢?
如何减小一个应用程序的尺寸?
如何提高一个性用程序的性能?
不同版本的APP,数据库结构变化了,如何处理?
平心而论,这些题目并没有特别难,没有讲到黑科技,也没有讲到ACM算法题,都是iOS的基础概念以及很容易遇到的场景。可能也是因为招的目标,也只是一个可以完成业务开发的3年左右经验的人而已,所以大部分面试者水平并不如意,能答出以上大半题目,同时思路清晰态度积极向上的人,不到四分之一吧...
另外的感想就是,这个行业可能真的有点浮躁,很多面试者,连简单的几个场景题都答不出来,基础知识更是一般,只会用几个第三方库,就开口要25~30w的年薪,还有一种爱理不理的感觉。也有些人,在原来的公司,自称是技术负责人,但连APP的基本架构,包括哪些主要模块都讲不清楚,各种兜圈子,甚至有人讲了半天的产品功能和亮点,不得不一次次打断才能继续面试。
学iOS,做的事情越多,越觉得自己有越多的东西要学,离大牛的标准也是越来越远。而无论从深度还是广度来看,iOS开发都是一个值得挖掘的技术领域。由于苹果产品的火热,市场上的iOS开发一直供不应求,但真正有能力,高素质的可能真的不那么多。
⑸ android和ios软件工程师
其实只要你有真本事,工作都比较好找,我之前听一个公司的老板讲过,现在市面上虽然iOS的招聘启示很多,但是符合要求的人并不多,而且貌似目前iOS工程师的需求量要比Android工程师的需求量少点,可能是因为前几年人们疯狂的学习iOS的关系吧,如果说工资的话,应该是iOS的工资要稍微高点,另外,就发展前景来讲,Android的发展前景比较好,因为Android的开源,已经现在移动终端市场的发展趋势,应该是Android要比iOS好点,当然这只是现在能看到的情况,就看苹果和谷歌在未来创新之路上如何走了,看库克是否能领导苹果再创辉煌了
⑹ 面试ios软件工程师没有工作经验怎么办
没有任何接触ios相关经验,建议你去培训公司培训
另外注意面试千万不要说没有经验你是去实习的,公司要的是能干活的
你觉得你有能力胜任你就应聘正式岗位,面试时要强调你能胜任这份工作,并出示你的相关项目经验,觉得可行的话公司会招聘你的
⑺ 工作职责: 1、负责IOS和Android平台的客户端APP开发和维护; 2、整理SDK以及用
一般都是分开的 学android 开发就先学Java基础,基础学完后就可以学android开发了。只要你Java基础学好了。android做出简单应用还是不成问题的。
IOS开发那你先要有个MAC电脑。然后学OC 最新的开发语言是swift。IOS相对能简单一些。android的复杂度和难度相对能高一些。
各有优点。
⑻ 想问下做ios平台的软件开发,需要那些基础知识
iOS是运行于iPhone、 iPodtouch以及iPad设备的操作系统,它管理设备硬件并为手机本地应用程序的实现提供基础技术。根据设备不同,操作系统具有不同的系统应用程序,例如Phone、Mail 以及 Safari,这些应用程序可以为用户提供标准系统服务。
iOS 开发工程师主要从事手机操作系统研发及手机应用软件开发(包括手机游戏等各类功能的软件开发)。在参与调查的开发技术人员中,72%的称,他们正在 iOS 平台开发人才,其中 38%的表示, iOS 平台开发经验要比任何其他平台开发经验更受青睐。
由于国内 iOS 开发起步相对较晚,人才培养机制更是远远跟不上市场发展速度。有限的iOS 开发人才成了国内企业必争的资源。甚至有的企业不得不考虑通过收购来填补人才空缺。一名 iOS 开发新手要比普通软件开发新手高出约 20-30%的薪资,符合条件或有项目经验的开发工程师更是有价无市。 IOS开发方面的知识,大概有一下几点。
1、环境准备。这就是开发前所需的环境,相关软件的安装及使用详解。这里包括有IOS开发前准备,Xcode集成开发环境的安装使用与项目建立流程,Xcode6中的Playground的特点和使用方法,IOS开发常用操作及技巧,IOS程序打包与发布
2、Swift编程语言。包括有Swift语言基础,Swift语言与Objective-C语言混合编程,Swif语言面向对象详解,Swift、语言调试技巧
3、IOS用户界面。包括有IOS项目介绍,IOS用户界面开发基本刘晨恶搞,IOS裂变控件TableView的开发与使用,使用StoryBoard做IOS UI界面跳转。
4、界面优化。包括有IOS绘图API绘制线条/文字/几何图形,Xcode常用项目模版,屏幕适配,IOS自定义控制实例,IOS的动画效果及实现方法,IOS中的CALayeer的使用。
⑼ web前端工程师与ios程序员工作的分工
作为一个iOS程序员可以从事的岗位是很多的,大小公司分工不一样,有的分的明细有的就分给一个人一个项目长期在做。
制定项目阶段性目标和项目总体控制计划 项目总目标一经确定,项目经理的职责之一就是将总目标分解,划分出主要工作内容和工作量,确定项目阶段性目标的实现标志如形象进度控制点等。所以可能在接收项目经理分配的任务可能会有所不同。
像iOS开发工程师主要接收从事手机操作系统研发及手机应用软件开发工作,包括手机游戏等各类功能的软件开发。具体下来可以担任 iPhone App 研发工程师、iPhone App 测试工程师、iPhone App 产品策划等职位。