正确的学习方法和学习路径,更不要说简单的编程,和转化都是可能的,但是自学编程有几个非常大的坑,很多人因此走了不少弯路:
1.如果你不是计算机或工程专业的学生,也不是靠编程为生的大学毕业生,不要去用国内的大学教材来入门
不要学C/C、Java、汇编等。这考验人性。这些东西已经不适合你了。建议你学习Web前端(HTML、CSS、JavaScript),用PHP建网站,或者学习Python(代替VBA提高办公效率,代替Excel和PowerBI做数据分析和可视化),小程序等。你可以一周开始一次,既有趣又容易学,对工作也有帮助。
大学课程里理论很多,你学的东西只有月入2万元以上才会发挥作用。即使月薪过了2万,也不建议你用国内人写的电脑教程。国内名校越多,教育水平越高,越会用国外写的教材。在美国,在学习计算机理论之前,高中就有AP课程,而在中国,大部分都是基于计算机的。
C/C,Java,如果你半年以上不学习,你很难开发出一个实用的东西。用C写蛇游戏?别傻了。你认为你的游戏实用吗?用Java开发Android?学习半年后可以在线开发App吗?用Java做网站?简单的JSP已经被淘汰了(当然国内一些外包公司还在使用JSP)。
如果花半年时间学习前端、Python、PHP,不仅可以开发实用的项目,还可以外包、找工作,甚至转行。
很多人其实都推荐已经工作过或者不想从事编程行业的人去学习编译、网络、C等等。你可能在大学读过这个,但是这个只适合计算机专业的人,不适合其他人。你的建议太误导人了。
(计算机及工程相关专业要学好C/C或Java。)
2.不建议你学易语言,VB,VBA,因为这些没有前途。不建议你学茱莉亚和达特。没有基础就不要去追求新事物。
有些方向不实用,就是实际开发不再是通用的解决方案,比如JSP、Flash。
有些方向在国内会被越来越少的人使用,比如VB,http://ASP.NET。
有些没有前途的方向会阻碍你的进步,花很多时间折腾是没有意义的,比如换语言;
有些方向不适合新手学,新手学也没用,即使再怎么批,比如编译;
有些技术听起来很有前途,但不适合初学者跟风,比如Dart、Go,没有你学不到东西。
3.几周内不要买书。不看视频就不要看书。首先通过安装和开发环境来学习技术,编程只有动手实战起来才会变得简单.很多人一上来就问,编程难吗?我能学零基础吗?这些知识是用来做什么的?你为什么问这么多问题?有些人收集了几百篇好文章,花了很多时间,但就是没有开始实战。你能学会这个吗?
有些人买了一些经典的电脑教科书(通常很厚),咀嚼了几周甚至几个月。更可怕的是直接去读编译原理、算法介绍、计算机系统、网络编程的书,不要说啃不动,就算学完了也不知道能做什么!
JS直接吃犀牛书。这本书有1000页。很多人说长时间学不会编程就这么难。你的学习方法有问题。编程会很难吗?
PHP、Python、前端等等,如果学习了两天到一周都不能真正开发出一个东西(不用写几行代码),就会走很多弯路。
4、大学生千万不要用考证的方式来学编程
;如果学校对计算机二级等级考试有要求,就考Office或者Python,蒙混过关就好,不要为了考什么软科之类的浪费时间。
许多学生视野狭窄。他们只能接受学校和周围人灌输给你的知识和思想,只知道有限的评价体系。他们认为自己只有在参加了这些计算机等级考试和软考之后才是优秀的,学习编程往往就是针对这些知识。这些完全可以理解,因为我在大学也参加了考试。
其实评价一个学生是否真的擅长计算机,一个是你对技术知识的深刻理解,可以写出和写论文一样多的技术文章来培养你的研究探索精神;第二,你可以向自己和他人证明的项目输出能力是一个非常重要的基础。对于一个初学者来说,关于如何导出自己的东西有很多知识。我过会儿再整理。
学校对于优秀学生的评价体系与企业对于优秀员工的评价体系差异是非常大的,而你个人对于学技能的追求,你自己心里也有一套标准,这三者之间有很大的不同。
但是很多想学没有基础的技能的人,都是要求按照学校的标准和方法去学的。他们如何才能学好?
(当然有些技术证书是可以考的,比如网络工程师CCNP、运维工程师RHCE、RHCA、PMP等。这都是比较认可的,所以忘了软考什么的。)
5、学编程应该以项目开发为主
不学东西,到时候什么都不会掌握。不要看人家说Python好,学Python,学一会C,学一会Java,招聘的时候说自己。
掌握这些语言。要知道不没有开发出一个网站、一个网页、一个App,一个实际的东西、项目出来,你学再多,都等于半成品,都不算学会。> 以项目为导向的方式来学习,即是符合程序员学技术的方式,又能让你对学技术欲罢不能。
> 学习技术本来是一件可以让你很有成就感的事情,如果你学编程一个星期都受挫茫然没有效果,只能说明你学习方式不对。
> 国内编程教育思路很有问题, 编程本来就是一项技能
> ,所谓技能就跟做菜、骑自行车一样,你学了就可以实操。但是国内编程教育却要求你成为一个有品味的厨师,给你灌输菜系的知识,告诉你色、香、味、形、器、意、养等做菜的道理,就是不让你动手做菜。很多资深厨师会告诉你这道理太重要了,厨师不懂这些算个p的厨师,但是你明明想学的是做菜,有些人就说了,你只学做菜,跟进技校有什么区别?太low了。但是你明明就没有资格以及不想成为厨师啊....
6、 很多编程零基础的人一上来就想学人工智能、大数据等这些看起来很有前途的方向,妄想通过培训半年就能找到好工作,这些都已经不切实际了。
(特别刻苦肯学,有理工科背景,热爱数学、喜欢编程,能坚持学习一年以上的例外,国外这样的例子太多)。很多培训班不加限制不设前提就鼓吹这些领域的求职神话就是欺诈,严重误人子弟。这些方向甚至都不建议一般学校乃至一些985计算机专业的学生来学习。(有毅力、决心、恒心者即使是30多岁劝退的年纪零基础也可以,但是你这是在挑战人性,没有几个人可以做到)。
> 如果你想转型IT,成为互联网方向的职场达人,其实方向是有很多很多的,比如如果你对设计有追求,哪怕你没有绘画天赋,你仍然可以学UI、UX;如果你对互联网产品感兴趣,沟通能力比较强,产品经理就比较适合你;如果你自认为你喜欢研究数据,数据分析就有大量岗位等着你;前端、后端、移动端、测试、运维等等都有大量高薪有前途的岗位。
> 互联网(含EE、CS)相关岗位是非常丰富的,编程不只是会让你成为程序员,机会多的是,没有必要硬着头皮不切实际去成为算法工程师、人工智能工程师、大数据工程师这些你已经不具备进入资格的方向。
如果你想快速入门,建议找个人指导你,比你买书、自己去翻视频、自己摸索要强得多。
> 有不少计算机专业的学生出去找工作前会去培训班或者他们学习时都是到网上看视频看文章,很多知识也是自学的,这是因为一般的学校会教你知识,而培训班和网上的资源会教你技能。
> 如果你是计算机相关专业,系统而底层的知识是十分有必要的,它会决定你职场上的高度。如果你学专业课感到艰难,你也可以花点时间从我说的Python、PHP和JavaScript入手学起,然后再来结合专业知识。
