热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

在日常的工作中历练成优秀的程序员

在软件开发过程中,你经历的每件事情都会潜移默化地影响着你。随着时间的流逝,年纪的增长,对于程序开发技术(相同/或者相关能力)以及自身的理解也会不断沉淀,这些最终也会帮助你达成目标——成为一名优秀的程序员。这里谈到的经历不仅限于程序员生涯里的里程碑,比如换工作、成为领导/经理或者自己创业。

在软件开发过程中,你经历的每件事情都会潜移默化地影响着你。随着时间的流逝,年纪的增长,对于程序开发技术(相同/或者相关能力)以及自身的理解也会不断沉淀,这些最终也会帮助你达成目标——成为一名优秀的程序员。这里谈到的经历不仅限于程序员生涯里的里程碑,比如换工作、成为领导/经理或者自己创业。你所经历的每一份工作、每个项目(不论大小)、与团队成员的每次交流、甚至你实现的每一个程序模块,都会让你变得比以前更优秀、更有活力、更有见地。

在日常的工作当中不放过任何一点可以学习的新知识,会让你成为更加出色的程序员。我说的是重要的经验——你不必去关心琐碎的事情(比如每一次敲击键盘是否完美),重要的是把握好每一天的安排。如果你出去旅游归来发现两手空空毫无收获,你肯定认为这是在浪费时间。对于程序员生涯也是如此。如果你在完成一个项目或者实现了一个程序功能之后自己没有收获(比如,对软件开发的理解没有提高并且也没有学到什么新的技术),这同样也是一种浪费。

你可能会说,有些必须完成的工作对你而言是无聊的重复劳动,从中学不到任何东西。事实可能的确如此,但是这取决于你如何看待它。归根结底你需要自己创造成长的条件,在做事的时候需要保持创新。

从每一次的经历中汲取营养

首先,除了学习新的编程语言,掌握你钟爱的开发平台最新特性,你还需要提高自己的沟通技巧。其次,学习如何与别人一起工作,提高自己团队协作能力也很重要。接着,你还需要掌握领导能力、管理能力、如何自我激励、财务知识、行业专业知识、营销知识和组织知识。除此之外对所从事行业相关的内容最好也要有广泛的认识和理解。在学习的过程中不断将自己推向极限,最终你会不断提升成为优秀的程序员。

我想说的是,无论你做什么,都可以从上面列举的这些方面来对照自己,看哪些方面可以有所提高。有的时候你的机遇很好,接触的是最新的技术,采用的是对你而言崭新的开发流程,这时你不由自主地就开始学习和吸收新知识。而有的时候工作确实很乏味,如果你不会自己创造条件自我提升(从上面列举的方面找到可以提高的地方),你就只能做着机械劳动白白浪费了一次提高自己的好机会,以及自己宝贵的时间。

下面我通过一个例子来说明如何从平凡的工作中提高自己。比如说你是一个SQL大牛,有一项工作需要完成很多SQL,只有你是最佳人选。你很精于此道,表面上这项工作很枯燥而且你也不能从中学到什么。但是如果进一步来看,也许这项任务需要与别人配合完成,而你可能并不十分擅长与别人搭档或者沟通,这就是你提高自己的绝佳机会,你要做的就是发现这个机会。或者也许你也十分擅长与别人搭档工作,但是假如这次你的搭档可能连新手都算不上,这就是你提高培训技巧的绝佳机会,捎带地也让这位新人快速成长。

也许这些都没有发生,你在做着一件你闭着眼睛都可以完成的工作,为什么不尝试去更深入地了解和提高你使用的技术呢?也许你也可以就此机会提高一下你的打字技巧,这肯定没有什么坏处。如果你实在不想做这件无聊的工作,可以尝试和老板沟通一下把事情推掉,虽然这不在我们上面的讨论范围之内,你也可以尝试一下。也许沟通不能达到目的,但是你可以从尝试沟通当中锻炼一下自己的机智和勇气(如何在尴尬的情形下保持镇定),毕竟你不会为了推掉任务而去惹恼你的经理/领导:)。所以,如果你能从不同的角度看待一个任务,突然之间你会发现在成为优秀程序员的路上又迈进了一步。

如果你在原地踏步该怎么办?

有的时候你一直无法摆脱一些事情(似乎这些事情本来就是如此)。即使从各个角度看也无法从中找到一点可以提高的地方,这个时候你该怎们办?这个问题问的很好,但你应该问的不是这个问题。如果你真的觉得不能从工作中学习和成长,为什么你还在做这样的工作呢(这个才是你应该问的)?如果是因为经济的原因(比如你现在的收入很高),那么一定要确保不会为了短期利益而损害了未来的前途。如果是因为你舍不得团队里一起工作的同事,那么只要分析一下利弊就会知道,即使你不在这里工作了,你们依然还是好朋友。你只是离开了公司,但你们的友谊没有结束。

如果不是上述的原因,那你为什么还在做这样的工作呢?你应该意识到,你会因此丧失宝贵的机会。请记住,对你所做的每一件事情给出评价,看它是否能给你带来改变或者加深你对程序开发技术的理解。如果答案是否定的,你可以马上离开;如果答案是肯定的,那么(做这件事的时候)你不但能够从中获得满足感,而且每一天(而不仅仅是每一年)都会在技术和人格上朝着完美的境界迈进。

本文地址:http://www.nowamagic.net/librarys/veda/detail/304,欢迎访问原出处。


推荐阅读
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文介绍了一种使用SQL Server存储过程来实现基于单一条件的高效分页查询的方法。通过示例代码,详细说明了如何构建和执行这种分页查询。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 探讨了SQL Server 2000自带工具绘制的一对多关系表的效果及其导出功能,并推荐了几款专业的ER图绘制软件。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
  • 本文详细介绍了在 Ubuntu 16.04 系统上安装和配置 PostgreSQL 数据库的方法,包括如何设置监听地址、启用密码加密、更改默认用户密码以及调整客户端访问控制。 ... [详细]
  • 本文作为《WM平台上使用Sybase Anywhere 11》系列的第二篇,将继续探讨在Windows Mobile (WM) 系统中如何高效地操作Sybase Anywhere 11数据库。继上一篇关于安装与基本测试的文章之后,本篇将深入讲解数据库的具体操作方法。 ... [详细]
  • 本文探讨了在SQL Server中处理几何类型列时遇到的INTERSECT操作限制,并提供了解决方案,包括通过转换数据类型和使用额外表结构的方法。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
author-avatar
手机用户2502926053_634
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有