前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >听说你想转方向?小心翻车!

听说你想转方向?小心翻车!

作者头像
程序亦非猿
发布2019-10-08 16:39:23
1.3K0
发布2019-10-08 16:39:23
举报
文章被收录于专栏:程序亦非猿程序亦非猿

本文转载自公众号:大飞码字 船长导读:之前提到我换到一个大前端的团队,但是我本身其实主要还是做 Android,有的船员可能有点想转方向,那么我建议你看看这篇。

这篇来聊聊困扰很多同学的一个问题:是否要转方向 ?

这类问题没有标准的答案,每个人的理解也不一样,我写下的也只是我个人的想法,仅供大家参考。

iOS 开发

本以为 iOS 开发咨询这类问题的会比较多,没想到实际却很少。后来想想,iOS方向可能已经比较 "冷"了吧。iOS 目前的市场占有率只有百分之十三了,比起巅峰时期,确实低了很多,而且还有继续下降的趋势。连技术类公众号里面,都几乎见不到 iOS 方向的。

我记得有个毕业生咨询过 iOS方向的问题,我给的建议是,顺便学学 Android 开发或前端开发。

前几年的时候,我们这边有:iOS 开发, Android 开发, 塞班开发。当时的 iOS 可谓如日中天,很热门,没想到只几年时间,市场变化如此之大。

近几年,我们这边的iOS开发都被要求学习 Android 甚至接触一些前端开发了,所以我觉得 iOS 的同学确实需要考虑这个问题。

当然,我不建议 iOS 的同学直接转后台开发或者机器学习, Android 和前端是更好的过渡。

Android 开发

Android 开发的转方向咨询是最多的,最想转的是大数据和机器学习。不过我大部分都是建议不要转。目前客户端开发确实有大前端化的趋势,像 Flutter, React Native 确实也带来了不小的影响, 但相对于原生开发, 这些框架都还存在不少的性能,细节体验上的问题。

至于未来会发展成什么样子,也不好预估。

就这个问题,我特地请教过我们这边的前端开发专家。对于未来他更看好 H5 的方向,但就现在而言还有点为时过早,原生开发还是最好的选择,当然,他建议大家有时间和精力也可以多接触新框架,但没必要现在就谈转方向。把现有的事情做好,学习些更底层,更本质的东西是更好的选择。

我个人的建议是 目前 Android 客户端开发的整体发展方向还不明朗,建议先不要随便转方向,更加不要转大数据,机器学习。

因为大数据,机器学习跟 Android 开发几乎不搭边,迁移的损失极大,几乎是完全从头开始,更合适的是前端或者后台。前端在思维模式上更接近,后台首选 Java 后台 ,至少在语言层面,在虚拟机层面是可以复用的。

Java 后台

Java 后台的同学咨询的也比较多,大部分是想转大数据或机器学习方向。跟 Android , iOS 不一样,他们不是担心 Java 后台的发展,而是因为觉得 Java 后台的东西太多,学起来太难了,另外觉得大数据和机器学习更火,所以想转过去的。

对于这类同学,我不建议转。因为难,就转方向,这肯定是不妥当的。凡是吃香的,赚钱的岗位,必定是一堆人涌入的,人多了,竞争自然激烈,要求,门槛自然被拉高,所以有难度其实是好事。

Java 后台应该算是最稳定的一个方向了,一个是后台开发本身就比较稳定,近年来新增且比较火热的也就是 go, 但 go 只是一门新的语言,有后台开发基础的同学,就算学起来也很快的,算不上是大问题。

后台服务器系统这十几年来都是以类 Unix 系统为主,底层机制方面,只要掌握了Linux (Unix) 和 数据库,感觉可以吃到退休了。

后台开发最难的几个问题:高并发,高性能,一致性。这些并不会因为语言的改变而改变,只要掌握了这些问题的解决办法,积累了这些问题的架构经验,无论怎么换语言,都可以游刃有余。

所以 Java 后台的同学,就不要随便转了,遇到学习的困难,应该是迎难而上,而不是绕道而行。

Python Web

这个方向也有些咨询的同学。Python Web 算是后台方向,但实际业界使用的不是特别多,一些小公司或者内部系统可能会用,但大厂几乎没有用 Python 来构建大规模分布式后台的。

找工作应该是可以的,但未来发展的天花板会比较低,如果是考虑长远发展的话,我建议学学 go 或者 Java 。相对于Java , go 要学习的东西会更少些,也更容易上手,当然这个要看个人的喜好。

关于工程转算法

做 Android 开发的同学想转大数据或机器学习,Java后台的同学也想转大数据或机器学习。因为工程和算法有很大的不同,所以我还是单独说说这块吧。

先说数据分析。

数据分析实际的工作并没有大家想象的那么好,大部分数据分析的同学最后都是在公司内部做报表,做数据提取,也就是跑SQL,其实是很枯燥的。

我们这边做数据分析的同学也经常抱怨,工作重复,枯燥且没有技术提升,所以想转数据分析的同学要慎重。

当然有同学会说,现在数据分析很火热呀,外面有那么多的培训机构以及各种宣传都在说数据分析前景很好,但那些看看就好,毕竟是商业宣传。

再来说说机器学习。

机器学习的发展确实不错,未来,我也很看好,它的问题是学习的门槛很高。有些同学觉得会使用开源的库,拿数据来跑跑模型,就算会机器学习了,不好意思,如果只这个水平,对公司是没有什么价值的。

机器学习是门槛很高的方向,无论是对于公司还是个人,只是会跑模型是不行的,我在以前的文章里面写过算法方向的水平划分:

第三级,完全看不懂英文的paper,知道常用的算法,但无法区分出各种算法的优劣和适用场景,会用 Python,C++等语言的库进行算法组装。

第二级,不能完全理解paper和算法,但知道算法在某些特定场景下的效果和调优的方式。可以在GitHub上面找到合适的开源实现,进行使用甚至优化。如果有丰富的项目经验和实操经验会加分。

第一级,能够读懂英文的paper,完全理解 paper 里面描述的算法。知道算法的优劣和适用的场景,并且可以用自己熟悉的语言实现出该算法,且有改进和调优模型的能力,这个算是一流水平了,应该可以拿到很高工资。

大部分同学自学了一段时间,达到了入门的第三级,但要在工作中,真正的运用起来,至少要达到第二级的水平,但第三级和第二级的鸿沟是巨大的,要达到第二级,要有比较好的英语基础和数学基础,我觉得自学的同学大部分达不到这个水平(有些牛人除外)。

所以做工程的同学想转算法方向,我建议三思而行。

结语

以上,就是我对于转方向的一些建议,不算是什么标准答案,但我觉得应该适用大部分人的情况。转方向是很大的一件事情,会带来历史经验的损失和未来时间的投入,是需要极其谨慎的事情。需要综合现有方向的未来和新方向的未来,还有自身的学习情况来定。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序亦非猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档