如何成为一个优秀的JAVA程序员 如何成为高级JAVA程序员 细节决定一个程序员的成败

         给一个刚出社会的程序员新生一个建议,想成为一个优秀的程序员,高级程序员,不能眼高手低,不能认为开发新项目,技术研发才学到东西,不能看不起维护系统,不要以为自己懂的技术越多自认为自己很牛叉。假如你忽略了一个问题那么你永远成为不了优秀的程序员、高级程序员,那就是系统优化。

    你的系统无论采用什么先进的技术对于客户来说不重要,因为对客户而言,如何客户端的性能拙劣就会严重影响用户体验。界面停顿、抖动、响应迟钝等问题会遭到用户不停的抱怨。那么就意味着你已经失去了客户的心。那你做的东西只能说是垃圾,一个典型的例子就是Eclipse IDE工具在Full GC时会出现程序假死现象,相信一定被不少开发人员所诟病。对于服务器程序来说,性能问题则更为重要,相信不少后台服务器软件都有各自的性能目标。以Web服务器为例,服务器的响应时间、吞吐量就是两个重要的性能参数。当服务器承受巨大的访问压力时,可能出现响应时间变长、吞吐量下降,甚至是抛出内存溢出异常而崩溃。这些问题,都是性能调优需要解决的。

    懂的技术多固然重要,但是将各种技术能取长补短为了系统优化而合理的使用结合起来,当你的系统不出现以上问题的时候,那也就是你赢得了客户的心。所以不要认为做系统维护没前途。

        一般来说,程序的性能通过以下几个方面来表现:

    执行速度:程序的反映是否迅速,响应时间是否足够短。

    内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏。

    启动时间:程序从运行到可以正常处理业务需要花费多长时间。

    负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓。

    为了能够科学地进行性能分析,对性能指标进行定量评测是非常重要的。目前,一些可以用于定量评测的性能指标有:

    执行时间:一段代码从开始运行到运行结束,所使用的时间。

    CPU时间:函数或者线程占用CPU的时间。

    内存分配:程序在运行时占用的内存空间。

    磁盘吞吐量:描述I/O的使用情况。

    网络吞吐量:描述网络的使用情况。

    响应时间:系统对某用户行为或者事件做出响应的时间。响应时间越短,性能越好。
    当你可以解决以上的问题时,那么你就能突破技术瓶颈,深入编程语言内核开发,那么恭喜你已经成为了优秀的软件工程师。

你可能感兴趣的:(如何成为高级JAVA程序员,细节决定一个程序员的成败)