非计算机专业真的不适合做软件开发吗?
我大学学的是物理学,但我不喜欢这专业,由于兴趣自己大二就开始学习.NET到现在,学了C#、SQLServer、数据库访问技术如ado.net、entity framework,web前端(html,css,javascript,jquery,ajax),asp.net,虽然没有什么实战经验,也没有去考软考证,但一般关于.NET的笔试题也都会做.
今天学校搞了个企业-应届生双选会,300多家企业一起来到学校,各种专业需要的都有,就是物理学专业的就那么一两家,我不想投它们的简历,而且简历上的求职意向是.NET软件开发。
我投了几家需要.NET开发的企业,其中有一家让我印象很深刻,一个看起来很资深的hr(大概有三四十岁的样子,不像是hr的)看了一下简历,
问:介绍一下你学的这个.NET是什么?
我答:.NET是微软推出的一个平台,为……
看他没有让我停下来的样子,我又不知道到底要我答多长,就说我学的一些技术。
后来他说:你们专业是理科的没有开设.NET这门课吧?我说没有,由于我对编程很感兴趣,很享受编程带来的乐趣和成就感,并且有向技术方向深入的打算。他又说:那你所学的东西都是野路子,没有官方见证……;这时我很想反驳他但又觉得没什么意义,继续听他讲。聊了一会,当我说我是铁了心要干这一行,并希望有所成就,做一个顶尖的技术人员时,他说:我也想在创造中国的微软啊,但是没有受过系统的学习,仅仅凭兴趣能做到吗?……
回来后我很是伤心,难道非计算机专业真的不适合做软件开发吗?或者对于一个没工作经验的非计算机专业的应届生还需要学什么?或者做什么?
------解决方案--------------------很多牛逼也不是计算机专业的啊
------解决方案--------------------不是这样的,有兴趣,有动力,坚持下去,一定会有所
成就的
------解决方案--------------------只能说,面试官挺逗的
------解决方案--------------------比尔盖茨是学法律的……微软很多学英语的……
------解决方案--------------------你是学物理的,我用你熟悉的领域打一个比方,比方说,大学的物理题目很多其实和中学的差不多。但是大学你学会了微积分,面对不同的问题,你就有了统一的解决思路。而在中学,你要解决某个问题,可能就要死记硬背很多公式。考试的时候一紧张,公式忘记了,完蛋了。但是学过微积分,很多公式可以现场推出来。在中学,我们懂得方程和代数,因此,我们只要记住公式就可以了。再回想下小学,我们不懂方程和代数,做题目就要记题型,比如这是鸡兔同笼,那个是植树问题等等。那时候班上优秀的学生无非就是参加了补习班,会做很多题型。遇到一个题目,他做过,你没有,所以他会。
我们类比下软件开发:
初级码农就好比小学生,他写程序靠控件,他可能一开始只会几种控件,随着工作经验的增长,他掌握的控件越来越多,他看到一个程序,马上就知道套用那几个控件来实现类似的功能。但是如果特定的平台没有这个控件,他立刻就傻眼了。当然他可以继续学习控件,但是除了最常用的那些以外,他学习冷僻控件对他开发的帮助越来越小,比如说他会10种控件就可以开发70%的程序,但是会另外的90种,他也只能开发80%的程序。他学来学去就在这个层次上了。
一般没有计算机科学理论,但是通过自己努力,学会编码的初级程序员好比中学生,他会“代数了”,他知道控件如何编写,如何将需求用程序完整地表达出来,如何用程序驾驭计算机。他的思维从控件这种具体的东西抽象了一步。因此,一个需求,他只要知道如何分解成一些步骤,那么他就可以解决。比如说如何查找数据,如何处理文本,如何绘制图形等等,这些直观的事情就难不倒他。但是这种人最容易成为“野路子”,这是因为,他还不能借助计算机科学的理论去解决一些经典的信息处理的问题,比如说解析一种正规文本构成的简单编程语言,或者计算多个约束条件下的最优组合。因为他们善于将自己安排的步骤变成程序,但是对于算法是一窍不通的,因此他们往往通过自己的闭门造成研究出很多奇形怪状,缺乏理论基础,粗笨的解决方法,并且编制出程序。这种程序往往效果很差,效率低下。
学习了计算机科学的人就又上升了一个层次。这个时候他对计算机的原理和算法本身有了深刻地认识。他掌握了信息处理的一般规律,比如说动态规划、回溯算法、基于最近使用频率的优先级算法、基于有穷自动机的正规文法分析、基于贝叶斯的统计分析方法,尤其是能够编写一些自适应、启发式的算法,那么他就可以自如地解决各种经典计算机问题,同时他的思路就更广。这些计算机科学的基本算法,同时又成为某个专门领域的基础。换一句话说,到了这个阶段,你就有能力在某个领域深究下去,最终走到业界的最前端。好比一个物理学的大学生,不再觉得某个物理学的研究生、博士生研究的东西有多么神奇,而仅仅是你花时间去研究,那些东西你也可以掌握。但是对于一个中学生,哪怕是物理竞赛获奖的,这都是觉得不可思议的。
------解决方案--------------------一般来说,如果你还能够学多一点软件专业课程,就不要成事不足败事有余地非要说反话。
有些小人喜欢在公司里说一些挑拨专业人才的话,以此来博得同事们一“笑”。这在一些风气不好的公司尤其盛行。也许在一个整天讨论“如何换个公司混饭吃”的圈子里,是不是和讨论比尔盖茨等人的。
------解决方案--------------------学物理的超级多的优势阿,你看专业仪器怎么造出来的。就是物理专业知识+编程阿
我同学学物理的,结果博士出来一直就在编程作望远镜
------解决方案--------------------支持一下楼主
------解决方案--------------------楼主我支持你啊,很多大牛都是自学成才的,华罗庚自学成为大师,也没受什么系统学习啊!说到了系统学习,我认为那是扯淡,只要你做一个项目,就会发现你需要学习的东西,当你完成项目时,你的水平就会涨一级,做的越多张的越快。上面这些人说的是培养大师级别水平的基本教育方式啊,试问中国有几个大师啊!有哪个编译器是中国人开发的,楼主只是想从事自己喜欢的专业,我想当个程序员基本不是问题!
------解决方案--------------------有兴趣就行,
------解决方案--------------------LZ大可不必担忧这个问题。我也不是计算机专业出身,找的工作不还是做软件开发?好公司不会问出身,只会考察你的实际能力。
当然,走软件开发远远不是学几门编程语言,掌握几个数据库用法就行了,就像版主说的那只是一个小学生水平。 需要自己学习一些计算机原理、算法、编程思想方面的东西。建议多看看这些方面的书籍,国外很多经典的书籍,比如深入理解计算机系统、算法导论等等。
------解决方案--------------------兴趣是充分要件,而不是必要条件。
你的确需要花很多业余时间来补充自己的空缺,也许是3年,也许是5年,或者更长,这个取决于你的毅力。
------解决方案--------------------路过,赚积分的,无怪、
------解决方案--------------------路过,偶非计算机专业
适合不适合不知道,就是在做
------解决方案--------------------非计算机专业的路过。像我们这样缺少理论知识的人,就要靠项目经验找工作。许多小公司工资低,但要求也低,会API调用,能做出产品就行。你先找这样的工作干着,积累经验,业余时补补理论课。
------解决方案--------------------哪个行业,贵在坚持,当然,如果你是计算机专业的,那更好了
------解决方案--------------------关键是要坚持,持之以恒
------解决方案--------------------那个面试官是傻B一个。。。
自以为很拽啊
------解决方案--------------------基本上,你学什么专业和做什么工作没有太大关系。有用的东西都是工作后学的。本人也不是学计算机的,后来工作需要,自学了单片机开发,JSP,PHP,数据库,现在为andriod开发头痛ing
------解决方案--------------------本人也是非计算机专业,对编程相对比较感兴趣,大学有开C++程序语言设计,后来自学MFC构架,大三的暑假去一家公司实习了,记得当时50元/天,然后今年毕业了,在一家电子公司负责PC软件的开发,主要搞VC和QT。然后还在苦逼ing
最后,提醒一下楼主,非计算机专业对计算机的基础知识的确比较缺乏,记得时刻充实自己。
个人见解:或者你对面试官的问题,完全是答非所问,导致面试官只能用调侃的方式拒绝你。
------解决方案--------------------