原文来自 Quora:What are some things you wish you knew when you started programming?程序员
我但愿知道许多东西,但我想起来的只有27件事。web
全面披露:我把最重要的事情放在第 14-26 条上(综上所述),由于我想让你阅读完整的答案。我想你会喜欢的。算法
一、经过实践去学习。编程
提升编程技能的惟一方式就是去动手实践,不要让一个卡壳的分析阻挡了你的开始。框架
二、编程不像应试学习。工具
记忆的东西并不重要。post
三、拷贝是彻底能够接受的。学习
我使用 Google 来解决个人大部分问题,大多数的程序员也是如此。优化
四、不去检查,让问题一直堆积是糟糕的策略。调试
我曾经对个人代码进行了无线的修改,而且期盼能当即工做。这种方法的问题在于你将一个问题叠加到另外一个问题之上了,这样,找出错误出现的地方将会变得很困难。
五、自学真的很艰难。
对于大多数人,与有抱负的程序员合做和讨论代码是不错的学习方式。
六、释放你的情绪。
在你成为程序员的旅途中,你将会遇到许多错误信息。你要明白,搞砸了是不可或缺的一部分,在错误中你将会成长。
七、你不须要有 5 台显示器。
可能与好莱坞告诉你的相反,做为一个程序员,你并不须要一个疯狂的显示器来调试。你如今拥有的电脑足以开始编程。不要浪费你的钱。
八、大写字母和小写字母之间的差别很大。
在类似的符号中发现微小的差别,并使之成为习惯,花了我很多时间,直到你习惯了,不然你会感到格外沮丧。
九、试图去理解一切是感到的失落的一个缘由。
在一开始,我想要找出全部我遇到的问题的原理。这不是必须的。计算机原本就很复杂,咱们要学的还有不少,你不可能去理解每同样东西。这不要紧。
十、尽量的去编写代码。
在学习编程的路上没有捷径。
十一、优化代码是编程的一部分。
我过去想要我写的每一行代码必须是完美的。改进代码是正常的,你不是在写一本出版后就不能更改的书。
十二、寻求帮助的正确方式。
每一个人在某一时刻都须要求助,当你求助的时候,你须要作这4件事:
当你通过这些步骤,你常常会无心发现解决问题的办法,而不是去寻求帮助,这会让你更全面的去考虑问题。
1三、你不须要成为一个数学天才。
若是你不是一个数学天才,也不意味着你不能成为一个程序员。
1四、老是庆祝小胜利。
用代码去创造东西确实很酷。若是我没有退后一步去欣赏那些我路途中创造的使人敬畏的东西,我永远也不会到达我所处的地方。
1五、创客聚会是很是有价值的。
一开始,我很乐意去参加这些让我感到很自在的活动。一旦我作到了,我就意识到像我同样的开发者有不少。
1六、避免合并冲突会使人很愉快。
合并冲突让人很恼火。所以当我意识到我能够在队友以前插入一个功能,让他不得不处理这些事情,这让我很兴奋。
1七、认可你不知道是能够的。
当你从事你的第一份编程工做时,你可能会倾向于 “伪装直到你作到”,不要这样作,没有人期望你立刻就知道一切。
1八、胜任一份工做彻底没必要去花费 10000 小时。
现实中,你须要足够好去直到如何自我修正和问题出现时回到正轨,这样花费的时间就远远少于 10000 小时。
1九、你会在早上醒来思考代码。
当它发生时,真 TM 酷!
20、犯大错不要紧。
我曾经犯了一个错误致使个人公司损失 10000 美圆,在这件事中,我学到了我编程事业生涯中最重要的一课。
2一、算法就像在电话簿中寻找一个名字。
算法是一种按部就班的方法。
2二、你永远不会以为本身准备好了全职编程。
冒充综合症是真实的。试着记住,什么都不知道是正常的,最重要的是明白你能够找出你不知道的东西。
2三、程序员从不中止学习。
新技术一直不断的出现,因此那些成功的程序员就是那些继续学习并不断提高他们技术的人。
2四、让电脑向人类同样思考。
大多数人认为,你须要向电脑同样思考,事实上这正好相反。
2五、编程就是使用正确的工具进行工做。
如今有许多开源的库、工具和框架供你使用。所以你须要扩充和开发你的工具包并了解对于遇到的问题,哪些工具是奏效的。
2六、在即将发生改变以前放弃是常见的。
学习编程(尤为是在你转行的时候)是一件很辛苦的工做,这须要大量的时间和纪律,但这是可能的。太多的人为了达到目的地作了许多错误的工做。
2七、学习编程并不轻松。
这是值得作的事情。
过后看来,我真的很高兴我当初太天真了。知道这么少的回报给了我批判性思考我后来学到的一切的动机。
如今我开始花时间帮助别人经过编程来实现他们的目标。还有什么比这更好呢?
太多的初学程序员担忧何时才能准备好开始全职编程,因此我写了这个标志意味着你已经准备好跨越了。