• 是否需要转方向 ?


    点击蓝色“五分钟学算法”关注我哟

    加个“星标”,天天中午 12:15,一起学算法

    640?wx_fmt=jpeg

    作者 | 大飞码字

    来源 | 大飞码字

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

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

    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 里面描述的算法。知道算法的优劣和适用的场景,并且可以用自己熟悉的语言实现出该算法,且有改进和调优模型的能力,这个算是一流水平了,应该可以拿到很高工资。

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

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

    结语

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

    最后,祝大家职业发展顺利 !!!

    640?

    有热门推荐?

    1.【程序员】

    2.【GitHub】

    3.【算法】

    4.【数据结构】

    640?wx_fmt=jpeg

  • 相关阅读:
    C++ 扩展 Op
    Python 扩展 Op
    VS Code 调试 OneFlow
    运行时数据获取
    OFRecord 图片文件制数据集
    OFRecord 数据集加载
    OFRecord 数据格式
    OneFlow 并行特色
    Consistent 与 Mirrored 视角
    作业函数的定义与调用
  • 原文地址:https://www.cnblogs.com/csnd/p/16675162.html
Copyright © 2020-2023  润新知