如何成为一名高级程序员?

来自:潮流生活    更新日期:早些时候
成为一名“高级”程序员的条件是什么?麻烦告诉我~

聪明的程序员可能比他们的同行拥有更出众的编程技巧,但那不足以说明他们就是“老手”。同样,仅仅因为拥有10年编程经验也并不意味着他们就是高手。在工作岗位上,拥有多年编程经验也不能说明问题。即便没被炒鱿鱼,那也不能提升你的价值。
下面列举的事情是大多数高级程序员都会做的。
1.至少掌握一门编程语言
我相信有些优秀的程序员只懂(并精通)一门编程语言,但在某种程度上而言,这其实会限制一个人的思维。就像当你手拿一把锤子时,任何东西看起来都像钉子。我认为,知道并成功使用至少一门编程语言,这是程序员从新手走向老手的重要一步。我要说的是,像JavaScript和SQL这样的辅助编程语言,只有当你确实已经开发了完整的应用程序,并在其中使用这些编程语言时,它们才有价值。
2.工作之余也经常编程
我抱怨过把开源作为招贤的一项要求,但那仅仅因为许多充满激情的程序员把时间花在别的地方。除了对开源有所贡献,你还可以做兼职顾问,兼职创业,开发自己的产品或者创办自己的微型软件公司。当然,你也可以尝试从外部接些兼职项目,可参考伯乐在线的这篇《成功接项目需要注意的几个要点》。
注:mISV即MicroISV,是一个只有一名员工组成的软件公司,是一种微型公司。
3.经历完整的软件开发过程,从概念设计到产品实现,再到产品维护
有的程序员希望不用自己动手就可以得到详细的设计说明,然后把缺陷代码交给测试/维护小组,这是平庸程序员的一个缩影。任何称职的程序员都会跟客户密切合作,去制定需求分析,然后编码实现,当然也要维护。如果你在编码实现阶段偷懒了,那你在维护阶段不得不付出代价。
4.不断创新
创新就是做一些你身边的人没有做过的事情,用来改善你的过程或产品。你不一定非得是世界上第一个做这件事的人,只要发现一个问题,找到解决方法然后实现它就行。
5.编写的软件能解决实际问题
有一副虚构的场景:一名黑客,仅仅是出于对技术以及自己所做事情的爱,一天到晚都在编写代码。但这几乎无助于成就一名优秀的开发者。事实上,我曾见过有些开发人员和客户争论,来采用更好但不太有助客户的技术。这会适得其反。你可以利用自己的时间来完善。但涉及工作时,你最好还是编写能实际改进并解决问题的代码,而不是使用那些不同寻常的算法或接口。
这些问题对于任何想成为高级开发人员的朋友来说,都合情合理。因为这些问题和拥有多少年编程经验并没有关联。如果你能做到上面4-5条,那你就是高级程序员。

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

程序员可以分为很多种,像Unix程序员、Windows程序员,或是C++程序员、Delphi程序员,等等。今天我想谈的是Web程序员,一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西。 \x0d\x0a\x0d\x0a也许有些朋友会说,我知道Asp、Jsp,会做网站、会做bbs,这应该叫Web程序员了吧。确实,我承认,这些技术是一名Web程序员应该具备的;但是,你如果仅懂得这些,却只能叫做Asp程序员、Jsp程序员,而不是真正意义上的Web程序员。现在的世界是属于Internet的,大部分的应用基于Internet,大家可以想想,像Yahoo、Microsoft、Amazon那样的网站,其访问量之大、应用之复杂,需要什么样的技术才可以支撑,难道仅仅是硬件的功劳么。 \x0d\x0a\x0d\x0a我想在Windows平台下来谈谈Web程序员应该掌握的技术 \x0d\x0a\x0d\x0a1. 首先,就是上面提到的各种脚本,asp、jsp、php等等,这些东西大同小异,基本可以举一反三。 \x0d\x0a\x0d\x0a2. 数据库, \x0d\x0a\x0d\x0a相信做Web的人肯定用过,像Access、Sql Server、Oracle。很多人会用各种数据库,但是仅限于写一些sql,select、update、insert,用ADO来操作,如果这样,就算会用100种数据库又有什么用呢? \x0d\x0a\x0d\x0a你应该考虑用户量、访问速度、内存消耗,这些东西和你的sql密切相关,我经常见到很多分页程序根本不去考虑数据库中有多少条数据,统统select出来,很明显,当你从数据库中查出1万条数据和100条数据,占用的内存是不同的。 \x0d\x0a\x0d\x0a另外,数据库连接池和事务机制是非常重要的,应该知道数据库用什么来保证事务,连接池如何实现,这些都是商务应用的关键。譬如,目前很多的应用服务,像weblogic、MTS,都包含事务处理,可以说好的事务处理决定了他们的竞争力。 \x0d\x0a\x0d\x0a3. 组件技术 \x0d\x0a\x0d\x0a我想是现在的Web应用推动了组件技术的发展。以前,从老式的静态库、动态库(dll),到现在的COM/DCOM,再到正在兴起中的Web Service;从单机调用,到基于内部网的分布式调用,到现在基于Internet的分布式计算。现在的应用都是基于组件的n层结构,最明显的就是COM和JavaBean。 \x0d\x0a\x0d\x0a这些东西体现了软件架构的发展,以前是基于单机的应用,然后是C/S结构,到现在的B/S结构。我记得李维曾经说过,程序员一定要注意软件技术的发展趋势,只有这样,才不至于被淹没在技术的洪流中。我想,作为Web程序员,一定要明白COM的原理,如何实现这种调用、如何进行分布式调用。说实话,我觉得COM还是比较复杂的,否则微软为什么要提供ATL和VB呢,要搞明白,应该学学C++,因为VC中提供的ATL库可以很明显的说明COM的内部运行机制。 \x0d\x0a\x0d\x0a4. 网络技术 \x0d\x0a\x0d\x0a这可以说是Web程序员最应该懂得东西。起码,应该知道Web服务器的机制,要明白Http协议。就拿IIS来说,要懂得web应用程序运行的进程安全和IIS的关系,懂得ISApi的作用。 \x0d\x0a\x0d\x0a如果有时间,就看看TCP/IP,看看winsock,这些都是底层的网络的东西。 \x0d\x0a\x0d\x0a我所说的这些都是基于微软技术下的东西,其他的像Java方面的东西都可以对照参考,就不多说了,这也是我这几年来的一些心得。总之,学海无涯,每当接触一些新的东西,就会发现自己的不足,同时也就觉得基础知识的重要。说实话,像我们做应用开发,用别人的东西,在现在这种情况下,新的技术层出不穷,稍不注意就会被甩开,这也是没有办法的事情。


如何成为一名高级程序员?视频

相关评论:
  • 15734671624从初级进阶为高级程序员,需要经历什么
    甘超蒋综上所述,成为高级程序员的路径需要经过扎实的技术积累、业务理解、流程优化、技术分享等多个方面的提升。每一个阶段都需要持续学习与实践,保持对新技术的关注和热情,才能最终实现从初级到高级的跨越。

  • 15734671624如何报考高级程序员 报考高级程序员需要有哪些条件
    甘超蒋1、年龄、学历不限;遵守中华人民共和国宪法和各项法律;恪守职业道德,具有一定计算机技术应用能力的人员。2、取得本职业程序员职业资格证书后,连续从事本职业工作2年以上,经本职业高级程序员正规培训达规定标准学时数,并取得毕(结)业证书。

  • 15734671624怎样才能叫高级程序员
    甘超蒋1、 必须有一定的业务分析与流程意识,能够做简单的业务设计方案与功能分解。2、 有一定的性能优化经验与能力,针对大数据(至少100W以上)做过设计处理与功能开发。3、 有小团队(5人)的管理经验,在人有协助的情况下,能够基本驾驭10个人月工作量的项目。4、 必须会一种语言的设计与技能开发...

  • 15734671624高级程序员证书怎么考
    甘超蒋要考取高级程序员证书,首先需要满足一定的前提条件。这通常包括拥有相关的学历背景,如计算机科学或相关领域的学士学位,以及在编程领域积累了一定的工作经验。这些要求确保了候选人具备基本的编程知识和实践经验,从而能够应对更高级的考试内容。接下来,候选人需要参加一系列由权威机构或专业组织举办的考试。这...

  • 15734671624高级程序员证书怎么考
    甘超蒋(1)经本职业程序员正规培训达规定标准学时数,并取得毕(结)业证书。(2)连续从事本职业工作2年以上。(3)取得经劳动保障行政部门宙核认定的、以中级技能为培养目标的中等以上职业学校本职业(专业)毕业证书。高级程序员(软件工程师)是中级职称。软考程序员考试属于计算机软件水平考试(简称软考)中的一个...

  • 15734671624高级程序员证书怎么考
    甘超蒋高级程序员,也就是软件工程师,是中级职称。软考程序员考试是计算机软件水平考试的一部分,对学历和资历要求宽松,不限年龄、专业和经验。一年可以参加两次考试,但一次只能报考一个级别的资格,如已报名程序员考试,便无法再报名其他级别或科目。软考程序员考试采用笔试形式,全国统一考试大纲和标准,证书也...

  • 15734671624高级程序员证书怎么考
    甘超蒋一、明确证书类型 考取高级程序员证书,首先需要明确你所要考取的是哪种类型的证书。例如,Java高级程序员证书、Python高级开发者证书等。不同类型的程序员证书,其考试内容和难度会有所差异。二、了解考试要求 了解特定的高级程序员证书考试要求是非常重要的。这包括考试的科目、内容、难度以及所需的准备...

  • 15734671624学生从初级进阶为高级程序员需要经历什么
    甘超蒋第一,业务全局思考能力成为高级程序员,就需要具有项目全局思考能力。首先,要明白业务和公司的目标,参与到需求的早期阶段中;而后要多思考,是否可以通过技术手段提升业务价值。第二,学习优化工作流程初级程序要要熟悉从需求-开发-联调-测试-上线的每个工作环节,高级程序员则要多思考每个环节有没有可以...

  • 15734671624如果想成为一个程序员应该学习什么知识
    甘超蒋所以成为一个程序员就要学编程语言。学编程只是第一步。作一个真正合格的程序员,应该具有的素质:1:团队精神和协作能力 2:文档习惯 3:规范化的代码编写习惯 4:需求理解能力 5:模块化思维能力 6:测试习惯 7:学习和总结的能力 作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,...

  • 15734671624成为一名“高级”程序员的条件是什么?麻烦告诉我
    甘超蒋1.至少掌握一门编程语言 我相信有些优秀的程序员只懂(并精通)一门编程语言,但在某种程度上而言,这其实会限制一个人的思维。就像当你手拿一把锤子时,任何东西看起来都像钉子。我认为,知道并成功使用至少一门编程语言,这是程序员从新手走向老手的重要一步。我要说的是,像JavaScript和SQL这样的...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网