首先标题是为了凑够标准的十个字,如果你这会去数了一下然后想评论说不是十个字,那我佩服你的求知精神...进来的肯定不是看我瞎扯淡的,我们步入正题。
慕课网作为国内不能说是最大,但是起码口碑最好的一个IT学习的网站,受到了很多人的欢迎,但是在推荐给朋友的过程中,我就发现了一些问题,那就是纯小白根本不知道怎么开始学习。这里我要说一下什么叫做纯小白,你以为不知道变量,命令提示符,HTTP协议,这些就是小白了吗?那你就错了,我今天要说的是连怎么设置IP地址,怎么设置百度为首页,连自己的操作系统是winxp还是win7都分不清的小白(那还学啥编程啊,回家打LOL吧,开个玩笑)。
本着富强民主,文明和谐,自由平等,公正法治,爱国敬业,诚信友善的思想。我下定决心要写一篇手记,能够在无尽的黑暗中给纯小白带来一丝光明,哪怕你都分不清xp和win7的操作系统。
众所周知(不知道的也要假装知道),程序员是现在以及未来最火的职业,同时也是最赚钱的职业,可能有人不服气,会说销售,金融分析师这些更赚钱。那你就错了,世界上最伟大的金融分析师巴菲特先生,也不过排在搞IT的比尔盖茨后面。有人可能会说了,不是每个程序员都能成为比尔盖茨。没错啊,难道每个金融分析师都能成为巴菲特?至少我们的巅峰,比对方的巅峰要强那么一丢丢。
那么知道了程序员的未来和前景,我们再来讨论一下程序员可以干什么。从目前来讲,你所接触到的任何一个行业,都可能有程序员的身影。从生产你穿的衣服,到冰箱电视,航母火箭,导弹卫星,全部都需要程序员的参与。这不是开玩笑,当然了,还有你经常访问的百度,用的QQ,逛的淘宝,看的慕课网,玩的LOL,这些都是程序员做出来的。如果你想做出下一个被亿万人使用的产品,程序员无疑是你最好的选择。
接着往下看之前,我想请你先想清楚,你是否决定了踏入这个行业。程序员就像修真世界一样,危机四伏,稍有不慎可能就会陨落,程序员世界分为八个境界:新手,菜鸟,码农,程序猿,攻城狮,组长,经理,架构师。攻城狮以前你根本不算进入这个世界,你只能拿着微弱的工资,做着最累的工作,加班到最晚,如果你想改变着一切,只能不断的学习,好的架构师年薪百万,千万的都多的是。如果你认为自己是一个像小说中主角那样,知难而进,永不放弃的人,当你受到打击,经受挫折,无法突破当前境界的时候,还能不断的努力修炼,那我请你继续往下看。
你未来一定会为今天的选择,感到庆幸,至少我今天感谢当初的选择。
程序员这个世界分为很多的类型,因为编程语言有很多种,为什么有这么多的编程语言,这里我要解释一下。就像小说中各个流派,各种法则奥妙一样,他们每一个都有自己的特点,你没有办法说死亡法则就比生命法则强,因为他们的应用场景不同。所以说,你不能说C++就比JAVA强,在某些领域C++拍马都比不上JAVA。
编程语言现在多达数百种,不要惊慌,你只需要选择其中的一种,那么大家都能够修炼到最高的境界,我们该选择哪一个来作为自己的语言。我的建议是选择最火的,剑走偏锋只能死的更惨,选一门比较火的语言,一旦出现问题,能有很多人一起交流探讨,并且找工作会很轻松。
目前最火的编程语言:JAVA,C/C++,PHP,Python,.NET,JavaScript,Ruby。
除了Ruby以外,其他的我都略有了解,值得庆幸的是,Ruby这个语言在国内很少有公司使用,Python完全可以取代它,所以我不打算介绍它。
程序员分为前端和后台两种,前端指的是你能够看得到的东西,后台指的是你看不到的东西。比如说:你能够看到淘宝页面上那些漂亮的图片和文字,以及炫酷的特效,这些都是前端程序员做出来的。而你搜索某个商品的名字,就能搜索到一些商品出来,这个时候你看到的图片,文字,依然是前端程序员显示的,但是你搜索商品,查询这个商品信息的这些过程都是后端程序员完成的。同样,前端后台都有自己的特点,没有谁比谁强这一说。
上面我们提到的编程语言,除了JavaScript,其他的都是后端编程语言。
首先来说一下前端工程师,前端工程师的特点就是相对简单,因为没有涉及到太多的服务器上面的内容,所以对于新手来说可能更容易接受一些。前端工程师学好以后,就是做我们刚才说的浏览网站的时候看到的网页。你需要把美工给你的图片按照设计师设计的图稿,使用HTML+CSS+JavaScript,布局成那个样子,前端工程师只有JavaScript这一种语言,HTML和CSS从某些意义上讲,不能算是编程语言,如果你喜欢设计,并且不想太深层次的研究编程,前端工程师是一个不错的选择,下面是慕课网的前端工程师学习路线,没有什么太大的问题,大家可以按照这个路线学习。
前端工程师:http://www.imooc.com/course/programdetail/pid/32
学完以后就可以找工作了,至于工资多少,说实话,看你会不会说。如果你会说一万多也很正常,不会说可能别人只给你两三千,后面我会针对这些设计出一个面试题和对应工资的参考,以及面试拿高薪的技巧。
接下来说后端工程师,里面有一些术语如果看不懂没关系的,全当小说看了,就像你看小说看到餮虢神兽不认识怎么读照样能看一样,以后这些术语你会一点点的明白。JAVA作为目前最火的语言,是有他的原因在里面的,JAVA是由sun公司开发的一款开源的编程语言,它的特点就是:开源,面向对象,跨平台。JAVA是目前来说,把编程语言当做一个真实存在世界做的最好的语言,使用JAVA编程就像创造世界一样,很有快感。它的主要应用场景就是后台服务器端,我们的网站能够运作,能够注册,登录,能够购买商品,这些都是后端语言来实现的。学JAVA比较容易找到工作,因为太多的公司使用了,而且JAVA还可以开发Android应用。JAVA没有太过于复杂的内容和语法,所以学习起来比较容易,如果一个知识点看不懂,可以多看几遍,多百度查一查,或者在猿问里面提问都可以。
JAVA学习路线:http://www.imooc.com/course/programdetail/pid/31
学完这个路线,在深圳起码也有8000了,然后我的建议是,学习MySQL性能优化,Linux的基本使用和优化,JAVA性能优化,设计模式,算法,服务器集群,大数据并发处理,JVM底层原理。如果能够学完这些,把这些融会贯通,你就是一个合格的Java架构师了。
Java相当于小说中的重剑,每一挥都带着巨大的破坏力,但是攻速慢,使用起来需要不小的力气,但是哪怕无论面对多么复杂的情况,都能坦然应对,但是一些小的需求,使用它就显得太过于繁琐。
至于.NET,现在使用的人确实越来越少了,它们大部分情况都是用来做网站后台的,所以说.NET能做的,Java也能做,PHP也能做,所以如果不想学JAVA,可以学习PHP。
PHP学习路线:http://www.imooc.com/course/programdetail/pid/34
PHP工程师的工资要比Java的低一点,但是学完这个最少也有七千了。后面和Java大同小异,都是数据库,Linux服务器,算法,设计模式,服务器集群,大数据并发,底层原理。
PHP相当于短剑,攻速快,但是攻击力相对不高,面对太过于复杂的场景,有时候就显得力不从心了。
最后说一下Python,Python是近几年才流行起来的,也是我个人最喜欢的一个语言,用一句话来形容,你无法抗拒它的魅力。它实在是太简洁,太简洁了。如果说Java是重剑,PHP是短剑,那么Python就是匕首,使用起来非常灵活,随心所欲,并且能够在关键时刻给对手致命一击。哪怕是美国宇航局都在使用Python,而且Google都在使用Python,当然了,Google也有使用PHP和JAVA。Python主要的应用场景,目前来说有这几个:人工智能,数据挖掘,网站后台,数据采集,数据分析。Python经常和Java,C++,PHP联合起来使用,就如同下副本一样,你总要有个T,有个奶,然后有几个输出。国外经常使用Python做人工智能,等功能实现以后,他们再把主要的核心代码更换成C++来实现,加快程序的运行速度。因为Python可以让人从自己的角度出发去编程。
Python的学习路线,慕课网目前还没有,我的建议如下:
开发环境搭建:http://www.imooc.com/learn/397
python基础:http://www.imooc.com/learn/177
python进阶:http://www.imooc.com/learn/317
python异常处理:http://www.imooc.com/view/457
python文件处理:http://www.imooc.com/view/416
python操作数据库:http://www.imooc.com/learn/475
python正则表达式:http://www.imooc.com/learn/550
剩下的,有几条路可以选择:
python爬虫:requests,BeautifulSoup
网站设计:flask,django
数据分析相关:numpy
等等吧。
如果你不想学习编程语言,还可以学习Linux运维工程师,没有复杂的代码,但是也是一个必不可少的职位。
Linux运维工程师:http://www.imooc.com/course/programdetail/pid/45
哪个编程语言,都是一样的,无论你选择哪一个,都可以让你达到一个很高的高度。
最后我想说的是,任何一个东西对你来说都是有用的,只要你学好他,同时,不是说只有DBA才要研究MySQL的性能优化,也不是只有运维才研究Linux,更不是说前端只学习HTML。如果这样的话,你永远也达不到巅峰,就像小说的主角一样,往往都是同时研究多个法则,以一个法则为主,其他法则为辅,最后所有法则融会贯通,达到别人难以企及的地步,这才是一个程序员真正应该做的。
如果身为一个Java程序员,精通Linux和MySQL的优化,那你就不是一个普通的程序员,选择了这条路只有两种结果,不断的突破自我,达到人生巅峰。要么,面对学习过程中的困惑和枯燥而选择放弃。