网站首页 > 技术文章 正文
背景
2018年研究生毕业,动力机械专业,研究方向是燃气轮机方向,以仿真为主,吃饭的家伙是CFX、NUMECA、fluent和MATLAB等一系列与仿真相关的软件。我学的很好,无论是学习成绩还是仿真实验,都做得很好,拿了很多奖。但是到找工作的时候发现,学的好不如专业好,计院学生的薪酬待遇远超我们。工作时没有选择去研究所,去了某知名手机公司,做一名管培生,这一年对我影响很大!工作中,转行的念头愈发强烈,作为一名工科生,总有一种丢掉技术就会丢命的错觉,诚惶诚恐,再加上薪酬的差距,坚定了转行的意愿!下面直接进入正题,我是如何从一名动力机械的学生转行到算法工程师,完成薪资翻倍的!
编程语言
想要转行计算机,首先得选一门合适的编程语言,钻进去,吃透它,这是前提条件!千万不要高开低走,从入门到放弃,最后潦草收场,这样的案例不在少数。
推荐Python入门!对于初学者而言, Python很友好,比较简单。网上的教程和书籍也很多,但我不推荐一开始就抱一本很厚的书啃,很容易放弃,每天面对那么厚一本书,学了后面忘了前面,书的页数也不见少。不是意志坚定的人很难坚持下来。
推荐《Learn Python the Hard Way》入门,中文名叫《笨方法学Python》,很简单,也没那么厚,以上手操作为主,所谓的"笨方法",就是不断练习,不断敲代码,很简单的代码也会重复的让你敲,直到你学会为止,当你把那本书里的代码全部敲一遍,代码行数至少上万,还是很有成就感的!
仅依靠那本书是远远不够的,还需要一本系统的Python书籍,供平时翻阅和学习。CSDN上有很多Python的内容,但我觉得一开始去CSDN上找代码不是很好的习惯,上面的内容参差不齐,相关内容也很多,不知道用那个,大多数人都是收藏不看系列,白白浪费时间。所以推荐找一本系统的书放在手边,偶尔翻阅,既可以巩固知识,又可以写出规范的代码。
有了上述的编程语言做基础,就可以尝试做一些小项目,推荐选数据处理和可视化这部分,看得见摸得着,做出好看的东西很有成就感。
理论知识
掌握一门编程语言后,算是正式入门了,但是真正学习的东西才刚开始。
想要成为一名算法工程师(注:这里指的是AI算法),还需要有很强的理论基础。有很多人觉得理论不重要,网上随处可见"xxx速成班",我相信速成班也不会教很多理论的知识,大多数以应用为主,以项目上手。但我不这样认为,不然高校完全没必要开那么多理论课,直接让学生做项目,肯定比速成班的学生学的快,学的好。在我看来,学会如何用一个算法重要,如何去"调包"、如何改参数重要,但是知道算法的基本原理更重要,它是这个算法的基石,只知道用它而不知道它的原理时,很不稳妥,出了问题也不知道如何修正。
以深度学习这个方向为例,基础的数理知识这里不再赘述,是必备的素质,如果连矩阵运算这些基础知识都搞不清楚,建议回去先补一下微积分、线代和概率论。这里比较推荐李航老师的《统计学习方法》和吴军的《数学之美》这两本书入门,《统计学习方法》这本书不用多说,深入浅出的讲解了机器学习中常用的朴素贝叶斯、逻辑回归、支持向量机等算法,推荐搭配B站的《机器学习-白板推导系列》一起食用,效果更佳,建议里面的算法自己都能推导一遍,真的很有用(后续会将我的笔记分享给大家);《数学之美》这本书大白话讲了很多数学原理,理解起来难度不大,是Google官方连载的博客,深受IT人员的喜爱。
实践的话建议搭配《机器学习实战:基于Scikit-Learn和TensorFlow》这本书,前半部分包括了机器学习里常用的算法,基于Scikit-Learn框架实现的,后半部分包括深度学习常用的卷积算法、数字识别等示例,基于TensorFlow框架实现的,GitHub上也有配套的开源代码,很经典也很好用的一本书。
深度学习部分,英文版的建议吴恩达老师的课程,中文版的建议李宏毅老师的课程,B站上有现成的教学视频,BP算法、CNN、RNN、LSTM…都是从理论基础开始讲的,听完之后收获会很大;配套书建议花书或者瓜书,都很厚一本,放在手边没事翻翻,对于后续训练模型有很大作用。
项目经验
理论知识丰富后,项目经验必不可少,光说不练假把式!GitHub上有很多开源的代码,检测、分割、识别、超分…很多优秀的论文均开源了,你可以将他们的代码下载下来,再结合自己的标注数据,训练模型,调参、改模型、熟悉框架。至少要熟悉一个常用的深度学习框架,Pytorch、TensorFlow、Caffe、Keras等。
除了训练模型,对应的论文知识也需要掌握,不能跑完fast-rcnn后,连anchor都不知道!这是肯定不行的;对于你想进入的领域,你需要知道主流的方法有哪些,面临的挑战有哪些,大概努力的方向有哪些等等。既要脚踏实地,也要仰望星空!
关于面试
有了基本的编程能力,理论基础和项目经验,假设你真的稳稳当当的走下来,那么差不多就可以去找工作了。关于面试,也多是一些老生常谈的东西,非计算机科班出身,对于数据结构、算法及编译原理等等也不是很了解,这些知识也不是短期就可以掌握的。那么,对于面试最快速的方法就是刷题,LeetCode、牛客上有很多面试题可供参考,常用的几个算法要会手写,难度大的算法可以不会写,但是基本思路得知道;当然,这里有个捷径:如果上述你真的都不会,在面试的时候,你可以直接和面试官聊,说你没有准备这些,非科班出身,这些东西正在补齐,力气用在刀刃上,对于机器学习和深度学习相关知识掌握牢靠,这方面的项目经验也很足,然后将面试官引到你擅长的方面来。
数据结构、算法要不要学?
肯定是要的,目前每天下班都会看数据结构等相关的知识,B站上有浙江大学等很多高校的课程供选择,资源满满,这些都是你日后编程的基础,不能说它可以有直接的应用,但是它能影响我们的思维,潜移默化的优化我们的代码。
写在最后,关于心态
坚持和习惯是一件很恐怖的事情!时间很宝贵,与其用来刷剧、打王者,不如用来听网课,看一篇论文,读优秀的代码!刚开始的时候,会彷徨,自信心受到打击,怀疑自己,甚至会觉得自己是个傻子,为什么要用这些东西折磨自己……但是随着时间的增加,不会的东西越来越少,会的东西越来越多,慢慢的自己可以搭建一个小的网络,anchor、anchor-free、6D pose等术语张口就来,各种网络的优缺点也都能说出一些,分分钟搭建模型训练环境,能够快速将自己的数据喂给网络,知道调哪些参数会使得网络的性能变好......
再回过头来看自己走来的一路,上面发着光!再看看新工作带来的收入,都是钱的味道,那感觉真爽!
无论你现在经历什么,不要轻言放弃,从来没有一种坚持会被辜负,生活不会一蹴而就,不会永远安稳,这个社会永远有人比你聪明还比你努力,相信我们都走在一条发光的路上,路的尽头,人民币在向我们招手!
- 上一篇: 从应用的角度来看,深度学习怎样快速入门?
- 下一篇: 如何将“机器学习”引入自动化?原来只需要这三步
猜你喜欢
- 2024-10-12 如何将“机器学习”引入自动化?原来只需要这三步
- 2024-10-12 从应用的角度来看,深度学习怎样快速入门?
- 2024-10-12 MATLAB环境下使用卷积神经网络对涡轮风扇发动机剩余使用寿命估计
- 2024-10-12 使用原始振动数据的滚动元件轴承的基于LSTM的状态监测和故障预测
- 2024-10-12 良心推荐!机器学习和深度学习最佳框架
- 2024-10-12 基于matlab使用机器学习和深度学习进行雷达目标分类
- 2024-10-12 MATLAB环境下基于深度学习的人体动作识别(Sequence to Sequence)
- 2024-10-12 Matlab和Python环境下的深度学习小项目(第二篇)
- 2024-10-12 Matlab和Python环境下的深度学习小项目
- 2024-10-12 基于长短时记忆网络LSTM的TE过程故障诊断(MATLAB R2021B)
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)