热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

写给年轻程序员的一封信

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!很多年轻的程序员发emails给我,说希望能够得到一些如何尽快跻身优秀程序员行列的建议和方法。关于这个问题,我已经有提到过很多

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!

很多年轻的程序员发emails给我,说希望能够得到一些如何尽快跻身优秀程序员行列的建议和方法。关于这个问题,我已经有提到过很多次,现在已经没什么可以补充的了。不过 为了满足大家的要求,在这里我再详细地归纳总结一下:

——和其他开发人员协作。编程已经进入了“地球村”的辉煌时代,无论我们身在哪里,无论我们为谁工作,只要拥有可爱的互联网,我们就可以和世界上任何一个角落的程序员一起攻克代码难题、合作开发各种软件。并且,现在有越来越多的开发人员,在网上把他们丰富的经验教训总结出来,提供给大家共享。我的朋友Evan Light利用开放的办公时间,正在致力于开发一个帮助Ruby使用者们匹配合作的网站。我也在这项目上做过。有没有兴趣做开源软件?如果有的话请发邮件给我。让我们一起协作吧!

——阅读经典书籍刊物。像《代码大全》、《程序员修炼之道》、《程序员设计实践》、《设计模式》等等,都挺不错的。

——好好利用网络资源。这一条必须特别强调。因为几乎所有的编程知识我们都可以在网上找到。老实说,有时候我会觉得,所有我需要的编程技能都是在网上学会的。

——研究别人的代码。GitHub万岁!如果你想学习Ruby语言,并且希望能在最快的时间掌握它,那么可以按《Best of Ruby Quiz》所说的,先钻研下他人的代码。

——进入本地程序员群。如果没有这样类似的群,那么创建一个。接下来需要做的是组织会话。不要坐井观天的以为“老子天下第一”,多多与大家交流,知道自己的不足之处,然后谦虚学习。

——写博客。不要担心不知道该写什么。那些非常有名的博客牛人他们写的就是:他们自己的编程经历和程序错误,以及他们是如何克服这些问题的。反思,对于我们学习编程的帮助不可估量,而写博客就是用于反思的手段。而且写在博客上你还可以得到其他人对你的评价和建议。

——为开源项目制作补丁。这一点已经众所周知,我就不再赘述了。

——抛个硬币,花代表Vim,字代表 Emacs,选择了之后就开始认真学习吧。编辑器是你编程生涯中的左膀右臂,所以,一个强大又灵活的编辑器绝对能让你的编程水平更上一层楼。

——熟稔一种编程语言是远远不够的。但是首先你得学好一种,这样你某一天遇到紧急情况,就能迅速应对、快速编程,而不必绞尽脑汁、漫无目的、费时费力地想(就因为你已经忘记得差不多了)。不过,我想说的是,要是你已经掌握了一门,那么是时候学习第二门了,一方面可以验证第一门编程语言,另一方面通过这种方法还可以温故而知新。而且最好选择的是风格大相径庭的。我读过的一篇博文《Seven Languages in Seven Weeks》就给出了关于此点内容超棒的编程范例,有兴趣可以看看。

——做一个编程语言和平台的邮件列表。有时候,我们会找不到正在关注的博客、黑客新闻、Twitter中的激烈争辩以及各种发人深思的讨论。这个时候邮件列表就大显威武了,相对于其他手段,它既方便礼貌又实用多多。

——StackOverflow绝对是你的良师益友。

——不要浪费时间去研究所谓的最好的工具。我曾经用了几周时间,想为我准备开工的项目找个“不鸣而已,一鸣惊人”的最好框架,但是后来却发现这个框架严重限制了我的工作效率。所以,千万别被“最好”这两个字的表象所迷惑,掉进坑里。如果你觉得你作为程序员还不算经验丰富,那么最好先从有很多用户使用的语言和框架开始。最最重要的一点是,当你遇到障碍物而你越不过去的时候,你得知道去哪里,才能寻求帮助、拿到更有利的工具。

——不要错过实习机会。

——不断练习、练习、再练习,因为辛勤的汗水才能浇灌出成功的花朵。在工作中写代码,在家里写代码。好好修炼代码招式。编程其实和别的技术没什么不同:最后的成功,都归结于不断的练习和辛勤的努力。

译文链接:http://news.html5tricks.com/latter-to-young-programmer.html
英文原文:Letter to a Young Developer
翻译作者:IT新闻 – 蒋丽丽


推荐阅读
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • 自定义包裹组件的HTML标签:实现商品数量动态增减功能 [Keep Coding]
    在本文中,我们将探讨如何通过自定义包裹组件的HTML标签来实现商品数量的动态增减功能。具体来说,我们将详细介绍如何利用React或Vue等前端框架,结合JavaScript和CSS,实现这一功能。文章将涵盖从基础的HTML结构搭建到事件处理和状态管理的全过程,帮助开发者快速掌握实现方法。此外,我们还将提供一些最佳实践和常见问题的解决方案,以确保开发过程顺利进行。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 六个接私活的平台,技术在手,财富自由!值得推荐给每一位专业人士!
    本文将介绍六个适合专业人士接私活的平台,帮助技术人才实现财富自由。这些平台不仅提供了丰富的项目机会,还为用户搭建了高效的合作桥梁,是每位技术人士不容错过的资源。 ... [详细]
  • 在椭圆形状设计中,色彩搭配方案对视觉效果和用户体验至关重要。本文分析了不同色彩组合在椭圆形状设计中的应用效果,特别探讨了白色背景与绿色文字的搭配,指出长期观看这种配色可能会导致视觉疲劳。通过引入多种色彩搭配方案,本文旨在为设计师提供更加科学和舒适的色彩选择建议。 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 深入解析零拷贝技术(Zerocopy)及其应用优势
    零拷贝技术(Zero-copy)是Netty框架中的一个关键特性,其核心在于减少数据在操作系统内核与用户空间之间的传输次数。通过避免不必要的内存复制操作,零拷贝显著提高了数据传输的效率和性能。本文将深入探讨零拷贝的工作原理及其在实际应用中的优势,包括降低CPU负载、减少内存带宽消耗以及提高系统吞吐量等方面。 ... [详细]
author-avatar
humphrey7247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有