经常听到这样的说法:我数学不好,干不了计算机;我是专科能学好计算机吗?编程这东西不适合女生;我性格开朗活泼,不适合搞计算机。好了,现在上面这些说法我统统给个“X”!
我决定分以下几部分来介绍一下到底什么样的人适合学计算机。
第一,我们先分析一下IT行业到底有哪些从业人员。
可能有很多人在心里有这样的一个认知:计算机=软件开发,这是不对的。计算机的说法很有误导性,我们通常用IT行业来代替,IT行业纵身可以分为很多业务形态,如,互联 、企业服务、系统集成、终端设备、芯片等等。在这些业务形态下,横向又可以分为很多领域,比如,营销、运营、解决方案、产品、设计师、开发、测试、运维、客户支持等等。这些领域中,真正跟技术强相关的只有开发,跟技术弱相关的是产品、测试、运维、客户支持等。至于营销、运营、解决方案、产品、设计师等,最重要的是懂客户,并根据客户需求来安排资源,最终达到商业目的。
如果想更详细地了解各个领域的人日常工作都干些什么,可以看看我写的“老闪创业那些事儿”,用一系列连载故事讲述了一个互联 公司从创业到上市的过程,对各个角色在公司中的日常工作有很详细地描述。
接下来的文章内容,让我们聚焦到软件开发这个领域。
第二,我们分析一下文章开头提到的那些说法为什么不对。
先说说数学的问题。
我以前上学时也很头疼数学,虽然那时成绩不错,但凭借的是各科成绩很均衡,真正把数学单拉出来跟那些强人没得比。因此,在 专业时,即使我对IT行业很感兴趣,填 志愿时还是选了“信息管理与信息系统”、“电子商务”这两个专业,因为我看了一些学校的专业设置介绍,都把计算机定义为需要很好的数学成绩。时间太长,记不清楚从哪里得到的信息,但总之这个概念是形成了,最近我看知乎,发现大家还是有这种错觉。
毕业之后做App开发,又做系统开发,就是开发ROM,然后又做后台Java开发,搞了十几年,一直用的都是高中的那些数学知识。闲暇时间关注一下人工智能领域,看他们的各种分析模型,才明白大学的高数、微信分、线性代码、概率率这些东西在IT行业竟然真得有用!但是就我这些年呆过的小公司、新锐上市公司、Top3互联 大厂,不管在哪里,搞算法搞人工智能的,绝对都是研发岗位中的非主流。小公司不需要,新锐上市公司用它来炒市值,大厂数据量够大场景丰富,确实可以用得到算法,比如,商品推荐、物流调度、安全风控等,但需要的岗位真得不多。像我所在的Top3大厂,一个BU几千 软件工程研发人员,配上百十 人的算法工程师,这已经算是绝对的高配了。
好了,关于数学这个问题,我的结论就是,如果你想走算法路线,搞人工智能,或者图形图像、音视频处理等,绝对需要学好数学。但如果你是 会上就业岗位最多的软件工程开发,高中的数学知识就够了,最多遇到哪些不明白的东西,把大学书再翻一下就好了。
再说说学历的问题。
我所在的大厂中,技术部门至今还流传着关于一些大人物的传说,高中毕业干到副总裁,不知名学校毕业生连年晋升啥的。说实话,这些之所以大家当传说来看,就是因为出现的太少嘛。互联 行业现在财大气粗,全中国甚至全世界的优秀毕业生随便挑,这种情况下你学历不行在HR那关直接就被干掉了。成为传说的那些人,都是在公司发展早期进来的,那时候只要能干活就行了。然后在公司业务飞速发展的过程中,保持学习,跟上了公司的发展节奏,慢慢成长起来,成为传说。据我了解到的,干到高层的绝大多数都是高学历人才,学历差的大部分都在中间发展过程中被淘汰掉了,所以留下来的就成了传说嘛。
我个人的经验,这充分说明学历越高、学校越好,出人才的比例越高。那专科的人没戏了吗?当然不是。你去一个卷出翔来的互联 大厂,当然要被BS,但IT行业从业人员几千万,Top3大厂加起来也不过50万,只不过是毛毛雨啊。大部分招人困难的中小公司才不管你什么学历学校,只要能干活、肯吃苦、爱学习,拉过来就往死里用啊。根本不愁找工作的好不好!
再说说性别。
无论在哪个公司,码农中女生都很少。但码农中的女生到哪都很受欢迎,男女搭配干活不累嘛。要说工作强度,软件开发确实高,如果说你怕累,或者觉得当那万花丛中一抹绿很别扭,那就算了,其它的我真没发现不适合女生的地方。
至于需要强大的逻辑思维,我不能否认,干软件开发真正需要的是用计算机的语言描述世界,把人可以理解的东西用计算机语言表达出来,确实需要抽象、逻辑。但这都是在从业过程中长期锻炼出来的,除了极少数的天才,没有人天生下来在这方面特别强。天才嘛,哪里都有,拿自己跟天才去比,这不自己找抽嘛。你看华为200万招聘一个应届生,要知道全中国一年毕业多少人,这比例可比买彩票低多了。
再说说性格。
相对其它领域,码农中内向的比例确实高,每个团队中都有那么少数几个沉默寡言的,但也有很多活蹦乱跳的啊,而且这些人的性格真的不是干这行之后才这样。我干软件开发这十几年,以前什么性格现在还是什么性格。要说软件开发在前面几年做的是基础工作,确实跟机器打交道多,天天坐那里写代码,但工作3、5年之后跟人打交道的时间会越来越多的。就是最初这几年,也要跟产品讨论需求,跟测试撕B,跟同事吃饭、聊天、搞活动啊。
好了,说了这么多,核心思想就一个,不要给软件开发工程师打上标签,更加不要因为这些有的没的标签而限制了自己的发展空间。大家都是普普通通的人,对大部分人来说,都只是单纯想找一份好就业挣钱多的工作而已。
第三,列一些我认为软件开发这个领域需要的素质。
首先,一定要能静下心来。
从业前几年,甚至在大学中学习的时候就会发现,入门这3、5年时间,真得需要能安安静静地坐下来,写代码、查资料,当然,其实大部分都是体力活,话说,哪个行业你入门开始做基础工作的时候不都需要这样么!等到基础工作熟悉了,就开始跨工种,甚至跨领域学习,与人沟通、协调资源等,这还是所有行业都需要的啊!
再次,要有一颗爱追根究底的心。
前面文章中我提到过一件事,学了计算机 络这门课之后,不是说把书中的东西记住就行了,而是要能用理论解释计算机世界应用场景。软件开发是一个理论与实践紧密结合的领域,而理论与实践中间的巨大Gap就需要用这种心态去填平。看到一个不理解的,就去找资料,请教人,慢慢地积累几年,自己也就成专家了。
只要你能静下心来,用心钻研,在这个软件开发这个领域就不会差的。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!