算是老程序员了吧,毕竟从大学开始,接触编码也10年有余,学过C,C++,C#,JAVA,JavaScript等各种语言,其实学习语言的套路都差不多,主要分两个大的方面:
1. 语法,特性,API等语言编码使用角度
2. 搭建项目,完成工程化的建设角度
一、编码使用角度
在编码使用上,每个语言都大同小异,随便找基本教语言的书对比一下,就知道了,比如:
《Python编程:从入门到实践》章节如下
第一部分 基础知识
第1章 起步
第2章 变量和简单数据类型
第3章 列表简介
第4章 操作列表
第5章 if语句
第6章 字典
第7章 用户输入和while循环
第8章 函数
第9章 类
第10章 文件和异常
第11章 测试代码
《Java编程思想》目录如下
第1章 对象导论
第2章 一切都是对象
第一个Java程序
第3章 操作符
第4章 控制执行流程
第5章 初始化与清理
第6章 访问权限控制
第7章 复用类
第8章 多态
第9章 接口
第10章 内部类
第11章 持有对象
第12章 通过异常处理错误
第13章 字符串
第14章 类型信息
第15章 泛型
第16章 数组
第17章 容器深入研究
第18章 Java I/O系统
第19章 枚举类型
第20章 注解
第21章 并发
第22章 图形化用户界面
从目录基本上可以看出来,很多东西是一样的:
操作符、流程控制(循环,if,else)、变量及作用域、类、对象、字符串处理、IO、数组字典等使用、异常处理。因为这些基本上是一个高级语言都应该有的内容,不过python有一些特别的内容,因为它真的很灵活,后面一点一点详细记录吧
二、工程建设角度
学会了语言的使用就可以做项目了?答案是。。。肯定的,哈哈,不过做出来的东西肯定不行,工程化的思维是经验的积累,是有效合理的完成大系统的基础。这跟盖房子一样,语言的特性就像砖瓦水泥钢筋,有了这些东西,确实可以造小房子,但是如果没有很好的工程图纸和作业流程,要想盖摩天大楼,那肯定是不可能的
软件工程讲的是软件生命周期的管理,这是一个最佳实践:
需求-方案-测试-发布-运维
在生命周期的基础上,还需要加上一个: 多团队合作
跟技术本身相关的是:
多团队合作: 语言的依赖管理怎么做?
方案: 语言特性是什么,适合使用什么样的设计模式去搭建框架?
测试发布: 代码怎么打包发布到各个环境?
运维: 如何检测代码在线上环境的运行情况?
有些东西是只适用于大团队的,但是依赖管理这个是基础,比如JAVA的jar包依赖package的设计,python的包和模块的设计等,合理的规划才是体现一个工程师能力的地方
所以,我基本上按照这样的思路去学习Python,在这个基础上,我会把Python跟JAVA、JavaScript做类比,去看看有什么异同,毕竟我对JAVA特别熟,这样可以有效的提高学习效率和效果