一头雾水计算机小白求问:软件工程师(程序员)究竟干什么的?

如题所示,不懂编程,想知道程序员的工作包括什么。前端开发是啥,后端开发是啥?整个软件的开发的过程是怎样的,需要哪些不同的软件工程师? 小白求问大神,不…
关注者
406
被浏览
162,067
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

大体上,对于大多数情况而言,程序员更类似于一个翻译。

计算机有一个大优点,即你叫它干啥它通常都会很听话地去干,只不过最大的缺点在于,它往往不太容易弄懂你到底叫它干啥,听不懂现存的所有人类语言,无论汉语英语俄语法语世界语或者宇宙棒子语。


于是翻译(程序员)出现了。总体上来说是把人的语言翻译成能让计算机跑的语言。比较特别的是这里往往存在一些中间语言,它们存在的意义是让其他翻译能看懂,同时也能比较简单地变成机器能看懂的语言。

有的人翻译美术和设计的内容(web前端),有些人翻译工作安排性质的内容(web后端),有些人总担心在不同语境下文章会有奇怪的解读于是假想各种情况来试试看会不会解读出不正常的东西(测试),有些人因为电脑要按这些文章干活儿所以要给手下的电脑分发文章以及安排一些文章里没有提到但是必须要用的引用段落并且关注电脑会不会累趴下了(运维),有些人专研数学、逻辑学而进行此类翻译(数据工程师/算法工程师),有些人为了让其他人少写错而发明一些诸如八股或者词牌的玩意(框架),有些人写了诸如『自挂东南枝』的诗句或者成语又或者名人名言让其他人可以直接拿来拼文章(库/模块)。一些语言学家立志于建立人与机器之间的沟通桥梁,设计能让人容易写明白又让机器容易弄懂的中间语言(PL、编译器),有些人觉得部分文章用得那么多干嘛不把它变成电脑里固定的一部分于是开始设计电脑的专职小伙伴(硬件),有些人觉得电脑上这么多小伙伴总得把他们统筹起来听指挥做不同的事情(操作系统)。

有些人为了让文章更加可靠,当起了一堆翻译的总编,选定好了需要用的成语诗句以及文章结构(架构师);有些人为了让翻译专心翻译而不用太过担心跟出钱老板之间的吵架问题而充当调解和组织角色(项目经理)。

有些人把自己的翻译成果公开来,让别人都能直接看翻译出的中间语言(开源);有些人则把翻译结果藏起来,别人能用这篇文章做事情但是却不知道文章细节(闭源)。