本文来自:安卓航班网

首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。

  “当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。” – WhyTheLuckyStiff

  对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员。我喜欢把事情做到最好,而不是对原来的东西修修补补。

  仅仅是因为爱好,开始做一些创新,这是一个很好的开始!如果你说“我要先学习一下再开始做”,那么你永远不会真正开始。每个人都需要从某个地方开始,所以现在打开你的编辑器开始写代码吧。

  下面是一些很重要的建议,虽然有人并不认同,但我保证你看完我的分析以后会站在我这一边。一开始,先不要管算法和数据结构。大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后找一些相关的论文去理解算法并动手编程实践。如果没有现成的函数库(其他程序员提供的可重用代码),你用自己喜欢的编程语言来实现它。

  0. 选择一门好的编程语言,一门你自认为可以用它快速地做出一些有用东西的语言。

  不要选择C语言作为你第一门编程语言。也许选择C语言会给你一种过时的满足感。虽然它比早期的汇编语言提供了更好语法描述,但是今天C(或者C++)不是能够快速编写软件的语言。毫不偏袒的说,我建议你学习一种动态语言。选择一种你觉得语法(文档)让你使用起来更舒服的编程。为此,你可能需要花费一些时间来在几种不同的语言之间进行比较。这么做目的不是为了让你感觉更好或者让编程更容易。更快地完成自己的作品并且能够看到成果,才是激励你编程的源动力。不要选择一门需要某种重量级的IDE(IDE是一种能够帮助你编写并运行代码的工具)才能轻松编程的语言。你所需要的仅仅是一个文本编辑器。(注:原文并没有标号,是我们加上的,请大家别忘记了哦,我们是从零开始数数的。

  1. 选择一个好的编辑器。

  编辑器对程序员而言,就是像是弓对弓箭手一样重要。这里有一些推荐的编辑器:

SublimeText 2 – 如果你刚开始编程,推荐使用SublimeText 2
Emacs – 学习曲线陡峭,快捷键复杂。如果你想定制自己的使用习惯,需要学习Emacs Lisp.
Vim – 不仅操作简洁而且它默认包含在linux的发行版中,所以深受大家欢迎。我开始使用了2年Emacs。由于Emacs的快捷键操作过于复杂,我的双手开始经常疼痛,这迫使我转向了Vim阵营。了解Vim的快捷键是非常有必要的。当你在远程的服务器上编辑代码时,你唯一不需要安装的编辑器就是Vim。
  注意!Emacs和Vim可能已经成为成为古董了。但是,它们都具备一些现代编辑器多不具备的功能。

  2. 选择一个你可以从中学到东西的操作系统

  Windows不会教会你任何东西。使用Windows你唯一学会的就是打开一个exe(可执行)文件来安装软件和使用它。可能刚开始的时候你会觉得很酷,但是长远来看,如果你立志成为一个web开发人员,可能还是要具备基本的Linux知识,尤其是当你要发布程序的时候。Linux也允许你根据自己的要求来定制程序。Macs也很酷,但是我认为你现在经济上还负担不起。

  3. 不要通过复制粘贴来做备份

  一个新手程序员通常会把文件复制粘贴到一个临时目录下面来进行备份。这也许也是他们唯一知道的方法。不要那么做!你需要使用版本控制软件。我强烈推荐使用Git,它是个目前很流行的版本控制工具,而且使用起来非常简单。对一个Git新手,有一个良好的社区和很多参考资源来学习。(除了Git之外,还有mercurial, darcs, fossil等等。但是我还是建议从Git开始,我有很多的理由来支持Git,这里就不多费口舌了。)

  4. 知道去哪里寻求帮助

  参加一个和你相关的(你使用编程工具相关的)程序员社区。比如StackOverflow就是程序员的Facebook。那里没有消息状态和回复,取而代之的是问题和答案。除此之外还要学会使用IRC。IRC是一种老式的聊天室,现在还在被大多数开发人员用来分享技术信息和帮助解决问题。

  5. 培养你的礼仪

  知道什么时候问问题。你遇到的大多数问题都是别人碰到过并且在Internet上能够找到解答的。在IRC或者任何论坛里发问之前,先搜索一下google(或者blekko)来看看是不是有现成的答案。在IRC上问问题需要有耐心。永远记住,人们只是处于好心来免费帮助你。有时你发问以后需要几个小时才能有回复。所以,耐心等待。除此之外,记得问问题的时候要礼貌。世界很小,你怎么对待别人,别人就会怎么对待你。

  6. 结交朋友,技术书籍只能教你解决常见的问题(他们说:书是死的)

  当你在捣鼓一些程序或者从程序的作者那里学习,你能学到一些书本上没有的东西。当你散步的时候,请和遇到的朋友打招呼。你肯定不是唯一的程序员。和其他的程序员一起交朋友一起工作。你会注意到,当一群技术爱好者在一起的时候,不论话题是从什么地方开始,最后总是以技术话题收尾。这是必然的现象。所以你可以尽情参与。在你的黄金年龄努力编程,我能告诉你的是,我在开始6年前寻找朋友并开始讨论编程,从那时起才学到那些书本和文章不会告诉我的东西。所以我总是说,我的编程经验有6年,因为只有那个时候开始,我才开始与人交流并开始感觉真正地开始学习编程。

  7. 参加开源项目

  为开源项目编写代码能带来回报。这不仅仅是帮助别人,你留下的代码会被其他人使用或(可能)改进。当别人给你的代码添加功能或者提出修改意见时,也是在提高你的编程水平。开源软件项目不一定要是一个大工程,编写一个下载youtube视频的小程序也是很有用的。更重要的是,你会惊奇地发现你编写的代码会成为与他人有效沟通的桥梁。(其实关于参与开源项目,伯乐在线编译的不少有关程序员的文章都是如此建议,比如Justin James 的《程序员开始编程生涯的5个建议》)

  最后,若干年之后如果本文的内容曾经对你有一点点的帮助,作为回报请写一封类似的信给希望开始编程并不知如何入手的朋友,有可能的话请纠正本文中过时的内容。

  智者说过,掌握某个东西需要10年或10000个小时,也就是汉语中的“十年磨一剑”,所以不用着急。

原文地址:http://www.apkway.com/forum.php?mod=viewthread&tid=2942&extra=page%3D1

转载于:https://www.cnblogs.com/yyq-quan/archive/2011/08/23/2151187.html

[相关总结性文章] 写给即将入行的程序员的一封信相关推荐

  1. 写给即将入行以及刚入行的程序员,你需要注意的几个点,别忽略!

    1.作为软件开发者,使用双显示器能大幅提高开发效率. 2.学编程最好的语言不是PHP,是English. 3.自己做的东西交付之前先测试一遍. 4.问别人之前最好先自己百度,google一下,以免问出 ...

  2. 入行AI,程序员为什么要学习NLP?

    "认知"的核心技术是自然语言处理,这是人工智能领域中的一个重要方向,研究各种理论和方法,涉及的领域较多,主要包括机器翻译.阅读理解.智能写作.对话系统.基础技术和语义计算等. 计算 ...

  3. 刚入行java程序员VS 3年以上java程序员,太形象了,哈哈哈~·~

    点击蓝字 关注我们 最近咱们动脑学院来了一位刚毕业的java小鲜肉 老大把他分配给有3年工作经验的喇叭带 动脑君看着他们俩 对比超级明显的工作表现都快笑死了 不行!必须要分享给大家!!! 笑死也得拉个 ...

  4. 写给新入行程序员的10条建议

    1. 想清楚,再动手写代码 刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌! 2. 不交流,就会头破血流 不爱说话和沟通,需求都理解错误了,最后做出来才发现,只能加班返工. ...

  5. 写给未来的入职为程序员的人工智能专业的高考生的选专业看法

    写给未来的入职为程序员的人工智能专业的高考生的选专业看法 2021年的高考马上开始了.家长与考生忙着想如何报考大学专业的事了. 我看到了2021年的高考热门专业出炉了.如下图所示: 回想起当年热门的计 ...

  6. 新入职的程序员如何更快的融入项目当中?

    最近,我们项目中新入职的程序员比较多,于是我们花上了15分钟,就"新入职的程序员如何更快的融入项目当中?"这个问题进行了讨论. 下面是讨论的结果总结,现在和大家分享一下,希望对新人 ...

  7. 给初入测试/开发程序员的几点建议,把困难当做猎物......

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  8. python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  9. python在哪里写代码-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

最新文章

  1. java 基础--NIO(4)
  2. class.forname()中要写相对路径吗?_你喜欢这里吗?翻译成“Do you like here?”是错误的,为啥呢?...
  3. strtol() 字符串转长整型函数
  4. 程式CSCMSV4黑色炫酷DJ音乐门户模板 音乐网源码
  5. oracle biee 11g客户端连接OCI 10g/11g数据源时报错
  6. python膨胀卷积_python里有没有轻量级的卷积网络库,不需要训练,只想快速前向计算?...
  7. [BZOJ4568][SCOI2016]幸运数字(倍增LCA,点分治+线性基)
  8. 《数据结构与算法分析:C语言描述》复习——第六章“排序”——插入排序
  9. netron神经网络可视化
  10. 计量经济学 pdf_计量经济学笔记(十六)
  11. windows便签工具在哪,怎么在便签上保存工作提醒事项
  12. 转: 诺贝尔奖得主:东亚教育浪费了太多生命
  13. python 实现Web版股票行情界面
  14. FL Studio20.9DAW宿主电子音乐制作软件
  15. 易捷行云EasyStack携手北联国芯,共筑鲲鹏生态
  16. jBPM4的PVM实现解析
  17. 【nvidia Xavier】感受gpu算力
  18. 什么是Hypervisor
  19. 欢迎使小程序 mpvue vantweapp
  20. 如何实现产销平衡_六个动作实现制造企业产销协调管理

热门文章

  1. C++ 对引用的理解5
  2. html在线编辑器 asp.net,ASP.NET网站使用Kindeditor富文本编辑器配置步骤
  3. HDU1573-模线性方程
  4. 【算法】学习笔记(2):递归思想
  5. Java高级工程师必看系列,从基础到源码统统帮你搞定
  6. w7重启计算机打印机无法使用,win7系统电脑重启打印机服务就会被关闭的解决方法...
  7. 计算机网络与网站设计知识点,计算机网络技术知识点总结-20210525075410.docx-原创力文档...
  8. 熊逸《唐诗50讲》田园篇 - 学习笔记与感想
  9. configure: error: You need a C++ compiler for C++ support.
  10. 用Docker自动构建纸壳CMS