很多人开始学习一种编程语言,典型的比如C语言,在学习到一定程度以后,比如已经能够熟练应用if else, while , for 等等语句编写程序解决简单的逻辑智力题等等,学着学着突然迷茫了,不知道C语言有什么作用。同样的,在学习Java的时候,心血来潮,把《thinking in Java》从头到位学习了一遍,把上面的练习题全做了一遍,不可谓不刻苦。但是学习完以后,也迷茫了。不知道能用Java做点啥。 进一步的,听到有高手说算法,数据结构很重要,于是又苦读一番算法的书。又听到有高手说Linux内核开源,学会了感觉如何如何酷,于是心痒痒又钻研一番Linux内核源代码。结果愣是啥也没学会。程序没编出几个来,自己感觉自己啥都懂一点,但是啥也不会。也许还继续看看网络编程第二卷,捣鼓捣鼓socket。等等。 看看招聘广告,一般都是这样的。精通C/C++,精通XX数据库,熟悉TCP/IP网络协议..扪心自问,我C++只懂得一些类的概念,C++只编写过几个练习题。C,我倒是很熟悉,但是别人问我精通不,我自己也没底。面试的时候没底气,工作的时候没自信。 其实,这主要是有一个概念没有分清楚。不清楚什么叫做业务,什么叫做手段。 比如,一个人做usb相关的开发,usb的相关知识就叫做业务知识。虽然USB的实现大多是C语言实现,但是那些知识不叫做C语言的知识,C语言只是实现USB相关协议的一种手段。 也可以使用C++, Java或者其它语言来实现。 又比如做路由协议,你要懂路由协议相关的知识。 同样它大多是用C语言实现的。但是这些协议知识,无穷无尽的RFC,都是业务知识。 比如你想自己写一个FTP工具,FTP以及相关的只是就变成了业务知识,至于你想采用C,C++或者其它来实现,那只是一种手段。看你的熟悉程度和业务的需要等具体情况。 知道了这点,应该知道什么叫做懂得C语言了吧。能够一个小时内独立编写一个找出两个字符串的最大子字符串的程序,那么你的C语言就入门了。因为你已经能够熟练的应用if else, while语句,同样,能够编程实现如下这道逻辑推理题,那么你应该知道如何定义结构体,枚举类型等语言知识。并且逻辑思维也不错。可以来做程序员。 顺便想说一点,操作系统是每个程序员都必懂的东西,而且是越多越好,但是是不是每个人都应该去钻研linux内核源代码呢?窃以为,除非你是做内核开发或则内核移植相关的工作,此时内核代码的了解成为你的业务知识,你没必要花太多的时间去研究这个。那些特懂内核的人也没必要太拽,别人或许比你更懂网络知识。每个人都有自己的业务,方向。努力把它学好学精,同时把业务需要的语言,哪怕只有一种语言,学好了。你就是牛人了。
编程看法
最新推荐文章于 2022-11-29 11:20:52 发布