我从你提的几个问题看,你并不是IT从业人员,可能是想跨行从事软件开发吧。我讲讲我的一些经验体会吧,我之前大学里学的专业是硬件方面,后来到了工作单位才接触到软件开发,现在从事软件开发已经有十几年了。
我们搞APP开发,最小的开发小组包括项目负责人、美工、前端设计、后端设计等。如果你打算一个人承包这几项工作(不是不可能,我刚搞软件开发就是这样),至少美工、前端设计、后端设计的技术和工具都需要学习。
美工方面,最起码你得熟练掌握Adobe PhotoShop的使用,不仅如此,你得有基本的平面设计技巧,甚至一些美术创作能力。
前端设计和后端设计主要是程序设计,就是代码编写,你得学会一两种编程语言,这些编程语言都有它们专有的编程环境(一个平台型软件),这是最基本的。
对于跨行搞软件开发,最容易上手的还是代码编写(上手不等于能胜任),毕竟美工和UI设计需要一些美术创作方面的能力,这些能力需要一些先天悟性。
对于没有接受过专业学习的人士,自学软件开发难度更大。比如我虽然大学专业不是软件开发,但大学期间学习的英语、高等数学等也是软件开发的基础课,高等数学不一定能用很多,但它是一种逻辑思维能力的培养。相对来时英语更重要,英语不一定很溜,我们团队中也有英语很差的程序员,但毕竟软件代码都是英语堆砌起来的,良好的英语基础会事半功倍,而且很多编程平台都是英文的。