zoukankan      html  css  js  c++  java
  • [转载]知乎上一篇关于怎样面试IOS工程师的回答,用于面试和学习都不错

    http://www.zhihu.com/question/19604641  感谢回答者 @张自玉

    如何面试 iOS 工程师?

    看了这个问题觉得楼主是外行,所以先胡乱说两句。
    讲到开发,一定要有开发工具,我们经常说的IDE也就是集成开发环境。ios开发所需的环境就是一款名为xcode的[软件]。是苹果官方推出的,在appstore上可以下载的到。这个xcode是ide是环境,里边集成了编译器,文档管理,编辑等好多功能,就想c++程序员用的vc,java用的ecslips。ios开发过程中的软件环境还包括苹果官方的UIKit框架,当然作为一个成熟的开发者,仅仅知道这些是远远不够的。在界面日益花里胡哨的今天,各种优秀的开源框架层出不穷,下面列举比较常用的ios第三方框架
    1 SBJson 这个不用说的,做网络的没有不用的。
    2 ASIHttpRequest ios原生的网络类啰嗦,这个简洁点。
    3 ZBar 这个也许没大有人听过,但是搞开发 ,弄二维码 基本没有不知道的。
    4 MBProgressHud 很好用的指示条,各种各样的UI。
    5 Three20 这个不用说了吧,facebook总该知道吧,就算你不知道facebook,人人网总该知道吧,他们的手机客户端都是用这个控件库里的控件,目前在github上还可以download。不过作者貌似已经停止更新了。
    6 KissXML 解析XML的时候大家都用啥,我有时候手动,有时候这个。
    7 FMDB , 很好用的数据库包。
    8 cocos-2d cocos2d-x 开源游戏引擎,好多流行的游戏都是这个搞的,捕鱼达人知道否,对 就是cocos2d。

    -----------------------------------------啰嗦的分割线------------------------------------------------------------------------------
    下面开始说面试的事。
    面试有好多方面,这里主要说技术。其余的什么创造力啊,RP啊,情商啊。找人力的解决吧。
    我主要说说机试,任何的面试最后都要回归到代码上的,招人是来干活的,是写代码的。所以面试的时候就来点最实际的吧,开始写代码。
    软硬件准备
    1 装有mac os的mac电脑一台(哥曾经华丽丽的看到各种牛x人士拿着装着xp的mac电脑)
    2 稳定的网络。
    基础篇
    1 新建一个empty工程,从appdelegate开始写一个根控制器,一个button,点击button后跳转到另一个控制器里。另一个控制器中还有另外一个button,点击跳回来。
    其实现在很多人连这个都实现不了,你不信? 我面试了好多ios开发的工程师,叫他们写个最最简单的功能,从入口也就是appdelegate开始写代码,他们都写不全,这样的人说死不能要,基础极度不扎实。
    扩展---> 在跳转的同时将A控制器的某一个string传递至B控制器中。

    2 给以txt文件,里面有一段文字,读取这个文件并用label来展示,label宽度给定,折行方式给定,要求算出展示文字所需要的精确高度。
    扩展--> 统计文字中的某个字符或者某些标点的字数。
    这个扩展可以延伸到很多,文本处理是各种交互设计永恒的主题,这里可以考察一下正则,越说越复杂了。

    3 定制tableview,tableview是ios开发中最常用的控件之一,面试题目就是让面试者定制特定样式的tableview。自行模拟数据源,用tableview展示。顺便提两个常用功能,下拉刷新和上拉加载更多。

    4 网络与数据库,此处不详述了,不知楼主主要开发何种应用,关于特定应用 会有特殊要求。如果做网络客户端,此项为必考。

    没啥提高篇
    1数据结构与算法
    写个链表,存100个数,写个队列存100个数,写个循环缓冲队列 。
    写个A*算法。走个迷宫神马的,搞个二叉树优化一下思密达
    基础一点的就实现一点基本的查找和排序吧。

    2 各种媒体处理方法,视频音频等等,此处过于专业 不再作者擅长领域。期待大牛补充。
    3 写的有点累,先凑合着看,后续更新。

  • 相关阅读:
    Arduino Nano与SIM800C 通信
    Laravel 查询数据按照时间分组
    Laravel 查询或写入Enum字段出错的bug解决办法
    【示例代码及地区json】js省市区三级联动 升级版
    【示例代码及地区json】js省市区三级联动
    Laravel使用whereHas进行过滤不符合条件的预加载with数据
    Laravel where条件拼接,数组拼接where条件
    postman传数组参数,二维数组,多维数组
    中国元器件电商
    蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
  • 原文地址:https://www.cnblogs.com/matrixchen/p/3035739.html
Copyright © 2011-2022 走看看