C程序员是不是只要会C就行了
”,那就让我先从回答这一问题开始,并做适当的扩展。就我的成长经历来看,C程序员必须学习面向对象编程!面向对象编程语言有其天然的一个优势 — 将软件世界的一切象现实世界那样视为对象。我在《专业嵌入式软件开发》一书的《设计,质量之本》一章中指出,软件设计的一个原则是“以人为本”,在软件世界中构建现实世界就能很好地贯彻这一原则,而对象在编程语言中的引入提供了设计便利性。对象的引入使得编程语言具有更具结构化的表达能力,这有助于提高程序的可维护性。从C程序员的角度来看,通过使用对象能让程序更具模块性,而模块化是我们所倡导的很重要的软件开发方法之一。一旦掌握面象对象编程,C程序员的设计能力通常会有较大幅度的提升。这种提升使得即便是用C语言编程也能写出更具模块化的代码。这是我主张C程序员一定要学习面向对象编程的根本原因。然而,尽管面向对象编程这种方法有其优势,但学习起来并不那么的容易,尤其对于从C语言过渡到C++的程序员。学习的第一个难点在于,面象对象编程与面向过程编程(指C语言)具有完全不同的思维方式。其差异性类似于对于使用拼音输入法的人来说第一反应是为字拼音,而使用五笔输入法的第一反应却是将字拆成字根。象练习五笔输入法那样,学习面向对象编程需要一定的时间通过模仿和实践去掌握面向对象的思维方法。在没有掌握面向对象编程方法之前,我们会认为它比面象对象编程复杂,且觉得很绕。然而,一旦掌握,你会发现它又是那样的自然。学习的第二个难点,在于C++语言本身上。C++编程语言应是最复杂的系统编程语言,这可从《Effective C++》、《More Effective C++》、《Exceptional C++》和《More Exceptional C++》等书加起来有近200个编程规则可以看出。语言的复杂性增加了掌握它的难度。如果不使用像pc-lint这样的静态分析工具,我们很难写出专业的C++程序。除了C++语言本身的复杂性,C程序员在转向C++时,由于C++对C语言语法的兼容,使得我们容易犯使用C++编写面向过程程序的错误。这在某种程度上不利于我们更快地掌握面向对象编程。优雅的编程语言有助于收敛我们的编程行为,从而写出更好的程序。但真正决定程序可读性的,是程序员的逻辑思维是否清晰和表达是否精确。再好的编程语言,逻辑混乱和表达不精确的程序员一定会将程序写成“狗皮膏药”。从这一点来看,尽管C++倍受争议,但还是值得C程序员去掌握。另外,在一个C项目上我们可以无缝地使用C++,相信这是C程序员选择C++很重要的原因。
这要看人,美国半吊子也是大把大把的,中国高手也多的是,只是外国公司机会更多,但平均水平上,美国可能要强,起码编程语言和重要参考资料都是英文,只是一大部分中国编程员的阻碍,一个芯片手册可能就能让普通中国程序员崩溃,写的都是啥????有道词典不给力啊。。。。
不是!不同的场景需要不同的操作系统平台,不同的开发平台,再到不同的语言,不是一成不变的。比如系统管理员用得最多的就是 shell,可能还有 python 和 perl,因为这些语言适合于这样的场景;一个企业的信息管理系统可能用的就是 JaveEE 平台,开发起来快;承载几亿人的即时通信软件后台就需要使用 C/C++,因为性能和并发量要够用,光堆机器可不行。至于 C 语言需要学到什么程度,以我个人的经验将大学计算机专业里面课程内容都用 C 去做一遍,可以把 C 语言这个工具用熟,用巩固了专业知识,比如数据结构、算法之类,用 C 就可以做练习,到后面的操作系统和编译原理都可以用 C 语言搞一下,只要时间够加上耐心,都不成问题的。
你应该刚开始学,呵呵,和问出了我当年想问而没有问的问题,后续还有什么问题可以私信给我,唉太忙了,加油吧!
为什么计算机从业者多被称为程序员,而不是工程师?
随着经济不断发展,现在电子类物品层次不穷,那么在电子类物品层次不穷的过程中,也就意味着会衍生出很多计算机行业的人才。可是在日常生活中,为什么计算机从业者总是被称为程序员而不是工程师?对于不是计算机行业的人员来说,似乎总认为所有计算机行业的人员都是在敲代码,所以在这种情况下,也就会给...
不会敲代码的程序员怎么办?
不会敲代码的程序员应该可以去做测试的工作,软件测试也是需要会懂代码的程序员,但是他不是会敲代码,懂整个开发的流程去做功能测试是没有问题的,也可以去做产品经理的职位的产品经理是不需要加代码的,但是他也需要程序方面的技术知识的,这样才能够有利于产品更好的开展的。
如何才能修炼成一名不可替代的程序员,避免裁员危机?
……只有熟练掌握手中的工具,才能让自己编写出优秀的软件。……编程语言有很多种,一个程序员不可能面面俱到。……但是一个合格的程序员必须掌握至少一门编程语言,这就是自己工作时最得力的工具。……运用这个工具,自己就可以编写出优秀的软件,就可以获得更好的业绩,最终成为不可替代的优秀人才了。
程序员都应该精通的六种算法,你会了吗?
对于一名优秀的程序员来说,面对一个项目的需求的时候,一定会在脑海里浮现出最适合解决这个问题的方法是什么,选对了算法,就会起到事半功倍的效果,反之,则可能会使程序运行效率低下,还容易出bug。因此,熟悉掌握常用的算法,是对于一个优秀程序员最基本的要求。那么,常用的算法都有哪些呢?一般来...
给新手程序员的十点建议
1、一个CS相关学位或一张理工科文凭不是你成为程序员的必要条件。 这是一个终身学习的职业。初学、转码甚至之后漫长的生涯中一定会遇到很多挫折和难题,但决定你能不能入门并在这条路上走下去的因素不会是你现在手里握着的学位种类和名称。 2、尽量保持耐心和充足的睡眠。 学习和记忆通常依赖3个步骤:习得新知识...
程序员一直都和电脑为伍,那当他们一个月不用电脑之后,编程还能那么熟练...
很会很熟练,但没有之前熟练,任何事物都是温故而知新。编程最主要的是逻辑思维,身边不是这个行业的朋友,经常会认为是数学科的,数学学的好,计算机就好,好吧,会存在一定关系,但计算机与数学关系不是最大的,与逻辑关系却非常大,底层存的是0和1而已。整个编程,考验的是逻辑思维,程序员写的系统...
为什么程序员会有代码能跑就不要动的观点?
再者,生产环境与开发环境或多或少有差异。没有十足把握,不要轻易改动,不然改一个问题,带出其他问题的情况很正常。正常运行,业务可正常开展。看似简单的问题,被改出更多问题,影响业务开展,责任重大。简介:程序员(英文Programmer)是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计...
...程序员找不到工作;但是只要有文凭,就算什么都不会也能找到呢。_百度...
换个其他的做。也有人说我自控能力不行,学习能力还行,对自己也不是很狠能不能学,保守一点来讲,是可以的,只是你需要一个正确的环境和一个拥有学习氛围的环境。比如参加现在的it机构培训,像这种机构都是一些小班大班教学,学习氛围自然有,你会被逼着前景的。另外,现在有些机构有相关的老师也是在...
程序员是不是都低投入、高产出的工种?
低投入、高产出 的工作。但你千万不要以为有台电脑,就能编程变现。零基础入行,如果方法不对,一定会困难重重。拿我自己来说吧,作为一个入行8年的老程序员,我不是科班生,完全是从零基础自学的编程,刚开始的时候也遇到了很多问题,跌过不少跟头,好在一路坚持了下来,现在也算有所建树。就给你...
学编程是不是一定要英语很好?
很多人去学习编程的话,并不是因为自己的英语,而是因为自己本身就是喜欢编程这个东西,我们现在如果要去学习编程的话,从头开始学习还是比较困难的,如果真的想要去学,可以适当的去报一个班,或者是跟着网上的一些课程去学,这样的话,有条理也会有思路更加方便,自己学习一些编程的知识。现在有很多学习...
詹蕊复方: 不是!不同的场景需要不同的操作系统平台,不同的开发平台,再到不同的语言,不是一成不变的.比如系统管理员用得最多的就是 shell,可能还有 python 和 perl,因为这些语言适合于这样的场景;一个企业的信息管理系统可能用的就是 ...
铜川市13520105330: 只精通C这一门语言,能不能做程序员 - ?
詹蕊复方: 可以是可以,不过不会吃香,不过没有人只精通c语言,能够精通c语言需要很强的能力,有这种能力再学个什么c++和java也是很简单的事情,所以不会有人只精通c
铜川市13520105330: 是不是程序员一定要会用C?????????
詹蕊复方: 是呀,你可以喜欢Pascal和Delphi,但没学过C、C++白活一世呀.
铜川市13520105330: 作为程序员必须都要会 C / C++ 汇编吗?
詹蕊复方: 不是必须的. 像我,是做嵌入式的,我更多是用C 汇编.做游戏的,更多是用C++ 做服务端后台的,用更多的JAVA C# 之类的.这些都是看工作需要而用,学JAVA C#也不一定需要C C++ 甚至汇编的基础 现在学汇编,不做反病毒工程师,汇编的用处不大了,我做嵌入式的用汇编的情况也不多了.最多是做系统引导而用汇编. 所以,只要你把自己想学的语言学好,就可以,业余时间可以学一下C C++ 汇编.可以丰富自己. 学汇编还有个好处,上可感知软件,下可了解硬件.学了也没坏处
铜川市13520105330: 学会一种编程语言就能成为一个程序员了吗 - ?
詹蕊复方: 取决于从事的行业以及学会的语言 比如单纯会C,那么很多嵌入式方向的都可以尝试 单纯会c++或者Java也可以 而如果只会shell那明显是做不了程序员的 另外,语言只是基础,要真的做编程这行,除了语言还要学其他的,具体因行业及职位相关,多种多样
铜川市13520105330: 熟练的掌握C++就可以去当程序员么?? - ?
詹蕊复方: 1.学完一本C++的书,然后有点教学经验就可以当老师,很简单.而程序员不但要学会C++,还要学会使用编程环境和其它知识,不然就当不了程序员. 2.C++主要制作游戏之类的,需要具备数学、物理和DirectX的应用等等.C++比起Jave要快很多,所以可以用来制作PC平台的软件.而Jave主要是用来制作网站之类的,或者是网络管理系统.制作手机游戏也可以.如果是制作手机游戏,那就需要具备关于手机的许多知识.而制作网站的话,就要精通Jave,要学会应用. 我是一个C++程序员,所以Jave有些不懂之处还请谅解.
铜川市13520105330: 程序员入门一定要学C吗 - ?
詹蕊复方: 这个就看你个人的发展了,如果只是单程的从事web这一块领域,且不想深入理解其实现原理的话就可以不用学c,毕竟很多东西都是从c发展过来的,了解学习c会给你一个更加清晰明确的思路! 所以这个就看个人需求了.
铜川市13520105330: 程序员必须学习C语言么? - ?
詹蕊复方: 真正的编程基础,绝不是某种具体的开发语言,而是计算机基本知识,如操作系统原理,计算机组成原理,程序运行原理(尤其是程序运行时各种元素在内存中的存储状态)等,弄懂了这些,任何语言都不难学,而且往往是一通百通.说到底,...
铜川市13520105330: 想学回编程就是C语言都还要学什么?单单的C就可以了吗? - ?
詹蕊复方: 需要一定的时间;unix系统熟悉起来较困难,学习好C,懂得面向对象是什么的可以很快上手,linux/,学会了C语言就学会了程序设计的最基本结构,现在的语言当然不只是C,例如C++,C#都不用说了 都是从C发展出来的,语法基本都是一样的...
铜川市13520105330: 我想做程序员,学完C语言,我应该再学什么? 1.学了C语言后有几个方面可以发展? 2.如果我按照C - ?
詹蕊复方: 1.你如果一直走IT,程序员,告诉你 50岁你都还能干,那个时候必定是资深高级工程师. 2.C语言是不需要证书,说实话,那个证书在工作中没任何用处,除非你过的是计算机四级,但是那个不是单纯的考C,涵盖大量的其他计算机知识. 3.如...