先介绍一下自己。我是安徽人,现在在上海电力学院这所三流学校读大三,专业是电气工程。当初选择这个专业很大程度上是因为受到了我父亲的影响,他是一名国家电网的职工,希望我以后也可以进电力系统。而我当时根本没有编程的概念,最大的兴趣点则是几乎不可能有前途的音乐创作,于是面对着疲软的高考分,我唯一的愿望就是去个大城市。来到了上海后,在学校里小打小闹玩了两年乐队,为了用上 Logic Pro 买了人生中第一台 MacBook,在渐渐地看清了汪峰牌梦想到底是个怎么回事以后,我也慢慢地开始对计算机产生了兴趣的萌芽。
在那些蹉跎掉的时光里,我发现我还是一个挺喜欢折腾电脑的人:虽然我啥也不懂,但我在自己身边既没有懂计算机的同学也没有老师指导的时候,独自学会了抛弃 VC++6.0 转而用 Xcode 学二级C,学会了给老机器装个 Linux 用 vim, gcc 和 git 来写数据结构作业,学会了在寝室里用路由器自己搭一个局域网网盘并让各种系统的机器都能访问,学会了扔掉学校的计算机硬件接口教材自己去 kickass 下原版书学汇编…… 在走马观花的看完几本 Headfirst,尝试了好几个版本的 helloWorld 并且聆听了 ibuick 的神谕播客以后,我突然发现,在计算机的世界里似乎有一股非常有魅力的特质吸引着我让我不断地想要去更多地了解他。
在留学中介的忽悠下我痴想过去美帝读 CS,虽然我大三以来花了很长时间拼命学英文,但因为我的「不务正业」而不到 2.8 的 GPA 让我越来越担心去也去不了什么野鸡大学。不过最起码英语能说的差不多了。
终于,去年年底的时候,我去了一次 SwiftCon 圆桌活动。说来也是机缘巧合,如果不是因为那个会开在我学校隔壁,我这个 outsider 定是不会去参加的。虽然我当时屁也不懂,全程安静地旁听大家交流,但那次的活动让我从潜意识里认识到 iOS 开发的世界据我是如此的触手可及,他的行业氛围与学习环境是多么的令我向往。于是我正式决定了要开始学 iOS。
熬过了随后而来的考试周,寒假里考完了一次托福并丢掉用了 3 年的 iPhone 4 换了个 6s+ 后,我于二月底正式开始了学 iOS 的进程,壮起胆子从斯坦福 Hegarty 老爷爷的课开始。算我命好,跟着上了 4 节课以后被现在在复旦计算机专业的高中老同学叫停了,丢给我一套RayWenderlich 的 iOS Apprentice。然后我开始如饥似渴地学起来了。这时候是三月初。
还好英语底子不差,花了一个月时间,把这 4 本书跟着做得差不多了,然后开始着手写自己的 App,解决自己一直想要的一个小需求。App 的名字叫Forte,是一个音乐表情术语的字典。我原以为这个简单的需求应该很快就能做出来,给自己计划了一个星期来做,但实际上各种事情搅在一起,总体又花了我一个月。
真正自己开始写的时候才能发现之前看书的效果是多么的不透彻。复旦学霸给我的 pdf 里面有淘宝白菜价卖教材的店铺广告,不由分说跑去买了全套各种教材回来。于是我一个月的时间几乎都在不断地翻教材,搜Google,查Dash,游走在不同的 Stack Overflow 之间。由于 Forte 的核心部分非常依赖 CoreData,在实现需求解决问题的过程中,不仅巩固了之前看书学到的很多重要概念,也大大提高了我自己的自学能力。
这几天在修完 TestFlight Beta 版的 bug 之后,今天终于做完了最后一个部分,虽然还有很多可以改进的地方,但总体自己还是比较满意的。今天上传了代码到 Github,并提交了 App Store 审核。然后我在学校听了一下午没用的大讲座,刷了刷微博,想了想未来,突然感觉相当的茫然。接下来应该干啥呢?是继续自娱自乐下去,还是找找组织呢?
继续自学iOS,把目前听说过的东西都亲自撸一遍?Multi-threading? Instruments? JIRA? CocoaPods? 要不要自己再写一个app?对了最近 Hegarty 老爷爷的课程又更新了,要不要跟着上一遍?
要不要找找组织虚心学学?怎么找?实习吗?这么菜级别有人要吗?要不要学学怎么搭服务器?该不该好好系统地学学算法?网络?操作系统?要不要看看面试题?我去面试题好多不会啊,要不要针对这些题学一学练一练?别人面试都专业对口有学历有项目经验有代码量的,我现在这样该从哪入手?应该把找到实习的预期时间定在什么时候?
要不要再准备出国?刷Toefl?刷GRE?还是看看正在上课的内容别等考试周再乱抱佛脚?电力系统稳定?电厂接线?继电保护?
暑假了咋办?再开学就大四了,时间已经没有那么充裕可以供我自娱自乐了,咋办?毕业了到底能干啥?
要做的所有事情看起来都很重要,自己现在也已然弄不清楚下一阶段的主要目标是啥了。各位大神,谢谢你们可以耐心看我啰里八嗦说这么多,我现在身边也没有可以交流给建议的同学或老师,你们能给我点建议吗?如果我想找实习的话,不求工资不求福利,我需要学会哪些知识和技能呢?
额..一家之言,仅供参考
app红利期过了,起码不像以前一样,懂点开发就能找到不错的工作了。所以在招聘的时候,公司会先倾向于学校,再进行专业方向的测试。暂且不说这样合理不合理,起码现在很多公司是这样的。
有几个方法来解决这个问题
1.去美帝也好,考国内牛逼院校的cs专业也好,把学校档次提上来
2.憋足了劲,真的搞个大新闻,搞个非常牛逼的app
3.搞搞机器学习这些未来会爆发,现在紧缺人才的方向,并且搞出点名堂来。
仅供参考
你这求建议的问题真的是够多的。而且这么多问题,不是所有问题都需要马上解决,分清先后轻重缓急。你的问题只有你自己能解答,所有问题都写下来,自己写出几个答案进行选择权衡。自己决定不了,就把这些选择写出来,和大家一起分析,不要上来一通乱问,直接要现成答案。
我也在考虑要不要留学,刚才随手搜了下资料,提供几个思路供楼主参考。
可以参考对未来的预测报告。比方说
麦肯锡2011年的分析报告,“麦肯锡发布大数据报告中预测,到2018年美国的高级数据分析人才的缺口将达到人才实际供给量的50%-60%。 http://www.36dsj.com/archives/38364
http://www.36dsj.com/archives/5515
这两条是我随手搜到的,需要你自己再验证下信息准确性。
去哪里学?听美帝读书的朋友说,美帝要求更高,cs奖学金也难拿,可以考虑加拿大,加拿大奖学金好拿,也需求cs人才。
收入上来说,这三者中,国外cs毕业收入最高(至少刚工作时是这样,至于10年20年后哪个收入高,我也不知道),但影响一个人生活质量还有很多变量,比如工作中能否产生心流(这影响到幸福感以及能不能把工作做到很好),自己的性格秉性在所处环境里获得成功的概率,(不仅指经济上的成功,可以参考Dame Mary Douglas的群格理论。还有哪些变量影响人们的生活,恐怕科学家也无法完全弄明白。
最近看coursera的公开课learning how to learn ,一个MIT教授提到在人才济济的MIT完成学业时,如果自己不是最最聪明的人,团队协作很重要。
大学之前你被教导独立完成作业,但在大学,至少在工科学院来说,你应该是一个团队一部分。你得主动认识掌握资源的人。(资源:比如课程笔记,旧题集)
如果你还没有团队,就加入一个,如果你已经在一个团队中,就壮大这个团队,但是你必须是某个团队的一部分。你需要尽快找到自己的团队,并确保其他成员都认真负责地学习。
无论是打算继续学习计算机将来找相关工作,还是出国留学,找到同路人,比独自一个人会好很多,可以彼此提供信息和帮助。顺带一提,同路人(比方说一起学习的人,留学咨询的人)需要谨慎选择,我也在上海,上海是个资源丰富的城市,无论想做什么都有太多选择,以前在三线城市我想做的某些事情根本没有选择余地,我也没形成选择基准,但在上海,需要斟酌哪个最适合自己