许多想专门从事控制技术合作开发的小学生单厢问:我该怎样自学控制技术?我如果优先选择甚么样的路径来深入细致自学并以来劳工市场?怎样断定他们的控制技术很牛?甚么是开发人员的核心理念竞争优势?怎样成为一名优秀的工程师? …对于这些疑问,小贴士给我们推荐一篇婚恋老驾驶员的该文马萨省我们参考,希望对各位学长学长有协助。原文叫《给高二中小学生的一封信,助梦启航!》,小贴士略有删减。该文尽管是写给牢笼的学子们的,但是的刚踏入合作开发大门的爸爸妈妈也是很有协助的,战斗中的老驾驶员也可以停下来看一看,思考呵呵,如果你给中小学生建议,你会说甚么呢,婚恋经验亦或撩妹技巧?正文:最近收到一些高二中小学生的来信,询问理工学院如果怎样自学,如果优先选择甚么路径自学甚么控制技术,应该怎样为组织工作准备…… 看见这些问仿佛看见了当年的他们,深有感触!发现其中许多问题对大部分中小学生都很有协助,于是将回信以博客的形式公开,结合他们一路上走来的经历与我们分享对个人对IT金融行业、自学、组织工作的看法,希望能协助更多的人。IT控制技术路径分割:你对控制技术路径的概括算是较全面了,我稍微修改呵呵觉得这样分割更合理一点:终端合作开发路径、web前端路径、web前台路径、格斗游戏合作开发路径、演算法/科学研究路径。因为互联网金融行业后端伺服器一般都是Linux,所以web前台合作开发和Linux伺服器合作开发可视为是一个路径(除非你指的Linux伺服器合作开发是系统CTO,不过那是网络管理的组织工作,如果不算做合作开发吧)。除了一个路径是演算法/科学研究路径(如大数据、云计算、内核合作开发),尽管你把它从本科的范围内排除了,但我对个人不那么认为。尽管演算法/科学研究路径大体上都要求科学研究生或博士及以上,但科学研究生却是有的是,只是比较少,需要非常厉害的优秀人才,阿里的云计算还有科学研究生呢! 除了就是格斗游戏合作开发以c++为主却不仅限于C++,尽管许多大型格斗游戏都是C++合作开发的,比如现在的手机游戏也有Android、IOS的合作开发的,除了些格斗游戏合作开发会用捷伊控制技术(如比较有名的Unity,可能将在理工学院都还接触不到)。数据库大体上都是CTO和开发人员一起的设计的,只有大公司才会有专业的DBA。IT金融行业的产业发展趋势:终端端终端端(智能手机作业系统)是一个变化最快的领域,也存在很大的变数。10年之前,在诺基亚风靡全球的时候,你会想到Android有现在那么大的发展前景那么多的用户数量吗?10年已经开始(其实08年就已经开始酝酿了),Android快速蓬勃发展,产业发展异常的凶猛,到12年几乎人手一台Android设备了,与此同时谷歌却一路上下滑,直至跌到低谷再也爬不起来的,后来资金投入谷歌的怀抱也产业发展的不太顺利,已经是大势已去。而苹果公司从2007年第一代iphone诞生的时候已经开始,走的就是高大上的路线,主要针对的是高端人群,价格是所有智能手机中最高的,但控制技术也是最牛逼的,体验是最友好的,以至于每一次的发布会排队的人都济到爆!看见终端网络平台的快速产业发展和触屏智能手机的快速蓬勃发展后,谷歌也于2010年资金投入了终端网络平台,发布了Windows Phone作业系统,凭借着 Windows PC作业系统的声望和Microsoft的品牌吸引了不少的windows phone的用户,但与Android和iphone相比,却是相差太远。对个人认为:苹果是用户数量较少,却是最赚钱的,凭借其强大的控制品牌优势和追求完美的精神,在三到五年内如果还可以产业发展的很好,这方面的组织工作发展前景自然也是不错的;Android是用户数量最多的,目前的劳工市场机会却是挺多的,但未来是否。Nokia的衰落与Android蓬勃发展也就一两年的时间,可见控制技术的更新产业发展之快,我们这一代人还能想起Nokia,还会怀念它的耐摔性是智能手机中的霸主(曾经用它当人头来敲钉子而丝毫不影响智能手机性能……),但00后可能将就不知道Nokia是甚么东西了,可能将还会以为是哪个国家的语言…哦,说笑了,帕萨旺了!Android的蓬勃发展也颠覆了人们的使用习惯,从按键操作的嗒嗒嗒呵呵转到触屏tells(切西瓜,哈哈……),造型上却是从各种个性化的(翻盖的,滑盖的,双喇叭的)智能手机造型到统一的造型(类似的配制,同样的触屏,都没有盖……),从这也能看出一种趋势:硬件将越来越趋于统一,软件将越来越细化(市场细分——各种针对特定人群互联网我认为IT领域未来的产业发展路径,从实体方面来看一定是智能设备和物联网,从领域来看一定是互联网+,未来的网络将会越来越智能。互联网是网络与网络,网络与人的连接;而物联网就是物体与网络,人与网络的连接。阿里巴巴的投资人孙正义在互联网大会上说过:“今天每对个人大概会有两个终端设备,2020年的时候,每对个人连接的设备的数量会达到一千个”。未来将会是周围都是物体,而物体都与网络连接,也就是周围都是物体,周围都是网络
。而且物体将会越来越智能,智能家居如果会产业发展起来,比如你一回家,空调就开了,电灯就亮了;一出门空调和电灯就关了,还提醒你今天的天气状况…… 现在已经有许多物联网慢慢产业发展起来了。
互联网+就是互联网与传统金融行业的结合(互联网 + 传统金融行业)。现在又有一个捷伊说法,就是“+互联网”,比如万科的房地产以属于标准的传统金融行业,现在与快钱合作引入互联网,也想打造一个电子商务网络平台。不管是“互联网+”却是”+互联网”,都是互联网不断地渗透到传统金融行业,互联网与各行各业的结合将会更加紧密,比如互联网+金融,现在BAT三家打的正热闹呢!再比如互联网与传统餐饮业的结合,打造出了现在的百度外卖,再比如新兴的e袋洗是互联网与洗衣店的结合。格斗游戏我本人不怎么玩格斗游戏,对格斗游戏不太了解!但从整个社会产业发展来看,世界在不断产业发展,中国也日益强大,随着经济水平的不断提高,人们有更多的时间用来悠闲娱乐,也有更好的物质基础。在这种趋势下,玩格斗游戏的人如果会越来越多,格斗游戏金融行业如果会越来越景气。我曾经做过阿里和百度的校招笔试题,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到100的数,你是写100行输出语句还用一个for循环3行代码搞定?你的代码质量越高,代码就越少。如果你要问是如果努力提高代码质量还如果多做项目多写代码,我觉得这可以是一回事,曾经听一个百度核心理念部门的人说过,你的能力 = 代码量/时间,只有在相同的时间你比别人做更多的事,写更多的程序,你的能力才能提高的比别人快。代码写的越多,你的经验就越丰富,代码质量也就越高。您认为做项目时要注意甚么问题才能真正通过做项目来提高他们的工程合作开发能力?而不是“为了做项目而做项目”?程序架构的设计。如果你完成一个项目只是让程序跑起来,可能将很容易,但你要让这个程序具有良好的拓展性,代码有可重用性,就得先考虑代码架构的设计了。架构设计是一个很大的学问,这里就不细说了。 以项目为主线进行控制技术的自学。你做一个项目肯定会遇到一些控制技术难点,这时就如果对控制技术难点进行系统的自学,而不是网上搜到解决方案解决当前的问题就完事了。请问您认为怎样从一群人中脱颖而出呢?很简单:别人会的你会,你人不会的你也会;当问你一些问题时给出一个出乎意料却又正确的答案。要在自学XX控制技术的过程中具体怎样做?自学+实践+思考。对一个控制技术要通过较全面细致的自学;除了自学你还得动手去写,书可能将会偏你,但计算机是不会偏你的,也就是除了懂原理你还要会应用;对同一个控制技术要能举一反三。这好像老生常谈了,具体怎样做不是一两句话能说清楚,其实我这方面做得也不好!要避免出现哪些自学的问题和现象?只知道看书,不动手写程序; 只知道1+1 = 2,不知道2+3 = 5; 只知道调用了a方法解决了问题,不知道为甚么调用a方法就能解决问题。请问您认为开发人员的“核心理念竞争优势”是甚么,包括甚么方面以及怎样去培养?这个问题原来那么多人问过,但我之前还从来没想过。认真思考了呵呵觉得开发人员的核心理念竞争优势如果是: 自学能力(IT金融行业更新换代非常快,需要不断地自学捷伊知识和技能) 解决问题的能力(作为开发人员你经常会遇到各种bug,定位问题,解决问题的能力是极为重要的) 态度(一对个人的态度觉用心程度,是觉得能否成功的关键)怎样断定你的这些核心理念竞争优势呢? 比如:在两个星期内完成了Windows API的自学并接手xx项目,在三个月内完成了这个10万行代码的项目,足以体现你的自学能力。我们公司的xxx项目组遇到一个xxx问题,耗了一周的时间没有弄出来,后来请我去帮忙,两个小时就搞定了,足以断定你解决问题的能力。坚持三年写博客并写作和出版了《xxx》一书,一年销量10万;组织工作也认真对待,半年就从一个普通的合作开发人员升为合作开发经理;足以看出你是一个有毅力,有上进心的人。 这些例子尽管说的有些夸张,但却是断定你能力的一个很好的方式,前提是你真的有这个能力!请问您认为“怎样提升自学新知识的速度”?通过我这些年来的经历和体验,我觉得自学和滚雪球是一样的,一已经开始自学的时候会非常的慢,因为你甚么都不懂;但当你懂的越多会的越多的时候,你的自学速度就会越来越快,因为你积淀的基础更多,而许多控制技术其实原理是相同或类似的。
您认为要想做到“以不变应万变”除了自学能力强以外,还需要注重培养其他甚么能力吗?以及在日常自学中怎样培养?上面说到自学像滚雪球,那么在自学的时候就弃形抓神,理解控制技术的原理,理解控制技术的原理过程会非常痛苦,当你理解了原理再去学其他的东西入手就会非常快。还要多培养他们的思维能力,编程的思想,逻辑的思维。请问您认为要怎样才能成为一名优秀的工程师?如果你明白了甚么是开发人员的“核心理念竞争优势”,并按照这种标准去做,离优秀的开发人员就不远了。写在最后最后的最后,送你一句话:年轻有梦,勇敢去追!进入BAT不是梦……作者:luoweifu 出处:http://blog.csdn.net/luoweifu/article/details/46039437优才学院(www.ucai.cn)