我在印度一家知名公司担任 IT 工程师。问题是,虽然我被告知我会在 Linux 上工作,但我却被迫在 Java 和 Windows 上工作。我对 Java 感到不舒服,并且讨厌 Windows。
我已经开始自学Python,但由于正在进行的工作,很难给它足够的时间。坦率地说,我不是一个专家编码员。在大学期间,我曾多次尝试进入 Linux 内核开发,但意识到我并不是一个优秀的程序员。所以我决定做RHCE并从事服务器管理。
我想知道的是,在 Linux 项目中找到工作需要哪些技能。 2011年8月,如果这家公司没有给我一个好的Linux项目,我打算辞职。为了找到一份好的 Linux 工作,我需要掌握哪些技能?我决定在休息期间做的一件事就是追求 RHCE。在阅读了三本 RHCE 课程书籍中的第一本之后,我有信心能够顺利通过它。
本网站专家的意见非常宝贵。我目前的技术兴趣是 - Python 编程、C/C++ 编程、Linux 服务器管理和云计算。但我所拥有的大学学位根本不足以进入一些好公司。我所掌握的实践知识还达不到专家水平。我的工作经历简直是可悲。
PS - 我对目前的工作感到非常沮丧。虽然我认为几乎没有必要提及它。
答案1
以前在这种情况下已经多次建议过这一点,但是......我建议在自由软件项目中获得一些经验。这在你的简历上看起来很不错,是与优秀的人一起工作的宝贵经验,并且对于建立联系很有用。人们经常通过免费软件项目找到工作。我的印象(可能不正确)还认为,印度人参与自由软件项目并不常见,如果属实,那将帮助您脱颖而出。
你说你对Python感兴趣。有很多涉及 Python 的自由软件项目,都有不同程度的进入门槛。我比较熟悉的一个是Mercurial,进入门槛不太高,社区友好,程序员才华横溢,有参与的机会。每个人都使用版本控制。您可以找到一些小错误和/或愿望清单功能并对其进行处理。
我脑海中浮现的其他项目有 Django、Pylons、SQLAlchemy,但从参与机会的角度来看,我认为 Mercurial 与这些项目一样好甚至更好。另一种可能性是 Linux 社区分发工作,例如。与 Debian 合作,这也将为您提供与才华横溢的人一起工作的机会。也有利于建立联系等。此外,如果您对 C++ 感兴趣,Debian 中的 apt 和 aptitude 项目很重要,但人员严重不足。一般来说,大多数自由软件项目都没有足够的人力,特别是较小的项目,并且渴望获得帮助。
答案2
您有多种路径可以提供不同的工作机会
- 基于网络的东西
- 原生项目
- 跨平台开发
- 移植到Linux
一般来说,准备好将其他 Unix 与 Linux 一起使用(尽管 Linux 目前完全占据主导地位)。
基于网络
几乎所有不使用 .NET 的基于 Web 的东西都是 Linux 的东西(或跨平台的)。您可以专注于任何广泛使用的语言:PHP、Python、Perl、Ruby
原生项目
这些大多是开源或高性能计算工作。
在欧洲,雇佣一名全职程序员来修改开源项目(并提供支持)是很常见的,而不是为无论如何都不适合的商业产品支付疯狂的许可费用。
目前高性能领域只有Linux,因此该领域的工作很可能会转向Linux。
这个领域的 C 语言非常多,其中有一点 C++ 和大量 Java。
跨平台开发
有点奇怪的区域。有一些公司提供跨平台软件,有一些针对特定平台有专门的团队,还有一些有跨平台团队。
但许多公司只是使用 Java(并不是说它有多大帮助)。
移植到Linux
这些工作确实会时不时地出现。一些公司看到了开放的市场并决定扩张。我个人会逃避这样的工作。
答案3
GNOME 是一个拥有大量从事有偿工作的程序员的项目。如果你去那里并做了出色的工作,那么很可能会有人接近你。其中最伟大的可能是 Red Hat (Fedora),我见过的其他公司包括 Canonical (Ubuntu)、Novell (SuSE)、一些初创公司,甚至是 GNOME 基金会。哦,项目中大量使用了 Python,LOC 数量可能仅次于 C。
这项目的星球通常是这些“GNOME 公司”报告其行为的地方。看一看。
答案4
我被迫在 Java 和 Windows 上工作。
好消息,听起来您至少正在编写/使用代码。
如果我是你,我想我会采取务实的方法,并学习如何将 Java 应用程序移植到 Linux(当老板不注意的时候)。
使应用程序可移植是一个很好的练习。
我对 Java 感到不舒服
别这样,在 Linux 世界中,您可以使用完成任务的最佳语言。 (至少是最好的免费语言)。
因此,您需要确保您熟悉 Java、C++/Qt、C、python、php、perl 等