大家好,我是良许。
最近有读者问我,想提升Python水平,有没有什么好的在线练习网站推荐?
说实话,这个问题问到点子上了。我当年从嵌入式转型做自媒体时,Python也是从零开始学的,光看书看视频总觉得懂了,可一上手就懵,后来才发现编程不练就是纸上谈兵。
今天就给大家盘点几个我用过的、真正有用的Python练习网站,也分享些我的小建议。
LeetCode堪称程序员的"高考真题",是全球最火的刷题网站。
我刚开始刷的时候,面对Hard难度的题目心里直发怵,但坚持刷了三个月后,代码思维完全变了,以前写功能半天找不到思路,现在一看需求,脑子里能立马蹦出好几种解决方案。
它的题目分类清晰,数组、链表、树、动态规划等模块针对性强,还有中文版,对英语不好的朋友很友好,不过它更偏算法,对做应用开发的程序员来说,多少有点"杀鸡用牛刀"。
除了LeetCode,还有不少各有特色的练习网站。
HackerRank更接地气,题目设计贴近实际工作场景,涵盖Python基础、数据结构、算法,甚至数据库、Linux Shell等内容,做完题还能看别人的解法,常能发现自己代码的不足。
Codewars把刷题做成了游戏升级系统,从8级开始做题升级,每道题叫"kata",难度逐级递增,游戏化的模式能让人像打游戏一样坚持刷题,社区里各种新奇解法还能拓宽编程思维。
牛客网是国内程序员的老朋友,题目多是国内大厂真题,讨论区活跃,遇到不会的题基本能找到详细题解,很适合想进大厂的同学。
Exercism比较小众但很有价值,它有mentor制度,提交代码后会有资深程序员帮忙review,指出问题和改进建议,就像有老师傅手把手教学,而且完全免费。
Project Euler则是数学+编程的结合,题目都是需要编程解决的数学问题,成就感满满,但更适合有一定基础的人,新手可能会觉得难度过高。
很多人会问,到底该选哪个网站?
我的建议是看目标:为了面试,优先刷LeetCode + 牛客网;想提升编程思维,Codewars + HackerRank是不错的组合;想要有人指导,就选Exercism。
但无论选哪个,都要记住贵在坚持。
我见过太多人兴冲冲注册账号,刷了三天就放弃,编程就像练武功,没法速成,每天哪怕只做一道题,坚持三个月,就能看到明显的变化。
最后要提醒的是,刷题不是目的,提升能力才是。
做完一道题,一定要思考它考察的知识点、是否有更优解法、能否应用到实际工作中,这样的刷题才真正有意义。