程序员

进阶深度学习?这里有9个给程序员的建议

俗话说得好,人往高处走。

在当前人工智能火得一塌糊涂的时候,很多程序员的心思也开始活络起来了。

“要不要转行做人工智能?”

想必是很多程序员心中都有过的念头。

到底该怎么转呢?很多人查了资料之后,一脸懵逼:一边要熟练掌握线性代数、矩阵计算,一边要搞概率论,还要去研究各种库与框架等等。

实在是不知道该从何开始,就拖延了下去,然后很是焦虑。

现在,你不用焦虑了。

国外一个开发者分享了自己的学习过程,并结合自己的经历,给出了9个建议。

这名开发者名叫Alexey Gaziev,是一家社交媒体管理创业公司的CTO,原来是一名Ruby开发者,后来自己学习深度学习。

在开始之前,我们先跟着Alexey澄清一下相关的概念:机器学习是实现人工智能的一组工具,深度学习是机器学习的一个特定子集。

好了,下面正式开始。

1、不要焦虑

可能你不太喜欢数学。就我个人而言,自从八年前毕业后,在开始学习深度学习之前,都没有再碰过数学教科书了。

但在你想要转行做人工智能之前,用谷歌进行一些简单的搜索并与周围比较喜欢数学的人交谈后,你会形成这样一个认知:

你需要积累大量的数学知识,然后才能尝试用神经网络解决现实世界中的问题。

两年前我得到的印象是这样的:

关于人工智能、编程以及机器学习

人工智能会让程序员失业吗?

当人工智能逐渐强大,大家开始担心:人工智能下一步又要在哪个领域干掉人类?

AI会让人类程序员失业吗?对此问题持肯定态度的人并不在少数。

比如:美国橡树岭国家实验室在去年底发布的论文《人机混编的代码意味着什么?人类 2040 年还需要亲自编写代码吗? 》中表示:到了2040年,大多数的程序代码将由机器生成。

2040年距今天还有些距离,至少当下,AI没有让程序员失业,而是让程序员更贵了。

前几天刷屏的《AI 时代,为什么程序员这么贵》一文,csdn的蒋总认为:AI的发展,不仅不会使程序员消亡,反而使得各行各业比现在更加需要程序员——程序员的求职范围不再局限于软件或互联网行业,社会总需求激增,人才自然也就更贵了。

笔者对蒋总的观点蛮赞同的,当前的势头也确实如此。

不过,再过5-10年,程序员还会如今日行情吗?

摧毁程序员生产力的 12 件事

身为技术主管和工程经理,我们经常遇到的问题是如何提高团队的效率。但是在你集中精力提高他们的工作效率之前,你可能首先要考虑是什么在破坏他们的工作效率,并建立起良好的基础。

程序员想要完成什么工作,根本离不开电脑,但确实还有很多公司希望程序员不使用电脑就能完成工作(你敢信)。

因此,我们列出了12件阻碍程序员提高效率的事情。下面给出的顺序是按最重要到不重要的排序的(从我的视角),请大家斧正。

其实吧,给程序员们加薪也是个好办法,哪怕加薪10%,也能起到相当不错的激励作用。

1) 干扰&会议

在我看来,随意打断是程序员的工作最影响他们效率的事情。开发人员无法轻松回到被打断之前的状态。他们需要再次找到感觉,然后继续上手原来的工作。干扰越多,挫折越大,质量越低,bug就越多——而且还在继续。

我越被干扰,效率就越低。每次被打断了工作流程,我就得重新开始找感觉,所以如果我一天被多次打断,这一天想要又什么成果基本就不可能了。——一位程序员如是说道

从普通程序员到AI大神,跨界的正确方式!

人工智能的飞速崛起,使得该领域出现了巨大的人才缺口,据说在北上广地区,一个机器学习算法的岗位拿到100K的薪水也并不是一件很困难的事情,这刺激了普通程序员学习人工智能,迫切希望在人工智能大热时实现转行。可是许多程序员不知道该如何快速有效地学习人工智能。

其实,既然已经具备了普通程序员的功底,再转人工智能方向并非难事,接下来我们就具体分析一下,普通程序员该如何正确学习人工智能方向的知识。

1. 熟练掌握基础理论知识

要成为人工智能领域,尤其是机器学习方向的程序员必须有一定的数学和算法基础,尽管各类框架使得现在的机器学习编程变得越来越简单,表面上可以不用在意太多的数学和算法细节,但实际上,即使是针对工程应用,一定程度的数学和算法理解以及对应的思维方式,能够在解决问题以及选择模型套用时提供许多的帮助。相关的知识理论基础包括:高等数学基础、统计学基础、线性代数、数值计算方法、运筹学。

当然,如果不打算进行特别深入的研究和扩展,以上内容并不需要都精通,但至少需要保持在知晓且能够形象化理解的范围内,只有在掌握这些基础的前提下,理解人工智能和机器学习相关的知识才能更加轻松顺利。

2. 相关基础工具的学习和应用

老程序员解Bug的通用套路!

千万不要当程序员面说有bug!对于新手程序员而言,在复杂代码中找BUG是一个难点。下面我们总结下老从程序员解Bug的通用套路,希望对大家有帮助。

1. IDE调试

根据项目特点和语言特点选择一个最合适的IDE,由于本人是做C++出身,最喜欢用的莫过于Visual Studio 了,这款微软开发的IDE,自从研发出来,就被称为宇宙第一编译器,能编译调试C/C++、C#、F#、Python、JavaScript、Qt、iOS等多种语言的开发。目前的VS2017还原生支持远程跨平台的软件开发,这无疑给我们常年奋战在linux/Unix黑匣子开发环境,使用G++调试的C/C++程序猿们带来了福音。

老程序员解Bug的通用套路!

2. 重构大法

如果你发现无论如何也找不到BUG,而且代码只是复杂,本身不是很长,直接重写代码吧!重构大法是解决爆炸性bug的绝招。

捋一捋开发人员的必备技能

对于刚开始学习软件开发的新人来说,“必备技能”往往意味着一个长长的、标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增。

本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一个比较明确的学习重点和路径。

1、深入学习一门编程语言

没有掌握任何一门编程语言,就不可能成为一名编程人员。

许多程序员试图在学习之初一次学习几种编程语言,以便应对他们第一份软件开发工作的需要。虽然我认为开发人员最终会学习多种编程语言, 但建议不要在开始时这样做。 因为同时学习多种语言只会导致混乱,也会分散学习其它技能的精力。相反,我建议深入的学习一种编程语言,这样也会对使用这种语言编写代码感到非常有自信。

2、如何组织代码

捋一捋开发人员的必备技能

大龄程序员如何保持自己的职场竞争力

生活中经常听到或看到抱怨程序员吃青春饭,想转管理或者转行,其实转也无可厚非,只是有时候我们需要静下心,想想我们是被周围的喧嚣影响了导致我们浮躁而产生了一时的想法,还是真的想好了转,我们也不必举例国外的大牛五六十岁了依然敲着代码来安慰自己,毕竟那是别人家的大牛,我们是大龄程序员,在职场中还是有一些劣势的,公司更乐于招年轻的程序员,因为他们做事有冲劲,容易培养,薪水也可以低一些,也有更多的时间输出到工作上,对于公司来说,何乐而不为,有时候我们想转或许我们是想要逃避,而不是热爱或者擅长,即便转了,也可能做的不够称职。其实做职业的另一种选择之前我们要扪心自问,我是真的不热爱我现在从事的吗?还是只是临时遇到槛了,如果这样我们也要问问自己当时为什么选择这一行?其实大龄程序员我们也不用急,我们掌握好自己的姿势就行了。但前提条件是你热爱编程这个行业,否则趁早转行。

1、程序员要时刻跳出自己的技术舒适区,提高自己的竞争力。

浅谈程序员该具备的自我修养

各行各业的工作者,都有其要求,那么作为程序员,我们又该具备哪些素养呢?博主在这里浅谈个人看法,如有不当之处,请大佬们指正。

一、知识储备

1、数学

或许在很多人看来,学计算机用不到什么数学,最多也就是一百以内的加减乘除,用在for循环、数组索引之类的上面。但其实不然,大部分人这样觉得是因为基本都工作在应用层,所以相对而言,用到的数学知识会比较少,也比较浅显。

而当从应用层更深地学习研究时,就需要一定的数学能力了。

1)高等数学
在高数中我们学习到了重积分、级数等,这对于我们深入学习人工智能、学习图像处理以及我们对我们的程序进行更进一步地优化都是很重要的。

2)离散数学
很多院校都把离散数学作为计算机相关专业的必修课程,这是因为离散数学里面的图论等知识对于我们深入学习计算机算法知识大有裨益。同时离散数学的逻辑学也是我们控制计算机所必须了解的内容。只有了解了这些我们才能更好地完成我们的程序。

2、计算机

1)操作系统

关于CPU Cache -- 程序猿需要知道的那些事

本文将介绍一些作为程序猿或者IT从业者应该知道的CPU Cache相关的知识

作者:卢钧轶(cenalulu)
本文原文地址: http://cenalulu.github.io/linux/all-about-cpu-cache/

先来看一张本文所有概念的一个思维导图

关于CPU Cache -- 程序猿需要知道的那些事

为什么要有CPU Cache

想成为程序员,这些技能不能少

对于刚开始学习软件开发的新人来说,“必备技能”往往意味着一个长长的、标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增。

本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一个比较明确的学习重点和路径。

深入学习一门编程语言

没有掌握任何一门编程语言,就不可能成为一名编程人员。

许多程序员试图在学习之初一次学习几种编程语言,以便应对他们第一份软件开发工作的需要。虽然我认为开发人员最终会学习多种编程语言, 但建议不要在开始时这样做。 因为同时学习多种语言只会导致混乱,也会分散学习其它技能的精力。相反,我建议深入的学习一种编程语言,这样也会对使用这种语言编写代码感到非常有自信。

如何组织代码

新手程序员在完成编程语言的学习之后,或者最好在学习编程语言的同时,需要掌握的是如何正确的组织代码。

通过Steven McConnell所著的《Code Complete》,可以帮助学习这个宝贵的技能。

同步内容
--电子创新网--
粤ICP备12070055号