如何成为一个高级程序员(怎样才能成为一个合格的程序员)

http://www.itjxue.com  2023-02-17 15:27  来源:未知  点击次数: 

成为一名“高级”程序员的条件是什么?麻烦告诉我

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

北大青鸟设计培训:初级程序员成为高级程序员都有哪些方法?

我们在前文中给大家指出了新手程序员在向技术高手蜕变的时候都会产生哪些思维上的误区。

而今天我们就给大家带来了这些误区的解决方法。

盐城电脑培训希望大家能够通过对本文的阅读,真正理解和成为高级程序员。

1、熟悉更多业务,不管是不是你负责的;熟悉更多代码,不管是不是你写的这样做有很多好处,举几个简单的例子:需求分析的时候更加准确,能够在需求阶段就识别风险、影响、难点问题处理的时候更加快速,因为相关的业务和代码都熟悉,能够快速的判断问题可能的原因并进行排查处理方案设计的时候考虑更加周全,由于有对全局业务的理解,能够设计出更好的方案2、熟悉端到端比如说你负责web后台开发,但实际上用户发起一个http请求,要经过很多中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会经过很多处理才到你写的那部分代码(路由、权限等)这整个流程中的很多系统或者步骤,绝大部分人是不可能去参与写代码的,但掌握了这些知识对你的综合水平有很大作用,例如方案设计、线上故障处理这些更加有含金量的技术工作都需要综合技术水平。

“系统性”、“全局性”、“综合性”这些字眼看起来比较虚,但其实都是技术大牛的必备的素质,要达到这样的境界,必须去熟悉更多系统、业务、代码。

3、自学一般在比较成熟的团队,由于框架或者组件已经进行了大量的封装,写业务代码所用到的技术确实也比较少,但我们要明白“唯一不变的只有变化”,框架有可能要改进,组件可能要替换,现有技术可能已经无法满足业务需求,或者你换了一家公司,新公司既没有组件也没有框架,要你从头开始来做。

这些都是机会,也是挑战,而机会和挑战只会分配给有准备的人,所以这种情况下我们更加需要自学更多东西,因为真正等到要用的时候再来学已经没有时间了。

怎样做一名高效率程序员?

总结了几条提高效率的要点

第一,要学会时间管理

一天就24小时,总要吃饭睡觉,用于工作的时间总是有限的,如何提高效率就变得十分重要了。

时间管理的关键是要事第一原则。在时间管理矩阵中,按照重要性和紧急性可以把事情分为四类:重要紧急、重要不紧急、不紧急重要、不紧急不重要。大量的时间应该花在那些重要不紧急的事情上,因为只有这样紧急的事情才会不断减少。

第二,要学会授权

学会工作授权不仅仅是leader要做的,普通的一线程序员也要有这个意识,否则会被大量紧急不重要或者不紧急也不重要的事情缠身,效率也不可能高。

很多新当上leader的程序员不敢放手,很多事情压倒自己身上,造成了过重的负担,要知道leader需要在自己的职责范围内提升整体效率,而非忙于处理各种杂事;

对于一线程序员,也会遇到很多的不重要的杂事,比如一会儿产品问你个事情,一会儿项目问你个事情,或者让你参加一些不必要的会议,一定要明确职责范围,该拒绝的拒绝,让他们去找职责范围内的人去处理。

千万不要当老好人,烂好人。

第三,动手前要明确需求和项目细节

程序员作为实现需求的一方,需要在需求方(不管是产品还是运营还是老板)传达需求的时候充分理解需求,遇到需求不明确的一定要让对方先明确了,有了明确的需求文档了再开发。

相信大家都遇到过不靠谱的产品或者运营或者项目经理,如果不在实际开发之前都明确了需求,理顺了,后面再返工的话,这样浪费了很多时间,效率必定低下。

你可以说是因为需求方不靠谱导致的,但是如果程序员本身有这个意识,会避免很多的风险。

另外,在开发过程中遇到了不明确的地方,感觉有风险的地方,要及时跟相关人反馈沟通,不要拖延。

第四,不重复造轮子

不重复造轮子 这个道理程序员应该都懂,为了快速完成需求已有的功能可以拿来封装和复用,不必重新进行开发。

其实真正能够造轮子的人还是少得可怜,能够把成熟的轮子使用的非常熟练并且在这个基础上能够做到精准的定制就非常不错了,毕竟日常工作中还是应用层面居多。

(责任编辑:IT教学网)

更多

推荐照片处理文章