把现在作为你冒险的开始,你会学到一种由高需求的技能,你会有一段新的经历,你会得到新的机会。试一试吧。
编者按:新的一年,很多人都会想要有一个新的开始。在Andrei Neagoie看来,人们应该选择一个非常有前景而且能够从中获得乐趣的职业,他认为这个职业就是学习编程,而且是学习Python,为什么他要这样说?又该怎么去学习?他发表在Medium上的一篇文章详细阐述了背后的原因,也给出了相关的学习规划供人参考学习。
如果你是一个初学者,初级开发人员,或者对这个行业很好奇,这篇文章就是为你准备的。如果你是一个成熟的开发者,你可能会在这里找到一些有用的资源,因为我列出了最好的方案,能给你的技能提升带来巨大好处。
利用在线课程和大多数免费工具,你可以获得一项有价值的技能,让你在一个有回报、充满挑战的行业中工作。2018年,需要有技术素养的人的工作领域将会越来越多。这也是我第一次进入这个行业的原因。我想要控制自己的生活,并对自己从事什么类型的工作有发言权。直到今天,我还在坚持自己的观点:如果这是你的目标,这是一个最好的行业。
重要提示:这篇文章看起来可能像是指导你一步一步成为开发者的指南,但如果你仔细观察,这背后有一种你可以应用于任何领域学习的策略。
为什么要编程?
在我们进入真正成为一名开发者的步骤之前,必须要先了解一下为什么你要沿着这条路走下去。每一个需要你付出生命中重要时间的决定都应该是合理。毕竟,时间是我们拥有的最重要的资源:
A、你想要在这个行业中工作,在这个行业里,对技能的需求很大,而且有很多机会成为食物链顶端的非常重要的角色。
B、你喜欢独立。你想要一种能让你在世界上任何地方都能轻松找到工作的技能。如果你决定明天搬到冰岛去,你想确保在找工作方面不会遇到麻烦。
C、你已经注意到了2003年和2018年之间的区别,以及我们在短短15年里取得的技术进步有多大。你想处于一个影响世界进程的行业的最前沿。
D、过去几年,最大的行业增长是在加密货币(比特币)和人工智能(机器学习)领域。我们不希望在这些事情在未来占据主流的时候被抛在身后。你想要了解并且能够掌握这些技能。
E、你认为改变是好的,学习永无止境。那么为什么不做点新东西呢?
但我没有计算机科学学位,我甚至不知道互联网是如何运作的!别担心,我们会考虑到这一点的。继续阅读……
当你选择一条新的职业道路时,这里有一些不错/必须的衡量指标:
1、在接下来的10多年里,它必须是有用的。这项技能在未来的许多年里都应该被重视,来保证你的工作是安全的。
2、对有这种技能的人的需求必须多于供给。行业中技能熟练从业者的数量越少,你对你的工作和你所工作的公司的控制力就会越强。
3、无论你在行业中有多少年的工作经验,都能获得高薪。你肯定不希望在过上体面的生活之前,还要在公司的职位晋升上花几年的时间。
4、一个不需要大学专业学位的行业。你不会想要在开始赚钱之前去读研究生课程,然后在接下来的4年里负债累累。是的,我认为有比更昂贵的编程训练营更好的选择。
5、能够在最短的时间内赶上行业中表现最好的人。没有什么经验能帮你快速就业?你能以最快的速度缩小与该领域的资深专家之间的差距吗?
6、它必须能够给你提供基础技能。无论未来如何,你都有多种职业可以选择。例如,通过学习编程,你就能更好地理解新的或即将到来的技术,比如分布式应用、人工智能和云计算,然后选择你想要进入的领域。
7、要开心。最重要的是,你每周都要工作40个小时。你当然不希望是枯燥乏味的。
根据我的经验,编程符合上面的每一个要点。你的经历可能会有所不同。我最喜欢的一本书是《太好了,他们不能忽视你》(So Good They Can’t Ignore You)。在书中,他们认为你不应该因为喜欢旅游就去从事旅行行业。大多数人都是通过奋斗和努力去掌握一项技能来找到激情的。一旦人们开始承认你的技能有价值,并且你能够因为这些技能而感到受尊重,那就是你对你所做的事情产生激情的时候。
你想自己评估一下,看看它是否适合你。
重要的一点是:记住,前2个月你会觉得自己在攀登一座无法翻越的高山。你学习的每一门教程或课程都会让你觉得自己是世界上唯一一个不懂这些东西的人。保持坚强。随着时间的推移,你会有越来越多的“会心”时刻。我们称之为冒名顶替综合征 (Imposter Syndrome):你觉得自己是唯一一个不知道这个信息的人,你被自我怀疑所包围。请放心,当我们学习新东西时,我们都会有这样的感觉。
你会学到的是,成为一个优秀的开发人员并不一定要记住一大堆文档。这是关于如何使用所有可用的工具来解决问题。这是一个解决问题的方法,从不知道的状态变为可能。
我是谁,你为什么要听我的?
这个问题非常直接,但我想这是公平的。首先,我是一名资深的软件开发人员,曾在包括硅谷在内的一些顶尖科技公司工作过。在我的职业生涯中,我一直很幸运,在2018年,我将帮助其他人学习软件技能。但我并不是天生的电脑奇才。我没有获得计算机科学专业的学位。
这一切都是在多年前开始的…..我想要转行,于是决定自学计算机编程。
第一个月,我回避了所有的教程或书籍。相反,我用这个月的时间来寻找我怎么去学习以及怎么有可能获得工作的最佳方式。我想要高效率,不浪费时间去学习过时的技术,或者学习一些我在一个月后就会忘记的东西。我研究了其他人的经历,看了招聘启事,与知名的开发者交流,查阅了在线课程,研究了训练营,甚至阅读了未来学家介绍20年后我们将会使用哪些技术的文章。基于这些,我为自己制定了一个专注于效率的课程:在最短的时间内能被雇佣的关键学习量。
课程的重点不在于做最少的工作。相反,它的重点是在最重要的事情上努力工作,以便以最优的方式进行工作。这并不意味者要做最低限度的工作,也不意味着要为成为一名初级开发人员而努力。如果你能够通过努力工作,跳过这个过程,直接进入中级开发者的角色,那将是一个更好的结果。幸运的是,我已经筛选过了所有的东西。
尽管我花了一个月的时间来对我的学习进行规划,而不是直接开始学习,但从长远来看,这是非常有用的,因为我并没有盲目。我知道我要去哪里,我有一张通往终点的线路图。你也会有。
所以,是的,我一直都能理解你的处境,也知道你真正需要些什么。当我开始学习的时候,我希望能有这样的东西给我提供帮助。我对当前市面上存在的大量的教学课程与视频进行了研究,而且还在进行中。
你将会成为一个Python程序员的原因如下:
IEEE Spectrum近日发布了2018年计算机语言排行。他们收集了9个来源共11个指标,对47种语言进行加权后,算出每个语言的分数并排名。Python今年与2017年一样都是第一名,第二名与第三名分数皆往下掉,而且名次有所不同,C语言从2017年的第二名掉到了第三名,而2017年的第三名Java则在2018年成了第四名,C++位居第二名。
Python语言本身简洁,优美,功能超级强大。语法非常接近英语,去掉了传统的C++/Java使用大括号来区分一个方法体或者类的形式,而是采用强制缩进来表示一个方法或者类。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。风格统一,而且内置了很多高效的库,打个比方,同样一项工作C语言可能要1000行,java要100行,python可能只要10行。而且从桌面应用,web开发,自动化测试运维,爬虫,人工智能,大数据处理都能做。
还有跨平台的特性。类似很多流行编程语言Java、C++、C都能跨平台而且开源,Python也是如此,由于它是开源的,所以也支持可移植性。你可以随处运行Python,换句话说你在window上写的代码,可以很方便的再linux、mac上运行。而且Python是有很多有名的大公司在用。非常有名的有Google,facebook,Yahoo,YueTube,还有美国宇航局NASA,像著名的开源云计算平台openstack也是用python写的,还有豆瓣也是用python写的。
可知Python作用广泛。
Python社区正以惊人的速度增长。这个社区有很多新的发展。相信我,这是一个很棒的技术,有很多需求,也有一个伟大的社区。够了,让我们开始吧。在下面,你会找到我认为的最适合你的东西,让你能够充分利用自己的时间。在4个月后,你应该能够获得第一个真正的非入门级的编程工作。这个过程,不需要参加编程训练营。只有你和你的决心。
4个月,一步一个脚印
我们将专注于在2018年最被人需要且最有可能找到工作的技能。像C或jQuery这样的技术已经过时了。它们没有任何问题,我完全尊重它们,但根据这些年我收到的一些电子邮件,很多使用这些技术的人都在经济上遇到了困难,而且有家人需要他们支持。时间对他们来说很重要,他们也希望尽快找到工作。
一、Python基础(没有基础要先花时间把这里掌握)
掌握Python基础相关的知识是为了后续的学习打下坚实的基础。这一部分是针对无基础或者对Python还不太了解的朋友,当然入门了的朋友也可以巩固一下。
二、Python网络爬虫基础及进阶实训(第一个月)
网络爬虫是一种程序,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到另一个网站。随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。这样下来,掌握Python网络爬虫将是我们的学习之路。
三、Python人工智能基础与进阶——机器学习与数据挖掘、深度学习(第二个月)
现今人工智能无疑是今年最为火热的行业,由于人工智能领域的人才需求量急速增长,基础层研究人才成为最大人才需求点,包括深度学习、机器学习、数据挖掘、神经网络等细分领域都“一将难求”。
四、Python WEB开发技术实训(第三个月)
Web中关键是提供服务的网站,而组成网站的关键元素是网页。这些网页包括文字、图片、音乐等,而且网页还有静态和动态的区别,动态网页可以自动生成新的页面。想要学好Web开发技术要先了解Python网络开发知识,熟悉Python网络编程,为工作实战打下基础。
五、Python自动化运维技术实训(第四个月)
随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确。要了解自动化运维技术,先熟练使用Ansible等运维工具,熟悉掌握互联网企业运维流程。能够自主搭建B/S自动化运维平台。通过Python实现对集群服务器进行批量自动化运维。
分享给喜欢Python,喜欢编程,有梦想成为架构师的程序员们,希望能够帮助到你们。不是Python程序员也没关系,帮忙转发给更多朋友!谢谢。
后记:每一份坚持都是成功的累积,只要相信自己,总会遇到惊喜;每一种活法都有各自的轨迹,记得肯定自己,不要轻言放弃;每一个清晨都是希望的伊始,记得鼓励自己,展现自信的魅力。