只精通一门C语言的人,算不算程序员?

用户75321928304


看到这个问题,想到一个笑话。

刚毕业时,小伙儿在简历上学了精通c语言,第一次跳槽后,简历上写熟练掌握c语言,第二次跳槽时,简历上写对c语言比较了解。

看到这个问题,我冒昧猜测一下,题主应该入行还不深,或者说刚刚入行。(猜的不对,还望多多包含)

其他语言不说,就c语言来看,做的时间越久,越不敢说精通。

对 于Java来说的话,其实是一套固定的东西,分布式,高并发,微服务,框架,性能优化等等,一套学完,等待新技术就可以了。

而c不同,技术更新没有Java那么快,稳定的东西很懂,但是方向也多,你也好这个,但并不适合另外一个方向,所以你说精通c语言,夸张点说,有些人学一辈子估计也学不到精通。

这样的c语言有好也有坏。

就是坑位比较少,但是稳定。在程序员35这个坎上更加平稳。

而从薪资上来看,也不比Java,python的工资低。

最后说一句,只精通一门c语言的人,绝对是程序员。


lee哥说架构


还是现身说法吧。


我本人就是一位只精通C语言的程序员,大概从21岁上研究生开始接触编程语言,到现在一位36岁的老码农,中间学过C++,C和Java。唯一可以称得上精通的就是C语言了。


之所以如此,当然也是有着鲜明的现实背景的。最主要的原因就在于我是一枚嵌入式软件工程师,是在MCU上写代码的,而C语言基本上就是嵌入式软件开发领域的王者,在MCU上很难看到其它编程语言的用武之地。


多年下来,在下编程无数,也做成了几款电子产品,在公司里,给的职位和薪水也是按照“程序员”的岗位来的。所以,“只精通一门C语言的人,算不算程序员?”,你说我算不算?


文艺佛系程序猿


精通~~~这两字何其大也。是可以直接写操作系统的人。是掌握了计算机软件方面的一切~~我认识一个老专家,原来中科院研究国产cpu的,c那是无话说,78年的清华。后来被企业挖来当架构总工(企业我就不说了)。我们很羡慕老头子的资历。说到精通,老头子都不敢说精通,直说略懂。当时他们八几年一伙小年轻在国内研究cpu制造和自研系统~~八几年,一百多块钱的工资和普通工人没区别。干了十几年。我们很是膜拜~~~老头子8051系列玩的很溜~用c。现在老头80多了,也不知道活没活着~~~他都不敢说精通~


alasunny


我语文成绩很好,当年高考142分,作文扣了6分还是超常发挥,那你说我是一个好的作家吗?我连想都不敢想。计算机语言远没有自然语言那么复杂,好的资深的程序员应该是能够根据项目选择来选择自己的开发工具,重要的不是用那种编程语言,而是程序本身。


土肥圆二坑


只精通一门C语言的人远远算不上程序员,别说一个C语言了,就算你只精通Java,精通C++,都算不上程序员,为啥?请继续往下看:

一、程序员要懂业务

会一门C语言意味着你可以按照C语言的语法写出一段代码来,但也仅仅是一段简单的代码。想让代码有灵魂,也就是能够解决实际中的一个问题或者满足客户实际的一个需求。试想,客户要求你做一个网络视频传输的模块,需要你理解视频从客户服务器到终端整个的交互流程才能写出这个系统,而你只会用scanf函数从键盘读取一个数据,再用printf函数把数据输出,这只能说明你C语言语法学的好,但是有什么用?帮助客户解决了什么问题?

二、程序员要懂算法

算法是程序的灵魂,程序员在写每一个C语言代码时都不知不觉用到了某种算法。最常见的一个就是人间识别算法。

也许你用C语言指针很溜,用C语言链表很顺手,用C语言二维数组更是不在话下,但是光会写这些就能识别出一张人脸吗?显然不可能。

算法就像一个印有规则的一张纸,你看着这张纸上的规则,利用你学到的C语言语法按照规则写代码,算法的灵魂就在代码中。

三、程序员要懂多个编程语言

给客户做业务,光懂一门编程语言远远不够。比如你懂Java,安卓开发很溜。但是你要在安卓手机上实现对视频截图,此时仅懂Java是不够的,这种涉及到视频处理的底层功能得借助于native方法,而native方法往往是通过C语言实现的。

很多时候做项目都是多个编程语言相辅相成,共同完成一个目标的。


上面所说的还仅仅是程序员要学的很小的一部分,程序员要学的实在是太多,而且技术更新日新月异,要时刻保持一颗学习的心!


数字视听科普


在微软流传一个段子,如果某个程序员遇到解决不了的代码问题,他可以去找比尔盖茨,比尔盖茨会用BASIC帮你解决问题。所以别说你只精通C语言可以成为一名程序员,就算你精通BASIC,把BASIC用到化境了,也可以是一名优秀的程序员。记住,重要的是你能解决问题,而不是强调你会用什么工具。


情系家国2008


答案是"肯定的"。在行业的岗位职能上,一般程序员或者是高级程序员,只要你精通一门语言也就是进入了一个行业。

C语言比起java、PHP等更加底层,目前从事C语言的程序员,薪资普遍都偏高,而且各种算法复杂,C语言是一个面向过程的编程,而流行已久的java语言则是面向对象的编程。如果从事游戏开发以及设计更多底层安全的业务,更多的做法的以C为底层语言,结合java作为业务开发层语言。

给大家也带出另外一个技术岗位的名词“全栈开发者”。顾名思义,就是全能的开发者,但是这个全能,并不代表掌握了所有的开发语言。以系统类型分类,C/S,B/S,App等,通常指的是Web开发中的前后端都会的开发者,能编写前端的JavaScript、HTML等,也能编写后台的java、C以及数据库mysql。其实早期的程序都基本具备这样的能力,我就说其中一个。

C语言编译器产生的机器代码非常快相比其他语言的编译器。 C编译器可以在两秒编译约1000行代码。 C编译器的另一个好处是,它还优化了代码更快的执行速度。

C语言是高度可移植的语言。这意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行而没有任何变化或做一个小的变化。

所以,如果你是从事C语言的开发者,无论从接触的算法以及编写的难度来看,绝对不逊色于其它任何一门语言。


苹果科技


不算。一个只会用C解决问题的人,他也不会是精通C的那一个人。

事实上不存在这样的伪高手。高手必定熟练掌握脚本语言,琐碎工作可不只是C能解决的。

问题问的不好。

现在大多数专业技术人员都需要结合专业领域的工具熟练掌握一门编程语言,这些语言就是脚本语言。windows文职工作人员熟练掌握vbs操控系统及word、Excel之类软件,cad制图软件掌握lisp,Matlab工具亦是,随处可见。这些脚本简单易用,能使你的系统和工具运行的飞起,但是即便精通一门这样的语言,也还不算程序员。

程序员的专业性不是通过某种语言来界定的,背后一堆东西,相比之下,多掌握些语言就太简单了。在成为程序员的路上,这个问题就已经不存在了,会几种语言是很自然的事情。


保温杯里泡枸杞好吗


那是当然,毕竟C语言真正能配得上精通两字的,全世界屈指可数。C语言易学难精,只有具备出众的相像力才能用好他。C就像独孤九剑,剑招不多,但要打败对手就必须要了解对手的破绽,内存 IO 中断 进程 线程 锁 信号量 哈希 列表 以及各种算法等等等等,如果不理解这些东西,那就只会Hello world。自认为精通C的不妨去阅读Linux内核源码,就会发觉自己对C的理解只不过是沧海一粟而已。


光明右使8787


先说一个行业内一个非常有趣的事情,刚入行没多久在简历上基本上都会写上精通某种编程语言,在这个行业混的日子久了,再次投简历的时候关键字已经从精通变成了熟练或者熟练,这是逐渐对编程一个认知的过程,开始觉得能写代码或者做项目都觉得是精通了,发现随着做项目的深入,想要精通一种编程几乎是不可能完成的事情,编程基本上越做越觉得自己知识的浅薄,需要学习的东西实在太多。

如果一个精通C语言的人都不能被称之为程序员,那么称职的程序员真就不多了,不是所有的程序员都是对某种编程语言都是精通的,能精通编程语言的人在编码界也是稀有动物般的存在。要精通一种编程语言,除了非常雄厚的编程基础之外,还需要现场实际解决问题的能力,一个问题普通的程序员也能解决,高手一样能够解决,但实际产生的效果是不一样的,高手解决问题想到的是框架方面东西,一旦解决可能类似的一个体系的问题都会得到解决。

既然说到C语言的话题,一个程序员如何做到精通C语言?

1.编程基础,基础是一切的根底,没有基础想要有更大的发展几乎是不可能的事情,所以C语言常见的语法以及比较深层次的语法都要了然于胸,基础的学习是不间断性的,有些人教材上翻越上百遍,而且每次看都有不同的感觉,每次都有不同的感受和领域,所有创造性的源泉都来源于基础,C语言常见比较难的知识点有指针以及多级指针的组合使用,递归,回调,结构体操作,函数等等,当然还有一个宏操作,很多框架为了效率考虑把基本的函数操作设置成宏的方式,但代码读起来可能就比较繁琐。

2.经历多次大的项目洗礼,想要精通一种编程语言一定是要有这种编程语言经历过大的项目,只是语法上的熟悉不算精通,需要实战验证,实战就是解决问题的能力,框架思想也是在实战中磨练出来的,实践多了吃的亏多了自然就会想解决问题的方法和策略,遇到的问题积累起来,然后加上理论依托,设计出来的东西一定稳定高效。

3.海纳百川,吸收众家之长,平时多读取相关的文档资料,只是靠自己去学,肯定不能做到知识广度,需要多交流,最好的方式就是加入开源社区,在里面吸取众人的精华,提炼成自己的。而且还要具备分享精神,在网络上总结一些经验之道,供大家分享并且从中吸取教训。

坦白而言能精通一种编程语言是一件可遇不可求的事情,比修炼自己成为一个架构师还要难,也不是每个人都能达到这种高度,如同有些技术人员一辈子可能就适合做点单元模块,整个体系就是无法驾驭。

学习C语言切入别的编程语言都会方便许多,毕竟在研究框架的时候,有了C语言的基础就能了解的更加透彻,而且在掌握了一种编程语言之后,还能有触类旁通的效果,用同样的方式复制新的编程语言速度会快很多,而且在学好一门编程语言之后再去学习别的开始时候的感觉特别清爽。

希望能帮到你。


分享到:


相關文章: