活动:

链接:【有奖评测】技能树评测,送CSDN大礼包、周边礼品及现金奖励!-CSDN社区

目录

一、内容

优点:

不足:

参考资料内容质量问题:

习题无解析问题:

二、产品功能

题目练习问题:

三、UI 界面

技能树入口建议:

UI内容展示形式建议:

四、用户激励

五、使用体验

六、改进建议


由于自己进来在学习技能树的内容

现在暂位全站学习达人top1,每日一练暂位top1,1~16期学习榜均上榜用户。

说这些只是想说明以下的测评并不是主观的臆想,而是有了实践的检验。

下面我们直接进入正题。

一、内容

优点:

就现有的技能树来说,技能树的内容比较充实。技能树中图文结合得解析很好,易懂,形象。编程语言技能树较为基础,适合初学者入门学习。

再者就是python技能树有视频讲解,这一点很赞

Neo4j

OpenCV技能树

PostgreSQL

这一点PostgreSQL技能树、OpenCV技能树、Neo4j技能树等做得比较好。

不足:

不足之处就是算法技能书无法选择语言进行练习,算法技能树都是C语言的题目和题解,我看到算法技能树中的大部分题目在CSDN中都是可以搜索到其他语言的题解的,所以我希望可以添加更多语言模块。

参考资料内容质量问题:

还需要改进的就是参考资料版块了。

以下面这道题解为例。

 大家第一眼的印象是什么?我第一眼的印象就是觉得很乱(对事不对人),这里应该是整数N,然后A1应该是等于A_1的,1是下标,文中数值部分出现了三次重复。这给我的第一感觉就是复制粘贴,这种重复出现的现象应该是被复制平台的防盗措施。所以大多数人可能是没心情看资料然后直接答题,打错了之后也没资料参考,不想麻烦去搜索直接继续蒙。这也是大多是题目通过率较低的原因(通过率大多在30%左右)

那么我们对图中你内容进行修改

-----------------------------------------------------

给定三个整数数组

A = [ A_1 , A _2, … A _n ] 
B = [ B_1 , B_2, … B_n ] 
C = [ C_1, C_2 , … C_n]

(下标n = 1, 2, 3....n)

请你统计有多少个三元组 ( i , j , k )满足:

  • 1 ≤ i , j , k ≤ N
  • A_i < B_j < C_k

输入格式

第一行:包含一个整数 N。

第二行:包含 N 个整数 A_1,A_2,…A_n

第三行:包含 N 个整数  B_1,B_2,…B_n

第四行:包含 N 个整数 C_1,C_2,…C_n

输出格式

输出一个整数表示答案。

思路

我自己想的时候是枚举 A 组中的每一个元素,然后B 和 C中的边界点,然后相乘。但是自己想错了, 因为 B和C 有关系,所以不能直接相乘。

那么其实可以枚举 B中的每一个点,再根据 B_i 找到 A, C中小于B_i 的数 和 大于B_i 的数 ,因为如此分,A和 C 就是独立存在,可以用乘法原理

如果暴力解决,那么必然是需要 O(n^3)的复杂度枚举三个点再判断其大小,必定超时

所以可以想办法优化,可以看出我们找小于和大于B_i的数时,可以按照以下步骤

  • 排序 + 二分找到边界点
  • 前缀和求小于 b i b_i bi​ 的个数和 大于 b i b_i bi​ 的个数
  • 双指针

--------------------------------------------------------------------

这样修改也不能说有多好,但是基本是可以看得清晰

原文链接:递增三元组

习题无解析问题:

在学习技能树后进行答题时会遇到一些参考资料之外的题目,我们学习技能树大多时先学习参考资料,接着做练习来巩固所学的知识,但是所做的题目却没有解析。虽然设有讨论区,但是讨论区一般活跃度不高,自己做题后可能不知道自己选错错哪了,选则对了但也不懂为什么对。所以我觉得有必要在做题后提供一份选项的错误解析

二、产品功能

题目练习问题:

有些题目得选项都是错的,存在bug

#-------------------------------------A
import os
import hashlib
import requests
import asynciodef url_file_name(url):ext = os.path.splitext(url)[-1]hash_name = hashlib.md5(url.encode('utf-8')).hexdigest()return hash_name+extdef download_img(img_url):img_bytes = requests.get(img_url).contentfile_name = url_file_name(img_url)output = f'/tmp/{file_name}'with open(output, 'wb') as f:f.write(img_bytes)print(f'img downloaed at: {output}')await asyncio.sleep(1)def test():urls = ["https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-mid.csdnimg.cn/release/static/image/mid/ask/754909759626128.jpg","https://img-ask.csdn.net/upload/201510/22/1445491909_384819.jpg",]tasks = [download_img(url) for url in urls]loop = asyncio.get_event_loop()loop.run_until_complete(tasks)loop.close()if __name__ == '__main__':test()
#---------------------------------------------B
import os
import hashlib
import requests
import asynciodef url_file_name(url):ext = os.path.splitext(url)[-1]hash_name = hashlib.md5(url.encode('utf-8')).hexdigest()return hash_name+extasync def download_img(img_url):   # 这里和A不同img_bytes = requests.get(img_url).contentfile_name = url_file_name(img_url)output = f'/tmp/{file_name}'with open(output, 'wb') as f:f.write(img_bytes)print(f'img downloaed at: {output}')await asyncio.sleep(1)def test():urls = ["https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-mid.csdnimg.cn/release/static/image/mid/ask/754909759626128.jpg","https://img-ask.csdn.net/upload/201510/22/1445491909_384819.jpg",]tasks = [download_img(url) for url in urls]loop = asyncio.get_event_loop()loop.run_until_complete(tasks)loop.close()if __name__ == '__main__':test()
#---------------------------------------------------C
import os
import hashlib
import requests
import asynciodef url_file_name(url):ext = os.path.splitext(url)[-1]hash_name = hashlib.md5(url.encode('utf-8')).hexdigest()return hash_name+extasync def download_img(img_url):    # 这里和A不同img_bytes = requests.get(img_url).contentfile_name = url_file_name(img_url)output = f'/tmp/{file_name}'with open(output, 'wb') as f:f.write(img_bytes)print(f'img downloaed at: {output}')await asyncio.sleep(1)def test():urls = ["https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-mid.csdnimg.cn/release/static/image/mid/ask/754909759626128.jpg","https://img-ask.csdn.net/upload/201510/22/1445491909_384819.jpg",]tasks = [download_img(url) for url in urls]loop = asyncio.get_event_loop()asyncio.wait(tasks)  # 这里和B不同loop.close()if __name__ == '__main__':test()#------------------------------------------------Dimport os
import hashlib
import requests
import asynciodef url_file_name(url):ext = os.path.splitext(url)[-1]hash_name = hashlib.md5(url.encode('utf-8')).hexdigest()return hash_name+extdef download_img(img_url):   # 这里和c不同img_bytes = requests.get(img_url).contentfile_name = url_file_name(img_url)output = f'/tmp/{file_name}'with open(output, 'wb') as f:f.write(img_bytes)print(f'img downloaed at: {output}')await asyncio.sleep(1)def test():urls = ["https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-mid.csdnimg.cn/release/static/image/mid/ask/754909759626128.jpg","https://img-ask.csdn.net/upload/201510/22/1445491909_384819.jpg",]tasks = [download_img(url) for url in urls]loop = asyncio.get_event_loop()loop.run_until_complete(asyncio.wait(tasks))  # 这里和A,c不同loop.close()if __name__ == '__main__':test()

可以看到这四个选项都是不同的,但是我选的时候每个选项都选了一遍(每一段不同代码)但是没有一个是对的,我重复进行了两次,然后第二天再次做这道练习时就通过了。通过的答案和上面的是个选项的代码都不同。

我就有些搞不懂了,可以先把正确答案藏起来的吗?可能事出现了某个bug。

import os
import hashlib
import requests
import asynciodef url_file_name(url):ext = os.path.splitext(url)[-1]hash_name = hashlib.md5(url.encode('utf-8')).hexdigest()return hash_name+extasync def download_img(img_url):img_bytes = requests.get(img_url).contentfile_name = url_file_name(img_url)output = f'/tmp/{file_name}'with open(output, 'wb') as f:f.write(img_bytes)print(f'img downloaed at: {output}')await asyncio.sleep(1)def test():urls = ["https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-ask.csdnimg.cn/upload/1623844642974.jpg","https://img-mid.csdnimg.cn/release/static/image/mid/ask/754909759626128.jpg","https://img-ask.csdn.net/upload/201510/22/1445491909_384819.jpg",]tasks = [download_img(url) for url in urls]loop = asyncio.get_event_loop()loop.run_until_complete(asyncio.wait(tasks))loop.close()if __name__ == '__main__':test()

三、UI 界面

技能树入口建议:

技能树简洁的风格个人觉得很好,条目清晰。

一点小建议就是希望将python进阶技能树的入口也像移动端一样单独列出来,再手机很容易知道有python进阶技能树和容易就找到了python进阶技能树的入口。但是对于pc端来说可能不那么明显,可能找不到或是不知道还有python进阶技能树

pc端

移动:

UI内容展示形式建议:

在学习python技能树的时候我发现,有时展示的能容过长,而窗口却固定了,这就需要其他方法来移动展示的内容。

 

因为要移动到最下端才出现移动内容的滑块,对于一些较长的文章这样就显得很麻烦,所以我一般是使用鼠标中键来移动内容。

这里题的建议就是给实时显示页面添加左右移动的滑块,或者允许读者改变笔记区域的任意宽度(蓝色方框),现在虽然也可以改变笔记区域的宽度但是移到最小还是会遮挡住一部分内容。而移动端就没有这样的问题。

四、用户激励

勋章、学习榜单和活动都对用户产生了较好的激励效果。

这里要题的建议时排行时不应仅仅按照解锁的知识点来排榜单,还应加入正确率这一因素来制定榜单。因为正确率也体现了个人的学习效果,解锁知识点多少+正确率相结合则可以体现个人学习的效率,以此来排名个人感觉更加合理。

五、使用体验

个人体验来所还是不错的。

学习这些技能树学到了很多的知识,做习题初步检验了学习成果,加深了学习印象。就是还感到上诉的不足,在移动端部分技能树内容单一不够系统,可以拓展自己所学知识但是章节间的联系不强,内容较为分散,我想章节可以参考一些经典书籍的学习路线和章节排布,希望后面可以改进,增加更多技能树。

六、改进建议

综合上述的建议。

  1. 为算法技能树增加更多编程语言练习
  2. 激励更多解题博主投稿,提高参考资料的质量,严格审核抄袭行为
  3. 增加技能树习题的解析
  4. 修改选项无正确答案的bug
  5. 为python技能树增加独立入口
  6. 改进技能树资料阅读时显示遮挡问题
  7. 将正确率和解锁知识点数量共同作为学习榜单排名依据
  8. 技能树内容单一不够系统、章节间的联系不强,内容较为分散

以上就是目前想到的测评内容。

CSDN技能树实践测评:实践是检验真理的唯一标准相关推荐

  1. 实践是检验真理的唯一标准 - 脱壳篇02

    实践是检验真理的唯一标准 - 脱壳篇02 让编程改变世界 Change the world by program   实践是检验真理的唯一标准,但真理也是先从实践中总结出来的. 所以按照这个伟大的规律 ...

  2. 实践是检验真理的唯一标准2 - 脱壳篇03

    实践是检验真理的唯一标准2 - 脱壳篇03 让编程改变世界 Change the world by program 让我们愉快的开始今天的课程吧 实验程序及课后作业: http://bbs.fishc ...

  3. “实践是检验真理的唯一标准”是公理,公理是原点,原点是循环论证

    我说的都是对的. 为什么? 因为"我说的都是对的"是我说的,而我说的都是对的,所以"我说的都是对的"是对的. 实践是检验真理的唯一标准. 为什么? 因为&quo ...

  4. 去重函数-【实践才是检验真理的唯一标准】

    去重函数 ,首先需要从小到大排列, 网上有很多人说, 那些重复的数字放在了数组的后面,经过实践才知道 那是错误的,只有经过实践的检验才是真理 #include<cstdio> #inclu ...

  5. 三、Camunda工作流的表和用途说明(实践是检验真理的唯一标准)

    本人在工作中用的Camunda7.11版本共47张表. camunda工作流的表大体上分为 5 类: ACT_RE_*: 'RE'表示流程资源存储,这个前缀的表包含了流程定义和流程静态资源(图片,规则 ...

  6. 实践是检验真理的唯一标准——《精益创业实战》让你的成功飞起来

    实践出真知 能运用一套方法不算成功,能拿出成绩来才算成功.精益创业很吸引我的一点就是一套方法体系,你可以根据它来制订更加有针对性的步骤.你可以而且完全应该用验证产品的方法来验证你自己制订的步骤. -- ...

  7. 实践是检验真理的唯一标准

    今天一直在作实验,WRK+WinDBG+VPC的调试环境搭建.从资料上看本身没什么难度,而且可以让Windows在"F5"的控制中走走停停,应该是很爽的样子,可实际却...... ...

  8. Python: 用xlrd读取Excel文件(*.xlsx) 实践才是检验真理的唯一标准!!!

    Python: 用xlrd读取Excel文件(*.xlsx) 网上有不少例子但是不知道都检验没,我就新测遇到这个问题 import os import xlrd, sys# # todo 打开excl ...

  9. 实践是检验真理的唯一标准!

    博客检验: 1. dialog.setCancelable与setCanceledOnTouchOutside的区别 作者1:正确:dialog.setCancelable与setCanceledOn ...

最新文章

  1. 疫情对房地产的后期影响:再见已不是从前
  2. linux命令--df命令du命令
  3. 【安全漏洞】某CMS后台防护逻辑漏洞导致GETSHELL
  4. (转)SpringMVC学习(一)——SpringMVC介绍与入门
  5. Mysql - 安装与配置
  6. excel条件格式详解
  7. 通过脚本下派WsusAgent3.0.exe(续)
  8. diy 扫地机器人 滚刷_扫地机器人无法完成的使命,莱克吉米W7智能洗地机帮你完成...
  9. 建立Groovy开发环境
  10. Active Directory之强制占有操作主机
  11. HTML元素分类【三种类型】
  12. python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
  13. java判断日文_java判断字符串是否中文、日文
  14. 百度地图api 城市代码(citycode)
  15. 十六进制 转 二进制方法汇总
  16. 个人简历模板 个人简历表下载 个人简历模板下载
  17. 华硕路由架设php,华硕 RT-AC68U 路由模式默认 VLAN
  18. 售前工作感悟:思想决定售前深度!
  19. 微信小程序中使用阿里矢量字体图标
  20. NAT444技术简介

热门文章

  1. 如何看计算机网络中的“节点”和“结点”
  2. xp系统同步服务器,xp文件同步服务器地址
  3. RLT USB WiFi驱动源码分析(Type A)
  4. Python基础编程03
  5. 如何有效的进行7S管理_7S巡检管理系统基于微信的7S管理
  6. php中按首字母查询城市,thinkphp 根据拼音首字母全国城市排序
  7. 苹果手机功能大全介绍_手机录音功能在哪里?一键开启苹果录音功能
  8. 应用系统中的报表如何制作
  9. Google Earth Engine(GEE)——利用sentinel-2数据
  10. CSS笔记:漂亮的卡片投射阴影