来源:cnblogs.com/three-fighter/p/13641835.html
众所周知,程序员是一个需要不断学习的职业,而幸运的是,在这个互联网时代,知识就在那里,等着我们去获取。
一、在线教程
首先列出一些在线教程网站,这些在线教程网站通常都比较适合入门,可以作为开发学习路上的第一个阶梯,也可以作为工作中的在线文档。
1、菜鸟教程
地 址:https://www.runoob.com/
简 介:在线教程网站,前端学习看这两个网站就够了。
推荐指数:⭐⭐⭐
2、易百教程
地 址:https://www.yiibai.com/
简 介:内容比较全面的在线教程网站。
推荐指数:⭐⭐⭐
3、码农教程
地 址:http://www.manongjc.com/
简 介:大量IT编程入门教程(JAVA, PHP, JAVAsc_ript, C, C++, HTML, CSS等)。
推荐指数:⭐⭐⭐
4、简单教程
地 址:https://www.twle.cn/
简 介:大量IT编程入门教程(前端、移动端、Java、.net等)。
推荐指数:⭐⭐⭐
5、Break易站
地 址:https://www.breakyizhan.com/
简 介:比较多的编程教程(Java、前端、服务端部署等)。
推荐指数:⭐⭐⭐
6、C语言中文网
地 址:http://c.biancheng.net/
简 介:以C语言为主,也包含数据结构、C++、Linux等。
推荐指数:⭐⭐
7、http://jenkov.com
地 址:http://tutorials.jenkov.com/
简 介:一个国外的技术网站,提供了非常不错的Java教程。
推荐指数:⭐⭐⭐
8、http://baeldung.com
地 址:https://www.baeldung.com/
简 介:也是一个国外的技术网站,提供了非常不错的Java教程。
推荐指数:⭐⭐⭐
二、视频教程
上面的在线教程网站以文字性内容为主,同样收藏了一些以视频为主的一些网站,相比较而言,更容易上手,当然,也更加耗时间。
1、B站
地 址:https://www.bilibili.com/
简 介:众所周知,bilibili也可以用来学习,除了番剧、鬼畜之外,b站同样有非常多的高质量的编程教学视频。
推荐指数:⭐⭐⭐⭐⭐
2、慕课网
地 址:https://www.imooc.com/
简 介:比较不错的编程视频教学网站,可以找到比较体系的东西,当然,有些内容要花钱就是了。
推荐指数:⭐⭐⭐
3、中国大学MOOC
地 址:https://www.icourse163.org/
简 介:有很多名校的课程,当然不止CS。
推荐指数:⭐⭐⭐⭐
4、网易云课堂
地 址:https://study.163.com
简 介:有一些计算机编程方面的视频教程。
推荐指数:⭐⭐⭐
5、实验楼
地 址:https://www.lanqiao.cn/courses/
简 介:IT技术课程网站。
推荐指数:⭐⭐
6、我要自学网
简 介:比较多的自学教程,有程序设计内容的分类。
推荐指数:⭐⭐
7、大学生自学网
地 址:http://v.dxsbb.com/jisuanji/
简 介:有一些计算机软件的大学课程。
推荐指数:⭐⭐
8、极客学院
地 址:https://www.jikexueyuan.com/
简 介:IT编程课程网站,付费内容居多。
推荐指数:⭐⭐
三、电子书
学习编程,有些书是必须要看的,实体书就不多说了,某宝、某东等等电商平台都能买到。
如果是想做一些笔记或者不方便携带纸质书的时候,电子书也是个不错的选择。
1、图灵社区
地 址:https://www.ituring.com.cn/
简 介:书籍比较全面的图书社区,电子书的价格是纸质书的一半。
推荐指数:⭐⭐⭐
2、博文视点
地 址:http://www.broadview.com.cn/
简 介:博文视点也是有一些好书的。
推荐指数:⭐⭐⭐
3、书栈网
地 址:https://www.bookstack.cn/
简 介:一个开源书籍和文档分享站点。
推荐指数:⭐⭐
4、计算机书籍控
地 址:http://bestcbooks.com/
推荐指数:⭐
5、it熊猫
地 址:https://itpanda.net/book/
推荐指数:⭐
四、官网
毫无疑问,一项技术,最权威的文档一定是它的官方文档,所有的教程、书籍都是直接或者间接在官方相关文档的基础上完成。所以,编程学习,后面最好还是要看官网的。当然,官网大部分都是英文——其实配合一些翻译插件,没有想象中的那么难。
1、Java
简 介:这个不需要多介绍,Java官网和Java官方API。
推荐指数:⭐⭐⭐⭐⭐
2、Spring
地 址:https://spring.io/
简 介:毫无疑问Spring已经成为Java EE事实上的标准。
推荐指数:⭐⭐⭐⭐⭐
3、MySQL
地 址:https://www.mysql.com/
简 介:MySQL官网
推荐指数:⭐⭐⭐⭐
4、MyBatis
地 址:https://mybatis.org/mybatis-3/zh/index.html
简 介:国内最流行的Java持久层框架,而且幸运的是,MyBatis文档是有中文版的。
推荐指数:⭐⭐⭐⭐
5、Vue.js
地 址:https://cn.vuejs.org/
简 介:国内最流行的JS框架,Vue.js的文档是中文的。
推荐指数:⭐⭐⭐⭐
6、Linux
地 址:https://www.linux.org/
简 介:后端程序员必会的Linux.
推荐指数:⭐⭐⭐⭐
7、Git
地 址:https://git-scm.com/
简 介:版本管理推荐用Git,同样有中文版本的文档。
推荐指数:⭐⭐⭐⭐
8、Dubbo
地 址:http://dubbo.apache.org/zh-cn/
简 介:一款高性能的Java RPC框架,国内用的还是比较广泛,源于阿里,中文文档是有的。
推荐指数:⭐⭐⭐⭐
9、Redis
地 址:https://redis.io/
简 介:最流行的No SQL数据库。
推荐指数:⭐⭐⭐⭐
五、国内博客社区
了解技术动态、解决各种问题都会用到技术博客。
1、CSDN
地 址:https://blog.csdn.net/
简 介:最大的中文技术博客社区,内容较多较杂。
推荐指数:⭐⭐
2、博客园
地 址:https://www.cnblogs.com/
简 介:老牌中文技术博客社区,商业化气息要淡一些,之前广为诟病的UI风格也在今年进行了改进,自定义主题也让能让博客百花争艳。
推荐指数:⭐⭐⭐
3、简书
地 址:https://www.jianshu.com/
简 介:并不是纯粹的技术博客社区,很多伤春悲秋的东西。
推荐指数:⭐⭐
4、思否
地 址:https://segmentfault.com/
简 介:包含博客、问答的技术社区。
推荐指数:⭐⭐⭐
5、开源中国
地 址:https://www.oschina.net
简 介:一个技术博客社区。
推荐指数:⭐⭐⭐
6、51CTO
地 址: https://www.51cto.com/
简 介:一个IT技术网站。
推荐指数:⭐⭐
7、V2EX
地 址: https://www.v2ex.com
简 介:页面风格很朴素,13格很高。
推荐指数:⭐⭐
8、腾讯云社区
地 址: https://cloud.tencent.com/developer
简 介:腾讯云的开发者社区。
推荐指数:⭐⭐
9、阿里云社区
地 址: https://yq.aliyun.com
简 介:阿里云的开发者社区。
推荐指数:⭐⭐
10、开发者头条
地 址: https://toutiao.io/
简 介:一个程序员分享平台。
推荐指数:⭐⭐⭐
11、GitChat
地 址:https://gitbook.cn/
简 介:一个技术博客社区
推荐指数:⭐⭐
12、知乎
地 址: https://www.zhihu.com/
简 介:知乎是个综合性的问答社区,但是聚集的程序员也比较多,有一些高质量的问答和专栏。
推荐指数:⭐⭐⭐
六、国外技术博客社区
上面介绍了一些国内的博客社区,事实上,放眼看世界也很重要。
1、Stack Overflow
地 址: https://stackoverflow.com/
简 介:全球最活跃的程序员技术问答交流社区,有人说程序员的所有问题都能在上面找到答案。
推荐指数:⭐⭐⭐⭐⭐
2、http://dev.io
地 址: https://dev.to/
简 介:不错的技术社区。
推荐指数:⭐⭐⭐⭐
3、DZone
地 址: https://dzone.com/
简 介:http://DZone.com是世界上最大的在线社区之一。
推荐指数:⭐⭐⭐
4、Bytes
地 址: https://bytes.com/
简 介:一个面向开发人员和IT专业人员的交流社区。
推荐指数:⭐⭐⭐
5、Google Developers
地 址: https://developers.google.com/
简 介:google开发社区。
推荐指数:⭐⭐⭐
七、小微型博客
上面列出的博客都是比较大型、综合的博客社区,实际上还有很多比较优质某个技术分类的博客、大厂技术博客、小而美的博客。这些博客可能也会发布到各大博客社区,但是这些博客网站风格不一,各有个性。
1、美团技术团队
地 址: https://tech.meituan.com/
简 介:美团技术团队的博客,干货满满。
推荐指数:⭐⭐⭐⭐⭐
2、阮一峰的网络日志
地 址: http://www.ruanyifeng.com/blog/
简 介:大神阮一峰,博客风格真正做到深入浅出。
推荐指数:⭐⭐⭐⭐⭐
3、Web前端导航
地 址: http://www.alloyteam.com/nav/
简 介:比较全的Web前端导航,包括 团队组织 、开发社区 、 前端门户、框架类库 等等网站的导航。
推荐指数:⭐⭐⭐
4、廖雪峰的官方网站
地 址: https://www.liaoxuefeng.com/
简 介:廖雪峰老师的网站,有一些不错的入门教程。
推荐指数:⭐⭐⭐
5、酷壳
地 址: https://coolshell.cn/
简 介:可以了解陈皓,是个很有个性的人。
推荐指数:⭐⭐⭐
6、人工智能社区
地 址: https://www.captainbed.net/blog-neo/
简 介:不搞人工智能也可以看看,写的很有意思的教程,可以作为科普看看。
推荐指数:⭐⭐⭐
八、开源社区
在学习的过程中,可以学习开源社区的优秀项目,也可以把自己的项目发布到开源社区。
1、GitHub
地 址: https://github.com/
简 介:全球最大开源社区,被戏称为全球最大同性交友网站。
每日推荐一个有趣的 GitHub 项目,可以关注公众号:逛逛GitHub
推荐指数:⭐⭐⭐⭐⭐
2、码云
地 址: https://gitee.com/
简 介:可以看做GitHub的国内版,码云是个不错的替代者。
推荐指数:⭐⭐⭐⭐
九、面试刷题
1、LeetCode
地 址: https://leetcode-cn.com/
简 介:经典的刷题网站,主要是算法题。
推荐指数:⭐⭐⭐⭐⭐
2、LintCode
地 址: https://www.lintcode.com/
简 介:和LeetCode类似
推荐指数:⭐⭐⭐⭐
3、牛客网
地 址: https://www.nowcoder.com/
简 介:一个联网求职学习交流社区。
推荐指数:⭐⭐⭐
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。
本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细节之前,需要了解一些代码优化基本原则。
第一个基本原则是不要过早优化。很多人一开始写代码就奔着性能优化的目标,“让正确的程序更快要比让快速的程序正确容易得多”。因此,优化的前提是代码能正常工作。过早地进行优化可能会忽视对总体性能指标的把握,在得到全局结果前不要主次颠倒。
第二个基本原则是权衡优化的代价。优化是有代价的,想解决所有性能的问题是几乎不可能的。通常面临的选择是时间换空间或空间换时间。另外,开发代价也需要考虑。
第三个原则是不要优化那些无关紧要的部分。如果对代码的每一部分都去优化,这些修改会使代码难以阅读和理解。如果你的代码运行速度很慢,首先要找到代码运行慢的位置,通常是内部循环,专注于运行慢的地方进行优化。在其他地方,一点时间上的损失没有什么影响。
许多程序员刚开始会用 Python 语言写一些简单的脚本,当编写脚本时,通常习惯了直接将其写为全局变量,例如上面的代码。但是,由于全局变量和局部变量实现方式不同,定义在全局范围内的代码运行速度会比定义在函数中的慢不少。通过将脚本语句放入到函数中,通常可带来 15% - 30% 的速度提升。
2.1 避免模块和函数属性访问
每次使用(属性访问操作符时)会触发特定的方法,如和,这些方法会进行字典操作,因此会带来额外的时间开销。通过语句,可以消除属性访问。
在第 1 节中我们讲到,局部变量的查找会比全局变量更快,因此对于频繁访问的变量,通过将其改为局部变量可以加速运行。
除了外,函数中还有的存在,那就是调用的方法。通过将该方法赋值给一个局部变量,可以彻底消除函数中循环内部的使用。
避免的原则也适用于类内属性,访问的速度会比访问一个局部变量更慢一些。通过将需要频繁访问的类内属性赋值给一个局部变量,可以提升代码运行速度。
任何时候当你使用额外的处理层(比如装饰器、属性访问、描述器)去包装代码时,都会让代码变慢。大部分情况下,需要重新进行审视使用属性访问器的定义是否有必要,使用函数对属性进行访问通常是 C/C++ 程序员遗留下来的代码风格。如果真的没有必要,就使用简单属性。
4.1 避免无意义的数据复制
上面的代码中完全没有必要,这会创建不必要的数据结构或复制。
另外一种情况是对 Python 的数据共享机制过于偏执,并没有很好地理解或信任 Python 的内存模型,滥用 之类的函数。通常在这些代码中是可以去掉复制操作的。
4.2 交换值时不使用中间变量
上面的代码在交换值时创建了一个临时变量,如果不借助中间变量,代码更为简洁、且运行速度更快。
4.3 字符串拼接用join而不是+
当使用拼接字符串时,由于 Python 中字符串是不可变对象,其会申请一块内存空间,将和分别复制到该新申请的内存空间中。因此,如果要拼接 n 个字符串,会产生 n-1 个中间结果,每产生一个中间结果都需要申请和复制一次内存,严重影响运行效率。而使用拼接字符串时,会首先计算出需要申请的总的内存空间,然后一次性地申请所需内存,并将每个字符串元素复制到该内存中去。
条件的短路特性是指对这样的语句, 当为时将直接返回,不再计算;对于这样的语句,当为时将直接返回,不再计算。因此, 为了节约运行时间,对于语句,应该将值为可能性比较高的变量写在前,而应该推后。
6.1 用for循环代替while循环
Python 的循环比循环快不少。
6.2 使用隐式for循环代替显式for循环
针对上面的例子,更进一步可以用隐式循环来替代显式循环
6.3 减少内层for循环的计算
上面的代码中位于内侧循环, 每次训练过程中都会重新计算一次,增加了时间开销。
我们沿用上面介绍过的例子,在此基础上使用。可以将 Python 函数 JIT 编译为机器码执行,大大提高代码运行速度。关于的更多信息见下面的主页:http://numba.pydata.org/numba.pydata.org
Python 内置的数据结构如, , , , 底层都是 C 实现的,速度非常快,自己实现新的数据结构想在性能上达到内置的速度几乎是不可能的。
类似于 C++ 中的,是一种动态数组。其会预分配一定内存空间,当预分配的内存空间用完,又继续向其中添加元素时,会申请一块更大的内存空间,然后将原有的所有元素都复制过去,之后销毁之前的内存空间,再插入新元素。
删除元素时操作类似,当已使用内存空间比预分配内存空间的一半还少时,会另外申请一块小内存,做一次元素复制,之后销毁原有大内存空间。
因此,如果有频繁的新增、删除操作,新增、删除的元素数量又很多时,list的效率不高。此时,应该考虑使用。是双端队列,同时具备栈和队列的特性,能够在两端进行 O(1) 复杂度的插入和删除操作。
的查找操作也非常耗时。当需要在频繁查找某些元素,或频繁有序访问这些元素时,可以使用维护对象有序并在其中进行二分查找,提升查找的效率。
另外一个常见需求是查找极小值或极大值,此时可以使用模块将转化为一个堆,使得获取最小值的时间复杂度是 O(1)。
下面的网页给出了常用的 Python 数据结构的各项操作的时间复杂度:https://wiki.python.org/moin/TimeComplexity
字符串是Python中最重要的数据结构,今天我们用一篇文章一起来学习Python中的4种字符串拼接方法。
一、逗号连接
使用逗号形式要注意一点,就是只能用于print打印。
输出时,逗号会自占一个空格。
二、加号连接
这种方式最常用、直观、易懂,是入门级的实现方式。
但是注意,数字不可以直接和字符串用+号拼接,必须先将数字转换成字符串才能拼接。
当拼接的最终字符串长度不超过20时,+号操作符的方式,会比其它方式快得多。
三、%方式
%号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现。例如%s是一个占位符,它仅代表一段字符串,并不是拼接的实际内容。实际的拼接内容在一个单独的%号后面。
类似的占位符还有:%d(代表一个整数)、%f(代表一个浮点数)、%x(代表一个16进制数),等等。%占位符既是这种拼接方式的特点,同时也是其限制,因为每种占位符都有特定意义,实际使用起来太麻烦了。
四、*方式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/51106.html