最近,有很多读者通过微博、微信与本人交流。感觉大家对于学习、对于技术都非常的有热情,让我也学到了很多东西。
我提取了几个大家比较关心的问题予以答复,请有相同疑问的朋友参考一下。
问题1:数学对程序员重要吗?
答复:要回答这个问题,我举一个身边的例子。
我们项目组有两个同时入职的员工(比我晚一年入职),一个是研究生毕业,一个是本科毕业。前者在校成绩很好,几乎每门数学课都考了90分以上;后者在校成绩马马虎虎,但据说写程序很厉害。他们同时进行入职培训,同样有指导老师教,同时转正。大半年之后,我无意间打开了他们两个编写的程序文件看了一下,发现了差别:那个研究生写的程序很规范,逻辑也很清晰,哪里该有注释,哪里该留空行,写得非常的有条理,看了过后让人赏心悦目;那个本科生写的程序规范性很差,代码排版不工整,变量命名不规范,而且程序几乎没有注释,看得让人抓狂。
我举这个例子,是想说明数学(或者是学校计算机课程)对一个程序员的潜移默化的作用。在软件开发工作中,我们几乎不会很明显地感觉到数学的存在,除非你是从事算法类工作,但数学会影响我们的工作方式。具体而言,数学对程序员的影响如下:
(1) 数学可以培养我们的逻辑思维,让我们做事情有条理并且思路清晰。
(2) 数学可以给我们一种规范性的意识,让我们按照标准来做事情。
(3) 数学可以让我们遇事不慌张,一步一步地去解决问题。
在此,推荐大家读一篇经典文章《程序员思维》:http://blog.jobbole.com/67886/。
问题2:研发工作岗位要求有哪些?
答复:大家可以看一下各大IT公司的招聘广告,上面对每个岗位的技能要求都写得很清楚。
我总结了一下,对于研发类工作岗位,要求有以下这些:
(1) 对具体编程语言的要求。如C/C++开发工程师、Java开发工程师、数据库开发工程师等,就需要大家分别熟练掌握C/C++、Java和SQL语言。因此,大家在学校一定要熟练掌握至少一门编程语言。
(2) 对专业知识、英语等的要求。如果想应聘通信类的研发岗位,那么大家就要对通信原理、通信网、移动通信等基本概念和原理有一定的了解;如果应聘计算机类的研发岗位,那么大家就要对计算机组成、计算机操作系统、计算机网络等比较熟悉。此外,某些岗位对英语也会有要求(本科生至少过4级,研究生至少过6级)。
(3) 对学习能力的要求。一般公司都会要求应聘者具备较强的学习能力,因为到了单位之后,要学习的东西还很多。如何体现大家的学习能力呢?在校的获奖证书、所做过的项目、实习经历等,都是很好的证明。
(4) 对人际交往能力的要求。很多公司会要求应聘者具备较强的沟通能力,这是因为大家是在一个团队中工作,不会开口是不行的。在学校的时候,大家要适当地参加一些社团和班级所组织的活动,培养自己与别人打交道的能力。
(5) 对个人价值观的要求。这个就比较的难以分辨了。公司都想招到诚信、正直、踏实肯干的员工,但这个不是靠几次面试就能够看出来的。对于大部分人来说,只要严格要求自己,都能够满足这个要求。
问题3:实习对找工作的影响大不大?
答复:这个要看你实习的目的是什么,实习的时候具体做了什么,你是否从实习中学到了东西。
我总结了一下,大家实习的目的包括以下几个:
(1) 想挣点钱,为家里减轻负担,或者是想买一些贵重的东西。
(2) 为自己的简历加分,为自己以后找工作添加筹码。
(3) 在学校里面实在是无事可做,出去找份工作混时间。
(4) 想学一点技术,弥补学校教育的不足。
因此,目的的不同,导致了实习的效果也会有所不同。
根据我个人的经历,合适的实习确实可以让自己找到好工作的几率增大不少。什么是合适的实习呢?特点有以下几个:
(1) 让实习生参与到项目工作中,学到了某一方面的技术。
(2) 让实习生强化了对专业课的认识,加深了对某些知识的理解。
(3) 扩大了实习生的视野,学到了学校里面没有的东西。
大家在找实习工作的时候,可以参照以上标准来辨别某份实习工作是否值得自己去,千万不要为了实习而去实习。在学校里面做一些有实际价值的项目同样是一个不错的选择。我有很多同学,虽然从未去实习过,但同样找到了一份很好的工作。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
答读者问(5):有关数学对程序员的作用、研发工作岗位要求和实习对找工作的影响等问题,布布扣,bubuko.com