我正在寻找工作,最好是在C店结束.到目前为止,我的本地广告空白,我开始认为我需要扩大我的搜索范围,针对特定类型的业务.
那么,什么类型的地方通常使用这种语言?
C通常用于相当低级的开发.您会看到它经常用于嵌入式系统,通常被列为计算机工程职位(而不是计算机科学或软件工程).C也常用于设备驱动程序和"通用"低级代码,如数学大型项目的实用程序代码.
通常情况下,需要C的工作是由那些一直在使用它的开发人员采取的,并且很可能已经长期处于该位置.
继续看!就你所看到的被列为"C开发者"的工作而言,C是一个罕见的 - 所以显然他们很难找到.
但我只是想知道为什么你只是在寻找C工作而不是像C++或Objective C这样的语言:)
编辑:
还有一点注意事项,不要用答案误导你; C仍然用于很多不同的东西.浏览器,即时消息程序,服务器守护程序,甚至是用其他语言编写的一些代码的网络代码.问题是,当您使用Python,.NET或任何其他技术轻松编写工作时,花费在工作上的时间就会非常低效.因此,它并不常见,但工作可以存在.
我主要是作为C(和Perl)开发人员工作,因为应用程序已经成熟,历史悠久(即最初在90年代初期开发).该应用程序套件最初是为基于Unix的图形工作站开发的.我之前的工作是类似的情况,一个成熟的分布式应用程序是在多个Unix平台上开发的,最初是在20世纪90年代初期,由于源代码的大小和成熟度,很难证明只是简单地抛弃代码库来移动使用新的开发语言,甚至迁移到C++.
我认为仍然有一些较大的内部(用于内部目的,不作为产品出售)用C编写的仍在维护的应用程序.与大型公司(保险,金融,银行)仍在维持的大规模COBOL应用程序完全不同.
对于C语言的新开发,其他人已经提到了嵌入式系统市场,其中开发通常用于放入ROM或EEPROM /闪存的软件,在那里它被称为固件,用于微控制器(Microchip PIC,Atmel AVR,80C51,68HC11)对象代码大小,RAM使用和性能都很重要,因此需要使用具有较少高级或通用抽象或假设的编程语言.
关于优秀C程序员的一个关键问题是,如果不需要了解有关数据结构和算法的更多信息,则可以预期它们.优先级队列,二叉树,MergeSort,QuickSort,Knuth-Morris-Pratt和Karp-Rabin至少应该是模糊不清的.这是因为C语言缺少STL,Boost,CPAN和其他语言中提供的其他标准库.这至少部分是因为大多数实现都是特定于类型的(由于缺少模板或动态类型或类似机制),以使通用的例程在实践中有用.
知道多种编程语言并不是一件坏事,即使你觉得自己不够自信,也不足以在其他语言专业人员中编程."现代"脚本或"时尚"Web开发语言可能是一个很好的匹配.Perl,Python和Ruby是很好的潜在候选者.
对于编程经验,LISP,Scheme,Prolog*,ML,Objective Caml,Haskell和Scala等函数式语言是让你"思考与众不同"的理想选择.不可否认,Prolog实际上是一种声明性逻辑编程语言,但它仍然在扩展编程经验.
为了增加安东尼的出色答案,C仍广泛用于操作系统和固件的开发,因此您可能也想尝试向这个方向发展.
祝你找工作顺利.
必须靠近金属的东西,并且要快.所以除了安东尼写的东西 - 网络协议,存储设备驱动程序,文件系统,操作系统的核心,仍然是C大.