转载.给编程初学者的一些建议【入坑必知】

首先我想说三句话：1、欢迎入坑，现在爬上去还来得及。2、没有毅力之人一事无成。3、正确的选择会使你的事业一帆风顺。

1、要想成大神，必须自己下功夫
    俗话说老师引进门，修行靠个人。
编程也不例外。没有哪个培训机构能100%保证能把你培养成啥样。

不要纠结是否要选培训机构、要选哪个培训机构。实际上如果你强迫自己学一门语言一年，如果还是懵懂的很厉害(譬如连hello world都写不出)，那么基本请考虑换个事情做做吧。

一般好的程序员都是靠自学的。就像老板大部分都没上过MBA.

2、选择开发语言
    选啥语言？
Php?你会发现学了一半，好像java做的事情更多

Java?你会发现学了一半好像ios开发更有前景

Ios?你会发现还不如android好

Andoid?你会发现其实还是php容易找工作

所以初学者其实很难选择语言。既然难，索性不要急于选。

还有一个故事发生在好多人身上：

有个人全力自学c++，突然觉得c++不如java学的快，而且相对工作岗位也少，在c++学了很大一块了，想换方向选择java，纠结了很长时间，后来终于想通了，还是坚持学习c++。

其实选择语言并不困难，你觉得什么适合你，就学那个。

我看到过一个学校的专业班级（和企业合作，有php、java和.net三个方向），学生到了大四可以选择进入这个班级，作为企业定向培训。这个班级分类学生很有意思：

1、 老师在网上下载了php、java和.net三个语言的基础教程，分发给大家

2、 每个人分别看入门教程各一天。（只许看第一章，不许动手写程序）

3、 然后选择自己“感觉看的最爽”的语言进行班级语言分类选择。

这就是一个很实践的帮助学生选语言的方式。

3、选一本好书

如果语言确定了，那么选一本书就很重要。

如果你没有项目经验，那么学一门语言基本上靠看网络文章是学不好的。必须买书，因为网络上很多技术文章都有各种错误，我写的也不例外。

一本书好不好，主要看第一章、中间一章和最后两章。基础讲得好，一般不会差。

高级章讲的好，一般也不会差。差的书在于基础部分讲的冗余、啰嗦、拖沓，到了高级章节一掠而过（实际上是写书的人自己也不会）。

入门书籍不需要太多，1,2本足够，要真正的吃透。

4、以正确的方式看视频

可以在网上找点对应的视频看着学习，能听懂视频里面的东西后，开始回归教材，不建议一直对着视频学习，因为视频都是别人咀嚼过的东西， 要建立自己的知识体系还得靠大脑自 己去一遍遍的破除疑惑的过程，看书是最枯燥也是最有效的，看书学习，前提就是要对理论有个大概的了解，

5、懂得实践(在实践中创新)

试问一句，当你遇到了一个很大的问题，你自己去解决了他，百度也好，问人也好。可是最终还是你自己解决了问题。你当时心情绝对是极好的。

尝试在电脑上去实践，很多人拿着题目不断在刷， 其实没那个必要，在理论掌握的差不多的情况下，把对应的课后题目独立在电脑上能实践好就够了，如此反复的去做，不厌其烦的去做。遇到不明白的理论，重复第三和第四条。书读百遍，其义自现。

6、最终还是要有恒心有毅力

你要真正的拿出一段时间把一本基础的书籍看的差不多，这个打基础的阶段，真的需要十足的耐心，这点都做不到，后面会带来一系列的连锁反应，最后可能导致你最后的放弃。

一栋大楼，地基最重要，编程同理，基础知识最重要。

7、主意横向扩展

现在都知道，社会上会的东西越多，你就越能在社会立足。没错，前期是要抱着必死的入坑的心态学好一门语言。

到后期，学Android可以尝试学学数据库，xml html 之类的，学web前端编程的可以尝试学学后端，或者java 或者把你的 css/js 学的更精通！学后端的人可以尝试学学其他的后端语言  比如 ruby asp.net jsp 或者可以学学 python 

8、一些建议


1、Linux学习

微软不做老大已经很多年，大家一定很怀念当年vb6雄霸天下的年代。这个年代如果你还只会windows而对linux一点不会，那么已经不能称之为合格的程序员了。

据统计，学习linux很有助于你学习真正的开发语言。所以如果你一点基础都没有，不妨抛开一切所谓的语言，先把linux学一学，学到一定程度后你必然会觉得豁然开朗。

除非你记性太差，那么linux其实并不难学。

2、不要过早玩开源

这点其实很多忽视了，都以为学编程先弄个开源框架学习。一般来说，好的开源框架集结了多个技术大神多年来的技术经验和思想，你想在毫无基础的情况下学会必然会让你一头雾水。

正所谓：零基础学开源框架属于杀敌一千自伤八百，很不上算。当然也不排除有些奇葩能搞定。

太早玩开源好比早恋，弊总是大于利，但是运气好你成为大神的时间会缩短很多。

3、反向思维写程序

大部分程序员初学编程有个习惯，写完一段代码后想着如何优化。实际上这个办法适合大部分人，但凡事都有例外，并不一定所有人都能这么干并能干成功，反而越写越觉得没有信心，当你也有这种情况时请看下面方法：

这里有个我在一个技术大牛“回忆录”中看到的办法：

先按照教程学习，然后合上书、拔了网线，把刚才学到的内容用程序写出来，注意不要写太多。

编译通过后，进行反向思维，写一段性能更烂的程序，并时刻关注内存耗费情况。

再次编译通过后，重复上述步骤，再写一段性能更烂的程序，并时刻关注cpu耗费情况。

…………

重复上述步骤数次后，你会发现你再也写不出比最后一段更烂的程序了，然后你会发现为了写更烂的程序你竟然把各种知识点都掌握了。

9、无论做什么，原则最重要

无论什么时候，你都不能以身体为代价去做一些事。

熬夜是不好的习惯(哎，虽然我在熬夜写稿)，你为了追求一个安静的环境、你完全可以背上电脑，去图书馆。

最后一点 时间都是挤出来的，没有时间只是找理由逃避。

怎么样，你还想入坑吗？

* 非助手专属文本,由网络转载而出！

