我就是培训+自学出来的.
直到今年4月以前,我一直是在一家电子厂做QA相关工作, 在知乎上曾经实名或者匿名回答过一些问题, 基本上是与iPhone制造相关的话题. 加上我的专业学的是英语, 可以说,我之前基本上是与编程绝缘的.
鉴于现在制造业越来越难熬, 本人又常常自命不凡, 决定转入互联网行业闯荡一番. 常年看知乎, 对PM深感厌恶, 觉得还是当名程序员要实在一些, 奈何志大才疏, 之前从未接触过此类知识, 自学感觉是狼咬刺猬–无从下口, 于是便来北京, 报了一个培训班学iOS.
题主那句话我很赞同:如果你不能通过自学来达到能找到工作的水平,那你还是放弃程序员这个职业吧. 培训班的老师基本上就是教你个入门, 剩下很多东西都要靠自学. 实话实说, 我那个班的讲师水平还是可以的, 最起码没让我一个文科生觉得编程很乏味.
但是培训班为了赚钱, 很多没有决心+智商的人也混到里面来了. 记得第一个月, 讲C语言基础, 一个指针就让很多人就多人想不明白, 传值传引用就成了听天书. 那个讲师把数组的知识稍微扩展了一些, 讲了一个数组栈, 大家就快要罢课了. 讲师很无奈, 就没有深入讲.
其余学员是满意了, 但我不满意啊, 好在电驴上有一套郝斌老师讲的C语言数据结构, 我于是又自学了链表, 二叉树的一些知识, 在学着敲链式栈的时候, 才觉得老师将的数组栈真的是太容易了.
我并不是在这里自夸我多么勤奋, 只能说一个人的阅历往往决定他的觉悟, 当时我们班平均文化水平就到大专, 岁数平均20左右, 其中还有一些社会人士, 比如有一个原先初中没毕业就去了一家夜总会看场子, 混了七八年才觉得要找份正经工作, 听人说当程序员很赚钱便来学这个. 当时很多人都是这个态度, 就是为了赚钱来的, 他们对iOS开发并不感兴趣, 对知识也并不感兴趣. 而我而是为了在新的领域创出一番天地才来的, 知识就是我的武器, 武器当然是越多越好.
还有一个例子也能反映一些问题: 当时讲到数据持久化的SQLite的基本使用部分, 很多学员当时都很浮躁, 都憋着快点出去找工作(毕竟这是他们在这里的唯一目的), 讲的什么基本没什么心思听, 讲师原来是在IBM干的, 讲的也还可以, 无奈台下学员一副茫然+开小差(忙着编简历呢), 一问三不知, 讲的也没什么劲, 这时一个学员起哄道:
“这个东西以后用的多吗? 干脆到公司去学吧! ”
我就觉得很好笑, 且不说你能不能找到工作, 你觉得公司都是慈善机构么? 给你工资, 还让你从头学一遍? (结果这个学员还是找到了工作, 靠编简历, 最后有一家是HR给面的, 觉得他还可以就要了, 工资8.5K….)
后来毕业了, 找工作的时候我也犹豫过要不要编造简历, 于是在知乎上匿名提问了一下(我到底要不要编造开发经验? - 程序员), 当时 @曾少臣的回答给了我很大的鼓励, 其中有句话希望也对你今后有所助益:
“有些路虽远实近,有些路虽近实远。”
于是我决定不编开发经验,靠实力找工作.
好在我身上还有研究生光环(虽然只是一个三流大学的, 而且还是英语翻译硕士), 陆陆续续面试了几家, 其中去58面试给我印象最深, 可以说是”一站到底”式的提问. 面试的主管特别喜欢问block, 多线程这些, 甚至问到了响应链, 好在我有所准备, 基本上都回答上来了. 最后问我有做过什么项目让她看一下, 我说并没有, 最后她以”感觉你理论基础比较扎实, 就是没项目经验, 怕你实际动手不行”为由给拒了.
那次我真的很想去编一些开发经验, 或者直接拿别人的项目说是自己写的, 但最后还是忍住了.
后来又去过优酷土豆面试, 意识到自己离大公司要求的工程师还是有很大差距的, 于是又自学一些知识后, 去了一家小公司上班了.
(优酷土豆面试官不知为何特别爱问数据结构的一些知识, 上来就问我什么是函数调用栈, 然而我当时对这个名词很陌生, 接着又让手写一个栈出来, 我当时写了一个数组栈, 然后他就让我数组转队列, 我就懵了. 我一再跟他说我是英语专业的, 可惜人家并不是很同情我回答不上这两个问题的人, 无情被PASS掉了. 当时觉得问这两个问题纯粹是刁难我, 现在看看, 人家还是放水了, 要是真让我手写一个翻转二叉树, 恐怕只有哭了)
我们组长是一个号称有过10年开发经验的人, 会java, python, Android, iOS, 曾经做过黑莓开发, 有黑莓认证工程师的资质, 做iOS开发已然三年了. 我当时觉得这是一个大牛啊, 比我这半路出家不知高到哪里去了, 后来看看这人写的东西, 发现这人实在是水的一B.比如说:
登录密码什么的明文保存;
uitableview什么的完全不用, 自己用scrollview+label的方式画;
storyboard啥的完全不会用, 纯硬编码写frame, autolayout啥的完全都是在我来了以后才知道的;
各种plist配置玩不转, 尤其iOS7以后各种权限申请都要往plist添, 他是完全不知道的;
SDK包各种不会用;
像什么NSJSONSeralization, UIAlertController, WKWebview啥的完全就是新名词. 有一次我看他的代码, 发现他用第三方框架写提示, 我就推荐用uialertview(当时还不知道iOS9要用uilalertcontroller替换掉它), 他试着写了一下, 说是不好使, 我看了一下, 他竟然不知道要设置delegate…. 同样地问题还发生在他使用UIWebView的时候, 也没有设代理, 后来我明白了, 因为很多代码都是他直接从前一家公司项目中复制粘贴过来的, 完全不知道怎么用.
最要命的是, 这些自觉根正苗红有经验的人, 不会新技术的人也就算了, 还不断的找借口, 同时瞧不起我们这些半路出家的人. 有一次老板要加一个页面, 我们本来打算用原生控件画一个算了, 他懒得出力, 说什么”为了保持安卓端和iOS端体验保持一致, 我建议用H5做, 我们用webview加载”, 后来发现他给自己挖了个坑, 因为他完全不懂UIWebview JS交互这部分(更准确的说, 他也不会JS, 虽然他自称原来会, 现在忘了….). 人家前端画完了,他又借口说:”体验不好”, 让我用原生控件做. 好在JS交互这部分我懂, 告诉他不必重做, 重写了他写的那个加载网页那个类(实际上就有一个UIwebview属性, 整个类只有一行loadRequest这么一行代码有效代码, 这就是我为什么知道他用Webview不知道设置代理的原因), 加上离线缓存, 提高了加载速度. 看我写完了, 他又无耻的说:”有些东西, 我做过一遍了就不想再做第二遍, 让新人多锻炼锻炼”…..
看我讲到这, 想来题主也明白了, 培训班出来的人不行, 不一定是培训班本身不行, 很多人本来就不认真活着, 怎么会转到互联网以后不混日子了呢? 有些人虽然是科班出身, 但也有些大混子, 比如我们组长, 这个行业还是要靠实力说话的. 希望我的故事能给你一些鼓励!
自打回答这个问题以来, 收到了众多知友的评论和鼓励, 在此深表感谢。 大概是我转行的故事给了一些还在犹豫的人很大鼓励的原因吧, 很多人都问我是报的哪个培训班, 或者问哪个培训班比较靠谱, 我觉得在这里有必要说一下。
在刚回答这个问题不久的时候,就有人跟我私信问过这个问题,那时我告诉他我在北邮在线学习的。
我猛然醒悟, 之前推荐了那么多培训班, 会不会有人以为我是培训班水军呢?他们会不会以为我推荐他报这个培训班, 就是为了赚提成呢?这不就与我回答这个问题的初衷相反了吗?
所以我在这里要声明一下, 我并不为任何培训班做宣传, 之后也不想回答类似“那个培训班比较靠谱”、“答主是在哪个培训班上的啊”等问题。俗语有云:“师傅领进门,修行看个人”。培训班再好也只能领你个入门, 重要的是看个人的修行。希望大家能做自己的判断。
对于还在犹豫要不要转行的朋友, 希望你能先考虑一下以下几个问题:
1. 现在工作不好找,你能承受多长时间的空档期?我们之前班的,听说已有5人放弃做开发,转回做老本行了。
2. 你有相当的决心吗?虽然培训班讲的只是不深, 但也是填鸭式教学,晚上还要自行巩固摸索,日子过的跟高三差不多(混子除外),找到工作以后加班熬夜也是常态。如果之前是在体制内上班的朋友还请三思。
3. 你自己的底子怎么样?对编程这门手艺有多少了解?有人是在进培训班之后才生平头一次见电脑,你觉的这样的人短期内能做好开发么?
4. 你转行的动机是什么?是为了钱,喜欢编程,还是别的?这个很重要,因为这直接关系到你要去找什么样的工作,如果就是热爱编程、想要学知识的人,那么他可能会首选一些正规的大平台,因为这样的公司技术储备比较足,员工培训体系也比较健全,除了技术外,什么PRD、代码管理、代码规范等等也做的很好,新人很能从中受益(我现在就深受小公司这些建设不健全之苦)。但这样的公司门槛一般比较高,即便进去了可能也只是实习生,即便是成了正式员工工资也不会高到哪里去。对于想赚钱的学员自然没有什么吸引力,还是去个小公司当个苦力(比如招聘启事上有写‘能独立开发App’的公司),薪酬待遇还能高一些。
