# Competition **Repository Path**: hdt3213/Competition ## Basic Information - **Project Name**: Competition - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-02-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README java: - 语言基础 - 开发环境配置 - 语法基础: ... - 异常处理 (注意看下异常的最佳实践) - [面向对象](http://www.cnblogs.com/Finley/p/6914518.html) - 引用机制 - [Collections框架](http://www.cnblogs.com/Finley/p/6914522.html) - [并发编程](http://www.cnblogs.com/Finley/p/6914523.html) (记得看java.utils.concurrent中的工具类) - [文件IO](http://www.cnblogs.com/Finley/p/6916762.html) (只看文件部分) - [泛型](http://www.cnblogs.com/Finley/p/7787575.html) - [Java8 Stream](http://www.cnblogs.com/Finley/p/7502580.html) - 语言进阶: - [反射](http://www.cnblogs.com/Finley/p/7788851.html) - 注解 和 AOP - NIO - 内存模型(JMM) - Class Loader - 工程基础 - 项目管理工具: maven, gradle - 版本控制工具: git - 常用工具库: apache commons-lang3, guava - 单元测试工具: junit等 - 应用方向: - Android - 后端 - Hadoop(已经有新技术替代了) python: - 语言基础: - 开发环境配置 - [语法基础](http://www.cnblogs.com/Finley/p/5220324.html) - [函数](http://www.cnblogs.com/Finley/p/6374608.html) - [容器](http://www.cnblogs.com/Finley/p/6374692.html) - [面向对象](http://www.cnblogs.com/Finley/p/5220591.html) - python和java的面向机制大有不同, 深入对比分析会学到很多东西 - [标准库](http://www.cnblogs.com/Finley/p/5572551.html) - json - 时间和日期标准库 - requests (虽然不是内置, 但已是事实上的标准库) - logging - 正则表达式re - python2, python3 兼容 - 语言进阶 - 描述符协议 - 因为GIL的原因python中较少使用多线程模型,实践中更多的使用异步和协程提高效率 - 工程基础 - 依赖控制工具: pip - [virtualenv](http://www.cnblogs.com/Finley/p/5925928.html) - 版本控制工具: git - 测试框架: pytest, unitest等 - 应用方向 - 后端 - 机器学习 (tensoflow等) - 爬虫 (虽然很多人可能觉得爬虫很酷,但这是一个很烦很枯燥的玩意) 后端: - 语言和框架: - java: - 不要再学SSH框架了 - Spring MVC - MyBatis, jdbcTemplate - jetty, undertow, tomcat(这玩意是真慢) - python - django - flask, sqlalchemy - tornado (这玩意更像一个高性能服务器,用来做web开发反而不多) - go - 最近挺火,不过我没写过 - node.js (入坑需谨慎, 异步调用写多了折寿) - express - php (世界上最好的语言,自求多福吧) - ruby - ruby on rails (写得爽,就是工作机会不多) - 协议 - Http/Https协议 - DNS协议 - TCP/IP协议栈,从IP协议到应用层以下协议尽量了解 - 技术 - Linux: centos, ubuntu, debian - 关系型数据库 - MySQL - NOSQL数据库 - Redis - MongoDB (听说有公司商业应用,不过我没见过,用起来还行) - Cassandra, HBase: 分布式数据库 - ElasticSearch: 用来做搜索或日志分析, Lucene的封装,ES语法舒服了很多 - MQ - RabbitMQ - Celery (python专用) - Kafka (我没用过) - RPC - thrift - 服务器 - nginx - 容器化 - docker - 持续集成 - jenkins (已有新技术替代,但jenkins还是很简单实用的) Linux: - bash - 文件系统和文件管理 - 用户管理 - 进程机制 - 各发行版的包管理工具: apt, yum - ssh要会用 - 要会跟着教程在Linux上架服务:nginx, redis, rabbit tips: - 语法并不是很难或是很重要的东西,学习第二种语言时语法不应成为障碍 (函数式语言除外) - 学语言的时候要认真学习常用工具库,不然很多简单功能你都会写得很痛苦 - 学会使用各种语言的依赖管理工具,学会利用成熟的解决方案提高开发效率 - 熟练使用Git