好像很多软件都是那些其他行业转行,花1年到2年时间就写出来了,是错觉还是说是程序员关注的方面不对还是什么呢?
首先,我们要知道,怎么才算好的软件。如果论功能,论用途,lz的说的情况确实存在。
原因很简单。首先,现在学习编程的门槛儿并不高,很多人学习几个月都可以开始写应用了。其次,编程就是个工具而已,很多时候不能算成一个行业。软件写出来,就是给某一个行业的人用的。而这个行业的人肯定是对这个行业的工作流程最了解的。这样一来,如果别的行业真的有有心人来写个软件的话,绝对是很好用的。
然后,我们再来说说好软件的问题。如果往深里说,一些大型软件,比如Windows,那么变成功底必须深厚,不是一个行业转过来简单学习一下就可以的。
所以综上所述,一个程序员最好对别的行业也有所了解,才能写出更加适合这个行业用的软件。不然的话,就在coding上、数据结构上下功夫。否则,你想对别人来说就没啥优势。包括非编程人员。
我认为最重要的一个问题在于,其他行业转过来写软件的人目标更明确,对自己需要的功能更加清楚,知道什么是需要的,什么是多余的。而正统的程序出身的程序员更加痴迷于编程语言或者设计模式等纯技术性内容,而恰恰忽略了产品的需求,目标功能。所以,我认为,其他行业转行过来的程序未必是最优秀的,但是功能确实最能解决实际问题的。所以我也特别推荐程序员童鞋们少玩一玩游戏,多接触一些其他行业的东西。只有了解熟悉不同领域的内容,才能发现问题,并通过自己擅长的技术,解决实际问题。
话说其他行业转过来的有点产品经理兼程序员的味道,毕竟自己编写软件的时候就会以用户的身份去思考软件功能。而并非通过一些NXXXXX的技术实现了一个用户使用率很低的功能。
这是很简单的道理,如果你只会写程序,那么需要有人专门做需求分析,你们之间会存在沟通成本。而“其他行业”转过来的非专业软件开发人员,他本身就是用户,知道需求是什么,又能直接实现需求,你说他做出来的软件能不“好用”吗?我有一个同事,本身专业是电子的,但是入了通信这行,对通信规范很熟悉,又对运营商的业务很熟悉,然后他又C++很厉害——虽然只是半路出家搞开发,但是做出来的系统,不论是数据准确性还是业务的契合度以及扩展性,都比那些不懂开发的需求人员+不懂通信的专业软件开发人员合作做出来的系统要强得多。
从学术界的角度来看 写代码确实是科研工作的基本能力 尤其是理工科 转行很正常
我的导师就是制造工程的硕士 在东芝干了20年 在职拿了 D.ENG 学位 突然不想干了自己学 CS 13年中跑到大学里教书, 上礼拜评上了CS 系正教授, 简直可怕.