请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

搜索
热搜: 邮件服务器
查看: 424|回复: 1

【原创】成为优秀码农的十二项自我修养(2)

[复制链接]
发表于 2021-2-1 11:07:47 | 显示全部楼层 |阅读模式
5.阅读各种博客与杂志
众所周知:为了留存和吸引读者,博客总是比书籍要更新得多。您可以在自己的细分市场与领域中找到一个权威性的博客或网站,坚持阅读那里您所感兴趣的各种帖子。例如:您可以通过每周阅读一篇新文章的方式,让自己与当今快速变化的技术保持更新。
在此,我会推荐DZone.com网站,这是一个最初为Java开发人员构建的社区。如今,它已成为了网络中最大的软件专业人员的交流社区之一。您可以在DZone上找到从JavaJavascript,从Web开发到敏捷(Agile)方法,从大数据到云计算等,几乎所有类别的技术实用文章、见解和建议。
此外,您也可以订阅自己相关领域的传统或电子杂志。例如:对于Java而言,我建议您阅读由Oracle发行的双月刊Java Magazinehttps://www.oracle.com/technetwork/java/javamagazine/index.html),它涉及到了Java技术管理的方方面面。
6.使用单元测试
在编程项目中,您可能听说过“先写测试,后写代码”的说法。我们需要将普通的需求转换为非常具体的测试用例,然后编写代码,以实现业务逻辑,并确保它们能够通过所有的测试。因此,我们应当通过编写代码,来测试每个程序的类,以及每个类的方法。
在编程界,大家普遍采用的是单元测试的方法。其好处包括:能够及早地发现问题,促进代码的更改与重构,简化各种集成测试,为系统提供实时的文档等方面。
单元测试直接导致了测试驱动开发(Test Driven DevelopmentTDD)方法的出现。如今,TDD已被许多程序员运用到了多种编程语言中。
那么,我们应该如何学习单元测试呢?我建议您阅读《单元测试的艺术》(The Art of Unit Testinghttps://amzn.to/2NbbiCG)一书。它是有关单元测试与TDD方面极好的书籍。而对于Java而言,由于JUnitJava开发中最受欢迎的测试框架之一,因此您可以从《Junit教程:设置、编写与运行Java单元测试》(JUnit Tutorial: Setting Up, Writing, and Running Java Unit Testshttps://dzone.com/articles/junit-tutorial-setting-up-writing-and-running-java-1)开始。可以说,如果您从未使用过任何单元测试框架的话,那么您势必缺少了软件开发环节中的一项有力工具。
7.参与自由项目
以兼职或全职的方式参与自由项目,以提高编程的技能,是成为一名优秀程序员的快捷方法之一。简而言之,自由项目意味着您可以在线查找项目,通过远程工作的方式获得在线的报酬。更棒的是,您可以选择自己喜欢的项目类型,例如:PC端、Web应用、移动应用、设计、编程、测试、乃至某些硬件项目。这些都可以让您在各个领域积累并拓展自己的编程经验,提升面对挑战的能力。
相比公司里的那些循规蹈矩的项目,自由项目虽然显得更丰富、更精彩。但是,成为一名自由职业者可一点也不轻松。自由职业的市场往往充满了激烈的竞争,您要面对成千上万个其他自由职业者的争抢与挑战。因此,我强烈建议您最好在保留当前工作的前提下,逐渐参与或领取自由项目。
那么我们应该如何当一名自由职业者,开展自由项目呢?我建议您去访问Freelancer.com网站。它是网络上最大的自由职业市场之一,您可以在其中找到几乎任何种类的工作。自2009年以来,我持续参加了该网站上的各类项目,目前已完成了142个项目,平均评分为4.8/5。当然,我从中也积累了丰富的编程经验。
8.做编外项目
如果您不喜欢做自由项目的话,那么可以通过接手一些有趣的小项目,来打发空闲的时间。处理此类项目可帮助您提高各个阶段的编程技能,其中包括:编码、测试、设计、文档编制、以及部署等方面。与您在公司参与到的主要工作相比,这些编外项目向您提供了软件开发的整个过程,而不仅仅是编码这一个阶段。
那么我们应该如何参与编外项目呢?常言道:不积跬步,无以至千里。我的建议是从小开始”。由于一开始您并没有足够的资源与经验,因此最好不要马上开展大型的项目。另外,您需要管理好自己的时间,一般以两到三个月内完成一个项目为宜。
9.参加编程比赛
也许这是激发您自己成为一名优秀程序员的最具挑战性的方式。为了参加比赛,您必须投入大量的时间和资源,并高度重视具体的开发环节,但是这对于提高您整体的编程技能是大有好处的。
请记住:重要的不是获奖,而是在比赛中的成长。我曾经参加了几次移动应用和桌面端游戏的竞赛,虽然并未获得任何奖励,但是我承认自己在努力保证按时提交程序作品的时候,已经学到了不少的东西。
当然,您也可以尝试一些著名的编程竞赛,例如:微软的Imagine Cuphttps://www.imaginecup.com/);由IBM赞助的ACM-ICPChttps://icpc.baylor.edu/),以及TopCoderhttps://www.topcoder.com/)。前两个是面向学生的,而最后一个则是面向所有程序员的。另外,您还可以寻找并参与本国、本地区、乃至本公司举办的各类竞赛。不要担心自己是否拥有足够的经验,大胆注册,一切随缘!
10.进行规范性审查
代码审查工作应当定期在项目团队中开展。您既可以对他人的代码进行规范性审查,也可以让其他程序员来审查您的代码。一系列的审查工作,不但能够规范大家编写程序代码的习惯,而且有助于团队成员之间相互学习、取长补短。
我建议您使用Sonar Qubehttps://www.sonarqube.org/)之类的代码分析工具。此工具可扫描整个代码库,并根据各种代码的质量标准生成详细的报告。一般而言,您需要持续修复代码中的问题,直到该工具不再出现“红色报警”为止。当然,某些代码分析工具还能够与您的IDE(如,EclipseNetBeans)很好地集成在一起,使得代码的检查过程更加顺畅自然。
11.阅读代码
与检查代码不同的是,我们也需要花时间去认真阅读其他程序员写出的代码。通过这一过程,您将学到更多的东西。正所谓:“一千个人心中有一千个哈姆雷特”,面对同样的软件需求,不同的编程专家会编写出截然不同的代码解决方案。只要您能够潜下心来仔细阅读,就能收获到各种设计上的创新和编程上的经验。
对于Java用户而言,我建议您阅读Java Collections框架(https://www.codejava.net/java-core/collections)的源代码。您可以在JDK的安装目录下,通过src.zip文件找到它。当然,您也可以试着去阅读诸如SpringHibernate、以及Struts等流行框架的源代码。
12.开展与编程相关的教学
常言道:“最好的学习方法是进行教学”。您可以通过录制视频、撰写文章、创作书籍、甚至是组织编程课程等形式,以帮助其他人学习编程。通常情况下,单纯的编程目的是为了使程序代码能够“起作用”,而您在准备教学的过程中,往往会学习研究那些与目标课程主题相关的所有内容。“教学相长”就是这个道理。
在此,我强烈建议您选择一种最适合自己的教学方式。例如:在创建自己的网站--CodeJava.nethttps://www.codejava.net/)和Java Youtubehttps://www.youtube.com/codejava)频道之前,我曾经持续为一些编程网站编写了各种各样的Java教程。而且,我还在Udemy上开设过一些Java课程。
至此,我已经和您讨论了成为优秀程序员的十二项自我修养。当然,这些只是我的经验之谈,希望您也能分享自己的观点。

【原标题】12 Practices That Make You a Good Programmer (作者: Nam Ha Minh)
原文链接:https://dzone.com/articles/13-practices-that-make-you-a-good-programmer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2021-2-1 17:13:56 | 显示全部楼层
虽然是对想成为优秀程序员提出的建议,不过对网络工程师和运维工作同样有借鉴意义,不断学习,主动拥抱新技术,才能不断进步!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 思科 CCO 登录 | 思科 CCO 注册   

本版积分规则

Archiver | 思科社区  

GMT+8, 2021-2-27 17:49 , Processed in 0.076182 second(s), 30 queries .

京ICP备11014401号-17

© 2020 思科系统.版权所有 重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表