30岁学python全栈_30岁了是裸辞学IT还是边工作边自学IT?

我把Python学习分成了三个阶段

第一个阶段:Python的基础知识

初学者需要对Python的基础知识做一个全方位的了解,要清楚什么是条件选择,循环的作用,List集合和Dict字典集合;什么是函数,如何进行异常处理,什么是文件和目录,文件的读取和写入;如何写Python模块,如何在另外一个程序里面去引入模块;熟悉常见的标准库,比如:时间日期,随机数,正则表达式等;要学会使用面向对象的思维来进行编程;总而言之,阶段一主要是打基础,需要掌握一些基本的Python语句,但是正在的开发核心是Web端的开发,所以就有了后面的阶段二和阶段三。

第二个阶段:MVC的Web框架

Web框架很多,这里建议大家学习Django框架,因为Django是一个企业级的框架,目前企业应用的最多;阶段二除了涉及到Django框架之外,还涉及到很多前端的知识,包括HTML、CSS、JavaScript、jQuery等等;

在阶段二除了前后端,还包含数据库,所有的开发如果没有后端的数据是没有意义的,所以需要数据库来存储数据。

如果想真正理解MVC这种设计模型(在Django里面叫MVT)真正运行的过程是什么,当对Mysql数据库的增删改查熟悉之后,就可以使用Pymysql这个模块来操作后台的mysql数据库了。在和数据库交互的时候有两个模式,模式一:原生的SQL,模式二:ORM;原生的SQL语句简单了解即可,后面写程序主要是通过ORM,所以ORM也是必须要掌握的内容。

当阶段二完成后,一些常见的或者不是特别复杂的Web应用程序就可以独立完成了,但是写出来的程序是前后端没有分离的,如果你想对开发的认知提高一个层次,第三个阶段就显得尤为重要,Web应用程序的前后端的框架是一定要分离开的。

第三个阶段:前后端分离的Web框架

最后一个阶段除了涉及到后端的Django框架之外,还必须要掌握前端的框架,比如:VUE 或者React等等;要知道json这样的文本格式是怎么回事;Ajax的异步请求应该如何写,前后端分离后,前端就是通过Ajax和后端交互;

后端部分在之前的阶段二对Django做了基本的了解,在阶段三就需要知道FBV和CBV,在阶段二写的所有的VUE都是基于函数的,在阶段三写的VUE一定要基于类。在后端一个非常重要的设计模型REST Framework,一定要学会使用REST Framework这种设计模型为前端提供API;在阶段三建议还要学习一个数据库mongoDB,来更好的完成数据库调用。

三个阶段都掌握后,从事开发相关的工作,月薪不会低于10k,当然了,你也可以从事人工智能相关的行业

那就需要你多专研算法了

我这里有很多学习过程中积累的干货资料

有需要的参考下图找我来拿

//获取所有赢法

Gobang.prototype.computedWins = function(){

/*

直线赢法

以15列为准

*/

for (var x = 0; x < this.col; x++) { //纵向所有赢法

for (var y = 0; y < this.col-4; y ++) {

this.winsCount ++;

/*

如:

1.组成的第一种赢法

[0,0]

[0,1]

[0,2]

[0,3]

[0,4]

2.组成的第二种赢法

[0,1]

[0,2]

[0,3]

[0,4]

[0,5]

以此类推一列最多也就11种赢法, 所有纵向x有15列 每列最多11种, 所有纵向总共15 * 11种

*/

//以下for循环给每种赢法的位置信息储存起来

for (var k = 0; k < 5; k ++) {

this.wins[x][y+k][this.winsCount] = true;

/*

位置信息

第一种赢法的时候:

this.wins =[

[

[1:true],

[1:true],

[1:true],

[1:true],

[1:true]

],

[

......

]

]

虽然这是一个三维数组, 我们把它拆分下就好理解了

相当于 this.wins[0][0][1], this.wins[0][1][1], this.wins[0][2][1], this.wins[0][3][1], this.wins[0][4][1]

因为对象可以这样取值:

var obj = {

a: 10,

b: 'demo'

}

obj['a'] === obj.a

所有也就相当于 this.wins[0][0].1, this.wins[0][1].1, this.wins[0][2].1, this.wins[0][3].1, this.wins[0][4].1

虽然数组不能这么取值,可以这么理解

所以 this.wins[0][0].1 就可以理解为 在 x=0, y=0, 上有第一种赢法

this.wins[0][1].1 就可以理解为 在 x=0, y=1, 上有第一种赢法

......

以上this.wins[0][0],this.wins[0][1]...可以看作是 this.wins[x][y]

所以第一种赢法的坐标就是: [0,0] [0,1] [0,2] [0,3] [0,4]

*/

}

}

}

for (var y = 0; y < this.col; y++) { //横向所有赢法, 同纵向赢法一样,也是15 * 11种

for (var x = 0; x < this.col-4; x ++) {

this.winsCount ++;

for (var k = 0; k < 5; k ++) {

this.wins[x+k][y][this.winsCount] = true;

}

}

}

/*

交叉赢法

*/

for (var x = 0; x < this.col-4; x++) { // 左 -> 右 开始的所有交叉赢法 总共11 * 11种

for (var y = 0; y < this.col-4; y ++) {

this.winsCount ++;

/*

如:

1.[0,0]

[1,1]

[2,2]

[3,3]

[4,4]

2. [0,1]

[1,2]

[2,3]

[3,4]

[4,5]

3.[0,2]

[1,3]

[2,4]

[3,5]

[4,6]

...

[1,0]

[2,1]

[3,2]

[4,3]

[5,5]

相当于从左至右 一列列计算过去

*/

for (var k = 0; k < 5; k ++) {

this.wins[x+k][y+k][this.winsCount] = true;

}

}

}

for (var x = this.col-1; x >= 4; x --) { //右 -> 左 开始的所有交叉赢法 总共11 * 11种

for (var y = 0; y < this.col-4; y ++) {

this.winsCount ++;

for (var k = 0; k < 5; k ++) {

this.wins[x-k][y+k][this.winsCount] = true;

}

}

}

}

//落子实现

Gobang.prototype.dorpChess = function(){

var that = this;

this.canvas.addEventListener('click', function(e) {

// 判断是否结束

if (that.over) return;

var x = Math.floor((e.offsetX)/30),

y = Math.floor((e.offsetY)/30);

//判断该棋子是否已存在

if (that.allChesses[x][y]) return;

// 检查落子情况

that.checkChess(x, y)

if (!that.over) {

that.player = false;

that.computerDropChess()

}

})

}

// 计算机落子

Gobang.prototype.computerDropChess = function(){

var myScore = [], //玩家比分

computerScore = [], // 电脑比分

maxScore = 0; //最大比分

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值