Q&A:程序员的自我修养和未来趋势

本期传道:

随着互联网行业的爆发式增长,程序员成为了近年来炙手可热的职业。无论你是一名计算机专业的毕业生、还是踏入行业不久的职场新人,都会有一些关于职场难题。究竟真实工作中的编程与在学校是有什么样的区别?质疑自己是否适合做程序员,如何体现真正的编程能力? 国内外的技术发展有何不同?这样的道路是否值得赌上青春?

请听 .Net解决方案技术专家 Ivan 为你传递他的职业发展之道:

关注后回复数字:1可获取视频地址

Q&A:程序员的自我修养和未来趋势_第1张图片
嘉宾简介

Ivan,超过10年项目开发经验,.Net解决方案技术专家。精通DDD(领域驱动设计)架构开发。具备过硬的技术实力,优秀的团队管理能力和丰富的项目培训经验,曾处理多个省市级政府项目和教育平台。


从菜鸟到高级工程师,我们应该具备什么?

在学校支撑我们可以持之以恒学习的是兴趣使然。无论你学习的是VB,C++,Java,PHP,这些都可以作为高级语言程序,所以程序方向并不是你首要具备的能力。

我觉得重点在于,我们要有自己的成就感。我最初做的程序是个贪吃蛇游戏,就很深有体会,当时用别人的程序很多,而当自己亲手写出一个游戏的时候,诞生出的成就感是难以言喻的。

作为程序员,一定对自己的成果或是杰作有成就感。将来在开发过程中,只靠兴趣爱好,是比较难走下去的。有成就感才有加深你的兴趣,让你坚持的去克服工作中遇到的难题和挫折,然后去获取所向往的成就感。所以自己是不是适合当一个程序员或是自己应该具备怎样的能力,我觉得这点是很重要的。

在思想上,我们应该哪些有变化?

在学校里,我们开发程序,重点在于完成,然后交给老师就好了。到了工作环境中,领导或是项目经理给我们布置了任务后,我们有3点是需要注意的。

一,是时间观念,我们在一个团队里做项目,我们要按照项目进程来完成工作内容,我们需要有一定的紧迫感,根据团队时间来安排我们的工作节奏,改变一些思维方式。

二,是程序写法,职场上的任务不局限于把东西做出来,我们需要了解产品的生命周期。在完成项目后,我们还需要根据新的用户需求来维护和改善产品,不断更新和创新。所以重点就在于我们所做的程序,需要有可扩展性和延伸性,对于未来自己修改留好更多的可能性。

三,是用户目标,学校的项目我们只需要给老师一个人看。而在职场上,我们要考虑自己的作品会有更大的用户群体,上千甚至上万用户来使用。去年双十一的时候,欧洲很多银行都遇到了网络崩溃问题,他们没想到我们国家访问银行数据的量会这么大,当然这时我们的支付宝完全是好的。所以根据自身情况来定,我们也要把眼光和目标放远一点,我们的程序未来是为了多少人服务的。

我们应该怎么学习?

精力有限时,建议刚毕业的同学最好能明确自己的薄弱环节和兴趣方向。如果你将来准备进入的是软件开发行业,首先我们要明确自己主要的高级语言方向,并不是说别的程序语言都不看,而是想好在大多数工作环境下,自己日常开发的语言是哪一种。

其次是需要有自己的积极向上的工作态度。自我当年第一份工作(松下)入职第二天就有项目经理来指出我的问题,我是觉得这是一种很好的情况。有导师指出你的问题,不应该很仇视,你应该很庆幸遇到了良师,给自己更好的提升的机会。你在工作环境中会遇到很多挫折,但有这么一个人提前让你防范于未然,我们都应该去感激,并带着谦卑学习的心态来看待这问题。

而遇到技能不如自己的同事,我们要学着如何和同事打交道,明确我们的目标是作为一个团队来完成项目。

作为程序员是不是要无限加班?

首先我们要看各个公司文化和公司规模不同,比如华为是世界有名的科技公司,企业文化就是要求员工全身心的奉献给职业,所以华为能做到世界领先,并结合自己的优势并取得很好的成果。

而有些企业文化没有狼性文化,比如很多美国企业,都提倡合理分配时间,不是拼命压榨你要求马上完成。

再有到了一些创业公司的情况,你就必须需要花更多的力气,比别人更多的时间精力,来帮助公司和帮助自己打造的产品在市场上做出规模,就像自己是在与公司一起成长。就算公司未来遇到大困难,你的个人经验是会沉淀下来的。在老板看来你的加班是为了公司,对你来说对自己也是有好处的。我们从另一个角度来看待这个问题,从自身来看待这个问题,可以感受当中的区别。

选择PC开发还是手机开发?

由于现在大多数的手机开发还是应用级开发,科技含量并不高。两者比较,也只是比对方熟悉了一套sdk。软件开发这个行业,开发语言的不同从底层到高层,并没有优越感存在。

现在为什么ios和安卓开发收入高呢?这个主要看市场环境,投资和资金等方面可能会影响收入。

而ios与安卓之间,比如你是做安卓开发的,拿到一个很高的ios的offer,应该怎么办?我认为,对与职场新人来说,经验和职业规划更重要。选了不是自己最喜欢的方向领域,将来会有走一些弯路。所以为了能让自己能坚持并做到做好,我们还是应该放眼于自己的兴趣和未来的规划。

只有热爱你的行业,感受那份成就感,才能驱动自己在之后的工作中去克服那些难题和挫折。

未来软件的都组件化了还需要我们吗?

我认为将来的趋势,程序员这个职业会慢慢消亡。将来会有那么一天,虚拟现实发展到一定高度后,将来的软件都不需要人为的从底层做起来,只要你提出你的需求,计算机能自己模拟出来,就像电影《黑客帝国》里的虚拟现实一样。这一天还很遥远,但我坚信将来这一天也会来临的。

当然,这也是由我们程序员开发出来的世界。

谢谢大家

DDD的全称为Domain-driven Design,即领域驱动设计。我们做任何一个软件系统,都是有原因的,否则就没必要做这个系统,而这个原因就是我们遇到的问题。

所以通过问题,我们就知道了我们需要一个什么样的系统,这个系统解决什么样的问题。最后,我们就很自然的得出了一个目标,即知道了自己要什么。比如我要做论坛、博客、电商平台、内容发布系统、IDE、分布式消息队列、通信框架等等。

要理解什么是领域驱动设计,首先要理解什么是领域,什么是设计,还有驱动是什么意思,什么驱动什么。

我们正在筹备DDD领域驱动设计的直播教学,更多详情请关注我们微信。

关于传道

我们是一个面向毕业生和职场新人的知识经验分享平台,我们邀请来自各行各业的职场牛人分享他们的职业发展之道、传递最新的职业技能和经验,帮助你获得更好的职业未来。

你可能感兴趣的:(Q&A:程序员的自我修养和未来趋势)