程序员百万高薪,写给准备转行的朋友:非科班出身,怎么成为程序员!(建议收藏)

Posted 不止会写代码5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员百万高薪,写给准备转行的朋友:非科班出身,怎么成为程序员!(建议收藏)相关的知识,希望对你有一定的参考价值。

热度还蛮高

歧视?

现在,确实有很多“专业”程序员歧视非科班出身的程序员。其中主要原因是,非科班出身的程序员缺少某些必要的课程和训练,因而会在团队合作时产生一些困扰。

既然知道这个原因,那么“非科班”的,只要补足这些课程和训练就好。

建议

对非科班程序员入行前的几点提醒:

1、除非天赋异禀骨骼惊奇,不然不要指望入行就有 20 K月薪,或许在大公司,顶级学校,和突出的个人技术水平会有这样的待遇。但对于转行者来说,达到这个水平至少也要 3 – 5 年的时间。

2、一万小时理论,只要付出努力用心学,学会编程并不困难。但是个人最好要满足几个条件:基本的数学能力(以高考数学不挂科为准),对电脑和编程工作不排斥,逻辑思维要非常清晰。

3、兴趣导向,尤其是真正热爱编程这件事本身,比大多数人想象的都要重要。否则在后期会寸步难行。

总结
对于基础比较薄弱的初学者来说,成为程序员通常需要经过三个阶段,分别是基础知识学习阶段、专业开发知识学习阶段和实习阶段。基础知识学习阶段的重点在于编程语言的本身,以及与编程语言关系密切的计算机基础知识,包括操作系统、计算机网络和数据库等,如果要想往研发级程序员方向发展,还需要重点学习一下算法设计和数据结构知识。

比起科班生非科班缺哪些?

很多人认为“程序员就是学一门编程语言”,其实这是远远不够的。参考了几所知名大学的计算机本科课程,以及我的个人经验,归纳如下:

1.高等数学: 重点在矩阵、离散数学、逻辑学、统计学以及微积分;

2.编程语言: 2或3门编程语言的基础,常见的包括C++和Java,这部分其实是最好说的,因为现代主流编程语言都大同小异;

3.数据库: 通常包含数据库查询和数据库设计两门课,数据库原理有独立为一门课的,也有分散在查询和设计两门课中的;

4.数据结构与算法: 请相信我,不算数学课程,这是计算机本科课程中,最难的一门;

5.计算机结构: 有时候也叫“计算机基础”,这里面主要是一些“知道即可”,“不知道不行”的东西;

6.操作系统: 和上面那个差不多,需要注意的是,这门课程不是教你怎样用操作系统,而是在讲操作系统的一些原理;

7.软件工程: 主要包括软件项目管理相关的知识,这门课是非常重要的,因为“专业程序员”的职位名称是“软件工程师”,不会这个,做出来的东西只能叫做“程序”而不能叫做“软件”,这门课程也包含了必要的设计图相关知识,看不懂、不会画是不行的;

8.人机交互: 有时候也叫人机界面 、人机接口;学这门课程,主要是为了避免设计出一些不好用、不好看的软件;

9.子类别: 各学校的课程一般很不相同,大致上有网站制作、游戏制作、计算机应用制作、手机应用制作等;

10.小组项目: 上述课程中的多个,都包含小组项目;毕业设计也是小组项目;这主要是为了训练合作能力;大多数非科班出身的程序员,欠缺除了“编程语言”之外的大部分甚至全部。

非科班程序员学习路线及要义

找到自己的需求首先是需求创造生产力。

作为初学者你需要快速入门编程,但不能停留在自学的水平上面。在面试和实际工作后,非科班出身的程序员会感到更多的压力,在面对真实场景的时候会发现很多问题是以前没有遇到过的,或者是比以前遇到的问题复杂很多倍的,所以对于如果学习编程不仅仅是处于兴趣,而是想要进入互联网这个行业的小白来说,一定要给自己创造需求去学习,这样的进步才会更快。

解决问题本身比方式更加重要

第二个就是重点放在解决问题上面。这一点在很多时候小白入门的时候容易踩坑和迷失方向,因为编程本身其实和其他工作都是一样的,都是一个解决问题的过程,也就是最终都是落实在实际层面上的实践。不管你代码写得多么漂亮,如果不能运行,bug 很多,那么也是不顶用的。因此,非科班的会纠结于是学习什么语言,看书,还是看视频还是报线下课程等等,其实更加需要问自己的是需要解决什么问题,最有效率的办法是什么?通过用代码解决问题的方式和过程,才能够真正掌握解决问题的本领

确定好自己的学习目标和路径

第三个就是思考清楚自己的学习目标和路径的问题。也就是希望自己去从事哪个岗位的工作以及如何获得满足该岗位的技能和经验。程序员其实是一个写代码的工作类别的统称,有很多相通的必备技能,比如 Linux,现在很火的 Hadoop,Spark 大数据分析工具,但是具体的工作是有很多的,比如数据分析师,数据挖掘工程师,前端和后端工程师,软件工程师,数据库工程师等等,这些所要掌握的技能和对背景知识的了解都是不同的,在开始学习之前对各个职位未来的发展前景和薪酬都需要了解清楚,确定自己具体要去做哪个职位的工作,只有明确了方向,学习起来才会有干劲。

一开始就学习像程序员一样去思考和工作

其实科班和非科班出身的差别并不仅仅是在技能上面,这点在一位优达的同学回顾自己从小白到熟练工作之后才意识到这一点,两者的差别更重要其实是在思维上面的差别,如果能够清楚地了解到这一点,并且一开始就尝试以程序员的方式去思考,那么从非科班到程序员的路会更好走。

学习路线

学习思维脑图
思维导图
大厂面试必备知识点

学习笔记分享

需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。
如果不方便查看,我已经整理成了一份PDF包含android入门,基础—高级的全部系列知识点,还有新技术学习笔记。

需要全套系列笔记可以直接【点击获取】找群主大大免费获取!

附上一张趣图可以感受一下程序员所带来的简易性和友好性。

尾声

无论什么技术,热不热门,学习都是不可间断的,乘着年轻磨砺技术才是王道,不然在程序员这个后浪一波比一波汹涌的职业里混,你想吃青春饭都吃不了几年。不过,想提升是一回事,如何有效提升就是另一回事了。我工作近十年,也带过不少实习生、应届生,很多年轻人真的很努力在学,加班加点工作卖力,但也就是差点火候,还是方法不对。
什么是方法,方法就是跟着身边大佬走,多问多学,如果身边没有大佬也可以加入我们学习资源交流群,全国的小伙伴天南地北,可以一起聊天学习,更加了解这个行业情况,趋势与走向。

有一部分人认为非科班出身程序员因为前期没有学校的基本理论,导致缺乏底层知识与原理,在初级阶段与科班不会有太大差距,但是一旦进阶到中高级,就会进入发展的瓶颈期,很难进入顶尖程序员行列。 英雄不问出处,非科班出身的程序员,也千万不要先入为主地陷入「技不如人」 的自我认知里。

对非科班出身的童鞋而言,用业余时间补好大学4年的差距其实非常难,但也并非完全必要,因为大学教育体系通常赶不上快速变化的市场环境,跟产业应用存在明显的脱节。非科班的程序员们在开始自学计划前,要先理解当下的产业界通常对开发人才到底有怎样的要求,以终为始,有针对性地弥补差距。对于零基础的同学,我可以免费分享大家一些零基础学习笔记与系列学习视频, 需要全套系列笔记可以直接【点击获取】找群主大大免费获取!

以上是关于程序员百万高薪,写给准备转行的朋友:非科班出身,怎么成为程序员!(建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章

27岁转行软件测试,写给像我一样迷茫的人!

非科班出身的屌丝,奋斗了七年成为阿里资深架构师,现年薪百万

非科班能不能转Android?入殓师转行到Android开发都可以!

写给大数据初级开发者或准备转行大数据的人

写给大数据初级开发者或准备转行大数据的人

非科班出生转行PHP开发三年后,又转战到Java开发我都经历了什么!