Linux/Unix经验

4

当我查看谷歌、亚马逊等公司的职位描述时,它们都要求具备C++和Linux/Unix经验。在职业资格方面,这通常意味着什么?我知道如何在Linux中浏览文件系统吗?我知道如何运行命令吗?在Linux/Unix环境下,C++编码是否完全不同(编译器应该只是不同的,对吧)?谢谢。

3个回答

7

这通常意味着您了解*nix系统上可用的开发人员工具,以及c接口进入操作系统的低级体系结构(系统调用)。具体来说,是库的布局方式,例如/usr/include,make在*nix系统上的工作方式。可用的shell及其差异(bash、ksh、sh),以及如何使用工具(命令)创建复杂的脚本。这也意味着要了解系统调用,以便利用低级语义。


这也意味着要了解系统调用,以便利用低级语义。所以你的意思是指操作系统的API,有点像Win32 API吗? - TheNoob

1

Linux/Unix部分是ennuikiller所描述的,了解系统、基本用法、API、Makefiles等。

第二部分C++通常分为两类。人们要么寻求指针、内存使用、STL、模板等基本理解,要么寻求使用特定库(如Boost或Qt)的开发经验。

我会说,我所见过/面试的大部分都是关于第一部分的,即语言的基本知识、指针、模板。偶尔会看到需要具备Qt或Boost经验的工作,但这些通常是中高级职位。

总体而言,如果您安装了Linux发行版并尝试使用*nix工具进行开发,那么您应该已经掌握了第一个要求所需的知识。对于C++,如果您可以创建一个基本的链表模板类实现(追加/删除/打印/搜索/排序函数),那么您就足够了。

当然,这仅基于这两个要求,并且对职位的其他要求一无所知。根据工作的要求,您可能需要了解Linux网络功能、文件I/O、排序、树遍历和其他API和算法。


0

拥有C++编程经验但没有Linux经验,我能够成为一名高级开发人员:独立负责设计、编码和测试一个独立的功能/组件。

然而,我需要一个愿意回答我的Unix特定问题的助手/团队领导,例如如何:

  • 列出文件,测试文件属性等,以便使用源代码控制
  • 使用源代码编辑器(我在Windows上编辑,在Linux上编译)
  • 创建makefile(或等效物)
  • 帮助使用gdb,告诉我valgrind的存在

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接