本人大学期间专业为土木工程(正宗搬好砖),非985、211的小一本,2015年7月毕业,由于非计算机专业,想从事IT行业,求职路上一直受挫,想求助下这种情况下该怎么求职进入行业和快速成长。
基于个人兴趣爱好在大学期间自学的编程、数学建模等,数学功底不错,了解常用算法、数据结构,使用过的开发语言有C/C++、C#、Matlab。
自身的学习能力还可以,自学了数学建模和Matlab,在全国大学生电工数学建模竞赛中获得过国家三等奖(风电功率特性分析,数据分析相关),在全国大学生数学建模竞赛中获得过国家一等奖(碎纸片的拼接还原,图像处理相关),因为毕业论文,2015年3月开始自学C++/MFC,开始做一个土木行业的边坡稳定性分析软件,现在已经基本完成(实现了CAD交互绘制模型,土体参数设定,计算和数据展示)。
在去年9月保研政策改变后(自由填报保研志愿后,我校一个专业保研名额缩水为一个,排名第二被刷了),开始踏上了找工作之路,起初一直在土木行业找,来我校的大部分也都是些施工单位,大部分都能拿到offer但最后还是放弃了,后来觉着自己也不想干土木这行,是该改变一下了,做自己想做的事,今年便开始关注IT行业的招聘信息,但由于缺乏相关的开发经历,很多时候笔试过了最后还是挂了,寻求开发相关工作屡屡碰壁,特来请教各位,特别是从非IT业转行的开发者,寻求求职和快速成长的相关经验。
明确两个:
(1)你想做什么?想写应用类程序,还是算法密集的程序?
(2)你想怎么切入?想写应用类程序,直接从 iOS 或 Android 切进去,然后不断的自学其他技能;想写算法密集的程序,建议先找个本专业的工作,养活自己。然后找一个领域,自学进去。如果是图像类的,数学比较好,代码基础比较好,可以直接去刷《Computer Vision: Algorithms and Applications》,刷它的习题。每刷一道习题,写一篇博客。这本书刷到三分之一,你就能找到比较好的工作。不要纠结基础算法,直接刷领域应用算法 。。。
3楼 @清醒疯子 恩,对工作要求就是公司靠谱点,但是对业内的公司不是特别清楚,看了冯老师的奇葩公司文化巡礼,觉着奇葩公司还是挺多的,也希望前辈推荐些不错的公司,对于公司技术方向抱着学习态度吧,我之前搞的东西可能很少有公司弄,现在流行的东西都得去学,待遇的话前两月学习的话给个实习工资就好了,倒是对是不是创业公司不在乎,只是创业公司的话一般不会考虑我们这类吧,因为看到创业型的公司招聘一般都是需要三年五年之类的工作经验
4楼 @xiaotie 谢前辈指点,至于是写应用类程序还是算法密集的程序,应该是从应用类程序入手吧,看到招聘最多的是iOS 或 Android ,就业面也要广一些,在入门iOS 或 Android 开发后做优化涉及到技术实现原理和各类算法时再深入探究,单从领域应用算法入手的话找工作很难,门槛很高,很多都要求硕士以上的相关学科背景,而对于先找个本专业的工作,养活自己,我起初也是这样想,但是就怕自己这样的话会出现给自己留着后路、出现拖延和陷入安逸圈,同时土木行业的工作很繁琐,没有太多的时间来学习,所以想如果可以的话毕业的时候直接从事IT行业
我个人觉得想要转型要趁早,看楼主的学习能力和经验都不错,如果能把本专业学好其他的更不成问题,况且楼主算得上有真正的编程基础,其实大部分比较好的软件公司对于一个应届毕业生的要求是熟悉一门语言+算法(很重要尤其是面试大的公司),如果参与过实际项目就更perfect了,所以我觉得楼主有能力直接去找IT方面的工作。如果要想转就千万不要抱着先找个本专业的工作再去转,试想你要为了生活努力工作,如果当前的工作比较累需要加班,又怎么能有心思和时间去学习其他知识呢,况且即使有时间去学习效率也不如上学的时候,两年的建筑工作经验+编程学习同两年的编程方面的工作经验哪个更有含金量呢? 我们公司有一个是中国政法的毕业然后转到了IT很成功,大家对他评价都好。 主要是我觉得楼主会找一个不错的工作,所以不要浪费时间奔着你的理想去吧。 但是千万要挑一个比较好的IT公司而不是为了就业而盲目择业,要能学到东西的那种。 忘记跟楼主说+++++++++++
8楼 @haojingyan 谢谢你的建议,不过这些日子找下来感觉现在工作好难找,就别说一个比较好的IT公司了,在V2EX上看到不少的招聘,发了很多简历都没了音讯,也都能理解,毕竟土木和IT相差很远,而且现在能力是很基础的水平,所以一直想找个当初转行来的前辈咨询咨询怎么进入行业完成这第一步,对于你说的不找本专业的工作再转我也是这个想法,但是也怕找不到相关的工作不得不去本专业工作上班来养活自己,毕竟不想走出校园了还需要啃老,希望我能好运避免这样...
我们从需求层面来分析。目前IT界对技术人员的需求分四大类:
(1)技术总监、CTO,这是目前最稀缺的。这两年来融资的太多,高级技术人员不够用;
(2)核心开发者。能把事情做的很好。这个也紧缺;
(3)普通开发者。能把事情做出来;
(4)有潜力的新手;
通常来说,BAT这类大公司需要的是(1)(2)(4)这三类人;创业公司或中、小公司需要的是(1)、(2)、(3)这三类人。(1)、(2)您现在不是,在进入行业之前,肯定不是。故排除掉。(4)通常来说,要的是名校相关专业。貌似也可以排除。剩下就是(3)了。而您给自己的定位不在这(1)(2)(3)(4)里面,而是:
(5)新手。
有没有潜力不知道。没潜力的话,没公司需要。有潜力的话,大的互联网公司需要,但这个对人的要求很高。所以,您现在是瞄着一个没啥有需求的方向在努力。虽然现在各个公司都很缺人,但还都不愿意招聘不知道有没有潜力的新手。为什么呢?对大互联网公司来说,不缺人,能直接招有潜力的新手来实习。而创业公司对时间要求很高,招来不熟悉的,会拖进度。前几个月是不会有啥产出,还得投入人力物力来培养。中小型公司也不是多喜欢要,就是要的话,通常职位额发展前景不怎么样。
这样一来,就只剩下(3)普通开发者。
得把自己变成一个能把事情做出来的普通开发者。这就需要有案例。
具体来说,您需要:
(1)确认自己的发展方向,粗点也行,iOS 或 Android;
(2)做出一个比较好的案例出来。
做到这些,努力的话需要6个月左右的时间,不努力的话时间更长。这就是黑暗期。然后问题来了,这段时间怎么办呢?如果能在毕业之前把这些搞定最好,如果搞不定,只有:
(1)在能接受新手的中小型公司上班; 或
(2)在自己行业先呆着;
相对来说,还是(2)轻松点,有时间点。(1)通常来说,就是无休止的 Copy + Paste。当然,如果能直接找到自己发展方向上的公司最好不过,这就跳过黑暗期了。
7楼 @laoluo1991 ios安卓领域也没有很深的技术领域,,开发技术多在于ui实现 用户交互
后台数据有专门负责的开发,楼主擅长的技能 大部分是专业领域 应用以及算法,这在很多移动应用开发领域是没用的。
如果你想深层次做安卓的驱动开发,系统学习计算机体系知识成本太高,边学边补走的弯路太多,而且it深层次岗位少 精深很难,所以很多人感叹开发最多做到35,事实上大牛总是极少数,大部分人只是干着重复的写代码工作,真喜欢编码的话,你还不如在自己专业领域写应用模型。
写java的至少9成在写业务逻辑,写c++绝大部分写服务端 写c绝大部分写底层 it开发早就分工非常细致了,个人建议选个喜欢领域一直做下去,做ios 做安卓就一直做移动开发, 换个新平台新语言 立马上手跟着学,
14楼 @laoluo1991 事实上软件工程跟土木工程没什么区别都是项目预测 分析 设计 施工 搬砖 验收,只不过一些做着高端的活,例如大数据 机器学习 类库开发 等it行业的基础性开发,拿着体面的收入,由于极其高的学习门槛,而且领域比较窄,所以淘汰的慢,简而言之就跟土木领域研究新砖头跟新建筑材料的人,当然由于土木业比较成熟,基本上不会有人从事基础研究跟开发了,就像我学的机械整个大行业里面也很少有人从事新材料开发跟新机构开发,大家都是在自己熟悉的技术范围内搬砖而已,只不过这些传统行业,很多经验性的知识需要长时间的积累,大部分新人缺少平台练手,这样导致的行业阶层固化,使得很多年轻人被迫从事附加值极低的职位,我估计土木行业大致情况也差不多,也是十分论资排辈的行业,大部分本科生从事最基础的岗位。
14楼 @laoluo1991 人类社会中大部分工作都是带有重复性质的,不可能每天都去从事自己毫不了解的新领域,你在土木做施工 做监理 不还是那样,做结构设计的又能高大上哪里去,那么多建筑 结构不都是千篇一律,难道还能开发出反重力结构,搞机械的,做工艺不还是每天照以前的工艺流程跟资料编工艺卡指导工人生产,做设计的不还是拿以前的东西修修改改,不可能凭空开发一个新机构的,大家干的都是搬砖活,开发新领域只有科学家才会去探索的事情,普通人都是搬砖而已
我觉得你这种情况,最好直接选定一个方向开始干,比如android开发(有mac的话ios更好)。不要多想,好好看看教程, 多谢几个demo app出来。努力几个月之后,你自己自然会有个比较清晰的思路了,起码应该知道要问什么样的问题。
我也是转行的,其实自学没那么难,加油!
22楼 @intheend 转了,大致过程是这样的,15年的6月毕业,在某省公路设计院上了两个月班,然后还是辞职了,休息玩了一个月,找了一家旅游电商做Java工程师做Web后端开发,16年初公司破产,失业,半个月后去了某智能金融设备公司做算法工程师做单片机上的图像识别算法开发,一年后项目完结现在内部转到了新项目做CRM数据模块的开发