|
|
编程初学者应该学习什么语言好?* P) t9 L5 E1 g$ |. ~5 Z
每年每天都会有很多新入门的同学提出这个看似简单却又让人一下难以给出准确答复的问题。作为新手,纵然自己抓破脑袋,凭空也想象不出哪种语言更胜一筹;作为过来人,也许所能推荐的仅是自己正在使用的编程语言,也未必适合他人。
" @/ W# F- H# n+ D0 r' t 一入代码深似海,面对世界上使用最广泛的语言 Java、跨平台性非常好的 C/C++、全面集成 .Net 库的 C#、Web 前端开发主流的 JavaScript、灵活轻便的通用型脚本语言 Python、全世界范围内网站使用率最高的 PHP 等 600 多种编程语言时,除去其他因素,如何才能选择出最容易上手的哪种语言呢?
7 i1 B& T, @0 `4 B0 Y5 ]接下来,我们将以最简单的入门级「Hello World」为例,对比几大主流编程语言的代码量。7 O* k6 M7 R0 Y5 ?
▌编程语言之首——Java! q( A4 }0 X, Y" y9 b
public class HelloWorld {' V, N3 d5 ~ S) L) f
public static void main(String args){3 g1 y) L! \1 ]7 T# K7 N3 P t
System.out.println("Hello World!");6 ` s# H" O; Q [0 |) I O
}) k; a5 r8 o. ^% [( y) H9 |
}" `! I. Z1 s* t) \( q9 e5 p6 D1 {! q
▌嵌入式领域的王者——C
6 w$ [: n$ R( G#include
9 Y' h( u/ x1 |" i int main(void) {, u6 N" e( \9 J- @ l+ d. Q
printf("Hello,World!\n");
: ]7 k f0 [, o- u: `# o return 0;
: [5 t2 `9 }' z6 A! d: J}
0 x# }5 l( e% s! y1 s8 x/ }▌多范式编程语言——C++
5 g( @* e4 v, D# G#include 5 e8 d1 `6 q, Y: C/ @+ W- N8 C ^
int main
" J0 I* A; L1 }{ 2 P! I" X$ f) O1 [; M, K
std::cout ) R9 r* q' x" a# B ^, S
▌Web 前端开发主流语言——JavaScript4 w( }5 Y: _8 D
6 s2 a( S% W% e/ m
/ X- P7 {* e0 M; o) \7 j
$ C+ {& [- W+ z- x4 y/ N6 |4 ^) I! O% B1 @0 i& s* V# m5 [4 S
) k7 ?. F/ `+ H- K▌通用型脚本语言——Python
: |6 ^+ @7 ^! t& _0 N5 Mprint("Hello World");) v9 t/ r+ w% _4 W6 _0 |
基于以上,Python 和 PHP 语法相对来说更为简单,甚至曾有不少网友表示「完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能只要 20 行」,无形之中,宣告了 Python 脱颖而出。
0 R" @1 Q7 a' M▌为何程序员多数会选择 Python 作为入门级语言?5 U/ X2 ?6 T6 q7 i6 K% \
在此,估计不少开发者都会予以反驳,自己明明就没有选择 Python,不能一概而论。下面,我们就用数据一窥如今最流行的编程语言。; n9 X, a6 m) q
今年的 3 月份,国外招聘网站 HackerRank 发布了最新版的开发者调查报告。报告显示,对于在校的学生而言,最喜欢的编程语言为 Python,其次为 C++、Java、C 以及 JavaScript。
" M- U/ O9 E8 \' x5 x
; L( D- U3 [/ Z对于已从业的开发者来说,他们心目中最喜欢的编程语言分别为 Python、Java、JavaScript、C、C++。虽说排名有所不同,但是 Python 确实均名列第一。, a1 V5 S9 Z9 m+ L% O$ Z
2 @% K" h* a8 K4 A" {& R2 U
此外,根据 Hacker News 招聘趋势排名,越来越多的公司对掌握 Python 技能的开发者感兴趣。同时从关注编程语言流行度的 PYPL 排行榜来看,Python 以 5.2% 的增长速度超过了 JavaScript,位居第二,它的涨幅比其他任何语言都要快,相比之下,Java 的整体学习趋势略有下降。
5 ]9 L1 w3 p6 V6 n/ V' u' e1 B0 H
) e4 q4 E! X; O$ Q/ ~综合看来,Python 目前虽不及 Java 应用范围广,但在 Go、Swift 这类后起之秀中,Python 无疑是最耀眼的。
6 P/ }6 z& u m& |* u5 H4 i& d7 T▌Python 的优缺点1 L8 I; f9 M4 `3 }/ l- N
Python 究竟凭借着什么样的优势获得了大家的青睐呢?这就不得不从 Python 的功能特性说起:7 k. G) S2 o; u" B. X; J% K) }
7 o3 V% I1 _4 h5 [( }4 _$ @- 其标准库提供了各种功能,旨在简化复杂应用程序的实现;
; w+ F( W- X, C& V; z0 e7 n$ U9 n - 使用高级编程语言;9 G% w, C. A- |2 Z, n
- 使用较少的代码执行基本任务;
. d9 u" d5 L6 d( h! M! b/ f1 ` - 如果与 Java 相比,Python 的代码量要少 3-5 倍;与 C ++ 相比,它的代码量要少 5-10 倍。
3 f& b3 }. I2 A! X/ v1 c+ T - Python 语言支持多种类型,如面向对象、命令式和函数式编程。' D, s( i% J8 i- `$ _4 j$ v
- 其内存管理自动完成。; C' [ Y* G1 ?6 t% [
对于初学者来说,Python 比 Java、C++ 等传统静态语言更具实用性,更容易上手;对于有一定编程基础的开发者来说,学会了 Java、C++、C# 等语言,再反过来学习 Python 可以称得上小菜一碟了。
0 @- d5 |9 \4 e: B# N4 x要说 Python 是否有缺点?答案必然是肯定的。它的缺点主要是的执行速度不够快、单行语句、强制缩进等小问题,和它的优点相比,几乎可以忽略不计。' G. k# Q! d8 D) y9 d, c
▌Python 的应用现状及前景
) R0 L, e) F- n2 h. X- H4 LPython 自 1991 年诞生,至今已有 27 年的历史,其实在国内,豆瓣是最早使用 Python 作为编程语言的网站,其创始人仅用了 3 个月时间使用基于 Python 的 Quixote 框架开发搭建了最初的豆瓣社区的框架。此外,网易的多款游戏、搜狐的邮箱、金山的测试框架等等都是使用的 Python。反观国外,更无需多言,Google、IBM、Facebook、Yelp 等企业均广泛使用了 Python。
$ u) _3 s- K* B5 t- a1 X那为什么早已搭上开源顺风车的 Python 直至近几年才火热起来?这其中缘由必然和如今大热的人工智能和机器学习技术有着密不可分的关系。
9 t. K7 v$ @9 A7 L除了应用于人工智能领域,Python 也可用于 Web 开发。Python 为 Web 编程提供了多种选择。它有一个用于开发 Web 的框架集, 包括 Pylons、Zope2、web.py、Django、TurboGears、web2py 以及 Grok,其中 Django 是 Python 开发最受欢迎和流行的框架。 o: V" }" \- h9 l+ J0 L& d
, W6 J1 `: V9 \# k7 t
此外,Python 在学术研究、电子制造业、金融、数据分析、图像处理等多种领域都有应用,而全栈开发、网络爬虫、数据挖掘、人工智能、Web 开发、系统网络运维、数据分析和计算、图形程序开发等岗位均能胜任。事实上,Python 编程语言也是初创企业的理想选择。毕竟对于创业公司,必须快速地从理念走向实践,时间尤为珍贵。使用 Python,开发者可以使用最少的代码更快地完成复杂的编码。
% s# O6 T' j9 y9 O/ u0 D要说 Python 前景如何?根据著名数据科学网站 KDnuggets 发布的 2018 年数据科学和机器学习工具调查数据显示,Python 作为机器学习常用的编程语言正在不断扩大领先优势。
4 l4 |( r% D0 P; z * _' c- U. D2 c, ^
2018 年最受欢迎工具
7 T9 I* a8 P/ D) g再看如今必须学习 Python 的人工智能工程师,动辄年薪 25W 仅是白菜价。8 q) ?7 @) j! a( K( b

* Z' N& g" K- I7 c l6 v图片来源:校招薪水公众号! T+ C, K# S: Q3 ]. w
基于 Python 易上手的使用性、广泛的应用性以及极具潜力的发展空间,无一不为我们解答了为何程序员会选择 Python 作为入门级语言的这个问题。6 d9 H% m( C1 P+ r
▌Python 学习路线8 c$ k9 p% H. }3 \5 ?
* r4 j. F* d9 z/ r- S$ o2 H6 v: A5 k
1、python语言基础
3 t5 V# V3 b+ N$ i- D(1)Python3入门,数据类型,字符串
4 U0 {; Z/ F, ]( F" ]3 {7 A; F; J/ E(2)判断/循环语句,函数,命名空间,作用域! t1 [8 A: c& C; @
(3)类与对象,继承,多态
$ [& K6 C% m! E/ D(4)tkinter界面编程4 ?3 K3 e. B& A/ q4 ~
(5)文件与异常,数据处理简介 K: H% e/ \' H( a, o, i
(6)Pygame实战飞机大战,2048/ c M/ y5 H( s, P: D4 g
2、python语言高级( a8 h1 t* }, ^) @1 }. ]' m
(1)Python常见第三方库与网络编程
+ J. Z3 d8 r- F2 P& [% y+ W0 N' q(2)Python正则表达式
4 o4 ^ k. ^3 j2 p9 s(3)邮箱爬虫,文件遍历,金融数据爬虫,多线程爬虫
" Z( \7 a8 P( P* E(4)Python线程、进程
) T) }3 p$ K+ y2 k- J- j(5)Python MySQL数据库,协程,jython
, L8 v& _# V+ T1 L% r; `; e3、python全栈工程师前端# ~& ~% _+ Y& A
(1) HTML& _* A/ z a) I
(2) HTML5" H9 _6 U7 v z% a. j+ ~% T
(3) CSS* N6 n, [, { _: _ G
(4) CSS3
- F( u$ _. A6 m" C( i: @(5) 网页界面设计实战
9 E C; N$ i9 ]$ V% K+ p1 s6 t- B, r, z/ l(6) javaScript% D7 p" ]7 q+ j' k4 {/ X P- {
(7) jquerry' N; H/ P' G( s" u3 q
(8) jquerry EasyUI, Mobile简介,photoshop6 [& _8 k# |; ?# q' D
(9) Bootstrap
5 N v) t4 E1 f3 F4、python全栈工程师后端' c5 _1 n+ B# I T. {
(1) Django入门! ^) [, m0 k- h0 S
(2) Django高级
6 y8 n$ ?4 a. a% W(3) Django实战
2 N) S- m. R& F1 u7 N3 J2 V+ s" k5、python全栈工程师后端高级! j: E# _$ k# T5 B" D
(1) Flask开发原理% }+ {# g7 I/ h8 a# A& f {
(2) Flask开发项目实践! M" N5 V k3 |, {& m
(3) Tornado开发原理/ p# z# s C: C* B) ? ~: z
(4) Tornado开发项目实践& A. p/ \2 U9 C# |3 u1 C/ |+ a
6、Linux基础
: ^9 |$ L8 d. |) z- }5 S P( @(1) 文件处理命令
3 u2 e1 q/ f0 X; C+ {3 s& C! ?(2) 权限管理命令# v! @; `2 Y# w" S2 N3 I
(3) 帮助命令; T. R! M6 y4 \' N B
(4) 文件搜索命令
7 i( A5 c! ~0 l% ]. n(5) 压缩解压命令; L/ X, t( B6 |
(6) 命令使用技巧
4 \' C2 c9 B0 ] L3 [: V(7) VIM使用
- M, Q$ d2 i$ \5 I(8) 软件包管理
: D1 _: w2 d* O4 c# e$ H) F(9) 用户和用户组管理3 f4 H6 R. V, Y5 j
(10) Linux Shell开发5 Y' I+ \9 m. D; }; a- r! P/ w9 E
7、Linux运维自动化开发
5 n1 z) P- [7 \8 v4 @6 `( b4 R+ t(1) Python开发Linux运维
& _) a# l' j, H( D( r(2) Linux运维报警工具开发
( z+ \: l9 D, U' V& B# s. d) J$ ]! B(3) Linux运维报警安全审计开发
" Z. v. C1 @, A4 l8 g(4) Linux业务质量报表工具开发; v0 D6 C: ^& j
(5) Kali安全检测工具检测
7 I, R1 _4 N5 n& q2 Z Z(6) Kali 密码破解实战8 n1 J! x1 x" {; O( R$ n9 `6 N( ~, o6 {
8、python数据分析
+ U' e) ]1 i) \(1) numpy数据处理4 A6 Y4 q( r- [* X8 D) Y- l2 l! x* }/ i
(2) pandas数据分析
5 E" t! D- K0 }4 {4 T(3) matplotlib数据可视化
( u. @9 C2 i! I6 `: \3 R4 Y. p" z' n(4) scipy数据统计分析
* G( o+ D" O! @) Z% y(5) python 金融数据分析
4 ^% F% [2 I9 X0 P* Q0 Y9、python大数据4 b# L7 v% Q7 V9 h5 q- Q+ R
(1) Hadoop HDFS
! o3 l+ ?4 I& a H' W. N(2) python Hadoop MapReduce% I y( l9 v; v, G8 I, g( v7 S
(3) python Spark core. O5 c# V6 o: j) z- w t( j& ?. _
(4) python Spark SQL! H: l/ P, a1 [( z1 J2 W n
(5) python Spark MLlib7 j8 O- E' o! E
10、python机器学习
" R! Y0 l, n5 B( ? p5 V(1) 机器学习基础知识简介- g1 S0 b+ m/ r) f7 p! y
(2) KNN算法
' |) i5 h# h( G& K& m# ?. X: R(3) 线性回归
; P0 z% a$ F# o: u& b(4) 逻辑斯蒂回归算法0 G ^8 ]9 v' i" F. M9 k, G
(5) 决策树算法
. R* F0 l6 e `$ q(6) 朴素贝叶斯算法
1 c' n8 P' t! |(7) 支持向量机
! |% H% d8 R/ |" R& Z' e(8) 聚类k-means算法
2 X/ A8 @; P# b$ A/ J0 O6 f$ p$ j7 l按照上面的Python学习路线图学习完后,基本上就可以成为一名合格的python开发工程师) h9 U( D' z! E, y. H/ Y) J
▌Python 入门知识点及视频学习
( N; o p" z1 R" T r+ K% }) z# x
+ F' T4 S) Z5 j! h$ \4 X
▌Python 的学习,如何从 0 到 1? }; F' l6 B! ^, {
对于全能语言 Python 的学习,想要从 0 到 1 必须得循序渐进。最佳的方法就是找一本适合自己的图书。
8 T( ?7 z: L" t! d2 Y Python项目案例开发从入门到实战, W1 g0 u5 _1 G9 ~# ~ a0 J
爬虫、游戏和机器学习
+ n& u1 p. }- V, [( u
3 t# `5 H- d$ v& X# X600分钟超长视频讲解!本书案例具有实用性,例如校园网搜索引擎、小小翻译器、抓取百度图片这些爬虫案例略加修改可以应用到实际项目中;还有通过微信通信协议开发微信机器人、机器学习的文本分类、基于卷积神经网络的手写体识别等案例;另外是一些大家耳熟能详的游戏案例,例如连连看、推箱子、中国象棋、网络五子棋、两人麻将、人物拼图和飞机大战等游戏。0 W0 U5 g) i1 Y+ q9 Z
8 b C" A) n) {# F$ g. q: L本书配套视频演示& J9 ?! F- a5 p/ H
8 V' \6 w, q$ c; e3 \扫描,京东优惠购书中...2 E, p f% `* ?( v$ n$ M- `4 Z
; Z' {; i8 x, |8 B2 ~
扫描,当当优惠购书中...8 ]; M1 F2 M5 q
凡是在京东购买用户,将订单和评价截图发到邮箱itbook8@163.com3 E6 N8 \ V4 L( @6 i2 L
将获得额外Python大礼包(如下图样例)* y& C" _9 u2 z; ]+ {* y( k" o

' S/ [8 B3 @- w1 @3 t3 ?更多图书推荐
$ B$ Z% P' r0 w5 K, F- b
+ ~# B4 b2 N& v4 X' w$ x, q3 ~扫码优惠购书
1 f5 t+ i. M* G+ {本书是一部系统论述 Python编程语言、 OOP编程思想以及函数式编程思想的立体化教程(含图书、答疑服务、教学课件、源代码及视频教程)。' r- n% ]3 y, s: J5 k$ o3 }
! b7 K$ p6 v/ \9 Z. E; q# c# f6 k1 M/ g+ B2 z0 [+ \
6 J/ b, q8 E% H0 @扫码优惠购书6 W9 K# M! [: ^+ U
本书面向所有对机器学习与数据挖掘的实践及竞赛感兴趣的读者,从零开始,以Python编程语言为基础,在不涉及大量数学模型与复杂编程知识的前提下,逐步带领读者熟悉并且掌握当下最流行的机器学习、数据挖掘与自然语言处理工具,如Scikitlearn、NLTK、Pandas、gensim、XGBoost、Google Tensorflow等。/ }- K; v: ?5 ^" o
) l# [- _2 T! a+ i( a$ e5 O9 b
扫码优惠购书 b6 A4 p' _; r. q9 G; W9 t; |
全书共分16章,对Python内部工作原理进行了一定深度的剖析,适当介绍了Python代码优化、系统编程和安全编程的有关知识,满足不同层次读者的需要。
$ g! n% ?9 [$ i8 |
# _3 t {/ c! L$ C6 c) k
- a( g) m8 e3 q6 L9 Z/ d
7 _8 U. V Y; w Q- ] 福利(免费送书) 长按下面图片,识别小程序,即可参加抽奖,本次共提供12本Python编程的图书,随机抽奖!(奖品一周内寄出)
. m8 U' ? Z* Y- f& X6 W0 W l& J, V
百分百中奖:只要把本篇文章分享到朋友圈,并截图发到邮箱huohu2019@qq.com,都可以获得5套Python学习视频及多套知识图谱。; v$ ?+ W3 y- `+ Z/ v& l N% g! a
" R, R* d% C- W- K4 H“人生苦短, 我用Python” # S) ~, G/ m" R9 Z" j8 ^( y
# [( P0 T, g. e% w
print('\n'.join([''.join([('AndyLove'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|