我的顾虑是,一般来说,没有经验的开发人员的薪水似乎远不及开发人员。似乎还有很多人无法获得薪水不错的工作。哪条路好走?值得走吗?
答案1
获得必要经验并仍能获得可观薪水的一种方法是进入一家小型开发公司或小公司担任开发人员。我在大学期间在一家小型开发公司获得了一份编程实习工作,在最初的几周里,我负责构建和运行电缆、进行服务器管理,以及确保备份启动和运行。我还成为了一级硬件/工作站支持人员。我之前有一些在 PC 上工作的经验,但没有达到公司要求的水平。我知道其他一些专业程序员也走了类似的道路。
但有一点需要注意:如果你真的喜欢开发,这可能不是你想要的转变。你可能会发现自己渴望有一天能坐下来埋头写代码。作为系统管理员,这样的日子将很少见,而且很容易被最新的现实问题打断。
答案2
我的职业道路从运营转向了业务。它看起来是这样的:
IT 支持 --> 网络管理员 --> 系统管理员 --> 开发人员 --> ETL/数据仓库
您将不得不满足于糟糕的工作时间并随身携带带有前三个职位的寻呼机。我真的很喜欢这些东西,但我不喜欢在凌晨 3 点被某个白痴经理叫醒,因为他们删除了服务器中的一些系统文件(真实故事!)。
我的职业生涯都是在美国西南部地区度过的,远离沿海地区。其他地区的情况可能有所不同。以下是计算运营方面的一些情况:
- 证书是王道。这主要是关于了解硬件和操作系统的具体组合。很容易陷入特定的硬件/操作系统组合中。
- 大多数公司将运营人员视为二等公民。良好的工作环境非常罕见。我在这里工作了 6 年,却从未有过这样的环境。
- 你会不断被打扰。你很少有机会进入“状态”。
- 刚开始的时候薪水不是很好。想要快速升到高薪就难多了。我最高工资是 3.5 万美元,后来就厌倦了被人拉来拉去。通过编程和数据仓库,我很快就升到了 8-10 万美元。
如果你喜欢动手工作,并且讨厌一直坐在一个地方,那么这种工作会让你感到满足。否则,你会非常讨厌它。我是那种需要 8 小时不间断睡眠的人,所以对我来说,外出是个不错的选择。:)
答案3
我的职业生涯始于程序员。我的学位是计算机信息系统,我已做好成为一名应用程序程序员的准备。大学毕业后的第一份工作是从事标准的初级开发工作 - QA、测试、编写脚本、在语言之间转换项目、编写网站等。后来发现,公司聘请的系统管理员比我更适合编程/开发需求(他们确实需要更高级别的人),而我非常适合系统管理。毕竟,我多年来一直把这当作一种业余爱好,而且我更喜欢它而不是编码。
多年来,我一直主要担任系统管理员,尽管去年我的工作角色又变回了编程。由于配置管理,我使用自动化工具进行了大量 QA 和验收测试。我读过的每本关于系统管理的书都强调自动化。他们说,你必须将任何你多次执行的任务自动化。这是真的。自动化当然需要……编程。
因此,我想你可能会发现自己已经走完了一个轮回。
随着用于配置和管理服务器、实例和工具的 API 和框架数量的不断增加,系统管理领域确实倾向于将编程作为一门必修学科。
例如,Puppet 通过将出色的自动化工具引入主流使用,真正打破了系统管理员领域。当然,cfengine 已经存在了一段时间,但即使在 10 年的系统管理中,我也从未接触过它。相反,像许多其他系统管理员一样,我从各种粘合脚本和组件中拼凑出自己的工具。新工具 Chef 是一个更大的突破,因为它不仅提供声明性配置语言,还提供用于编程节点和资源的 RESTful API。
这些做法将性能和可扩展性放在了系统管理员任务列表的首位。您无需花费数小时(或数周甚至更多)来弄清楚如何将监控工具与系统管理 WebUI 结合起来,而是可以专注于分析监控工具提供的数据,从而提高性能和业务指标。
另外,我发现它比安装和配置 Nagios 有趣得多;)。
答案4
您可能能够同时做这两件事,即主要作为开发人员工作,并开始管理开发环境和 SCM。您将开始获得有关安装和配置与您的环境相关的软件工具和机器的知识。通过这种方式积累经验,然后缓慢但稳步地进入更成熟的系统管理工作。
我就是这样走过了从开发人员到系统管理员的道路。