标签 程序员 下的文章

我们点评了为程序员和开发人员提供的十大最佳 Linux 发行版(2022 版),以帮助他们完成工作和个人项目。

程序员和开发人员在其工作或项目中会使用各种工具和应用程序,包括代码编辑器、编程语言编译器、附加组件、数据库等。如果你对现代开发者的工作流程进行分类,它包含以下典型的工作流程:

  • 访问代码库
  • 编程
  • 调试
  • 测试
  • 部署

而这种典型的工作流程可能需要各种工具。一个标准的清单可能是这样的:

  • 代码编辑器
  • 简单的文本编辑器
  • 网页浏览器(网页开发者需要所有变体)
  • 数据库引擎
  • 一个本地服务器
  • 编程语言相应的编译器
  • 调试器
  • 监测或剖析工具(可执行文件或网络版)

可以说,与 Windows 相比,Linux 是编程的最佳选择。(出于几个原因,我在本文中不对 macOS 进行比较。)Linux 是最佳选择的主要原因是,与 Windows 相比,在 Linux 发行版中已经预装具有现代技术的软件包和应用程序,或非常容易安装。

因此,在这篇文章中,我们想列出 2022 年最适合程序员的 Linux 发行版。

2022 年适合程序员的十大 Linux 发行版

1、Fedora Workstation

Fedora 35 Workstation

也许这个名单中最完美的 Linux 发行版是 Fedora Linux。它用于桌面的默认 Workstation 版通过其选择的软件包带来了正宗的 GNOME 桌面体验。

Fedora Linux 的默认安装为你提供了所有主要的开发包,开箱即用。它们包括 PHP、OpenJDK、PostgreSQL、Django、Ruby on Rails、Ansible 等。

通过 dnf 软件包管理器安装更多的应用程序是非常简单的,如 VS Code 编辑器和其他软件包。你也可以借助“ 软件 Software ”应用来安装,这是一个应用商店,你只需点击一个按钮就可以搜索和安装应用程序。

Fedora Linux 支持 Snap 和 Flatpak,这给了你更多的灵活性。你也可以利用 Fedora 中的 RPM Fusion 仓库,这个仓库让你可以访问许多自由和非自由的软件包。由于许可证和其他明显的原因,Fedora Linux 不想在他们的主仓库中包括这些包。

你可以在下面的官网上查看最新的 Fedora Linux。

下载 Fedora

2、Ubuntu Linux

Ubuntu 桌面是一个适合程序员的完美的Linux发行版

本列表中的第二个 Linux 发行版是 Ubuntu Linux。Ubuntu Linux 是目前在服务器和桌面上使用最多的 Linux 发行版。Ubuntu 提供长期支持(LTS)版本,有五年的官方支持(另外还有五年的维护支持),期间还有短期支持版本供高级用户使用。

由于它很流行,所有最新的软件包和应用程序供应商都提供 Ubuntu(.deb)版本。因其流行,也带来了论坛和文档的大量支持,这对开发者来说是完美的,特别是当你在开发阶段被错误困住的时候。在下面的链接中了解更多关于 Ubuntu 的信息。

下载 Ubuntu

3、openSUSE

openSUSE 是全球在关键系统中使用的最稳定和最专业的 Linux 发行版之一。这个 Linux 发行版是企业级工作负载的首选解决方案之一,包括台式机、服务器和瘦客户机。

它比 Ubuntu 和 Fedora 有一些优势。首先,它有两个变种:Leap 和 Tumbleweed。openSUSE Leap 是一个长期支持版本(LTS),提供最新的稳定性。openSUSE Tumbleweed 是一个滚动发布的软件,提供尖端的软件包。

如果你的开发需要最新的软件包和硬件支持,那么 Tumbleweed 就是你的选择。如果你需要稳定性和一个运行时间较长、维护量较小的系统,请选择 openSUSE Leap。

使用 openSUSE 进行开发工作的优势之一是其软件包管理器 YaST。使用 YaST 软件包管理器,你可以轻松地将许多事情自动化。

除此之外,openSUSE 的软件交付方式也很出色。它的软件门户在网上,你可以访问它,搜索一个软件包,然后点击安装。

如果与新用户相比,你对 Linux 有一定的经验,请选择 openSUSE 进行开发工作。

下载 openSUSE

4、Manjaro Linux

Manjaro Linux 是一个基于 Arch Linux 的发行版,它使 Arch 的安装变得简单。它基于 Arch Linux,但带来了一些功能,如像 Ubuntu 或 Linux Mint 那样的图形化安装程序、 pamac 安装程序、精心策划的软件仓库等。Manjaro 有三种主要的桌面风格:GNOME、KDE Plasma 和 Xfce,可以满足几乎所有用户的需求。

如果你想用 Arch Linux 和它的滚动发布包来满足你的开发需求,但又不想陷入安装原生 Arch 的麻烦,Manjaro 是你的完美选择。

下载 Manjaro

5、Arch Linux

虽然 Manjaro 和其他基于 Arch 的易于安装的 Linux 发行版已经出现,但你可能还是想用 原生 Arch 来亲手定制你的桌面。

这更多的是针对那些想要更多控制权和为项目或需求建立自定义 Linux 操作系统的资深开发者或程序员。在这些情况下,你可能想用你最喜欢的桌面安装 Arch Linux 来设置你的开发操作系统。

假设你对 Arch Linux 和计算机有一定的经验。在这种情况下,这是所有选择中最好的,因为它可以让你完全控制定制的 Linux 操作系统中的每个软件包。

下载 Arch Linux

6、Pop OS

Pop OS(写作 Pop!\_OS )是由计算机制造商 System76 为其系列硬件开发的。Pop OS 是自由开源的,基于 Ubuntu。它遵循 Ubuntu 的发布周期,同时带来额外的调整,以及为用户定制的软件包。

Pop OS 21.10 桌面 Linux 发行版

Pop OS 是程序员的完美选择,因为它原生支持许多 Ubuntu 支持的编程语言。它因其打造的软件中心而在计算机科学家和程序员中广受欢迎,该软件中心有一个专门的部分介绍开发和编程的应用程序。

除此之外,Pop OS 中的 COSMIC 桌面(一个定制的 GNOME 桌面)为程序员提供了独特的体验,包括自动平铺、可爱的调色板、原生的深色模式和丰富的设置。

如果你需要一个基于 Ubuntu、稳定的、并对程序员友好的 Linux 发行版,那么请选择 Pop OS。

下载 POP OS

7、KDE Neon

如果你是一个很习惯 KDE Plasma 桌面的开发者,并且想要一个基于 Qt 的开发环境,那么 KDE Neon 就非常适合你。

KDE Neon 是一个基于 Ubuntu LTS 版本的 Linux 发行版,带有最新的 KDE Plasma 桌面和 KDE 框架包。因此,在 KDE Neon 中,你可以得到 Ubuntu LTS 的稳定性和带有 Qt 的最新 KDE 软件包。

如果你需要一个拥有开箱即用的应用程序的快速系统、一个友好的用户界面和巨大的社区支持,这是一个完美的 Linux 发行版。

下载 KDE Neon

8、Debian

Debian GNU/Linux 无需介绍。Debian 的稳定分支是 Ubuntu 及其所有衍生品的基础。因此,它是主要和稳定的 Linux 之一。它是你的开发环境的完美选择,因为它为你提供了终极稳定性和多年的支持。

不过,Debian 的稳定分支在采用最新软件包方面略显保守。Debian 的维护者会仔细检查和合并软件包,因为整个世界(嗯,几乎)都依赖于 Debian 的稳定性。

对于高级用户和系统管理员来说,如果你想要一个稳定的、长期运行的开发环境,并且维护工作量较少,那么它是一个完美的编程环境。

下载 Debian Linux

9、Kali Linux

Kali Linux 是由 Offensive Security 开发的,主要针对寻找网络漏洞的道德黑客和渗透测试人员。它预装了大量的黑客工具和应用程序。

如果你有足够的经验,它可以成为程序员和开发人员的一个完美的 Linux 发行版。如果你对 Linux 很熟悉,并且在处理错误和依赖关系方面有一定的经验,就可以选择 Kali Linux。

下载 Kali Linux

10、Fedora 实验室

而这个名单上的最后一个 Linux 发行版是 Fedora Linux 的发行版组合。

Fedora 实验室 Labs 为程序员、科学家和学生提供了专门策划的 Linux 发行版,并预装了应用程序、相应的软件包和实用程序。很多人都不知道这些,如果配置得当,它们可以作为完美的现成 Linux 发行版为你服务。

下面是对它们的总结:

Fedora 科学

  • 科学和数值开源工具与 KDE Plasma 桌面的结合
  • 应用列表包括:

    • 用于 C/C++ 的 GNU 科学库
    • 与 MATLAB 兼容的 MGNU Octave
    • LaTeX
    • Maxima 计算机代数系统
    • 用于绘制二维和三维图形的 Gnuplot
    • 用于数据科学的 Pandas Python 库
    • IPython
    • 用于 Java 和 R 编程语言的软件包
  • 关于 Fedora 科学,在此下载 和了解更多。

Fedora 计算神经科学

  • 带有 GNOME 桌面环境的开源神经科学应用程序和软件包。
  • 了解更多并 在此下载

Fedora 机器人套件

  • 这个完美的 Linux 发行版结合了最好的开源机器人应用程序和软件包,针对初级和经验丰富的机器人科学家和程序员。
  • 了解更多并 在此下载

来自 Fedora Linux 的其他解决方案包括 Fedora 安全实验室Fedora 天文学Fedora Python 教室,你或许想看看这些解决方案。

这些 Fedora 实验室选项可以成为编程项目或在特定科学领域工作的完美 Linux 发行版。

总结

那么,你如何在这份最适合程序员的 Linux 发行版名单中选择你的最爱?

如果你不确定,并希望以最小的努力来建立和运行一个开发系统,那就选择 Fedora Workstation 或 Ubuntu。

如果你有空闲时间,或者想对你的系统有更多的控制,喜欢做实验,对偶尔出现的错误也不在意,那么就选择基于 Arch Linux 的系统。

对于刚进入 Linux 生态系统的新开发者来说,Pop OS 也是一个不错的选择。对于特定的需求,请到 Fedora 实验室选择。

我希望这份 2022 年最适合程序员的 Linux 发行版清单能给你一些指导,让你选择最喜欢的 Linux 发行版进行编程和开发。

干杯。


via: https://www.debugpoint.com/top-linux-distributions-programmers-2022/

作者:Arindam 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux 内核 6.0 正式发布,但更期待 6.1

没有遇到意外,Linus Torvalds 于今天推出了 Linux 6.0 稳定版。不过,虽然是新的大版本号,但是 Linus Torvalds 一如既往地重申,“希望每个人都清楚,主要版本号的变化更多是因为我手指头已经数不过来了,而不是任何重大的根本性变化。”这个版本号的前一个版本号是 5.19,曾有提议将此版本命名为 5.20。另外,这也标志着 Linux 内核 6.1 的合并窗口开启.Linus 说,“与 6.0 不同,6.1 有许多相当核心的新东西”,比如内核对 Rust 初步支持、能够大幅提升性能的 MGLRU 等等。6.1 将于今年年底发布。

消息来源:Phoronix
老王点评:好吧,让我们继续期待 6.1。

2022 全球程序员薪资排行榜,中国倒数第九

CodeSubmit 对二十多个国家的程序员的薪酬做了调查,前三名是:美国、瑞士和以色列。其中美国平均年薪 11 万美元。中国在二十多个国家中排名倒数第九(或者说位列中游),平均年薪 23,790 美元。而倒数第一和第二是尼日利亚(7,255)和印度(7,725)。此外,按编程语言划分:Go 和 Ruby 是收入最高的语言,均为 12 万美元左右;Python、Java、JavaScript 稍少一点,11 万美元。

消息来源:CodeSubmit
老王点评:中国程序员薪酬不算高并不意外。不过印度居然倒数第二,所以,印度的 IT 行业真的发达吗?

黑客利用开源软件和虚假工作机会进行钓鱼式攻击

微软威胁情报中心称,一个钓鱼黑客组织一直在使用木马化的开源应用程序和 LinkedIn 招聘诱饵来诱骗科技行业员工。他们发现该组织自 4 月底以来使用 PuTTY、KiTTY、TightVNC 等软件安装程序进行这些攻击。这和我们之前 报道 的谷歌 Mandiant 发现的情况一样。

消息来源:ZDNet
老王点评:这种被带木马的开源软件钓鱼的员工真的合格吗?我觉得各个企业是不是模拟一下这种钓鱼测试。

做一个高效的、充满好奇心的问题解决者吧!这会帮助你成为一名成功的程序员。

你是否曾经遇到过这样一种情况:你想解决一个问题,并且你在 YouTube 或 Google 中找到了相关的教程。嗯,你觉得看会了,可真做起来,却止步不前,大脑一片空白。你感觉自己每一行代码都看懂了,可一旦离开了那个教程,就步履维艰。如果你在 HackerRank 或 LeetCode 上看过别人的解题过程,你就能体会到,一个有追求的程序员第一次看到这些挑战时,他会是何种感受。举例来说,假设你正在学习一门新语言,在你刚开始理解这门语言的基础知识的时候,你看了一个教程,摩拳擦掌,结果发现自己无法独立应用学到的知识,这反过来可能会导致你怀疑自己的知识和能力。

把教程付诸于实践

你应该从头开始吗?如果你这么做,你可能很快就会发现自己重复学习了很多次相同的知识点。虽然从头开始并不一定是种浪费,但是,你该如何变得更高效呢?

死记硬背在编程中完全是行不通的。话虽如此,但你也不能够忽视熟悉语法的重要性。因为,死记硬背和养成习惯之间是有明显区别的。习惯是很难打破的。要养成多使用编程语言的常规语法、函数、方法、模式、范式和构造的习惯,这样你才能掌握它。掌握一门编程语言需要大量的创造力和练习。练习语法是非常必要的,直到它们能在你的脑海中自然地浮现,就像血液在血管里流动一样。

“问题解决”的工作原理

那么,你该采取什么样的方案呢?这实际上取决于许多因素。这些因素可以是任何东西,下至技术限制,上至用户需要。世界上有无数的问题,每个问题都有许多解决方式。如何选择一个最好的?这就需要 “问题解决” problem-solving 的技巧了。

下面是一个简单的例子。你需要把两个数相加,让它们等于 6。显然,你有多种方式可供选择:

3 + 3 = 64 + 2 = 65 + 1 = 6

同理,如果你需要让两个数字,经过一次减法、乘法或除法运算后,得到的结果为 6。你仍然有很多选项,包括:

8 - 2 = 612 / 2 = 63 * 2 = 6

每种方案都有它固有的限制,且各不相同。当你在现实生活中尝试做出一个高效的方案时,你必须要考虑到所有的限制。这个方案可行吗?有什么障碍吗?有可操作性吗?是否可扩展呢?而如何最小化约束,并做出一个最优方案,就取决于问题类型和业务需要。

练习很重要

编程的目标不仅仅是解决问题。因此,从工程视角理解代码如何工作始终是一个优势。这就是代码审查在企业级开发中发挥作用的地方。编程的最低要求是具备基本的编码知识,包括语言的语法、函数和方法。归根结底,“写代码”是需要你去的,所以练习总是有助于提高你的技能。流畅的写作和复杂方案的开发都来自于持续的学习和训练。

学习编码

我撰写和分享这篇文章,是为了鼓励新程序员去探寻自己的内心,寻找那个“优秀的问题解决者”。请不要停止相信自己。

要成功编码,你需要培养许多习惯。下面是我在学习编码时保持高效的方法:

  1. 一个包含语法、方法和函数 速查手册 总能应付不时之需。
  2. 将问题分解成更小的部分,便于追踪。
  3. 尝试理解代码运行的核心概念。
  4. 构思解决方案时,大可发挥你的创造力 —— 但刚开始还是要注重基础。
  5. 在练习时,创建尽可能多的应用和组件。
  6. 永远不要从 Stack Overflow/Exchange 等开放平台上复制/粘贴代码,特别是在不了解上下文的情况下。
  7. 跟着教程做了一遍后,尝试从头开始构建所有内容。即使你只能独立完成一半,那也仍然是一个成就。

祝我们所有人好运!


via: https://opensource.com/article/22/8/coding-advice-new-programmers

作者:Sachin Samal 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

FSF 仍坚持使用古老而自由的服务器硬件

自由硬件日益稀缺,但自由软件基金会(FSF)仍然在坚持其理念,它的服务器配置都相当古老,因为新一代的硬件都含有非自由的私有固件。FSF 最近表示它更换了最后一台运行非自由 BIOS 的机器。目前它有两个数据中心和逾百个虚拟机。英特尔和 AMD 在 2013 年之后发售的 CPU 都不支持自由 BIOS。这些 CPU 都会在 BIOS 中安装私有固件,如英特尔管理引擎(IME)。这些 CPU 也会拒绝运行未经过 AMD 和英特尔私钥加密签名的固件,而他们只会签名自己的非自由固件。

消息来源:FSF
老王点评:从自由软件和开源软件两个略有分歧的路线开始,现在看起来开源软件越来越广泛,而自由软件面临的局面越来越艰难了。因为,那些“拥抱”开源的企业发现,开源对他们是有利的,而自由软件则不是。

各国程序员平均年薪,美国第一,中国仅相当于美国的 1/5

一家招聘平台统计分析了 20 多个国家的软件开发者在 2022 年的薪资状况,并列出了排名数据。据统计,2022 年年薪最高的三个国家为:美国(11 万美元)、瑞士(9.8 万美元)和以色列(7.2 万美元)。而中国为 2.4 万美元,约折合人民币 16 万,仅相当于美国程序员平均收入的 21.6%。就全球使用的编程语言而言,Golang 和 Python 语言薪酬最高,PHP、JavaScript 语言最低。

消息来源:Code Submit
老王点评:今天正好在朋友圈看到一位朋友的信息,曾经的一位专业的 IT 女工程师,去跳槽到一家做减肥的微商公司。不由得感慨,在中国做 IT 真是艰难啊。不过,之前我们发过的另外一个消息显示,美国对 IT 专家的缺口很大,以至于业界要求政府加强计算机教育。

Fedora 37 有望装备基于网页的全新 Anaconda 安装程序

在今年早些时候,红帽公司宣布正在为 RHEL/Fedora 的 Anaconda 安装器开发全新基于网页的用户界面。即将于今年秋季发布的 Fedora 37 虽然会保留基于 GTK 的 Anaconda 安装器,但也会提供下一代基于网页的 Anaconda 安装器,带来全新的界面和安装体验。全新的界面更加现代化,未来将会彻底替代现有基于 GTK 的 Anaconda 安装器。

消息来源:Phoronix
老王点评:这倒是不错,其实采用网页可以有更丰富的表现力和功能。

无论你身处编程旅程中的何处,这 12 篇编程文章都有你需要学习一些东西。

“学习计算机编程的最佳时间是 20 年前,其次是现在。” — 计算机科学的谚语(也许是)

无论你是新程序员、经验丰富的 Web 开发人员、后端大师、头发花白的系统程序员,还是其他神秘物种的计算机极客?无论你身处广阔的软件开发人员生态系统中的何处,在我们领域中唯一不变的就是需要了解新技术及其应用方法。这是过去一年来阅读量最大的 Opensource.com 文章的集合,我很高兴在这里与你分享它们。

好好学习

无论你的技能或兴趣是什么,学习如何编写计算机程序都可以将特定领域的知识变成一种超能力。不幸的是,至少从现在开始,还不可能通过坐在计算机前面接受电磁辐射就能学会如何编程。在这之前,我推荐这些出色的文章来帮助激发你的编程技能。它们解决了一些重要的问题,例如考虑学习哪种语言以及不同的入门方式。

天天向上

经验丰富的程序员知道,与学习编程相比,唯一更难的就是使你的技能和知识保持最新。但是我们是自学成才的一族,总是希望提高我们的专业知识和理解力。即使我们不期望使用新技术,我们也知道总会有人问起它们。这些有关 Rust、WebAssembly 和 Podman 的文章是开始学习软件技术一些即将出现的趋势的好地方。

老兵不死

尽管新技术层出不穷,但回顾过去可以帮助你前进。当今惊人的技术是建立在昨天的工具之上的,即使我们从未使用这些传奇语言编写过代码,它也将使我们很好地理解这些工具的功能和局限性。这一系列文章集中于 C 语言、用 AWK 编写的实际应用程序,以及对流行度下降但也许还没有消亡的计算机语言的有趣讨论。

学习不止

无论你在编程过程中处于何处,总有更多东西需要学习。我希望这些来自 2019 年的顶级资源能帮助你为 2020 年做好准备。感谢作者们和你——读者。


via: https://opensource.com/article/19/12/programming-resources

作者:Erik O'Shaughnessy 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这幅妙绝的题图来自 Miquel Beltran

我的技术生涯,从两年前算起。开始是 QA 测试员,一年后就转入开发人员角色。没怎么努力,也没有投入过多的个人时间。

你可以从我为何从生物学转向技术和我学习 Android 的一年 这两篇文章中找到些只言片语。今天,我想谈谈是自己是如何开始担任 Android 开发人员这个角色、如何换公司以及作为 Android 工程师的一年所得所失。

我的第一个职位角色

我的第一个职位角色, Android 开发者,开始于一年前。我工作的这家公司,可以花一半的时间去尝试其它角色的工作,这给我从 QA 职位转到 Android 开发者职位创造了机会。

这一转变归功于我在晚上和周末投入学习 Android 的时间。我通过了 Android 基础纳米学位Andriod 工程师纳米学位课程,也获得了 Google 开发者认证。这部分的详细故事在这儿

两个月后,公司雇佣了另一位 QA,我转向全职工作。挑战从此开始!

比起给他们提供一台笔记本电脑和一个 git 账号来说,要把某人转变为胜任的开发角色,显然困难重重。在这里我解释一下我在那段时间遇到的一些障碍:

缺乏预期

我面临的第一个问题是不知道公司对我的期望。我认为他们希望我从第一天起就有交付物,虽然不会要求像那些经验丰富的同事一样,但也要完成一个小任务就交付。这种感觉让我压力山大。由于没有明确的目标,我一直认为自己不够好,而且是个伪劣的冒牌货。

缺乏指导

在公司里没有导师的概念,环境也不允许我们一起工作。我们很少结对编程,因为总是在赶项目进度,公司要求我们持续交付。幸运的是,我的同事都乐于助人!无论何时我卡住或需要帮助,他们总是陪我一起解决。

缺乏反馈

那段时间,我从来没有得到过任何的反馈。我做的好还是坏?我应该改进些什么?我不知道,因为我没有得到过任何人的评论。

缺乏学习氛围

我认为,为了保持常新,我们应该通过阅读博客文章、观看演讲、参加会议、尝试新事物等方式持续学习。该公司在工作时间并没有安排学习时间,不幸的是,其它开发人员告诉我这很常见。由于没有学习时间,所以我觉得没有资格花费哪怕十分钟的时间来阅读与工作相关且很有意思的博客文章。

问题不仅在于缺乏明确的学习时间津贴,而且当我明确要求时,被拒绝了。

当我完成突击任务时,发生了一个例子,我们已经完成了任务,因此我询问是否可以用剩下的时间来学习 Kotlin。这个请求被拒绝了。

另外的例子是我想参加一个 Android 相关的研讨会,然后被要求从带薪年假中抽出时间。

冒充者综合征

在这公司缺乏指导、缺乏反馈、缺乏学习氛围,使我的开发者职业生涯的前九个月更加煎熬。我有感觉到,我内心的冒充者综合征与日俱增。

一个例子就是拉取代码进行公开展示和代码审查。有是我会请同事私下检查我的代码,并不想被公开拉取,向任何人展示。

其他时候,当我做代码审查时,会花好几分钟盯着“批准”按纽犹豫不决,在担心审查通过的代码会被其他同事找出毛病。

当我在一些事上持反对意见时,由于缺乏相关知识,担心被坐冷板凳,从来没有大声说出来过。

某些时间我会请同事私下[...]检查我的代码,以避免被公开展示。

新的公司,新的挑战

后来,我手边有了个新的机会。感谢曾经和我共事的朋友,我被 Babbel 邀请去参加初级 Android 工程师职位的招聘流程。

我见到了他们的团队,同时自告奋勇的在他们办公室主持了一次本地会议。此事让我下定决心要申请这个职位。我喜欢公司的箴言:全民学习。其次,公司每个人都非常友善,在那儿工作看起来很愉快!但我没有马上申请,因为我认为自己不够好,所以为什么能申请呢?

还好我的朋友和搭档推动我这样做,他们给了我发送简历的力量和勇气。过后不久就进入了面试流程。这很简单:以很小的程序的形式来进行编码挑战,随后是和团队一起的技术面试,之后是和招聘经理间关于团队合作的面试。

招聘过程

我用周未的时间来完成编码挑战的项目,并在周一就立即发送过去。不久就受邀去当场面试。

技术面试是关于编程挑战本身,我们谈论了 Android 好的不好的地方、我为什么以这种方式实现这功能,以及如何改进等等。随后是招聘经理进行的一次简短的关于团队合作面试,也有涉及到编程挑战的事,我们谈到了我面临的挑战,我如何解决这些问题,等等。

最后,通过面试,得到 offer,我授受了!

我的 Android 工程师生涯的第一年,有九个月在一个公司,后面三个月在当前的公司。

学习环境

对我来说一个大的变化就是每两周会和工程经理进行面对面会谈。那样,我很清楚我们的目标和方向。

在需要如何改进、需要如何提供帮助及如何寻求帮助这些事情上,我们得到持续的反馈和想法。他们除了提供内部培训的的福利外,我还有每周学习时间的福利,可以学习任意想学的。到目前为止,我正利用这些时间来提高我的 Kotlin 和 RxJava 方面知识。

每日的大部分时间,我们也做结对编程。我的办公桌上总是备着纸和笔,以便记下想法。我旁边还配了第二把椅子,以方便同事就坐。:-)

但是,我仍然在与冒充者综合征斗争。

仍然有冒充者综合征

我仍然在斗争。例如,在做结对编程时,当我对某个话题不太清楚时,即使我的同事很有耐心的一遍一遍为我解释,但有时我仍然还是不知道。

两次三次后,压力就堵到胸口。为什么我还不知道?为什么就那么难理解?这种状态让我焦虑万分。

我意识到我需要承认我确实不懂某个特定的主题,但第一步是要知道有这么个概念!有时,仅仅需要的就是更多的时间、更多的练习,最终会“在大脑中完全演绎” :-)

例如,我常常为 Java 的接口类和抽象类所困扰,不管看了多少的例子,还是不能完全明白他们之间的区别。但一旦我使用后,即使还不能解释其工作原理,也知道了怎么使用以及什么时候使用。

自信

当前公司的学习氛围提升了我的自信心。即使我还在问很多问题,也开始如鱼得水了。

经验较少并不意味着您的意见将不会被重视。比如一个提出的解决方案似乎太复杂了,我会挑战自我以更清晰的方式来重写。此外,我提出了一套不同的体验和观点,目前,对公司的应用程序用户体验改进有着很大帮助。

提高

工程师的角色不仅仅是编码,而是广泛的技能。 我仍然处于旅程的起点,在掌握它的道路上,我想着重于以下几点:

  • 交流:因为英文不是我的母语,所以有的时候我需要努力传达我的想法,这在我工作中是至关重要的。我可以通过写作,阅读和交谈来解决这个问题。
  • 提有建设性的反馈意见:我想给同事有意义的反馈,这样我们一起共同发展。
  • 为我的成就感到骄傲:我需要创建一个列表来跟踪各种成就,无论大小,或整体进步,所以当我挣扎时我可以回顾并感觉良好。
  • 不要着迷于不知道的事情:当有很多新事物出现时很难做到都知道,所以只关注必须的,及手头项目需要的东西,这非常重要的。
  • 多和同事分享知识:我是初级的并不意味着没有可以分享的!我需要持续分享我感兴趣的的文章及讨论话题。我知道同事们会感激我的。
  • 耐心和持续学习:和现在一样的保持不断学习,但对自己要有更多耐心。
  • 自我保健:随时注意休息,不要为难自己。 放松也富有成效。

via: https://proandroiddev.com/a-year-as-android-engineer-55e2a428dfc8

作者:Lara Martín 译者:runningwater 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出