总结的层次

看了许多“吐血”总结,我也想说下总结,曾经别人也说我在考试上特能总结。

总结的层次

当在学习编程时,刚开始肯定是学一个知识点总结一个知识点,学一章总结一章;

精进之后,你就开始比较同一中语言里数组和函数,函数和对象之间的异同;

然后你就开始总结语言和语言之间的联系和区别;

然后你深入到计算机更底层去探寻一些东西;

总结的层次也可以上升到学习英语和学习其它知识

更高层次就是你能总结出startup的经验,那你就能复制出许多成功的公司。

许多创始人在起步阶段比较难,一旦跨越了这个阶段就。。。

当你总结得很自信时,你就开始去实现这个有意思得想法;

你觉得成功得企业家们在总结什么呢?这里不包括只知道积累财富的爆发分子;



下面是正题:

定义不同指针:

1) 定义指向变量的指针 int *p;

2)定义指向数组的指针 int *s;

3)定义一个指向函数的指针  int(*p) (int,int);

4)定义指向结构体的指针  struct  Person *person;

struct 结构名 *结构指针变量名


取地址的方法

1)取数组的地址 就是数组名;

2)函数地址 就是函数名;

3)结构体地址  &结构体名;


定义别名的方法

1)给字符数组取别名;

char *s = "itcast";

typedef char * String;

String s2 = "itcast2";

2)给函数取别名;//没找到方法?

3)给结构体取别名;

a方法>

instruct Person{

age = 75

};

typedef Person person;

b方法>

typedef instruct Person{

age = 75

}person;

c方法>

typedef instruct{

age = 75

}person;

4)给指向函数的指针定义一个别名;

typedef int (*Sum) (int,int);

Sum p = sum;  //Sum就是别名




看了一个肖舸老师写的关于计算机课程会分为三部分知识,每部分是一条线:

最开始的第一门课是“C语言程序设计”,

1)第一条线的第一门课程是“数据结构与算法”=>编译原理[介绍编译器如何工作的,是让计算机理解计算机语言(终极目标是自然语言)的一种方法和理论];

2)第二条线的第一门课程是“汇编语言和微机接口技术”=>计算机组成原理与体系结构=>计算机操作系统

3)最后一条路线属于应用型的,可能会开一些面向对象程序设计方面的课程,可能是C++或者Java=>数据库系统(如何解决关系问题或者SQL语言)=>计算机网络[TCP、UDP,HTTP,上层原理和协议]


<转>C语言之所以难学,并不是说它自己多难,真正的问题在于,C语言偏底层,只要我们一做应用程序,或多或少都需要调用很多操作系统相关的api(Application Programming Interface,应用程序编程接口)来完成工作,Windows下,如果我们不懂Win32API,则很难写出合用的代码,C语言玩得再熟都不行,Linux下对于各种系统和应用级api,也需要不断查询man,否则根本写不下去。所以,要想成为C程序员,至少要学习操作系统,通常,至少应该把Windows和Linux常见的api学一遍。MFC是Win32API的C++框架表示,最好也学一点。


现代开发,C和C++一般不分,C++到了函数内部,其实是C,而C呢,有很多特性写程序不够方便,也需要使用很多C++的特性,如默认参数,如引用等等。所以,学习C,最好和C++套着学,都看看。


还有一个很重要的问题,C语言的基本库相对薄弱,很多近年发展的高级语言,对于哈希,List,队列,栈,树等常见数据结构都提供标准库函数,或者库模块来支持,但C一般是没有的,偏偏实际应用开发还经常用到,得自己找开源,或者程序员自己写,这也会耽误程序员很大一部分精力。

其实C程序员如果做企业数据应用,一般需要具有编译原理的知识,我们一方面要实现用户的业务,还需要写一套Java这类脚本语言给用户做二次开发用,说白了,就是我们自己实现一套lamp体系。

在冯诺依曼体系架构中,计算设备就是具有一定计算能力,有能力和外界做出IO互动,并且能高速重复动作的这么一种设备,这可能和大家在教科书里面学到的不太一样啊,不过,我是这么理解的。


程序,其实是在讲一件事应该怎么做,这个做的过程,以及这个过程的含义,其实是人定义出来的,然后通过编程,教给计算机来做而已。既然编程是把做一件事情的步骤,分拆开来,教计算机去做,但,分拆到什么粒度呢?这个很重要。如果分拆的粒度太细,白白浪费程序员的时间和精力,这些都是成本。而分拆得太粗,计算机还是弄不明白,做事不对,就是bug了。

这说明,编程有个很重要的概念,就是粒度,也就是我们对问题描述的精细程度。

就是这么一个思维,解决了所有的问题,遇到需求,首先拆分,然后不断检索我们以前是不是以前拆分过了,遇到能套用的程序段落,就直接用,不用每次都拆分那么细,减少工作量,当然,遇到新问题,还是需要自己拆解的,不过,拆解后,最好把拆解本身,也写成程序,下次重用。

不过呢,这个世界的需求总是很多的,并且,计算机的能力也是不断在进步,以前不适合计算机做的事情,现在也慢慢变得适合了。因此,大家总能遇到一些新问题,需要自己重新拆解,基本库中没有提供,这就是程序员这个职业存在的真实含义。帮助用户不断拆解新需求,解决新问题。当然,库本身也在进步,不断把已经被证明拆解成功的问题,修补到库中,避免以后的程序员做重复工作。就这么简单。

 写程序,就是遇到需求,能迅速抽象,理解其共性,并能以清晰的语言描述出来。

其实写程序的方法本身,编程的内功本身,其实是没有什么语言特性的,C、C++、Java、PHP、Python。。。是不是都用的同一种方法在做事情。

修炼编程的内功,是学习抽象能力和描述能力,与语言无关,换而言之,从任何一门语言入门,都可以修炼到内功的极致,关键看你用不用心。

看问题抓本质,只要能及时理解商业公司的开发思路,理解[简单]这个要素,我不敢说大家一定能找到工作,但只要找到了,在公司里面,基本都能快速融入公司。

如果学过一点经营管理,都能理解一个概念,就是“核心竞争力”,一个产品,一个公司,一个人,能存活在这个世界上,其实都有他的“核心竞争力”。不过,这个“核心竞争力”究竟是什么呢?根据我的经验,一般说来,这个“核心竞争力”还有个名字,叫做“不可替代性”。iPearl的产品就是不可替代性;

学习C的过程中,一定要理解结构化编程思维:软件语言的发展过程,就是一个数据私有化的过程,大型工程应用,强调高内聚,低耦合,模块化设计,保持代码最大的灵活性和安全性。

我认为面向对象相对面向过程,仅仅是结构化程序设计的一个具体体现,是编译器提供手段,强迫程序员必须遵循数据私有化的一个实例,C++和C的关系,最核心的莫过于此。

现在我们回到C再看看,如果我们把一个全局变量,写到一个cpp里面,并且在对应的h文件中不声明,它是不是就只有这个模块可以使用?它是不是就是私有变量,以这个理解,类能明白了吗?

C++在类的基础上,经过这么多年的发展,其实提供了很多深入的概念,看起来很复杂,其实我看也很简单。比如模板,我的理解就是“类的类”,大家说是不是?

 

既然模板理解了,STL,ATL这些,静态模板库,动态模板库,还难理解吗?就是一大堆类的类,可以借此实现很多应用中需要的类,不需要程序员再自己写而已。

 

ok,STL都理解了,泛型开发还难吗?所谓泛型开发,其实就是我做一个模板,来定义一套算法规则,但是呢,我希望这个算法规则,能进一步抽象,对核心数据类型不要限死,我把各种数据套进去,都可以用,这样,仅算法这部分,我不需要重写了。你想想是不是这个道理?

 

学到这里,C++和C,其实已经差不多了。再学语言,就是求全责备,过于钻牛角尖了。

假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC了,因为这是微软的标准类库,至少Windows平台下,它最权威


<转>目前,Java平台有三个版本:
适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、
适用于桌面系统的J2SE
和适用于企业级应用的J2EE。
Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,
迎合Browser/Server架构的潮流,
为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,
从而简化企业应用的开发、管理和部署。假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC了,因为这是微软的标准类库,至少Windows平台下,它最权威
j2EE是指开发企业级应用系统架构技术,其中包涵了jsp,servlet,java,structs,spring。。。。一系列的技术,他不是告诉你怎么使用这些技术,而是告诉你这些技术如何整合,互相协调作用,完成架构出一个企业级应用系统的功能。
jsp就单单是一门技术,也可以说是一种语言。
J2EE是在java1.2是沿用下来的名字,
从java1.5开始更名为JavaEE 5.0。


<转>我在IT业很多年,也仔细分析过IT业的职业构成,就我的了解,其实IT业也在细分,大致分为如下几种:

 

1、研发,包括软件研发和硬件研发,就好比我们这个论坛大多数朋友,在一个公司里面完成项目开发,或者定制产品,一般说来,软件研发基本上就算产品的设计者和制造者,硬件研发,只能算设计者。因为后面还有生产环节。

 

通常研发岗位,包括RD,QA,以及配置管理员,架构师,小组长,项目经理,研发助理等,就是研究部分所有的职位。部门经理一般我没有计算在内,感觉部门经理管人,应该算管理岗位。不过有些小公司,部门经理和项目经理,甚至架构师,都不分,因此需要具体情况具体分析。

 

其中RD,就是我们说得最多的设计人员了,这个大本营的同学,以后估计大多数都从这里起步,当然,做QA测试的也不少。

 

RD这个词有讲究,就是设计和实施,是两个意思,设计,是决定一个东西怎么做,实施是把它做出来,我们刚开始,可能都是先做实施,慢慢走到设计,模块设计,系统设计等等,如果做得好,以后慢慢专门做设计,就是架构师了。

 

软件人员一般RD不分,设计者通常就是实施者,因为基本上程序敲完,产品也就出来了。硬件人员则不同,一般就是设计者,以及第一轮白盒测试的QA,自己测,当产品测试稳定,定型,就可以交给中试部进行产品测试,最终上线贴片生产。

 

QA这里面一般细分为软件测试和产品中试,像华为、迈普这类大中型企业,以生产硬件产品为主的公司,都有自己的中试部,中试部简单说,就是专门测试硬件的,比如各种静电测试,温度测试,跌落、震动测试等,为产品最终上线做准备。我想,大多数同学可能对软件测试熟悉,对产品中试可能不太熟悉,不过差不多就这么多东西。

 

软件研发通常还有个角色很重要,就是配置管理员,一般小公司没有这个角色,由负责的测试人员兼任,大公司会专门设置这个角色,并且这个角色还有商业秘密保全的功能。

 

我们软件人员开发的产品,在自己的机器上,一般叫测试版,只有提交到CVS或SVN等版本管理系统,才叫产品,测试部不是从我们手里拿软件去测,而是由配置管理员在中心服务器上,将软件产品从源代码编译成可执行文件,生成安装程序包,然后发给测试部,测试部测试完毕,返回测试报告,公司领导签字后,以后软件产品的发货,就是配置管理员负责发货。

 

大家明白了吧,这里面很严格的,在大公司,软件一旦投测,如果RD发现有个小bug,小公司可能打个招呼就改了,项目控制流程上看不出来,但在大公司,必须发文,说明上一版本作废,然后重新发测试申请,重新提交代码走流程,项目流程上就记录,废版一次,以后就是扣工资的依据。因此,大公司的程序员一般比较严谨,发版测试很谨慎,就是怕出现这类bug,这样的缺点是对市场的反应不够灵敏,可能客户提交一个bug,RD改只要几分钟,但是流程要走一两天,但是好处是产品质量有保证,每个人的工作结果都记录在案。便于管理。且程序外泄几乎不可能。

 

我以前有篇文章说,国外很多程序员,可能在一个公司工作一辈子,都没有见过自己服务的计算机,就是这样的,RD都在终端工作,自己本地测试好了,提交到中心服务器,由配置管理员负责最后的编译和提交。

 

2、市场,这大约是最多的,往低里说,电脑城的谈单员,就是市场,往高里说,华为、Cisco的地区总裁,其实也是市场角色。市场根据个人经验,又分为Sales和Marketing,前者是简单的客户成交服务者,即客户准备购买,完成买卖手续,协助送货什么的,Dell那边的电话销售小姐,大约就是这个角色,由于Dell是定制,因此她们还需要下订单。后者就是属于较高层级的销售人员了,可以引导市场,引导客户,促成交易。

一般说来,市场其实也是个技术活,很少有朋友是天才,上来就可以做到Marketing的,都是从Sales先入手,慢慢练,这个过程,可能比一个程序员走到架构师还难,很多销售人员,做一辈子,都做不到Marketing的,不信,去商场看看售货员,公交车的售票员,都是Sales。

这里说说广告,广告我的理解,就是Marketing的一个分支,吸引眼球,吸引客户,促成交易。

我们经常说,每个行业都有英雄,其实市场中,Marketing就是英雄,一般说来,走到这一步,就可以站在这个行业的巅峰,出去讲课,拿最高的佣金,享受猎头挖角的快感等等。不过,很难的,有句话请大家注意,“这个世界上,99%的销售人员,都不知道自己在干什么,说的就是这个问题”,那1%才是Marketing。

通常情况下,开发人员瞧不起市场人员,总觉得对方是耍嘴皮子的,但市场人员同样也瞧不起开发人员,总觉得这帮书呆子不创造价值。呵呵,大家别生气,大多数公司,把研发单位,看做最大的成本单位,只花钱,不创造价值的,虽然我们设计了产品,但公司的财务上,这部分是没有价值的,产品价值是在销售出去以后才体现出来,因此,财务上看,研发部门总是赤字一片。

其实,真正厉害的市场人员,我们研发人员还是要尊重的,要知道,一个研发人员要成名成家,其实很容易,随便什么东西,攻克一个难点,出几篇论文,出一个产品,这个研发人员就可以在公司里面牛起来了,一个研究院,至少20%~30%都是这种牛人。但是,市场要能做到Marketing,前面说过,1%,可能都不到,你说这帮人算不算精英?

 

3、技术,终于说到技术了,这是最奇怪的一个职业,本来没它的,但就是出现了这个职业。其实技术在国外,应该叫做Service,即技术支持。

 

技术,往低里说,电脑城的拼机器的,也是技术人员,通常由谈单员兼任,谈单员通常由大学生勤工俭学兼任,呵呵,一起练了。再往上,客户那边送货,把包装拆开,技术,联网,技术,调试网络,技术,再大了,这里说句话,希望大家不要见怪,网络管理员,其实也是技术。

 

以前有段时间,MCSE很流行,我也去考了一个的,但是,后来发现,研发单位招人,根本不看这个,因为这个学习的是如何操作机器,而研发是设计机器以及操作模式,让别人操作。CCIE也是啊,因此,当时很多说法其实是有点误导,说学了这些证书可以不上大学,成都还出现过一个娃娃,高三毕业考过了MCSE,就不上大学了的事情,现在不这么说了,因为毕竟上大学才是王道。光靠这个证书,是吃不了一辈子饭的。

 

在华为,迈普,技术是一个专门的职业,负责给客户送货,因为他们出路由器,安装配置有一大堆事情,电信局又是大牛,人家才不会去管这个事呢,厂家来人解决。顺便说一句,电信局守机房的,也是技术。

 

原来没这个职业,就要研发人员兼任,因为这毕竟是个技术活,不过,久了研发人员不干了,天天出差,还做什么研发,老板也不干了,因为研发人员工资高,在大家看来,连连线,配置几个IP地址,这不复杂,如果用研发人员干,成本太高了。

 

喏,就这样,一个独有的职业,技术,在IT企业被定义出来,这部分主要找一些较为低端的人才,二本啦,三本啦,自考啦,总之,我看见很多年轻的朋友,希望进入IT业,没有本钱,不会做老板,也进不去一些大型公司的门,一般选择,就是在电脑城做技术起步。

 

现在很多系统集成公司,他们定义的项目经理,和研发单位的项目经理不太一样,其实也是技术,这类公司一般都是经销商,不是制造商,自己没有产品,靠代理别人的产品再销售来获取利润,一般说来,渠道这个词,就是指这类公司。这些公司的技术人员,主要工作就是看,我代理了哪些产品,哪些产品利润高,我怎么给客户报方案,把利润高的产品设计进去,等等。

 

这里面其实也有设计工作,但是,显而易见,这部分设计工作和前面的研发架构师的设计,是两个层面。

 

当然,这里有两个特例,一个是目前很多中小型,做网络应用的架构师,他们也有这个设计部分,这些企业一般都是项目制,没有自己的产品,每一单都要定制开发,这类和前面的系统集成设计有一定类似,因为很多项目包括了设备采购什么的。

 

另外一个特例就是系统集成设计,通常就是Marketing的活,因为自从IBM提出卖服务的概念以后,给客户交钥匙工程成为主流,大家都说自己是解决方案提供商,因此,Marketing通常就是采集需求,利用本公司产品或者代理的产品,组成解决方案,一体化提供给客户。

 

因此,从职业发展途径,技术一般说来,也可以走到Marketing。通常Marketing有两个产生渠道,Servicer技术,或Sales销售。

 

当然,这里也看出技术这个职业的短板,因为Marketing毕竟是销售为主,因此,销售能力占主导,技术人员由于长期和机器打交道,因此,恐怕也是机器脸居多,卖东西能力很差,因此,技术能转成Marketing的,更少。

 

当然,也有技术人员转回来做研发的,不过,也很少,起码我没有看到什么成功的案例。

 

4、管理,这里就简单说啦,一般说来,管理本身是抽象的,并不是IT业的管理,一定只能从IT业产生,或者一定只能管IT业,IBM的总裁郭士纳,就不是IT业出生,管理的英雄们,例子就太多了,他们有个统一的称呼,职业经理人。

 

前面说的几种,总的来说,都可以最终成长为管理,不过,管理也是最难的,一来人是最复杂的,不像机器那么好打交道,二来,管理要看运气,单纯说水平不行,得老板看得上才行,你说是吧?

 

因此,研发,销售,技术,要想成为管理,这个成功率,一般不高于1%的,不信,数数你们公司管理人员和普通员工的比例,或者,学校里面老师和学生的比例,虽然这不准,但基本能说明一点问题。

 

5、生产,这个岗位其实各公司都有,不过大多数老板不承认,员工也不愿意承认,呵呵。

 

大型公司,如华为、迈普,Intel等,以生产硬件产品为主的,基本上都有生产部,记住啊,这个生产部很重要,生产,仓储,物流,基本都在这一块。

 

千万别小看生产,目前生产线上的工人,由于要开贴片机什么的,基本上都要大专学历,还要培训的,我不想明确建议,不过,有些目前找工作特别困难的同学,不妨考虑一下这类大型企业的生产岗位。

 

大型制造业,如美的,海尔等,他们很多管理层都是生产线上下来的,生产线上也不都是工人岗位,很多生产工艺师,工装设计师什么的,都需要设计这门工作,如果一个学历较高的人进入这个部门,只要自己肯努力,其实也很容易出头,毕竟周围的竞争对手太低了,呵呵,比起研究院来说,要容易得多。

 

6、其他,这就太多了,老板就属于其他了,呵呵,创业也属于其他,由于这部分不带普遍性,就不多说了。各级行政人员,如财务,秘书,都算其他吧。



东部加州:北卡;东部硅谷:RTP;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值