程序员有哪些种类?

程序员有哪些种类?,第1张

程序员可以分为很多种,像Unix程序员、Windows程序员,或是C++程序员、Delphi程序员,等等。今天我想谈的是Web程序员,一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西。

也许有些朋友会说,我知道Asp、Jsp,会做网站、会做bbs,这应该叫Web程序员了吧。确实,我承认,这些技术是一名Web程序员应该具备的;但是,你如果仅懂得这些,却只能叫做Asp程序员、Jsp程序员,而不是真正意义上的Web程序员。现在的世界是属于Internet的,大部分的应用基于Internet,大家可以想想,像Yahoo、Microsoft、Amazon那样的网站,其访问量之大、应用之复杂,需要什么样的技术才可以支撑,难道仅仅是硬件的功劳么。

我想在Windows平台下来谈谈Web程序员应该掌握的技术

1. 首先,就是上面提到的各种脚本,asp、jsp、php等等,这些东西大同小异,基本可以举一反三。

2. 数据库,

相信做Web的人肯定用过,像Access、Sql Server、Oracle。很多人会用各种数据库,但是仅限于写一些sql,select、update、insert,用ADO来 *** 作,如果这样,就算会用100种数据库又有什么用呢?

你应该考虑用户量、访问速度、内存消耗,这些东西和你的sql密切相关,我经常见到很多分页程序根本不去考虑数据库中有多少条数据,统统select出来,很明显,当你从数据库中查出1万条数据和100条数据,占用的内存是不同的。

另外,数据库连接池和事务机制是非常重要的,应该知道数据库用什么来保证事务,连接池如何实现,这些都是商务应用的关键。譬如,目前很多的应用服务,像weblogic、MTS,都包含事务处理,可以说好的事务处理决定了他们的竞争力。

3. 组件技术

我想是现在的Web应用推动了组件技术的发展。以前,从老式的静态库、动态库(dll),到现在的COM/DCOM,再到正在兴起中的Web Service;从单机调用,到基于内部网的分布式调用,到现在基于Internet的分布式计算。现在的应用都是基于组件的n层结构,最明显的就是COM和JavaBean。

这些东西体现了软件架构的发展,以前是基于单机的应用,然后是C/S结构,到现在的B/S结构。我记得李维曾经说过,程序员一定要注意软件技术的发展趋势,只有这样,才不至于被淹没在技术的洪流中。我想,作为Web程序员,一定要明白COM的原理,如何实现这种调用、如何进行分布式调用。说实话,我觉得COM还是比较复杂的,否则微软为什么要提供ATL和VB呢,要搞明白,应该学学C++,因为VC中提供的ATL库可以很明显的说明COM的内部运行机制。

4. 网络技术

这可以说是Web程序员最应该懂得东西。起码,应该知道Web服务器的机制,要明白Http协议。就拿IIS来说,要懂得web应用程序运行的进程安全和IIS的关系,懂得ISApi的作用。

如果有时间,就看看TCP/IP,看看winsock,这些都是底层的网络的东西。

我所说的这些都是基于微软技术下的东西,其他的像Java方面的东西都可以对照参考,就不多说了,这也是我这几年来的一些心得。总之,学海无涯,每当接触一些新的东西,就会发现自己的不足,同时也就觉得基础知识的重要。说实话,像我们做应用开发,用别人的东西,在现在这种情况下,新的技术层出不穷,稍不注意就会被甩开,这也是没有办法的事情。

程序员分为4种,分别是:

1、asp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序、1员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、ABAP程序员、android程序员、iOS程序员。

2、程序员是从事程序开发、维护的专业人员。一般将程序员分为:

程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。

3、软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。

4、计算机行业,初级的叫程序员,中级的叫软件设计师,高级的叫系统分析师。

所有的程序员都会熬夜。

正常的软件项目中,项目的资源需求会随着项目的进行逐渐升高,然后在后期迅速的回落,对于程序员和测试来说,主要的工作内容在项目的执行阶段,也就是中期到中后期。

我们在计划项目的时候,自然是不会计划到加班这样的事情的,一般都会按照正常的8小时/天的任务来进行排期。但是,项目总是有他的特殊性,例如:客户要求某个时间节点必须交付,那么工期缩短了,对于项目负责人来说只有三个选择:要么降低质量标准,要么减少需求,要么加班。

但是,质量是底线,虽然可以降低,但是总有一根红线不能触碰,需求是客户或者产品经理说了算,并不是说砍掉就能砍掉的。所以,大部分时候,经过各种拉锯战后,还是只有加班。

对于前端和后端程序员来说,研发的中后期是加班比较多的时候。因为在前期时,产品经理自以为用户的需求已经挖掘得比较透彻了,研发基本就是按部就班的照着既定的计划研发,即使出现需求的变化,由于研发才刚刚开始,所以需求变化的代价很少,所以加班时候不多。到了中期和中后期,需求变化的代价越来越大,研发过程中可能发现需求中的一些不合理之处,从而产生了大量的沟通成本和调整成本,这时加班就开始越来越多,这个过程会一直延续到测试阶段。

而对于测试来说,只要研发开始大量加班了,就说明产品的质量可能有风险,那么测试阶段就没有好过的。如果情况良好,在测试阶段的中期,这个加班情况会有所缓解,但是很多时候,这种加班情况会一直持续到上线前。

所以,没有熬过夜的程序员一定不是一个好测试。

当然,加班对于程序员来说其实也是一种历练。曾经我也是比较反对加班的那一类人,能早点溜就早点溜。也有很多人说,加班时候的质量是得不到保证的,加班时候的效率很差等等,我承认,加班做出来的项目质量一定不高,但是个人觉得不是因为加班本身导致的,而是项目紧张到必须赶工的时候,那么一定不可能像不加班时那么的周全,可能单元测试能省就省,设计文档能省就省,自然就质量差了,这并不是加班的人的原因。

我还记得曾经我在做一个项目的时候,涉及到一个计费的模块,非常的复杂。有什么基础套餐,组合套餐,增值服务,还有优惠券、退费、取消套餐、换套餐等等,还需要计算销售提成这些。财务的要求就是,一分钱都不能错,而当时套餐有非常复杂的计费限制,就是一部分套餐在换套餐的时候可以把余额退出来抵扣新套餐的费用,一部分不行。而退出来的这个费用需要按天来计费,那么每个月的天数是不同的,如果这个用户刚好是在1月31日定的套餐,2月27日退是一个价格,3月30日退又是另一个价格,算法十分复杂。(当时的项目经理甚至提出,穆斯林的客户能否按照穆斯林的日历来计费)

为了这个计费模块,我和两个小伙伴连续熬了几个夜晚去画图、分解,最终是把这个模块给做出来了,并且分毫不差。而其中工作效率最高的时候就是我们凌晨2-3点的时候,全公司就我们几个人,在那里肆无忌惮的争吵、反驳、说出自己的思路。当然,我们得到的也是很多的,至少未来我们再次面对计费的类似模块时,我们并其他人更有经验,我们能够避免很多坑,这些都是我们的财富。

所以,对于那些不愿意熬夜的,想着按时下班,朝九晚六的程序员们,说真的,这个行业不适合你。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8144956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存