最近总有一些小伙伴问我,现在大二,想自学编程,但是' P) g! w# D' a" c" D0 G' q
7 Y7 z& @* z2 A. e5 Q6 S
不知道如何下手? 7 D5 N A5 P1 G6 T7 i$ C$ m J5 n2 J7 N# u
不知道该学哪一门编程语言,c/c++?java?c#?还是php? - O! I3 m0 H+ I, N' L* y" D( R7 Q+ e6 t# _
不知道c++、Java、php之间有什么区别?- i. Q- r/ f8 z2 G& v
$ H. N& Y( ~ X$ P a
是不是学习java之前要学c? 9 @" O7 }, r6 S( R: H! C, `4 y6 v# m, H. |
学习了Java基础之后又该学什么?2 i* J+ r" `6 ?( }' @; u
. F/ }5 u% f/ a7 z/ m, I, L
如果你也有这些疑问,那就继续看下去,如果没有就可以return了。 7 i/ q1 `1 q1 }: w+ ~/ p* T$ \/ ~3 z 0 u* F4 b1 y+ D1 l K7 L首先不要灰心哈,小编到底也是过来人,纯自学的,你们现在遇到的坑,我基本上都爬过。我大二的时候都不知道javascript和Java有什么区别,甚至以为数据库和数据结构有紧密的联系,我现在依然能找到一份满意的工作和待遇!!只要记住——你们现在有大把的时间去爬坑。小编也将从以下几个方面,通俗易懂的表达以下自己的经验和想法,希望可以帮助到大家。 , P) d0 p6 f& A% Y9 z" d- X# |9 o2 H' A/ d' o6 x
一、首先有必要了解一些常见的编程语言- j" y' c3 u4 q4 z% I w/ V
/ l1 ~8 f N+ F+ D小编接触到的一些常见的编程语言,c、c++、Java、c#、php、python、javascript、Objective-C、Swift、R等。 ) O: R! s+ X% v7 ~4 k1 k6 I G6 P, R
1.学习的顺序/ I% g7 C" x, U7 S% _4 m
! j! W* x. U3 p C/ J' `- k小编大学课程中有”谭浩强c语言程序设计”这门课程,我当时想学习Java同时也很迷惑,c和java有什么关系?是不是要学习java必须先学习c语言?你们有木有如此迷惑过?现在告诉你,没有半毛线关系!你如果想学java,c#,php等任何一门语言,立即就可以学,没有先学c才能学java的必要条件。只不过是说,你如果有了其中一门语言的基础,学习其它的比较容易入门而已,毕竟所有的编程语言也有一些共性,都会有基本的语法,数据类型,顺序结构等。 w& i1 d M$ ^
# H/ ?$ g1 B* b; k2.语言特性及归类(此部分也可以直接break(跳过)) * w ~# O/ m8 [* i H ' X0 D" L( B* v, d当然以下常见编程语言的分类只不过是我个人的理解及浅薄的经验之谈。做个参考就好。按照语言的特性,大概可以这样归类一下: 5 Q( c; ^2 X4 T& _' w# b' [8 ]0 t5 z% z/ H T0 Q' q4 o
如c、c++语言是面向结构的。c++扩展了c语言的特性,具有一些面向对象的特性。Objective-C据周围同事说是苹果公司对c语言一种封装,反正是用来开发ios应用的,其语言特性和调用方式与c语言很像,因此如果你有c语言的基础,入门ios开发很easy. 2 I0 V. w: ^' |( |6 H0 X1 h. r" w+ \: s/ L w0 q# g' A8 H0 K
如java 、c#是面向对象的。具有抽象、继承、封装、多态等特性,因此你如果学习了其中一门语言,另一门语言也能很快上手。至于面向结构和面向对象有什么区别,小编不知道如何表达,自行百度吧.0 X/ d4 `. u8 i
( o# R! q$ c7 @" w如python、javascript是脚本语言,具有动态语言的特性。意思就是可以再程序运行时改变变量的类型,例如在javascript语言中,声明一个变量赋值为一个数字,运行程序后,你把此变量动态赋值为字符串,没问题是合法的,程序正常运行;相反如果在java(没有动态语言特性的)中声明一个为int类型,如果你给这个变量赋值为字符串类型,程序就会报错编译不通过。 8 R' h Y' z. h5 u' w" P+ F w/ B) ~2 w5 x& d
因此,如果你想学习两种编程语言,建议你不要选择特性一样的两种语言学习,例如你如学习了java,你可以选择Python或者c++学习,这样学习的时候可以比较一下不同特性编程语言各自的优缺点,对你以后做架构,选择业务实现的技术方案有很大的帮助。. h$ Z% i/ N, C% a0 i0 K0 u
c" ?* r6 S- a: l4 r. I7 R3 C* g二、如何选择一门编程语言 ; _# |6 Z- ]+ B: |- i! g' y& ~1 {: i% U
了解了基本的编程语言后,相信你又跌入了该学习哪一门语言的坑中。这个问题的关键在于你不知道学了这门语言能干什么!也就是编程语言的应用领域或者开发方向。 ( w2 y& G4 D5 Y4 f 8 ^+ w( a" Q4 s% E, J( @以Java为例(小编是学Java出身),Java在移动端,服务端,大数据等领取有着广泛的应用,那么你学习Java基础之后就可以选择这个几个方向,移动端就是Android开发,服务端像Javaweb开发,大数据如hadoop技术等。 : d7 i( f; Q% r- l" _. t+ L& f& ?8 ~# v- _5 p5 _
c语言可以 嵌入式方向学习;c++ 可以用来开发游戏、游戏服务器框架及游戏引擎、编译器等;c#可以向 winfrom窗体程序开发(就是window上安装的exe程序,如qq),asp.net网站开发技术,服务端开发,Unity3D游戏开发等;javascript,这个语言的方向就太多了,号称全站开发语言,node.js全栈开发技术,web前端jQuery,Vue.js,移动端技术ReactNative等;python,可以用来做网站爬虫,搜索引擎,也可以开发网站,人工智能领域应用更广泛如数据分析,机器学习等。。。。。% m, B' C- I' E! s. E
( z# z; m5 j% m+ j( y
小编理解的大概也就这么多,说的并不准确,建议大家去谷歌 or 百度,或者去知乎找答案,关键词如java开发方向或应用领域。 " f& Q. F$ d3 I4 [. }( ^ ' [# M1 U; H0 `; L$ a更加强烈建议大家去一些互联网招聘网站如拉勾网看看一些技术岗位,这样定位更加准确." o. V2 S0 i& f) X
+ N& M. _5 k/ T# x