分享

非计算机专业出身,能做好开发吗?

 正则室 2017-06-16

首先介绍一下我自己。

 

我是彭阳,2012年7月毕业后加入网易,目前是云计算通用Agent服务负责人。此前先后负责或者参加过开源项目pomelo,NOS移动端加速服务,消息推送平台等项目的设计及开发工作。

 

从去年开始,我不定期地会在网易云课堂做一些直播的分享课。作为一个不善言谈的程序猿,从第一次跟大家直播交流的紧张、焦虑,到如今几乎每次直播都跟大家聊得不可开交,从心底里想把自己知道的东西跟大家一起交流分享。

 

在这一年多的时间里,每次直播结束,都有一些同学私信我,咨询一些学习方面的问题。渐渐地我发现我们的学员中有很大一部分都是非计算机专业的,这其中包括在校大学生,也还有一些刚刚初入职场的社会人士。这些学员每次在交流的过程中总是非常积极,问题也都相对集中。最常出现的,是以下的几个问题:

 

非计算机专业能学好这门课程吗?

非计算机专业如何转行到程序开发?

非计算机专业怎样学习编程开发?

没有项目经验如何准备面试?


总体来看,大家对于跨专业学习IT领域的技能存在很多疑虑和疑问。这里我就我个人的理解,跟大家表达一下我个人的观点。

 

有兴趣最好,培养自己的好奇心

兴趣是最好的老师。大家都知道,坚持不懈地学习任何东西都需要兴趣去支撑;如果没有兴趣,则很难长久。

 

对于想跨专业转行的同学,可以先问问自己是不是真的对这个行业感兴趣,如果答案是肯定的,我觉得这种尝试是没有问题的(毕竟这个行业正在以前所未有的速度飞速发展,并且至少在未来二十年是值得期许的)。对于那些兴趣不是那么大,但是由于各种原因需要跨专业的朋友,我的建议是未尝不可以试试。


其实对于大多数人来说,找到真正自己感兴趣的东西去做确实很难,这种事情可遇不可求;在没有太好的目标选择的情况下,如果有决心进入这个行业,我认为也是可以的。但是我还是需要强调,在进入这个行业之后,大家需要保持一颗好奇心。因为只有这种好奇心才会驱使你坚持不断的去学习,去进步。


快速学习,多阅读,多实践

IT行业与其它行业相比,它的技术变更更加快速,可能每天都会有新的技术出现,你每天也都会接受到新的名词、新的技术、新的架构体系。身处在这个变化如此之快的行业,快速学习的能力变得非常重要。比如一个新技术出来,你的老板可能需要你用一个月的时间用这个新技术完成一个项目,一般这种情况下,你最多只有一周时间完成对这个技术基本入门,后面就是一边用一边学。

 

说到学习能力,我需要特别强调一点的是英文的阅读能力。其实作为程序猿,英语能力是不可或缺的。毕竟计算机这整套体系都是老外创造出来的,所以我们在学习新技术的时候面对的大部分都是英文文档。这个时候,就特别需要我们有一个良好的英语阅读的能力,这样我们才能更好的快速掌握相关的技术信息。

 

学习新技能的时候,除了阅读文档,另外我们需要做的就是多动手实践,多写代码。很多学员在交流的时候都会跟我反应一个问题,就是说跟着老师的视频会写代码,但是自己写就写不出来。其实写代码也是一个熟能生巧的事情,代码敲的多了自然而然的就会写了,如果写不出来说明代码还写得不够多。反复练习,积累达到一定的量就会有一些写代码的灵感,进而就会产生一种质变。总而言之就是,纸上得来终觉浅,绝知此事要躬行。

 

注重基础,抓住核心

前面提到IT领域技术更新很快,我们需要有一个快速学习的能力。对于一个初学者来说,面对纷繁复杂的各种技术,很多人都会一时手足无措,不知道从哪里下手,很多跨专业的同学都会遇到这个问题。我这边需要说的是,虽然这个领域技术繁多,新的技术也都层出不穷,但是有一句古话,万变不离其宗,这句话就是强调我们需要去抓住所谓的那个宗,也就是我们所指的技术的基础与核心。

 

作为非计算机专业的同学,我不建议大家一开始就去学习Java或者C语言,还有所谓的各种框架。很多非计算机专业的同学可能会通过自学或者社会上的一些所谓的快速培训机构学习编程,在短暂的学习后就能够自己做出一两个简单的项目,甚至能够胜任普通工作中的一般任务。但是由于没有对计算机专业知识进行系统性的学习,对计算机基础知识缺乏了解,所以在遇到一些涉及到计算机底层的一些东西的时候就会不知所措。比如计算机网络通信、数据库的设计规范、数据结构的优化、多进程多线程编程等等,这些都是非计算机专业的同学欠缺的知识。就好像盖房子,在没有打牢固地基的情况下就开始添砖加瓦,最后轰然倒塌是必然的。

 

作为跨专业的同学,建议大家先学习一些计算机相关的知识,这里推荐一些书单。如果大家能把这几本书都能够完整的自学一遍,我想也就可以算是计算机入门了。


《计算机体系机构》

了解最基础的计算机硬件知识


《计算机操作系统》

了解整个操作系统的实现和编程环境


《编译原理》《计算机网络》

了解编程语言的原理和网络原理


《数据结构与算法》

了解编程中常用的数据结构与经典算法


这里打个比喻,如果大家先将计算机专业的知识体系建立起来了,就好像先练就了一身九阳神功,后面再学任务其它武功就是易如反掌,这样才有可能做到我之前提到的快速学习。

 

勤写技术博客,与牛人多交流

写技术博客是一种可以快速提高的方法,我们可以分享自己总结的一些经验,也可以分享自己的体会。一样东西在你大脑里,并不代表你已经掌握了,如果你能说给别人听,或者用文字表达出来,那才算真正掌握了。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多