#转载#我给所有新手程序员的建议

我写代码已超过 20 年了,并且迄今为止也教了大约 6 门编程入门课,总课时已经 1000 多个小时了。以下是一些我跟学生至少说过一次的(入门编程的)建议,排名不分先后。

欢迎来到编程的世界!

1. 编程真的很难

无论你多擅长编程,唯一能降低开发速度的,就是学习和解决问题的能力。而当你越是擅长编程的时候,这种情况就可能越明显。这是一个非常吸引人的特质—你永远不会厌倦编程。如果你厌倦了,那么你的做法肯定是错的,你应该去总结思考你在重写的代码。

2. 编程也会是最令人沮丧的事情之一

编程的一般步骤是:尝试解决问题 → 受挫 → 更努力地尝试 → 回顾 → 顿悟之后最终把程序运行起来。感到沮丧太正常了,而且这种感觉永远不会完全离去。(当你能力更强的时候,你将会面对更加困难的问题,因此也会存在同样的情况)。但这种沮丧的感觉,将使得解决这个问题感到更加地满足。因此你需要去适应在这种沮丧的感觉中工作。

3. 无论问题多么复杂,总会有其对应的解决方案的

当你的编程技能逐渐提升的时候,你也将更擅长也更有信心使自己保持平静,不陷入沮丧抓狂之中。这会使得沮丧的感觉变淡,同时也将促使你去解决更加困难复杂的问题。(如果问题太简单了,你甚至会觉得无聊的!)

4. 编程不是每个人都能做的

当我们还是孩子的时候,我们做不好任何事,但是我们也没有意识到这些。然而作为成年人,我们几乎没有机会去搞砸某些事。拥抱这种感觉吧。这太正常了,因为你在做的事,并不是每个人都有能力做的。

5. 要知道和你编程的第一个小时相比,练习 10 小时之后将会完全不同

同样的,当你完成100小时的练习之后,事情又更不一样了。曾经有个人在博客上写到当他在高尔夫上练习一万小时之后,水平产生了质的飞越。编程也是这样的。

6. 如果程序员是巫师哈利,那编程是基础的魔法

我们努力学习,钻研“课本知识”(计算机+互联网),学习“单词拼写”(程序)。巫师也可以教其他巫师如何使用他们的魔法。我们也可让这样的情景在地球上实现,去创造每个人都可以使用的神奇的设备。(就像互联网和手机)。即使没有我们“施魔法”,这些设备同样可以做一些不可能的事情。

7. 用好互联网

在你开始学习编程的第一年,你所遇到的每一个问题都是其他100个人已经遇到的。解决方法在网上已经记录下来了。你越快的学会有效的使用 Google 寻求帮助,你也将变得越开心。提示:如果你不明白代码的原理是什么,永远不要直接从网上复制。

8. 善于总结经验和技巧

作为程序员,无论何时,我们都要带一个工具箱。工具包含了我们解决问题的所有技巧。你所学的第一个对象(比如变量、for 循环等等)就像我们的螺丝刀和锤子。在你的编程生涯中将会每天都使用它们。当逐渐熟练的时候,你将开始学习如何使用更加高级的工具,这些工具可能不会被经常使用,但是却在解决特定问题的时候非常有效。(比如数据结构中的树、A* 算法、valgrind (内存调试工具)、调试器等)。大部分开发领域(游戏开发、 web  开发、数据库)同样也有着各自领域内的特定问题和解决方案。其结果就是,你所解决的任何问题在下次遇到的时候将会简单很多。

9. 每个写好的程序,都是一步一步编码而来的

你几乎可以在你的计算机上阅读、修改、测试任何项目,同样也包含大部分别人写好的项目。对计算机来说,这基本上就是一项超能力。

10. 坚持大量实践

在开发上有所进步的最好方法就是大量写程序坚持做东西。作为老师,在我力所能及范围内我将会给予帮助。但是一旦掌握了足够的知识储备,你将有能力弄懂我告诉你的任何事情而不需要太多时间。所以坚持写程序吧。正如一位智者曾经告诉我的:“只要有耐心,成功不可避免。”

11. 多读优秀代码

有太多的程序员比我们聪明了。他们写了很多代码,只要你需要你都可以阅读。这些代码很有可能在  Github  上。

12. 据说,你所学的第二种编程语言将会是最难的

第一门编程语言将会塑造你对程序的思维模式(严肃脸!),当学习第二门语言的时候,你将不得不陷入前面的思维模式中。(丝毫不影响大脑思维方式的编程语言根本不值得学习)。但是当完成第二门语言的学习之后,你将能够很快的学会其他新的语言。现在我可以在一周的时间内把任意一门给定的命令式语言学得足够熟练。

13. 没有所谓的“最好的语言”

某些语言和工具只是在解决特定对应的问题时比其它的要好一点。当学习新的语言的时候,不要尝试把你过去的思维模式带到新的语言系统中。相应地,我们应该学会如何更“地道”用新语言编程。

14. 放松心态、保持“单纯”

编程是一个巨大的乐高积木集合,充满了各种需要被解决的有趣的问题。为了深入弄懂其中的构造,花时间去编写有趣的程序,将比给你任何任命都要有趣的多。

15. 最优秀的程序员总是在工作之外自己也一直尝试编程。如果你真的非常喜欢且擅长这样,你将永远不会失业。

16. 当你卡壳的时候,在纸上写下你的程序。我是认真的。这非常神奇,是在编程竞赛中的标准训练模式。(我认为这个方法有效的原因是,当你不必花费精力去考虑语法的时候,你会有更多的精力去思考问题的本质和如何解决它)。

之前我也时不时给出了其他建议。但正如大多数建议一样,如果某件事对你真的很重要,相信你自己会主动去研究清楚的。

原地址:http://blog.jobbole.com/96647/

时间: 2024-11-05 13:32:56

#转载#我给所有新手程序员的建议的相关文章

新手程序员必备的知识储备有哪些

很多学习了北风网专业课程的朋友,都能如愿到心仪的相关企业任职,首先,北风网向你们表示祝贺,同时关于新手程序员所需要的知识储备情况,特此总结了一篇文章,以供参考: 1.版本控制系统(VCS) VCS 也许是计算机课程最大的疏漏.这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码.每一个程序员都应该懂得利用 Git 或 Subversion 有效地创建 repository(仓库),编辑与提交代码,进行分支与合并,了解项目工作流. 2.学会写作 身为程序员要写的不只有代码.你还要写项目的发

CSDN日报20170505 ——《创业时该不该用新手程序员》

[程序人生]创业时该不该用新手程序员 作者:路过秋天 作为一名创业者,如果自己不是技术出身,是不该在一开始就用新人程序员的.就算做为技术出身,由于技术领域广,对于非自己领域能解决的事情,也不要轻易用新人程序员. 点击阅读全文 [Android]音频系统:从 AudioTrack 到 AudioFlinger 作者:沅纭 与 Audio 强相关的有 MultiMedia,MultiMedia 负责音视频的编解码,MultiMedia 将解码后的数据通过 AudioTrack 输出,而 AudioR

新手程序员应该知道的七件事

如果你刚进入专业的软件开发世界,那么得益于在计算机科学和编程方面的教育和/或培训,你已经具备了一定的知识.但是真正的开发业务工作又和在学校编程不同,这是你不可能从大学课程或编码学校中学会的东西. 无论你是一个刚毕业开始自己第一份开发工作的大学生,还是在编程领域有一定工作经验的年长者,以下是总结了哪些技能和知识是第一次写代码就应该掌握的,希望对新手程序员能够有帮助. 1.了解底层系统 软件开发的一个重要组成部分是,了解编程语言.但是,正如有些人建议的那样,开发人员还需要了解堆栈下面是怎么回事. "

写给新手程序员的一封信

首先,欢迎来到程序员的世界.在这个世界上,不是有很多人想创造软件并解决问题.你是一名hacker,属于那些愿意做一些有挑战性的事情的人. “当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题.” – WhyTheLuckyStiff 对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员.我喜欢把事情做到最好,而不是对原来的东西修修补补. 仅仅是因为爱好开始做一些创新,这是一个很好的开始!如果你说“我要先学习一下再开始做”那么你永远不会真正开始.每个人都需要从某个地方开始,所以现

创业时该不该用新手程序员

前言: 距离上一篇文章,转眼已然一个多月了,这段时间没出来和大伙汇报创业的进度,怪我了. 最近又感冒了,已经一个多星期了,还在感冒中,不过感冒也不能偷懒了,每天都有大把的事情等着我解决~~~ 不过今天还是决定好好静静,写写文章,和大伙继续分享创业过程中的那些闹心的事情,哈: 1:不合适的人,要及早放手: 记得我发布上一篇文章时,那时候是招了一个UI妹子的,不过故事的后来,有点变化,妹子让我Fire了,故事是这样的: 刚开始招人,连个办公的地都还没有的时候,招人比较麻烦: 从简历里找到QQ邮箱号,

作为一名新手程序员该怎么成长?

作为一名开发者,自己既笨又没有准备,被老板知道了,我就要被炒鱿鱼了-作为一名新手程序员在刚刚进入到工作领域的时候,经常会有这种想法,这种想法会打击自己的自信心,特别是涉及到写代码的时候. 下面我要介绍一些关于新手开发人员可以提升自己的职业生涯和前景的关键策略,并且能够在工作期间保持一种健康的心态. 无论是你正在智通人才网找你的第一份工作,还是正盯上了潜在的晋升通道,在一定的程度上都需要跟其他开发者竞争,为了可以从中脱颖而出,下面这些关键的步骤可以帮你迈向成功. 1.找一种你喜欢用到工作中的语言.

新手程序员在工作中需要注意的问题

需要学习的最重要的东西是"自我规范".这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加注释. 请谨记这一点,要懂得"自我规范",也不能一旦代码"起效了"就立马置之脑后.如果所有的变量都命名错误,但是代码依然可以完美地运行,那么这些代码绝对乱糟糟得让人不忍直视.将功能代码改进为简洁代码可能在短期内是看不到回报的.这就是为什么你需要"自我规范"这一步骤了.这也是为什么

给新手程序员的16个工作必备小妙招,省下时间去LOL吧!

写在前面: 这个文章核心并不是程序优化的具体技巧,而是拿到一个问题如何思考和利用工具的通用方法.比如即使我们不知道 profiler 这个东西,通过搜索"代码 每一行 时间"也可以很快知道有这样的工具叫做 profiler,并且学会怎么使用.即使不知道 rand 这个函数怎么加速,通过搜索引擎也可以找到别人写好的现成代码.另一方面是发现瓶颈之后也不要着急自己修复,如果不是特别一目了然的话,先看看别人是怎么做的.站在巨人的肩膀上,事半功倍. 1.多看看「官方文档」 我们很多的问题和技术细

一个新手程序员 2019 的九大尴尬瞬间

一个新手程序员 2019 的九大尴尬瞬间 1. 第 一 次 做 项 目 ,还 没 碰 到 代 码 就 开 挂 了 ! 2. 天 啦,我 只 修 改 了 一 下 Bug. "老大,救我 ! 如果上天能给我一次机会重来一次,我一定会先找好女朋友!" 3. 我 只 是 删 了 一 行 代 码 而 已 ! "老板,这一定是隔壁老王干的!" 4. Bug 多 了,总 有 一 个 会 把 你 坑 了. "经理,我还没挂,能再给我一次机会吗?下次我只要一百块!"