想要学习开发程序?
怎么学习?是看书?还是看视频教程?还是报培训班?还是复制别人代码?还是找大牛带着学习?
以上没有对或者错,具体的我们来好好分析一下。
先不管你是不是计算机相关的专业,以及你是不是了解和掌握相关的编程经验。
从工作的情况来看,部门的开发人员,有计算机专业科班出身的,有计算机相关或者相邻专业学习过来的,还有非计算机专业培训出来的,更有非计算机专业自学成才的。(果然是那句话,不怕学不会,就怕不肯钻。至于为什么用钻字,后边会有答案。)
先来分享几个例子:
1、同事小阿杜:
某不出名的西北211大学,土木工程专业,Java开发,从接触到目前三年半时间。也许是毕业城市所学专业就业环境差,也许是因为对专业领域的不喜欢,或者是因为所学专业知识不足以满足就业需求......偶然的机会,听说某同学学习编程工资挺高,于是阿杜踏上了程序员的路子。(有话是:一入开发深似海,从此加班到秃头;十年生死两茫茫,写程序,到天亮;Bug天天有,今晚特别多)
(1)初出茅庐:阿杜经过一段时间的研究发现,自己大学四年学的东西在代码面前,尽然是这么的无聊和枯燥。于是听所谓的长者介绍,便找到了当地的一个培训班,好处是,培训班是某IT公司的开发人员在老板的逼迫下组建的(白天上班,晚上周末带培训班,培训班收入老板和开发人员7/3分,是有点坑大家哈,嘘嘘嘘!!!),学完之后得到预期效果,便可以顺利实习就业。于是阿杜抱着积攒了四年的热情,苦学三个月之后,顺利进入此公司就业,之后在大神的带领下,短短一年(实际工作时常应该算正常2年,哈哈),便已经坐稳公司第一程序员位置(某三线城市,工资低,员工流动大,公司产品不稳定,外包或者拿来改之)。
(2)小有成就:公司业务发展,终于有方向了,于是阿杜顺利成为了公司最厉害的Java工程师。这期间,不断有招聘或者培训出来的新人,各种问题的压力下,使得阿杜需要拿出300%的努力和热情去不断提升自己的能力,学习各种坑和如何过坑(注意学习方法来了:买书学习、某宝买视频学习、论坛学习、Github学习、看别的项目代码学习)。经过一年多,从黑头发到夹杂白头发的从头努力,阿杜终于可以解决新人提出来的各种问题了。
(3)游刃有余,新的挑战:学习阶段,不求回报,但到一定能力,付出和收入严重不成比例的时候,内心的小宇宙就会变成黑洞,吞噬那不计较利益的坚持心。于是,阿杜离开公司,辗转看了几个公司后,发现三线城市的未来,哪怕秃顶或者白头,都不一定能够得到应有的回报。于是,阿杜离开了,他去了上海,那一年他才从事开发整2年。上海,那里有属于程序员的海洋,那里有他能追求的技术至高点,那里也有他梦寐以求的工资上万,那里更有他放弃大学专业投身IT行业热情释放的空间。他得到了,到了这个境界,在哪里学已经不是重点了。(重点是:会学习,会不断学习,会弥补自己的不足,会看准行业需要的技术,会知道未来的技术发展方向)。我想,他应该过的很好,他也应该在向全栈出发。
综合分析:入门是通过培训机构学习,后来在小公司实习工作,提升能力;前2年都是不断学习积累,任劳任怨不抱怨工作。
适合人群:踏实、认真、态度端正的人,静下心来,一心能够钻研的人,自律能力较强。
2、同事孙老哥:
某普通三本院校,酒店管理专业,iOS开发,已从事开发3年。我命由我不由天。如果说一切都是天意,一切都是命运,谁也逃不离?我呸,鬼才信你的天意,鬼才信你的注定,鬼才信你的一切都是安排。受够了白天黑夜的颠倒,受够了灯红酒绿的生活,也受够了杯筹交错的麻木,更受够了行业的冷暖和酒肉朋友的无情。那一个冬天,他离开了自己从事5年的酒店KTV行业,28岁硬是踏上了吃青春饭的IT开发者行业。他说,接触到编程之后,我的青春才刚开始。或许,对吃饭青春饭的IT程序员来说,他可以逆生长几年吧。
(1)神之入门:孙老哥在酒店KTV行业,却对社会信息化发展很是了解。于是辞职后,买了一堆书,买了Mac电脑,便开始了编程人生。(不会没事,照着书上的敲,记住就行,记不住的下次遇到再敲,慢慢的在网上找资源,找小的项目实践)。学习半年之后,以混迹多年江湖的经验,顺利通过面试,成为某IT公司的iOS开发人员,之后在自己不断摸索和学习下,渐入佳境。
(2)渐入佳境:入行一年的孙老哥,换大公司,因为在编程方面的天赋和努力的学习态度,很快成为iOS开发线上最亮的仔。(划重点:平台更多的是通过做实践做小的模块,积累知识点,看书,视频,和研究开源项目学习)。
综合分析:学习能力很强,借助互联网平台,开源社区,书籍,视频等自学入门,后续不断通过项目锻炼。
适合人群:有天赋,有较强的思维能力,独立思考,自控能力较强。
3、朋友马大神:
某不出名的二本院校,物理专业,Java开发,已从事5年。大四刚开始那年(2013年),因为爱玩游戏的小马,因接触电脑多,同时自己计算机专业的朋友参加网页设计大赛,让小马对编程渐生好感。(电脑还能这么玩,web原来是这样的代码,好奇心爆棚)于是,小马参与了朋友的web网页设计大赛。(Dreamwearver可视化托拉拽设计了6个页面的个人主页,后来朋友找我修改过,才知道他们怎么设计的)。于是乎,好奇心害死猫,小马半个魂都被勾引到一行一行代码中去了,整个大四,除了上课,应付毕业答辩,就是自己偷偷学习编程。(记笔记:他的学习方法是我给了一些教程,项目资料,还有自己买书,找视频学习。更重要的是自己做了几个网页主题,在本专业很多人看起来很神奇,增强了他的自信心和成就感)。从此,加班夜战成常态。
(1)快速入门:小马说是自己会编程,毕业就找了互联网公司。(三线城市,13年会简单的设计网页也不错了)后来在公司不断学习,玩游戏的孩子,投入到键盘和电脑上,都是如痴如醉的样子。很快便开始了Java学习(那时候马士兵、韩顺平的视频就是行业内的学习标杆),小马利用很多毕业生约会、吃喝玩乐的时间,自己却默默的看书,看视频学习。就这样,两年后他已经可以用Java做大的项目了。
(2)渐入佳境:海阔凭鱼跃,天高任鸟飞。再厉害的人物,没有好的平台也不行,于是小马抓住一个好的机会,换了一个大公司在本市的分事业部。(学习啦:这个阶段,已经不是哪里学的问题了,公司项目多,做项目有无穷的问题,无穷的技术挑战,跟着项目走,都不需要刻意的去学习,不知不觉2年下来,自己已经成为大神)。
(3)游刃有余:渐渐的,小马已经熬成老马(加班常态,也没时间,年近30,还无女友),偶尔还需要去医院看看。但说起技术,老马已经成为行业内游刃有余的仔了。吃青春饭的老马,已经青春过半,全栈的路上,不知道青春的下半场会不会给他门票。
综合分析:老马思维能力好,数学好,主要的途径是学习视频,照着视频一个一个项目敲代码。
适合人群:愿意花费大量的时间学习的,能够自觉学习的。
4、部门小鹏子:
某普通学院,机械专业,Java开发,刚入行一年。因为小鹏子的叔叔在公司,所以小伙子毕业,参加培训4个月,结束后就被招聘的叔叔部门了。(说实话,他们学院的机械专业,也是很不好找工作)
(1)初生牛犊:不怕虎,真的是不怕虎。刚入职场,也是和叔叔在有关系,部门内谁都敢怼,谁都敢说。但,在学习编程的路上,小伙子还是很认真的。(一码归一码,脾性和工作学习的态度是两码事,只说他的学习工作)。(学习方法:刚培训出来,还是以视频,培训教的小项目为主,自己研究学习,工作中也没具体参与项目,自己学习,问大神学习,各种开源网站学习)
(2)日渐成长:因项目需要,我复杂某千万级的项目,组建团队之处,小鹏子也被拉了进来。加入项目之后,小伙子学习劲头还是很足。(重点学习方法记录:安排做的任务,一开始一直问技术负责人,一天一直拉着问,晚上回到宿舍,也一直不断的看书学习视频。和技术经理沟通,小伙子学习能力不错,态度也好,后在项目中给安排了具体的任务,完成的不错,主要是肯学习,自觉,自律。(有项目以后,游戏也很少玩))。所以,刚入整整一年的他,在各方面的帮助下,已经入门,在不断的提升自己。
综合分析:小伙子主要是虎,学习也虎,学起来也不含糊,做起东西来也不挑三拣四,愿意问,问到底。
适合人群:愿意不耻下问,厚着脸皮问别人的,也愿意自觉学习。
综合分析了这几个例子,都是非计算机专业,0基础的。可以明显的看到,0基础的,只要愿意学习,自觉学习,认真踏实。都可以很好的从事开发程序这个行业。那么,计算机科班出身的,就不多说了。(自觉、自律、愿意学,愿意不断学,不停学习,多问多实践,多钻研,有持续性。这些是入行的最基本最基本的要求,如果满足不了这些,或者满足一部分,可能会成为一个开发者,或者合格的开发者,但是永远都成为不了优秀的开发者,和大神(天赋极佳的人除外))。
其次,他们的学习,都必须,也一定是通过一行行代码,亲自痛苦的解决一个个bug,熬夜不睡也要钻眼出结果,这样才能形成有效的反馈。
学习编程,总结如下:
一、容易入坑的地方:
1、没有方向和目标:开发程序,细分行业和方向很多,任何一个细分方向和行业,都需要做专,做精。再去研究另一门语言或者方向,切记一开始五花八门,乱七八糟,没有头绪,看啥都会,啥都想学。
方向很重要,很重要,很重要,一步空,万劫不复。不说编程,就说听父母话做公务员、事业单位的、进国企的,又有几个活的开心的?回到编程,当年做C#的、做底层嵌入式的,又有几个发展的比较好的呢?见到当年做C#的40岁转行学其它语言的........一步踏错,满盘皆输。
目前编程语言方向,行业方向来说,把握住两点:一个是当下的热点方向(5G、人工智能、大数据、区块链、智能生活、物联网、互联网等)。一个是人类历史发展中之前或未来不会缺席的行业(经济金融、智慧化、工业智能、产业物联等)。
2、没人引导:这条路是孤独的,也是寂寞的,一个人走着走着难免会累,会孤独。如果有一起从事的,一起学习的,相互学习交流,互相督促和促进,能够事半功倍。(古来圣贤皆寂寞,也有人喜欢一个人钻研,默默的学习,这种除外。个人觉得,交流更能够促进学习,当然,现在互联网时代,随时随地都可以交流,平台,社区,任何地方,只要有交流就都会有促进)
3、收入高就换公司或转行:一个行业的收入高低,没有绝对的。在自己没有达到高付出对应高收入的时候,一定记住,这个时候都是提高自己,提升自己的机会,努力提高自己,不断学习,技术精湛,水平一流。那个时候,高付出和低收入不对等的时候,才是该自信的换工作换行业的时候。(前提是,自己学的换公司或者转行都能用到,而且是行业优秀水平)
二、开发程序行业的现状:
可以把整个互联网开发大体分为Web前端、移动端、后端开发、嵌入式、机器学习等等....
1、Web前端:
目前而言,相对热的是Web前端开发,前端的火爆来源于移动端的爆发性增长、框架的流行、Nodjs后端框架的流行、微信小程序的出现(后面可能还有一波)。但培训机构复制了大量“前端仔”,所以对前端的要求也在逐步提高,但一般来说前端工程师和后端工程师的比例是3:1,所以市场上需求量还是比较大的,是个不错的切入口。
2、服务器后端:
后端开发的语言比较多,用的比较多的有Java、PHP、Python、Ruby、C#。
Java:是目前使用最广、做大项目最多的语言,虽然比较古老,而且语法一点也不简洁,但由于组件众多,在大规模复杂系统中得到广泛使用,比如电商等领域,Taobao,JD等公司。而且在ERP系统,管理系统中也用的比较多。此外Android也是基于Java,所以,Java可以说是使用面最广的语言。特点:简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性。
Python:相对Java就简洁的多,是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本。国内在服务器开发领域还是比较少,但它大规模应用于数据科学领域,比如机器学习、数据统计等等。Python的设计哲学是“优雅”、“明确”、“简单”,所以Python入门是最好不过的了(强大的类库、未来人工智能方向等)。
PHP:“PHP是世界上最好的语言”,网站开发中得到大规模使用。
C系列:能做什么呢?貌似什么都能做,又什么都不能做... 但学习C对了解计算机体系结构还是非常有作用的,其应用范围包括操作系统、驱动开发、黑客技术、反编译软件破解、外挂开发等等,包括Nodjs、Java虚拟机、数据库、很多手机游戏的底层代码都是用C系列来完成。所以如果做桌面、Web、移动应用多,可以放弃学习,但是可以看看。如果想成为极客,C系列才是最有意思和魅力的,速度是C系列的核心。
三、学习方法?如何学习?
1、编程除了上手敲代码,不断的实践,不断的做项目,没有第二种学习方法。
2、不管是计算机专业的还是非计算机专业的,培训机构,一直以来都是最快速入门的地方。(不止帮你选方向,不止有人带,不止有任务,不止一直学习,更重要的是你花了钱,心里总的平衡,学习都是被动式的)。更重要的是,培训机构出来后,不是万事大吉,这只是最基本最基本的敲门砖。之后的学习,必须通过敲一行行代码,亲自痛苦的解决一个个bug,这样才能形成有效的反馈。单单的看书、看视频是没有任何用的。
3、再说学校里的教育从来都不是项目驱动制的,而是填鸭式的,东西都是老师讲了你才会,向来缺乏主动探索能力。但很不幸的是,好奇心和探索精神才是成功的主要因素。
4、几个重要的学习路径:
(1)培训机构:快速入门,选择培训机构,学习有体系,有制度,花钱心疼,有监督,有任务,有项目实践。(快速入门,但思维不能局限)
(2)有人带:编程的学习曲线蛮高的,而且可能并不适合所有的人,所以最好找到一个肯带你的人,快速指导,避免前期很多坑。(坑多了,很多人容易放弃)
(3)自学:自学难度太大,普通人很难坚持下来,当然,雷布斯、扎克伯格、比尔盖兹之类请略过。(上边说的,自觉、自律、愿意学,愿意不断学,不停学习,多问多实践,多钻研,有持续性。这些是入行的最基本最基本的要求,如果满足不了这些,自学很难、很难、很艰难)。
(4)学习方法:很多学习语言,都是以知识点为目标的。要想快速的避免枯燥,应该迅速浏览完语法、函数、对象啥的之后,立马以项目为目标开始学习,设置小项目,小目标。有阶段性成果,也有学习的动力。
(5)学习驱动力:很多人学习编程坚持不下来,或者从业一段时间学不动了,转行转岗,是因为学习对大脑是一个“痛苦”的过程,远不如游戏,把妹,来的有趣,而编程本身是比较有难度的,例如:环境不会配,代码总是有问题,总有些玄学在Bug中等等,稍有挫折就可能放弃,“学的这么幸苦,今天算了,来把游戏,明天再来吧”。(相信我,学习是一个很痛苦的过程,一般人都是这个认知)
(6)如何持续驱动力:单凭意志力的学习都是刷流氓。
A:学会给自己激励,比如学完了就能挣好多钱,就能迎娶白富美,成为人生赢家,走进阿里、百度、腾讯、华为、头条等大公司,不断在大脑中勾起这个梦想。
B:去读一些鸡汤书,或是说“再不学习就成渣”,未来需要的是会学习的,不断学习的人。
C:设定阶段性的目标找到自己的G点,促使自己向梦想奋斗,钻研好的技术,不断有阶段性成果刺激。
D:去网上找小活外包赚钱,通过赚钱刺激自己去源源不断的学习,付出。
5、资源哪里来:
(1)找同学、朋友、七大姑八大姨的亲戚的会编程的人物。(每个程序员都有一套自我学习体系,和适应自己的方法资料,多交流,多学习)
(2)MOOC,网易云、腾讯课堂、W3C课堂、51CTO、CSDN等等,各种学习平台。
(3)某宝买资料,书籍、视频、项目案例、各种都可以有。
最后免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这份完整版的Python全套学习资料已经打包好,需要的小伙伴可以戳下方链接免费领取