快捷搜索:

您的位置:金莎娱乐 > 互联网 > 搞机器学习没前途,写给那些傻傻的

搞机器学习没前途,写给那些傻傻的

发布时间:2019-08-17 07:05编辑:互联网浏览(121)

    原标题:“搞机器学习没前途”

    iOS是目前最为流行、最热门的操作系统之一,在全球有着不可替代的地位,虽然在中国,android的市场占有率与iOS想比较要高的多,但是iOS系统的苹果手机在中国也属于高端品牌。从品牌以及系统技术含量上来看,iOS就业岗位都属于高端企业。而且基于iOS系统的app应用程序开发更是行业的旗帜。但由于我国iOS开发起步较晚,人才培养体系还跟不上市场的发展速度,iOS开发人才都成为我国企业必争的资源。在我们看来,目前很多企业都有收购的行为,其实被收购的公司并不是因为有技术秘方,也不是被收购的企业真的市值非常大,更不会因为品牌好,其实收购就是在于人才的收购.

    正在找工作的同学看过来。

    澳门金莎 1

    从2007年至2016年这9年的时间里,苹果iOS系统在短时间内就从一个全新的移动操作系统,顺利晋级为全球最炙手可热的操作系统,同时搭载iOS系统的设备更是将苹果公司从濒临破产的边境拉回,并且一跃成为全球市值最高的公司,如此传奇般的故事不仅为人所称道,更造就了一大批iOS开发成功的人。

    本文用Python抓取上海地区"前程无忧"C 嵌入式职位进行分析,搜索关键词为:C 开发工程师、嵌入式软件工程师、C语言开发工程师,对招聘信息中公司行业、职位要求、招聘数量进行统计分析,并筛选出适合应届毕业生的职位,供童鞋们找工作参考。(数据抓取时间2016-12-19 15:20)

    前言

    作者简介:唐巧,资深 iOS 开发者。曾在网易参与过网易邮箱、网易微博以及有道云笔记的开发。目前在猿题库创业,是小猿搜题的产品技术负责人。本文经授权转自作者同名公众号。

    放眼全球,iOS开发表现抢眼

    澳门金莎 2

    猿题库刚刚结束了北京地区的大规模校园招聘,国庆之后打算转战外地进行校招。我本人深度参与了此次的校招工作,包括笔试题命题、面试题命题以及具体的面试工作。

    最近又到了一年一度互联网公司校园招聘的季节,我一次又一次地见到应届生在找工作上不停地犯一些常识性错误。好吧,我就再老话常谈,聊聊应届生在校园招聘中常犯的错误。

    据国外媒体报道,市场调查机构Chitika Insights周四公布一组数据,苹果iOS系统继续主导北美移动互联网市场。其中iPhone在今年4月份所产生的移动流量,直接占到了美国和加拿大智能手机市场总流量的53.1%——超过了Android、黑莓以及Windows Phone等所有智能手机流量的总和。

    Scrapy爬虫程序

    我在面试中发现了一个非常有意思的现象,就是大多数应届生都想做服务器端开发,但是他们却又不清楚服务器端开发具体要做些什么。

    错误一:误以为搞机器学习有前途

    我的一个iOS交流711413569,不管是小白还是大牛,都欢迎进群交流,大家一起学习进步!

    澳门金莎 3

    我和同事聊天的时候说起此事,我们认为可能应届生觉得:做服务器端开发可以让自己写的程序运行在很多台机器上,并且处理海量的数据,这很「牛逼」。而做客户端或前端开发太简单,成长会比较小。

    这两年是人工智能的爆发期,Tesla 的自动驾驶能做到在环路上放心使用,AlphGO 战胜了最强的人类选手。于是,每一个应届生都认为,人工智能是未来,希望投身于其中。这非常非常正常。

    澳门金莎 4

    数据库字段

    于是我就写了本文,想给这些单纯的应届生泼泼冷水。先说说我的背景吧,我同时做过服务器端和客户端的开发。我在网易有道做过 1 年半的服务器端开发,产品涉及网易邮箱和微博产品,之后做了 3 年的 iOS 开发,产品涉及有道云笔记,猿题库和小猿搜题,所以我能够给大家分享服务器端和客户端开发的差别。

    但是,这太正常了,以至于如果每一个人都这么想,就不正常了。

    人才招聘,供不应求

    一、招聘总量:900 家公司 1,474 个职位

    且慢,众所周知的原因,这其中混杂了一些培训公司发布的招聘信息,不是真的招聘岗位,先进行清理。

    典型的培训公司招聘描述如下:

    岗位:上市公司直聘 零基础C语言工程师 五金一险 双休 餐补
    工作经验:无工作经验(或1年)
    招聘人数:若干(或10人,20人)

    岗位要求:
    1、大专及以上学历,计算机及相关理工科专业毕业;
    2、做事认真、细心、负责,能够专心学习技术;
    澳门金莎,3、优秀的应往届毕业生可适当放宽条件;

    任职资格:
    1、软件工程、计算机等专业优先,有相关基础的其他专业亦可;
    2、沟通能力佳,有团队意识;
    3、热爱计算机软件开发行业,认可中软国际的品牌文化;
    4、善于学习和总结分析,有良好的工作态度和团队合作精神;

    澳门金莎 5

    清理出的公司和岗位数是:中软(47),航傲信息(47),升斯电子(31),首图信息(13),如创网络(9),尼隆信息(8),武创信息(7),同百实业(5),众阮信息(中软)(5),众软信息(中软)(3),三越软件(2),启态信息(2),深圳哲芒科技(2),育创网络(1)。

    进行数据清理后,C /嵌入式的招聘岗位一共 1,266 个,招聘的公司 862 家,总招聘人数 3,905 人 ,其中未统计招聘人数“若干”的职位。招聘数量为若干的公司有 201家共 313个职位 。招聘数量若干的公司职位数最多的几个公司是:华腾软件(12),联咏科技(6),文思海辉(6),弗劳思机器人(5),大智慧(5),深圳长亮(5),杭州智才广赢(5),海得控制(4),柯莱特(4),HYPEREAL VR(4)。

    澳门金莎 6

    在桥水基金创始人 Ray Dalio 的《原则》一书中,他提到经济学上的一个现象:

    iPhone在全球创造的庞大应用市场,使应用开发公司开始争抢iOS开发者。另外,由于iOS系统开发技术走在全球手机系统的前端,其他系统平台应用开发公司和系统研发公司也在同时高薪挖角。72%的招聘公司称,他们正在招聘iOS平台开发人才,其中38%的招聘公司表示,iOS平台开发经验要比任何其他平台开发经验更受招聘公司青睐。

    二、岗位Level分布分析

    1. 职位上标明“初级”的一共11个职位,平均薪资 8K,最低5~6K,最高 10~15K
      “初级职位”在企业应该是1年左右开发经验。
    • 职位上标注“无工作经验”的职位共有 57个(38家公司)。

      • “无工作经验”实际上不准确(不明白HR在发布职位时选择了这个),在JD(职位描述)中绝大多数都是有经验要求的。其中不乏“熟悉”、“精通”、“经验”、“独立完成功能模块代码”,“3年经验”字样

      • 还有几家“无工作经验”针对的是:明年本科及研究生学历,有的要求直接是211/985
        如 商泰软件 “无工作经验”的要求:2017届本科及研究生学历,在校期间学习成绩优良;专业能力:擅长C 、JAVA等编程语言其中一种或两种;有智能导航、智慧交通、云计算、多媒体相关项目开发和研究经验优先考虑。

      • 最后能找到没有以上要求(指熟练、精通、经验,硕士,211/985),“无工作经验”的职位有5家公司的6个,分别是:
        西钏信息(实习20人 3000-4499/月)
        银天下科技(若干 2000-2999/月)
        庆科信息(实习10人 6000-10000/月)
        肖克利信息(软硬件测试2人 6000-10000/月)
        肖克利信息(驱动调试3人 6000-10000/月)
        龙的股份(异地招聘3人,薪资2000~2999元)

        看来“无工作经验”要求的岗位要么是低质低价,要么是职位稀少

        经过筛选推荐几家实习的公司(招聘量大,针对2017年毕业生):商泰软件、文思海辉、博达数据。

    • 职位上标明“高级”的一共 122 个职位,薪资最高2535K,最低815K占9.8%,平均薪资1520K占28%,1015K占29.5%

    • 筛选适合应届毕业生的岗位(选择薪资范围5~10K的职位)共 337 个职位,招聘数量 743 人,不包含招聘数量为若干的公司。招聘数量为“若干”的公司 职位 121 个。

    总结一下:针对应届毕业生的职位并不多,上海地区适合应届毕业生的C /嵌入式岗位企业应该在500家上下,招聘数量大约在1500人。

    对服务器开发的误解

    style="font-size: 16px;">当人们广泛相信并应用某些决策规则时,价格会受到影响。换言之,一个深刻见解在众所周知之后,其价值会逐渐衰减。

    style="font-size: 16px;">常见的情况是,一些决策规则变得非常流行,以至于对价格产生很大影响,从而使反向操作成为更合理的做法。

    国内现状,缺少中高端iOS开发人才

    三、岗位要求的“硬技能”

    澳门金莎 7

    招聘岗位中出现得最多的100个技术词云

    基础方面:Linux、算法、数据结构
    重要的知识点:多线程、TCP/IP、Socket
    数据库依次是:Oracle、MySQL、SQLServer
    其他语言和平台:Java、Android、 Python,了解熟悉的是加分项

    实际上对于硬技能,应届毕业生不要去“撒胡椒面”,抓住几个做单点突破,知识点结合项目作一个精进。工作得越久,技术方向专长会收窄。

    很多应届生认为做服务器端开发可以处理海量数据,管理上百台服务器。

    大家懂了吗?如果每一个学生都投「机器学习」岗位,那么这个岗位的竞争激烈程度就大大超过别的岗位。于是,会造成两个结果:

    由于国内iOS开发起步相对较晚,人才培养机制更是远远跟不上市场发展速度。有限的iOS开发人才成了国内企业必争的资源。甚至有的企业不得不考虑通过收购或者进行企业ios培训来填补人才空缺。一名中高端iOS开发要比普通中高端软件开发高出约20-30%的薪资,有些企业甚至更高,符合条件或有项目经验的开发工程师的薪资水平更是惊人!虽然说近两年来,由于iOS需求大,人才市场火热以至于培训机构培训出了大量iOS开发新手,使得一些人认为iOS开发的市场已经饱和了。在我看来,这种饱和是指在初级开发者的层面,不管是什么开发语言市场,中高端人才有用是紧缺的。所以说,与其去抱怨市场饱和,命运不公,不如去努力提升自己的技能水平跟知识体系!

    四、公司看重的“软实力”

    澳门金莎 8

    软实力词云

    • 不是要求的要求:本科学历
      本科学历应该是个基本要求。JD中提到211/985的职位是17个。
      从HR的角度来看,还是比较看重学历和学校的。学校好的同学收到面试通知比起一般院校的可能要多上一倍。
    • 良好的沟通能力,团队合作,学习能力、解决问题的能力,代码规范,独立作战的能力很重要。
    • 210个职位提出了对英语的要求,占总职位的15.9%。对“听说读写”有要求的有8个职位

    但是 ——

    • 结果一:只有最优秀的人才,才可以找到「机器学习」岗位的工作。
    • 结果二更为残酷:因为有大量优秀的候选人,根据供需关系,用人单位可以压低薪资,最终「机器学习」岗位的人虽然是最最聪明的人,但是拿的工资却因为候选人饱和,得不到相应的溢价。

    澳门金莎 9

    五、C 岗位薪资分布

    澳门金莎 10

    以上统计的薪资分布占职位总数的74.4%,其他数据比较分散,特点为太高、太低、薪资范围跨度太大(如:8~25K)。

    简化为四档:8K 以下10.7%,8~10K 24.2%,10~15K 25.2%,15~20K 14.3%

    处理海量数据就牛逼了?NO!

    各位同学,你的薪资和你的智力、努力程度本质上都没有一毛钱关系,只与这个岗位的稀缺程度有关系!

    我想每一个iOS开发者都应该多问下自己为什么学习ios开发?

    六、开发岗位的主要领域

    澳门金莎 11

    说明一下,一般在JD中对开发岗位的方向和领域提及的比较少,所以这个统计的是公司业务领域,可能跟公司招聘职位的方向还是有点出入。

    根据工作经验,我推荐C /嵌入式开发的领域方向:

    • 金融(包括银行、投资、证券交易、第三方支付)
    • 游戏
    • 汽车电子
    • 视频影音多媒体

    服务器端开发经过多年的发展,对于海量数据的处理早有了很多固定的解决方案。不管是用云服务,还是用 Hbase ,你都可以很轻松地依赖开源库,解决海量数据的存储问题。

    打个不恰当的比方,如果未来,即使出月薪 10 万,每个人还是不喜欢做打扫厕所的工作,而这个工作又没法用机器代替,那这个工作的工作就会高于月薪 10 万。

    第一个因为身边朋友,学完ios开发以后出来就业的时候,工资待遇很高,普遍都有一万以上,然后自己有懂编程所以选择学习ios,更加希望未来自己的工资很高。

    七、岗位工作经验年数要求

    澳门金莎 12

    其中1~2年工作经验的职位点50.6%,3~4年工作经验占35.7%。无工作经验的要求,上面已做过分析。

    对于想跨入这个行业的童鞋来说,最开始的半年到一年,是你成长最快的时候。2年左右经验就会有大把的机会可选择,但从0到0.5比较难

    还有一些同学想做大数据分析,如果你写过 MapReduce 程序就不会这么想了。现在的 MapReduce 程序写起来太 easy 了,很多时候简单到你就只需要写一条类似 SQL 的查询就行了。

    这种事情你还真别见怪,中国是现在劳动力过剩,有的是人做送餐和保洁的工作,在国外,很多国家蓝领工人的工资都比白领工人工资高,因为没有人愿意做。

    第二个自己啥都不会,然后觉得ios还不错,自己喜欢这样的开发,所以选择学习ios开发

    总结一下,给应届毕业生(想入行)的同学的建议:
    1. 项目经验是关键
    • 统计一下你大学3~4年写了多少行代码,没有一定数量代码,经验从何而来?
    • 在学校,创新实验室、找实习机会(开发),是提升经验的最好方式。
    • 对于应届生来说,项目经验要求没有那么高,知识广度也重要,如了解熟悉Java, C#, Python,拿到Offer的机会也会增加很多。
    • 对于参加培训实训的同学
      不要满足于老师课堂的案例和项目, 一定要找到开发应用的场景来训练、做项目。

    -END-


    本文所使用的工具:

    • 爬虫:Scrapy开发程序
    • 分词:结巴(jieba)分词
    • 统计:SQL 聚合函数
    • 词云:在线词云工具 tagul

    运行在上百台服务器上就牛逼了?NO!

    好吧,现在我告诉你一个数据,我们公司收到的深度学习的简历是我们需求量的五倍,多出的那 4 倍的同学,一个都不希望转岗到别的职位。我再给你看一个同学发给我的,今日头条发给候选同学的邮件,大家感受一下:

    第三个老师,朋友,同学的推荐,觉得这个未来的就业比较好,所以学习ios,结果自学了几天发现自己不知道从哪里入手。

    现在虚拟化技术发展迅猛,像小猿搜题所有服务都通过 Docker 来部署。很多时候,部署上线就是在 Web 管理界面上点击一个「Deploy」按钮即可。即使在过去,实际操作这些上百台服务器的也是运维同学,轮不到你来操作。

    澳门金莎 13

    数据显示

    所以,除了 YY 一下这些程序跑在多个机器上,这并没有什么可以带来成就感的地方。

    可以想像,未来的几年,深度学习的岗位将会迎来爆发,但是由于人才太多,大部分人都找不到工作!历史其实一点都没变,几年前的 iOS 移动开发,就上演了完全相同的一幕。

    据教育部数据显示,2017年的大学毕业生约有770万左右,预计2018年也将在790万以上,连续几年以来,大学生的就业形势的确不容乐观。但是,毕业生对工作的要求以及对薪资的期望却并没有因此降低,根据人人网2016大学生毕业季调查数据显示,仍有高达41.1%的毕业生月薪期望是8000元-10000元。不仅大学毕业生人数众多,社会中也还有很多的待业求职者,另有一些优秀人才在寻求转型等等,大家对薪资的期望都不低,对职位的选择也都非常谨慎。那么,面对严峻的就业形势,求职者们的突破口在哪里?而他们所期望的高薪就业之路又在哪里呢?

    还有一些应届生觉得自己在学校做过网站,觉得在服务器开发方面有基础,做这方面更顺手。NO!企业里面的服务器开发完全不是你想的那样,基本上大家在学校做网站的经验等于零。

    错误二:误以为自己的经验很有用

    近几年,软件开发行业一直处于快速的发展和演变过程当中,据统计,我国现有手机网民规模已达6.67亿。依据Apple手机的所在市场份额,以及iOS在其他相关领域的可能性应用,iOS开发中高端人才也一直处于十分抢手的状态。目前iOS不仅运用于的苹果公司的现有产品(iPhone、iPod Touch、iPad、apple watch、车载iOS),如今传统行业,智能家居、游戏行业及汽车行业等,都将基于iOS系统开发进行转型,并逐渐走进人们的生活。特别是2012年到2016年的数据表明,中国移动开发人才缺口已高达百万,目前企业高薪都难以找到足够的iOS软件高端开发人才,可以预计在未来的几年内,iOS开发中高端人才市场仍旧会呈现供不应求的趋势。并且随着技术的不断创新改良和进步,对专业人才的技能水平以及知识体系的要求也势必会增加。

    服务器开发的苦

    基本上大部分在学校都学过 Java,所以在以前,所有人都选择做服务器开发,觉得自己在学校做的 Java 相关的经验对工作有帮助。又有一些同学,在学校做过一些网页,所以选择前端开发。一般很少人做过 iOS 开发,因为无论是 Objective-C 还是 Swift 在高校中的普及度都很低,所以选择这方面工作的应届生同学很少。

    在这个互联网时代,几乎每一家公司都拥有自己的APP,每一家互联网公司都需要自己的iOS开发人员,根据indeed.com 抓取的职位统计可见,iOS 相关职位是位于需求增长最快的前三名,而Android开发则位列第四。另根据互联网人才拍卖网(100 offer)的统计数据显示,在真实的市场环境中,iOS中高级开发工程师的就业形势是非常可观的,它与Android开发、前端开发并列为面试邀请数最多的TOP3开发职位。(数据样本包括北京、上海、深圳、杭州、广州五个城市的iOS开发候选人)

    我给大家分享一下做服务器开发有什么苦的地方吧。

    但是,其实你的经验几乎没有用!或者说完全不重要,你完全不应该用你的学校经验来决定你未来的职业方向。

    澳门金莎 14

    永远只能半夜上线

    因为,一家公司招聘你的时候,更看重的是你的潜力,即便你什么开发经验也没有,如果计算机基础扎实,我们也非常愿意从零开始教你。我自己从零开始教过好几个 iOS 开发者,大部分带 3 个月就肯定可以开始上手干活了。

    由此可见,优秀的iOS开发者始终是市场需求的对象,也永远是企业寻求的精英人才,所以,无论是大学毕业生还是立志在iOS行业取得发展的社会求职人员,想要在这个行业中收获成绩和发展,就要修炼好自身的技术,过硬的技术和相关的实际工作经验是求职时最好的敲门砖,也是长远发展的必要条件。

    做为互联网公司,我们希望给用户提供 7 x 24 的不间断服务,那么服务万一需要中断怎么办?半夜上线呗。

    所以,你在选择你的专业方向的时候,应该按这个规则来选:

    当然,在求职时,我们也曾遇到过多人争抢一个岗位的问题,尤其是像iOS这样薪资等方面都极具竞争力的职位。实际上,仔细分析,我们可以了解到,这样的岗位大多是某个在福利待遇等各方面,都非常有竞争力的大公司职位。

    根据我多年的观察,晚上 12 点一般都是上网高峰,所以上线一般都是凌晨 3 点-4 点的时候进行。但是,你以为上线就是凌晨 3 点点一下「Deploy」按钮就完了吗?NO! 一般上线都会涉及功能升级,难免会有考虑不周到的情况,于是就会发生,上线出问题的情况。

    • 兴趣,你到底喜欢做什么。注意,这个不是说什么热就喜欢什么,而是说你愿意在这个方向上投入自己的额外时间,比如加班,比如周末。这样你才可以最终做到这个方向的顶级人才。
    • 需求稀缺度。也许你有两个方向都比较喜欢,但是其中一个选的人很少,那么你获得的资源和机会就会大大增加。比如客户端现在就是极度稀缺优秀人才。
    • 薪资。薪资应该是最后再考虑的因素。因为前两个匹配度高的话,即使薪资不高,也是暂时的。

    其实,这在任何一个行业中都并不罕见,优尖端的职位势必是受众人追捧并疯抢的。面对这个现状,作为求职者也应当冷静的分析一下自身的优势和劣势,再去做出选择。不要只是一味的追求公司规模等这些外在条件,把眼光放长远,一个职位能否锻炼自己的能力,自己是否能胜任工作以及这个工作是否适合自身的长远发展,才是求职者目前应该考虑的问题。

    上线出问题怎么办?在网易,我们一般是两种做法:

    最后给应届生一些建议,如果你特别优秀,值得考虑一下前端/客户端的岗位,这两个岗位优秀人才非常稀缺,又因为这个工作与界面相关,常常需要与产品经理和设计师沟通,可以锻炼自己的产品意识与设计感觉,是一个非常综合性成长的职位。

    大家觉得小编写的不错 可以动动小手点个关注跟收藏!

    1. 在线调试和修改 Bug,通常顺利的话,到早上 7,8 点的时候一般就能搞定了。

    2. 在线调试和修改 Bug,如果不顺利的话,到早上 7,8 点的时候回滚数据。然后,我们需要回家休息半天之后,继续在下一个凌晨 3 点上线。

    错误三:误以为做客户端没技术含量

    当然,不会每次上线都是这种大升级,但是基本上,1、2 个月搞一次这种大上线还是挺常见的。

    移动开发真正开始,是从乔布斯发明 iPhone 开始。经过 10 年的发展,现在移动开发的技术已经开始深入很多了。面试的问题也越来越难。未来随着手机计算能力的增强,很多功能都可能从服务器端迁移到移动端。

    相对来说,客户端同学在这方面要轻松得多。iOS 和 Android 都是提交应用市场审核,所以客户端的同学可以选一个白天上班的时候提交审核,而不用等到半夜。

    比如今年苹果就升级了它的移动端 AI 模块:Core ML,以后深度学习相关的算法都会是在移动端完成,和服务器没什么关系了。所以,千万别以为客户端没技术含量,不但当前不是,未来客户端的技术含量还会越来越大。

    永远需要立即响应

    错误四:误以为最好的工作都是来自大公司

    服务器端的问题,只要出现,影响都是巨大的,所以服务器端的同学需要随时待命,一旦有服务器异常报警,就立即处理,以免影响到用户。所以做服务器开 发的同学手机都是开着的,在服务不稳定时,一不小心,几十条报警短信就过来了。服务器开发出去旅游什么的,一般都带着笔记本,以便出问题时能够及时响应。

    其实最好的工作都不是来自大公司。大公司都看准了应届生的心理:想刷一个大公司工作过的背景。所以,像 BAT 这类公司,给应届生的薪资都不高,尤其是腾讯。但是后面优秀的,涨幅也不小。

    相对来说,客户端同学在这方面要轻松得多,因为即使出现了 Bug,iOS 和 Android 客户端也是无法马上修复的,因为用户手机中的版本不会立即更新。所以客户端同学最多也是加班发布一个紧急版本提交审核,在时间上不会像服务器端那么着急。

    那最好的应届生,应该选什么样的公司呢?我觉得如果你已经有了名校背景,又有了大公司的实习经历,就别在大公司做螺丝钉了,选一家小一点的公司,尽早担任更重要的职位。

    另一方面,很多客户端的 Bug,可以通过服务器端通过一些「兼容」来处理,这其实就是替客户端「擦屁股」。例如,假设某应用的 iOS 1.2.0 版本当获得服务器端返回的用户头象是 png 格式的时候会闪退,那么服务器端可以特殊处理,对于这个版本的应用把 png 图片转成 jpg 返回。你看,最终还是服务器端同事成了要立即响应的人。

    小公司选起来也不容易,先要判断好行业,选一个上升期的行业。然后要判断公司,最好有师兄弟在这家公司,可以打听一下情况。如果这些都很满意,看看能不能提前去实习感受一下。最终如果能给自己争取到期权,那么就是一份非常不错的小公司 offer 了。

    服务器端轮子太多

    这个建议仅针对最优秀的应届生,大部分应届生还是乖乖去刷大公司的背景吧。

    服务器端的开发经过了 10 多年的发展,而客户端的开发才刚刚兴起。2009 年 iPhone 3GS 推出之后,国内才有人做 iOS App 的开发,Android 开发的兴起也基本在同一时期。算下来,客户端的开发才经历了 6 年而已。而服务器端的开发呢?光 Spring 就出现了 10 多年了。

    服务器端的技术长久发展的结果就是,基本上每个业务需求都已经有现成的轮子了。所以做服务器端开发很多时候就是学习各种开源组件的用法,并且熟悉这些组件的一些性能特点和坑。

    征稿啦”返回搜狐,查看更多

    你以为这很容易吗?其实不是的!这些轮子发展那么多年,已经非常复杂了,光 Spring 就包括非常多的特性,写一本 1000 页的书来介绍它也不为过。如果不是多年的使用,你能搞明白它的各种功能的优缺点吗?如果你搞不明白,遇到问题的时候除了抓瞎还能干嘛?

    责任编辑:

    所以做服务器端的同学,要经过非常长时间学习(至少半年左右),才能上手进行实际的开发工作。上手之后,又需要经过非常长时间的学习,才能够熟悉自己使用的各种开源组件的特点和使用细节。

    相对来说,客户端同学在这方面要轻松得多,基本上不管是 iOS 还是 Android,新手只需要一个月左右就能入门,三个月左右就能够比较熟练了。

    分工与细化

    刚刚说到服务器端复杂,这带来的结果就是分工与细化。每个做服务器开发的同学,可能只会涉及服务器开发的某一部分的业务逻辑和功能,甚至是某一部分业务逻辑的某一层。比如我在网易邮箱做服务器端开发时,就只是负责 Restful Api 这一层的开发工作。

    从业务上来说,将复杂的系统拆分,然后每个人做独立的某一块当然是好的。但是对个人来说,服务器端开发却使终是一块迷雾环绕的大山,在这座大山上,你对你走过的路线很熟悉,而那些你没有接触过的服务器端技术,你使终是不清楚的。

    对于一个服务器端开发同学,特别是进入大公司的应届生来说,在他头几年的工作中,肯定只会围绕着非常小一块功能业务来学习,那么一两年之后,他顶多是熟悉了他工作涉及的那些东西,对于别的东西仍然是不清楚的。

    从这一点来说,去创业型的公司做服务器端开发又要比去大公司要好得多。

    相对来说,客户端同学在这方面要爽得多。因为移动开发技术刚刚兴起,很多技术方案和框架还没有复杂到无法全面掌握的程度。移动开发技术就像一棵快速 成长的小树,客户端同学将有幸伴随着它一起成长,等 5 年之后,移动开发技术成变成一棵参天大树,这一代的程序员,将会是唯一亲身经历它演进的人,每一处演进带来的改变,都将使得我们更加深刻理解移动开发系统 的设计原则。

    眼界和非技术成长

    某种程度上说,服务器端开发在业务方面是轻松的,因为他们只需要设计好 API 接口,返回 JSON 数据,不用考虑 UI 的设计,交互细节的处理。服务器端开发经过了多年的发展,单元测试和性能测试框架也非常成熟,所以开发起来非常有章法。

    所以服务器端的同学大多数时候只需要关注纯技术的知识,例如如何保证高可用,高扩展性,高并发,数据一致性,数据安全等。

    客户端就苦了,UI 需要和美术设计得完全一样,交互细节还需要做到流畅,很多时候产品用一用觉得一些 UI 和交互有问题,我们还需要被迫接受调整。另外在测试上,因为和界面耦合太紧,虽然业界有一些解决方案,但基本上不管是 iOS 和 Android 都还没有非常成熟好用的单元测试框架。大部分的测试工作都是由黑盒的手工测试完成的。

    但是,正因为客户端需要密切和产品经理,UI 设计师打交道,所以他们会频繁接触到产品设计思想和设计思想。这使得客户端的同学更加容易学习和积累编程之外的技能,包括产品和设计的思想以及沟通能力。 另外,因为用户的 bug 都是通过客户端反馈,客户端同学还更容易接触到真实的用户。

    所以相对于服务器端同学来说,客户端的同学的眼界更宽,由于非技术方面的沟通更多,所以他们的非技术方案的成长也越多。

    技术挑战和工资待遇

    从纯技术上的挑战来说,服务器端明显更大。服务器端开发动辄超过 10 人的团队,代码量稍微复杂一些就是接近百万行。而客户端一个平台的研发大多数也就在 5 人左右,代码量多在 10 万行以内。

    但是,技术挑战大就表示工资待遇高吗?NO!市场价格是由供求关系来平衡的。虽然客户端的技术挑战小,但是基本上所有应届毕业生都想做服务器端开 发,所以没有人做客户端开发呀!于是很多公司被迫从培训机构招人,很多人刚刚培训了 3 个月,就可以拿非常高的工资。这一点和 Web 前端类似,牛逼的 Web 前端人才非常少,但是不影响这个领域稍微牛逼一点的人拿非常高的薪水。

    另一方面,由于服务器端人才的饱和,也使得竞争变得非常激烈,除非你成为这个领域的顶级人才,否则从平均薪资来说,做客户端开发的同学应该和服务器端的同学类似。

    总结

    其实我这篇文章故意写得很片面,目的就是想让各位应届生同学们能够更加辩证地看待互联网行业中的工作。与其什么都不懂傻傻地选择服务器端开发,倒不如做客户端开发更有前途。

    我以上所说的,都是错的。

    原文: 作者: @唐巧_boy

    【编辑推荐】

    本文由金莎娱乐发布于互联网,转载请注明出处:搞机器学习没前途,写给那些傻傻的

    关键词:

上一篇:大钲资本黎辉,开店的诱惑

下一篇:没有了