分享

想在IT行业牛B起来,看他说了些什么……(年轻人必读)

 walter1888 2015-05-27


最近收到一些在校大学生的来信,询问大学应该怎样学习,应该选择什么方向学习什么技术,应该如何为工作准备…… 看到这些问仿佛看到了当年的自己,深有感触!发现其中很多问题对大部分大学生都很有帮助,于是将回信以博客的形式公开,结合自己一路走来的经历与大家分享个人对IT行业、学习、工作的看法,希望能帮助更多的人。


有什么方式可以让我从牛A变成牛B?

IT技术方向划分:

你对技术方向的概括算是较全面了,我稍微修改一下觉得这样划分更合理一点:移动开发方向、web前端方向、web后台方向、游戏开发方向、算法/研究方向。因为互联网行业后端服务器一般都是Linux,所以web后台开发和Linux服务器开发可视为是一个方向(除非你指的Linux服务器开发是系统架构师,不过那是运维的工作,应该不算做开发吧)。还有一个方向是算法/研究方向(如大数据、云计算、内核开发),虽然你把它从本科的范围内排除了,但我个人不这么认为。虽然算法/研究方向基本上都要求研究生或博士及以上,但本科生还是有的,只是比较少,需要非常厉害的优秀人才,阿里的云计算还有本科生呢!还有就是游戏开发以C++为主却不仅限于C++,虽然很多大型游戏都是C++开发的,比如现在的手游也有Android、IOS的开发的,还有些游戏开发会用新的技术(如比较有名的Unity,可能在大学都还接触不到)。数据库基本上都是架构师和程序员一起的设计的,只有大公司才会有专业的DBA。

IT行业的发展趋势:

移动端

移动端(手机操作系统)是一个变化最快的领域,也存在很大的变数。10年之前,在诺基亚风靡全球的时候,你会想到Android有现在这么大的前景这么多的用户量吗?10年开始(其实08年就开始酝酿了),Android迅速崛起,发展异常的凶猛,到12年几乎人手一台Android设备了,与此同时诺基亚却一路下滑,直至跌到低谷再也爬不起来的,后来投入微软的怀抱也发展的不太顺利,已经是大势已去。而苹果从2007年第一代iphone诞生的时候开始,走的就是高大上的路线,主要针对的是高端人群,价格是所有手机中最高的,但技术也是最牛逼的,体验是最友好的,以至于每一次的发布会排队的人都济到爆!看到移动平台的快速发展和触摸屏手机的迅速崛起后,微软也于2010年投入了移动平台,发布了Windows Phone操作系统,凭借着 Windows PC操作系统的声望和Microsoft的品牌吸引了不少的windows phone的用户,但与Android和iphone相比,还是相差太远。个人认为:苹果是用户量较少,却是最赚钱的,凭借其强大的技术实力和追求完美的精神,在三到五年内应该还可以发展的很好,这方面的工作前景自然也是不错的;Android是用户量最多的,目前的就业机会还是挺多的,但未来是否会被新一代的手机替换还不可预知;windows phone关注的较少,个人不太看好!

互联网

我认为IT领域未来的发展方向,从实体方面来看一定是智能设备和物联网,从领域来看一定是互联网+,未来的网络将会越来越智能。

互联网是网络与网络,网络与人的连接;而物联网就是物体与网络,人与网络的连接。阿里巴巴的投资人孙正义在互联网大会上说过:“今天每个人大概会有两个移动设备,2020年的时候,每个人连接的设备的数量会达到一千个”。未来将会是周围都是物体,而物体都与网络连接,也就是周围都是物体,周围都是网络。而且物体将会越来越智能,智能家居应该会发展起来,比如你一回家,空调就开了,电灯就亮了;一出门空调和电灯就关了,还提醒你今天的天气状况…… 现在已经有很多物联网慢慢发展起来了。

互联网+就是互联网与传统行业的结合(互联网 + 传统行业)。现在又有一个新的说法,就是“+互联网”,比如万科的房地产以属于标准的传统行业,现在与快钱合作引入互联网,也想打造一个电子商务平台。不管是“互联网+”还是”+互联网”,都是互联网不断地渗透到传统行业,互联网与各行各业的结合将会更加紧密,比如互联网+金融,现在BAT三家打的正热闹呢!再比如互联网与传统餐饮业的结合,打造出了现在的百度外卖,再比如新兴的e袋洗是互联网与洗衣店的结合。

游戏

我本人不怎么玩游戏,对游戏不太了解!但从整个社会发展来看,世界在不断发展,中国也日益强大,随着经济水平的不断提高,人们有更多的时间用来悠闲娱乐,也有更好的物质基础。在这种趋势下,玩游戏的人应该会越来越多,游戏行业应该会越来越景气。

技术方向的前景:

根据以上的分析,互联网将会应用的越来越广泛,web前端、web后台方面、移动开发的人才在未来的三五年内应该都是紧需的人才。随着大数据时代的到来,算法/研究方向的高端人才将变得及为紧缺。

技术的学习:

我曾经做过阿里和百度的校招笔试题,Java研发工程师的笔试题要求的计算机语言主要以Java为主,会有少量的C++题,程序设计的题目一般可以在Java、C++等语言中任选一种。题目的类型的话,你提到的数据结构与算法、数据库、操作系统、计算机网络等都会有。算法工程师职位的笔试题语言主要以C++为主,类型会有什么KNN啊、隐马尔可夫啊、最短距离等很难的算法。

Java的笔试题会有部分C++的题目,我想可能是有这么两个原因吧:1.考查你的学习态度是否认真努力,因为C++是几乎是所有大学里计算机相关专业学生的必需课;2.考查你对计算机语言底层的一些认识,对基础的掌握程度,比如:如果你熟悉C++,就会知道数组在内存中其实就是一块连续的内存段。如果你想做Java后台开发的话,就以Java web技术的学习为主,C++基础还是有必要掌握的。

方向的选择:

至于技术方向的选择,我觉得不管做什么选择,都应该以兴趣为主,跟着自己的心走!这样才不会留下遗憾。这样还无法做出选择的话,就跟着直觉走吧! 我觉得在对事件一无所知的情况下,直觉是0.5自我意识+0.5天意。我在大学三年主要学习的主要方向都是Java,在四上学期实习时的工作也是Java。后面发现Java虽然使用很方便,但很难有机会地了解底层的实现原理,而且大部分公司的核心产品为追求效率会用C++开发,学Java的话就很难进入核心部分…… 于是我就毅然转向C++,几乎从零开始。我同学都说我疯了(因为当时我算是Java学得较好的几个之一了),但我知道我是在跟着自己的心走!于是大四下学习我就开始C++的实习,后面经历了一此坎坷,但我仍然不后悔,直到现在也是。

如何证明自己很牛?

要证明自己很牛,首先得自己真的很牛!要变得很牛得自己不断努力,要证明很牛得通过平台。你说的这五条几乎包含了我所知道的全部,再补一条就是写书,如果你在大学能就某个领域写一本书足于证明你的能力,我就在CSDN见过这样的人毛星云(南京航空航天大学)。下面我只能就此更细细地谈谈自己的一些看法。参加软件开发大赛是一个非常不错的途径,但这种大赛得是全国性的,或者是国际性。在各种大赛中ACM无疑是含金量最高的,也是得到世界广泛认可的,数学建模大赛如果能拿到全国一等奖以上也不错的,也能得到认可,理工科都是建立在数学的基础之上的。博客是自己技术积累的见证,开源社区是自己代码质量的证明!国内博客网站比她的有CSDN、博客园,CSDN比较商业化,牛人也不少;博客园比较纯净和个性化。国外的博客网站了解的不太多,如果你知道可以一起分享一下。开源社区首先的当然是github不过了,如果你想去Microsoft或google的话,说明和注释最好还得是英文的。如果你想去Microsoft的话,微软MVP认证应该会有所帮助,这可以通过CSDN进行申请。

请问您认为程序员的“核心竞争力”是什么,包括什么方面以及怎样去培养?

这个问题原来这么多人问过,但我之前还从来没想过。认真思考了一下觉得程序员的核心竞争力应该是:

1.学习能力(IT行业更新换代非常快,需要不断地学习新的知识和技能)

2.解决问题的能力(作为程序员你经常会遇到各种bug,定位问题,解决问题的能力是极为重要的)

3.态度(一个人的态度觉用心程度,是觉得能否成功的关键)

如何证明你的这些核心竞争力呢?

比如:1.在两个星期内完成了Windows API的学习并接手xx项目,在三个月内完成了这个10万行代码的项目,足以体现你的学习能力。2.我们公司的xxx项目组遇到一个xxx问题,耗了一周的时间没有弄出来,后来请我去帮忙,两个小时就搞定了,足以证明你解决问题的能力。3.坚持三年写博客并写作和出版了《xxx》一书,一年销量10万;工作也认真对待,半年就从一个普通的开发人员升为开发经理;足以看出你是一个有毅力,有上进心的人。

这些例子虽然说的有些夸张,但却是证明你能力的一个很好的方式,前提是你真的有这个能力!

写在最后

最后的最后,送你一句话:年轻有梦,勇敢去追!进入BAT不是梦……

(更详细内容请点击“阅读原文”查看)




来源:CSDN博客 作者:SmilingSunrise



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多