V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wddwycc
V2EX  ›  求职

文科毕业的程序员如何拿大公司 IOS 开发的 offer

  •  1
     
  •   wddwycc · 2015-09-29 21:02:48 +08:00 · 4584 次点击
    这是一个创建于 3129 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先自我介绍一下,
    本人专业传播学,学电影和新闻,今年刚刚上大四
    大二由 ActionScript 开始接触编程,后入坑 IOS
    在 App Store 上过游戏和照片软件,实习的时候也协同开发过上线的项目,参与过学校教学系统的 IOS 端开发,写过外包,现在还在忙自己的一个比较大的项目,预计 10 月底提交审核
    技能树有: IOS 开发 /Web 前端 /设计(Sketch/Ps/Ai etc.)

    明年就要毕业了,总想着得给自己的职业生涯开个好头,
    之前和一个设计师前辈商量的时候,他建议我刚毕业最好可以去大公司体验一下,我也觉得是。

    那么问题来了!

    由于我跟 CS 相关的技能全部都是自学,覆盖面不足,所以大公司笔试考的那些并不懂得很全,加上现在平时基本写 Swift+Js ,大公司笔试会考的 C++和 Java 我平时并不写很多,尤其是 Java.所以碰到那种语言特性题目...

    我做过腾讯软件开发实习生的卷子,(他们所有的软件开发都是一张卷子)感觉和自己格格不入。然后最近报了网易和大众点评的 IOS 开发职位,也是有笔试的,心理好没底啊、、、

    众位有什么建议么?


    贴一下博客、 StackOverflow 和做过的部分项目:
    http://www.monk-studio.com/
    http://stackoverflow.com/users/4149826/carrl

    独立做的 IOS 应用: 留白( https://itunes.apple.com/cn/app/liu-bai/id981097628?mt=8)
    协同开发的项目: 生毛豆( https://itunes.apple.com/cn/app/sheng-mao-dou/id1001885946?mt=8 )

    第 1 条附言  ·  2015-09-29 22:06:38 +08:00
    如果有别的工作机会也请联系我, 最好是在长三角
    [email protected]
    38 条回复    2015-10-07 01:23:53 +08:00
    feng1990
        1
    feng1990  
       2015-09-29 21:40:42 +08:00
    顶一哈
    wddwycc
        2
    wddwycc  
    OP
       2015-09-29 22:00:14 +08:00
    @feng1990 谢谢哈~
    miao1007
        3
    miao1007  
       2015-09-29 22:24:54 +08:00
    刷题吧
    Elenickel
        4
    Elenickel  
       2015-09-29 22:34:29 +08:00
    楼主我想问一下自学编程好学吗,我是一名高三学生,现在感觉考不上重点大学对未来很迷茫。顺便帮顶。
    wddwycc
        5
    wddwycc  
    OP
       2015-09-29 22:55:59 +08:00   ❤️ 1
    @Elenickel 考个好大学还是很有必要的,我建议先专注高考吧、到大学大把时间可以拿来学各种
    imsoso
        6
    imsoso  
       2015-09-29 23:11:23 +08:00
    不是贬低楼主,一般来说,非科班出身的程序员,编程基础会比较差,学习不够系统,会导致一种这样的现象,做过一些项目,有那么一些经验,可以处理一些问题,但是很难深入。所以楼主想要转行,一定要从基础开始。
    parkcg
        7
    parkcg  
       2015-09-29 23:29:36 +08:00
    @Elenickel
    现在的学生都这么强了,才高三就开始考虑编程。
    wddwycc
        8
    wddwycc  
    OP
       2015-09-30 00:15:22 +08:00
    @imsoso 感觉层主说的比较像那种培训机构出来的. 编程基础具体指啥?
    wddwycc
        9
    wddwycc  
    OP
       2015-09-30 00:26:37 +08:00
    @imsoso 多学一些基础的东西肯定是不错的恩、
    MrGba2z
        10
    MrGba2z  
       2015-09-30 00:35:15 +08:00   ❤️ 1
    @wddwycc
    基础算法 基础数据结构 操作系统 计算机架构等
    不需要记得很深入的东西,但要能留有印象,需要的时候能够快速捡起。
    例如:
    1. 你可以写不出分治(不是每个人天天用算法。。)但你起码讲得出个大概(所谓的 pseudo code
    2. 知道哈希表,链表,树等数据结构在哪些情况下适用,看到的时候能够反映出,噢这里是个树啊,或者噢 这里用树存比较好,我翻下书看看红黑树具体是怎样的 blablabla
    3. 计算机架构可能对 app 开发者来说略远了,但对写 c ,或者底层的程序员来说,还是有些用处的
    4. 至于操作系统,比如最近我遇到的一个问题是,在 docker 里内部写的基于 GPG 的程序会使跳出 docker 环境并且没有任何错误提示,最后发现 GPG 完事的时候会触发一个 waitpid 在 docker 的启动器里,而 docker 的启动器 pid 是 1
    wddwycc
        11
    wddwycc  
    OP
       2015-09-30 01:33:03 +08:00
    @MrGba2z
    也修过 MIT 的算法导论课,虽然还没上完,但是我觉得我没坚持上下去的原因是我觉得我平时做的东西比较偏线性,用不上绝大多数算法,二叉树,红黑树了解大概之后从来没发现过使用场景。

    就拿 DSP 来说吧,我做 FFT 只要调 Accelerate 框架的那些方法就好了
    app 开发者用的东西层级比较高,我倒是觉得对 OOP 的理解和对设计模式的理解才是对软件开发者来说最重要的

    毕竟写代码有这么多发展方向,为何要做到面面俱到?

    但有一句说一句,能用是一回事,知道原理又是另一回事,在能用的基础上去探索原理我觉得是一个比较好的学习方式,相比较于学了不知道能用来干嘛。
    wddwycc
        12
    wddwycc  
    OP
       2015-09-30 01:48:01 +08:00
    @MrGba2z
    你说的这些,确实是大公司会考的东西、、但我不认同他们是编程基础- -. 特别是 3 和 4
    算法大家在心里和实践里都有一些概念,但是我认识的 IOS 开发者中会在这方面钻一些的真的很少,几乎都是学生时代学了一些基础理论的.
    viko16
        13
    viko16  
       2015-09-30 02:05:19 +08:00
    先把 iOS 拼对
    TiramisuDoo
        14
    TiramisuDoo  
       2015-09-30 02:18:24 +08:00
    TiramisuDoo
        15
    TiramisuDoo  
       2015-09-30 02:18:45 +08:00
    @viko16 说的对
    TiramisuDoo
        16
    TiramisuDoo  
       2015-09-30 02:21:23 +08:00
    我觉得楼主字里行间流露出一种大公司笔试题目和实战无关联的想法,就好像在说中国的应试教育一样。然后贴上自己的博客、上架的项目,觉得这就是一切了。这样的在小公司很好找到工作,大公司基本要寄出很扎实的。
    TiramisuDoo
        17
    TiramisuDoo  
       2015-09-30 02:21:47 +08:00
    @TiramisuDoo 基础
    nzomkxia
        18
    nzomkxia  
       2015-09-30 08:51:32 +08:00
    @wddwycc 说了半天,你的意思还是实践项目比较重要,基础比较次要,很可惜大公司都是比较要求基础的,估计你也很难改变这种现状,那要么你自己改变,要么别去大公司,多简单的事情....
    MyEvonne
        19
    MyEvonne  
       2015-09-30 09:31:28 +08:00
    @viko16 哈哈哈,再把 Xcode 拼对。
    youdaji
        20
    youdaji  
       2015-09-30 09:55:04 +08:00
    不好意思说点实话,看了楼主所谓的项目,就是培训班 3 天的水平,然后鄙视 bat 笔试题,简直井底之蛙
    pandachow
        21
    pandachow  
       2015-09-30 10:16:47 +08:00
    诶好奇怪的逻辑,看到 BAT 的笔试题觉得不会做,第一反应难道不是去补课吗,或者是找个小公司先干着然后再去慢慢补课?
    wddwycc
        22
    wddwycc  
    OP
       2015-09-30 10:59:57 +08:00 via iPhone
    @pandachow 嗯,是
    lbj96347
        23
    lbj96347  
       2015-09-30 14:43:54 +08:00
    走校招渠道的话,底子一定要硬。起码你的算法,数据解构,编程语言这些基础的东西都要打磨好,因为笔试这一关你是必须要过的。其实还有一个渠道就是社会招,社会招的话如果跟公司内部有熟人,这样会好过一点,直接面 Tech Leader 。不过这个还是过要 HR 那关,就看公司文化如何了。

    坦白说,现在几个大公司,除了腾讯有钱,另外两家的话的股票都有问题,所以你就知道经济状况怎么样了。而腾讯的话,一般来说还是很严的。而且最近没啥新产品需要急招扩招,微信也过了疯狂扩招的时期。可以放开一点,考虑一些成长型的公司,看 Tech Leader 背景,一样有很好的前景。
    wddwycc
        24
    wddwycc  
    OP
       2015-09-30 14:55:48 +08:00
    @lbj96347
    是你哈.
    我今天反思了一下, 还是决定先做好眼下的事情. 做点好东西出来.
    Ixizi
        25
    Ixizi  
       2015-09-30 16:29:44 +08:00
    我这个非 CS 的都在考虑要不要去 "九章算法" 补补看了...
    lbj96347
        26
    lbj96347  
       2015-09-30 17:05:13 +08:00
    @wddwycc 嗯,加油。给自己设定一个有一定长远性的目标,往那个目标进发就可以。
    Elenickel
        27
    Elenickel  
       2015-09-30 22:09:18 +08:00
    @wddwycc 谢谢楼主,明确方向了!
    XadillaX
        28
    XadillaX  
       2015-10-01 01:17:03 +08:00 via Android   ❤️ 1
    我不会 ios ,但是举个例子:

    有一群 ruby 程序员(非黑,只是真事)写了个系统,线上很 happy 在跑,也没问题,并且正在很好地服役。

    后来来了个接盘侠,发现——因为 ror 封装了好多东西,所以连 sql 语句也没有写过,并且表里没有索引,后来发现一些字符串字段,比如某些类似 uuid 的短 id ,以及其它字符串字段清一色 varchar 255 。已经所有字段基本上都是 allow null 。根本不需要关心数据库到底怎么样的,调去调去系统就出来了。

    你说系统没做出来吧?其实做出来了,而且跑得很欢快。但是这样的基础写出来的系统质量呢?

    不是说速成不行,但是很多人往往忽视了基础而不自知——那帮人肯定没意识到自己的这些缺陷,并且认为自己的系统很牛逼地在跑。

    这只是举个例子,这个基础肯定很多人知道,但是实际开发中会用到的基础,无论前后端,肯定多了去了,你不知道的也多了去了。

    基础只是是为了在你用到的时候可以去查去搜索,而不是等你用到的时候你根本不知道有这东西的存在。如果是后者你根本不知道这个基础的话,你自己能实现系统但是没意识到自己的系统多糟糕。
    xjbeta
        29
    xjbeta  
       2015-10-02 00:13:51 +08:00 via iPhone
    原来这个留白和我手机上的留白不是同一个
    luikore
        30
    luikore  
       2015-10-02 15:08:46 +08:00
    @XadillaX
    会写 DDL 就算有基础了? 又不是实现过数据库
    我也可以说你 SQL 用得很 high, 完全不需要懂 unix socket 啊 memory barrier 啊 flock 啊 cmp16xchg16 什么的... 你肯定没意识到这些缺陷, 并且认为自己的系统很牛逼的在跑
    wddwycc
        31
    wddwycc  
    OP
       2015-10-02 15:50:53 +08:00 via iPhone
    @xjbeta 那个留白的作者在楼上
    fengjianxinghun
        32
    fengjianxinghun  
       2015-10-02 16:02:00 +08:00 via iPad
    @XadillaX 没有实现过工业级数据库,没有实现过 SQL 解析器 你肯定也没意识到缺陷。。。
    wddwycc
        33
    wddwycc  
    OP
       2015-10-02 16:06:16 +08:00 via iPhone
    @XadillaX 这个行业都是站在巨人的肩上嘛,对基础做彻头彻尾研究的感觉会留在学术界吧
    XadillaX
        34
    XadillaX  
       2015-10-04 01:41:30 +08:00
    @luikore 我没有说我的基础非常夯实,至少数据库一整块包括查询树、优化什么的都是学过的,并且我又不是 DBA 这块,你说的实现数据库算是基础?不要说太多这些东西以体现自己的博学,哪些是基础哪些是各不同领域的基础和深入还望自行区分。
    XadillaX
        35
    XadillaX  
       2015-10-04 01:42:09 +08:00
    @fengjianxinghun 所以你认为应该没有任何索引,所有的字段应该由 ORM 自行生成?
    XadillaX
        36
    XadillaX  
       2015-10-04 01:42:34 +08:00
    @wddwycc 不需要彻头彻尾,那不叫基础。但是基本上的常识应该是要的。
    luikore
        37
    luikore  
       2015-10-06 14:23:32 +08:00
    @XadillaX


    第一你并不懂 Rails, Rails Migration 能指定字段的长度 limit 和 nullable, 也能维护 index, 完全可以代替 DDL 而且不受 SQL 方言影响

    第二你说的"常识"不是必要的, varchar 长度在现在的数据库里已经几乎没影响了, 而且 Rails 提供的在应用层校验的办法既比 SQL 校验灵活, 又可以提高延展性, 已经历了无数人的经验验证. 你学过的那点东西其实有点过时... 写起程序来并不比只会 Rails 的小朋友出色, 五十步笑百步而已
    XadillaX
        38
    XadillaX  
       2015-10-07 01:23:53 +08:00 via Android
    @luikore 所以说啊, rails 都封装好了,他们自然不知道了。但是程序是会有历史包袱的,会有接盘侠的。遇到系统迁移呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1011 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:12 · PVG 04:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.