该界面下每天都会推出每日一题,如果做对有额外的奖励。用户既可以按照默认的顺序依次刷题,也可以筛选不同难度、不同专题的问题进行专项训练。
力扣与各大企业合作,会定期推出各种种类的竞赛,用户可以免费参与。竞赛限时且实时更新排名,在竞赛中结果优异的用户可以获得特定企业的面试/就职机会。
力扣提供了丰富的题库,并且大多数题目都有用户参与讨论或者发布题解,这对于不熟悉算法的小白非常友好!
对于希望体验限时上机的小伙伴来说,力扣的比赛也是一个很不错的选择。比赛的过程和大一的程设上机类似,会给出样例、数据范围和当前通过的人数,系统会自动实时计算出排名,更新各题目的通过率,可以供希望参加比赛的同学练习和模拟。
力扣的用户主要集中在30岁以下的年轻人,包括在校学生,IT求职者,IT从业者等。我国绝大部分程序员年龄都不到35岁,超过一半的程序员年龄在23-30岁之间,力扣的用户对准了这部分群体。这部分群体可以概括为以下五类:
洛谷的用户主要是参加noip、noi、acm的选手以及对代码感兴趣的青年。这部分群体可以概括为以下三类:
1.已经具有良好的编程基础、算法基础,已经在国内外知名编程竞赛中获奖并以写代码为乐的年轻人。2.具备一定的编程基础,了解基础的算法知识,渴望通过刷题来提升自己,尝试冲击ACM、noip等竞赛金牌的学生。3.刚入门或尚未入门,希望多接触、了解编程,通过编程解决问题、提升代码能力的青年。
力扣
结论:非常推荐
洛谷
这两个网站都需要大量的前期工作,例如调研用户需求、建立题库、与企业建立合作关系等工作,这些工作计算机大学毕业生往往没有这个能力来做好,需要有专门的团队来完成。
1.题型分类更加清晰。对于想要系统学习算法的同学而言,通过洛谷可以按照算法类别逐个递进来学习,避免遗漏和重复,强化学习效果,提升学习效率。
2.更新更加频繁。每天洛谷都会更新题库,还会定期举办面向广大用户的比赛,更新频繁,满足用户多样化的需求。
缺点有:
1.界面较为卡顿。在竞赛的提交高峰期,提交界面有时需要加载近5分钟才能出结果。即使是在日常使用时,使用北航的OJ系统服务器响应速度也明显比力扣的响应速度要快。
2.反馈不够及时。对于使用过程中出现的问题,无论是去github上对应的issue区进行反馈,还是在留言板书写反馈,都需要至少5天才能够收到反馈。
在我心目中,力扣由于其定位准确、使用方便、功能强大,是同类产品中的NO.1,洛谷由于其算法齐全、用户群体庞大,也是同类产品中的NO.1。
对于Bug1(提交按钮无法在搜狗浏览器下正常显示的问题),我认为原因主要是测试把关不严,没有尝试在各大主流浏览器(包括搜狗浏览器)下测试。要知道,搜狗浏览器市场占有率为4.72%,根据第四十四次中国互联网发展报告,我国网民人数为8.54亿,那么该浏览器的使用人数超过4000万。而力扣不应该遗漏如此多人使用的浏览器。
对于Bug2(快速切换中英文操作后提交记录消失的问题),我认为这主要是开发人员粗心大意。对于切换中英文这种辅助功能,很可能是在该网站已经上线以后根据用户反馈新增的功能,目的是拓展市场、适应更多人群的需要。但是,新增功能的开发人员为了图省事没有直接翻译,而是想当然的把该网站跳转到英文对应的网址,从而遗漏了用户提交记录可能在切换时没有及时更新的问题。
对于Bug3(在线测试执行用例的结果与提交评测的结果不一致),我认为这主要是在总体设计评测机运行步骤时的疏忽,没有考虑在评测之前先将环境清空成为默认环境,而是保留了上一次运行其他代码的运行环境。
我认为,这些Bug都是因为软件团队事先没有预料到这种情况而产生的,并非故意不修复。
力扣目前市场上已有的同类产品主要有牛客网。上述产品的定位是打造一个为全球程序员提供IT技术职业化提升的平台,提供了完善的在线判题服务、学习工具、社区讨论及模拟面试功能,全方位打磨程序员职业所需的核心技能。力扣与牛客网主要是竞争关系,目前两个巨头已经占据了IT技术提升平台市场份额的75%。根据网站流量统计结果,力扣的用户量大致为牛客网的2倍,因此估计力扣在竞争中处于优势地位,约占市场份额的50%,牛客网占据了25%。洛谷目前市场上已有的同类产品主要有C语言网。上述产品的定位是为冲击ACM金牌的选手提供系统训练的平台,提供了完善的算法介绍、用户讨论等功能。洛谷与C语言网主要是竞争关系,但是洛谷在竞争中处于绝对优势,占据了该领域大部分的市场份额。
力扣的用户主要集中在30岁以下的年轻人,包括在校学生,IT求职者,IT从业者等。我国绝大部分程序员年龄都不到35岁,超过一半的程序员年龄在23-30岁之间,力扣的用户对准了这部分群体。同时也由于年龄更大的程序员其学习动力及精力均有所下降,力扣可能不再符合这部分人IT职业化提升的路径。表面需求是通过刷题来提升自己、找到更好的工作,潜在的需求是让平台提供更多的进入企业的机会。洛谷的用户主要是学习算法的高中生和大学生,典型的用户可以是这样的:某大学计算机专业的学生小王,年龄21,全日制大学本科在读,已经学习了两年算法,现正努力冲击ACM奖牌,潜在需求是通过该奖牌在未来的就业中取得优势,以及获得学校对于ACM奖牌学生的保研加分。
我要在当前软件的基础上加上性能剖析和代码风格检查的功能。如果在题库上进行更新,增加ACM、蓝桥杯等试题的题库,尝试去将计算机专业的学生吸引来该网站风险较大,很可能面临吃力不讨好的尴尬境地,因为这部分学生大部分已经有了自己熟悉的平台(例如洛谷、学校的OJ系统),同时由于生态不够好(大部分用户都是求职者而非学生),很难有良好的讨论氛围,形成促进学习的合力;而性能剖析和代码风格检查功能则贴近程序员日常的工作需要,能够较好地利用原有的生态,满足原有用户的潜在需求。
在公司写代码的程序员除了要求写出来代码以外,还要求写出好看的代码、高效的代码,因此加上性能剖析和代码风格检查能够让这些程序员在公司中具有更好的竞争力。目前没有网站做到了这一点,因此该功能具有良好的创新性。
这满足了程序员的潜在需求,能够让他们具备更好的竞争力。根据需求管理的需求分类,该需求属于兴奋需求,一旦完成用户将会明显提升用户的满意度。
1.对于每个函数,显示被调用的次数;
2.对于每条语句,显示执行该语句的次数;
4.对于行数过长、空格不规范等地方指出错误并给出改正方案;
5.对于使用到的不安全的函数、在后续版本中可能不再支持的老函数给出相应的警告;
6.对于可能引起歧义的书写格式(如少加括号)给予警告;
提升用户满意度,方便用户更好的提升自我。
目前没有类似平台兼具此类功能,具有竞争力。
新功能的设计是基于现有的功能进行了拓展改进,是增量开发。另外,新功能无需用户学习新的知识,易于上手。以上两点,保证了不需要用户对于新功能进行从0开始的适应,而是给了用户更好的使用体验。
1人美工,1人开发,3人优化性能,1人测试。对于该功能,由于需要对用户直接展示结果,因此需要1人美工;对于代码风格检测和性能剖析,市面上都有成熟的插件可供使用,只需要移植到网站上即可,因此1人开发足够;由于不能够拖慢原有网页的速度(否则会让用户体验直线下降),因此须有3个人进行优化,尽可能地让添加了该功能以后网页的响应速度不减;由于是用户意料之外的功能,因此只要在不影响原有体验的基础上确保功能基本正常实现即可,不必过分在意遗漏的部分(例如遗漏了部分不好的代码风格),因此只需要1人测试即可。