程序员自学书籍(程序员自学书籍哪个好)

程序员自学书籍(程序员自学书籍哪个好)来源 cnblogs com three fighter p 13641835 html 众所周知 程序员是一个需要不断学习的职业 而幸运的是 在这个互联网时代 知识就在那里 等着我们去获取 一 在线教程 首先列出一些在线教程网站 这些在线教程网站通常都比较适合入门 可以作为开发学习路上的第一个阶梯 也可以作为工作中的在线文档 1 菜鸟教程 地 址 https www runoob com 简 介 在线教程网站 前端学习看这两个网站就够了 推荐指数 2 易百教程 地 址



来源: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进制数),等等。%占位符既是这种拼接方式的特点,同时也是其限制,因为每种占位符都有特定意义,实际使用起来太麻烦了。

四、*方式

image.png

编程小号
上一篇 2025-05-31 15:06
下一篇 2025-04-02 16:57

相关推荐

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