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方面的东西都可以对照参考,就不多说了,这也是我这几年来的一些心得。总之,学海无涯,每当接触一些新的东西,就会发现自己的不足,同时也就觉得基础知识的重要。说实话,像我们做应用开发,用别人的东西,在现在这种情况下,新的技术层出不穷,稍不注意就会被甩开,这也是没有办法的事情。
2. 程序员有几个等级,每个等级分别都要达到什么水平,每个等级的最高工资多少
初级,中级,高级,大师,宗师。。。
不对不对,难道是最近魔法门4玩多了。。。
具体分几级有很多种分法,要学什么东西要看具体公司用什么编程,拿多少工资也不光看等级,还要看地域。我是干这个的,一个月才2K+,我同学5k+,不过我在济南,他在北京,差不很多。。。
3. 高级程序员很难考吗,证书含金量怎么样
也不是很难考,社会认可度相比思科、微软的认证要差很多。
如果从事相关职业,且不是国营的,我建议考个认证吧。
4. 快手程序员级别
中级。
程序员的评定有国家等级标准的,通过计算机技术与软件专业技术资格考试,即可获得相应的等级资格证书。
5. 高级程序员相当于什么职称
高级程序员(软件设计师)属于中级职称.
工程师级别
职称跟职业等级不同的吧.
你有听过中级教师属于科级还是处级吗?
6. 初级程序员、中级程序员、高级程序员最大的区别是什么
程序员之间也是存在很大的区别,他们之间最大的区别主要表现这这个方面,跟大家分享一下。
能力。一些程序员刚刚进入一个单位,学习的东西还不多,他们的能力差距要比老员工差很多。
经验。有的程序员,自身的能力是提升上去了,但是,由于呆的时间相对比较短,经验还不是很足,面对一些疑难杂症,还是不能解决。
薪资待遇。因为能力不同,所以获得的回报也是不一样的,一般高级程序员的薪资都是非常高的,毕竟他们能够解决很多困难以及复杂的问题。
当然,除了这几个方面之外,还有一些也是有差距的,比如说头发,思维以及工龄等等。
7. 快手为什么一直招聘java程序员
咨询记录 · 回答于2021-10-21
8. 听朋友说过高级程序员这个词,我觉得这是个多么高职位的称呼啊~我也可以成为高级程序员吗去哪培训呢
。。。哪有这么容易的。。。好像是为了虚荣才做程序的。。。
在中国都看不起没权的。程序员技术再高不懂管理也就那样。。
你要做高级,问问你自己,你是名校出来的吗,你智商比别人高吗。
或者
你有毅力一直钻研吗。不是培训一下就成了的。没有5年十年是做不到真正的高级的!!!
9. 高级程序员的主要工作是什么
做架构师工作之外的设计工作和实现工作,以及核心代码的编写。
就像微软的NT开发,总架构师是卡特勒。下面每个子系统(文件系统等)这些具体的算法和实现需要高级程序员去设计和实现。之后,将更"低级"的活交给普通程序员。。。。
一下是我截取的word文档里的说明
------------------------------------------------------------------------------------------
职位概要:
编写系统中的关键模块和关键算法的程序,并进行综合测试、修改工作。
工作内容:
按照工作进度和编程工作规范编写系统中的关键模块、关键算法的程序;
对所编写的程序进行严格的综合测试,测试软件模块和软集成产品,进行软件故障的诊断、定位、分析和调试,以实施产品测试方案;
配合测试员修改相应的程序;
编写软产品文档以实施软件文档计划,管理相关软件文档;
向业务部门提供软件的后期技术支持。
------------------------------------------------------------------------------------------
10. 低级程序员和高级程序员的区别
低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug. 正如一惯的那样,
低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质. 所以, 低级程序员总结出的一切东西,
你都可以大胆的忽略.
所以, 我们来听听高级程序认为自己与低级程序员的区别是什么. 高级程序员之所以高级, 在于他们认识到代码 bug 是不可避免的,
有千万种理由可以导致 bug, 但他们可以在设计和逻辑上保证(追求)滴水不漏, 并用逻辑的百分之百准确性还减少代码 bug. 没错,
严谨的逻辑能力是高级程序员区别于低级程序员的最主要原因.
可以举一个简单常见例子: 网络购票终端的开发. 当然, 比低级程序员还低级的程序员做不出来. 我们先看看低级程序员是怎么做:
order = Db::new_order();
ret = Network::place_order(order);
if(ret == TRUE){
order.finish();
}else{
order.cancel();
}
你看到的没错, 这段代码逻辑清晰, 一般 90% 的情况都能正常工作, 有的甚至能达到 99%, 在某些特定的时间段, 这样的系统 100% 能正常工作(几乎是完美的系统).
你可能发现了问题: 网络是不可靠的, 网络请求可能发出去了, 也可能没发出去; 对方可能收到了, 也可能没收到; 响应可能由对方发出去了, 也可能没发出去; 你可能收到了响应, 也可能没收到.
但是, 低级的程序员会这样解释: 我用的是 TCP 协议, "TCP 是一种可靠的传输协议", 哈! 可笑的照本宣科. 这种低级程序员,
不仅在于他们写出了逻辑上不完备的系统, 而且还恶劣地引经据典来做错误的辩护. 但他们引用的经典是不合时宜的(不能支撑他们的结论).
正确的做法应该是假设上面的每一行代码都可能中断执行, 然后进行相应的对策. 正如狭义上的网络协议其实是广义上的交互协议, 我们可能把 TCP/IP 协议上的许多思想和机制应用到系统间的交互上来.
简单来讲, 可以加上就是重试(超时重传)和对账(请求确认). 所以, 逻辑上更准确的代码应该是这样:
Process_0{
order = Db::new_order();
}
Process_1{
order = Db::find_new_order();
ret = Network::query_order_result(order);
if(ret == NOT_FOUND){
ret = Network::place_order(order);
if(ret == TRUE){
order.finish();
}else{
order.cancel();
}
}
}
Process_0 和 Process_1 是相互独立的处理逻辑.
Process_0 即处理用户交互, 接受订单.
Process_1 请求服务提供商进行对账. 进行采购下单(补单), 更新订单状态.
上面的代码逻辑实现了重试(超时重传), 对账(请求确认). 但上面的代码在逻辑上还不是 100% 准确的, 例如, 如果对方系统误报呢? 但其它的异常情况可以根据实际情况来忽略. 如果你发现这段代码还有重要的逻辑上缺陷, 欢迎告诉我.
记住, 低级程序员和高级程序员的区别在于逻辑和抽象.