看你的职业定位是什么。

如果你的定位是纯搞技术的程序员,技术永远是首位。你要做的就是把需求用技术实现,就像学编程的过程中做的各种习题,根据需求,写程序。正式的公司分工比较细,需求分析、系统设计由不同的人完成,到你手上基本上只剩下用技术实现。举个例子,如果说做一个软件是建一栋大楼,程序员就是那个拿着设计好的图纸砌砖的。你砌砖的水平——技术水平——是最重要的。当然,如果你还能用建筑师的眼光(精通业务)去欣赏图纸,那就更好了,但那只是锦上添花。如果你砌的砖歪歪扭扭,另一个工人砌得整整齐齐,哪怕你的设计水平再高,你也没有那个工人有价值,因为你的砌砖水平不行。

但是,如果你的定位不是一个程序员,而是业务分析师(BA)、解决方案设计师(Solution Designer)、系统架构师 (System Architect),那又不一样了。说到底,所有IT相关的职位,都是为了支持业务而存在,但每个职位离业务(Business)距离不一样,离得越近,对你精通业务的要求越高。

知乎讨论:作为一个程序员你觉得是业务重要还是技术重要?