114培训网欢迎您来到少儿编程培训中心!

400-850-8622

全国统一学习专线 9:00-21:00

近年来关注在线练习编程的用户越来越多,小编整理了关于为什么有的人学了那么久编程还是只会写“Hello World”?,哪些比较好的在线编程网站?,在线求一个能在线练习java编程的网站,该网站能提供题目并判断代码是否正确的,如何学习编程,练习编程,打怪升级,在线练习编程、学算法的神器!??,供您参考

1.为什么有的人学了那么久编程还是只会写“Hello World”?

二胖前几天在公众号后台收到了一个读者的留言,他有很多很多学习资料,但就是不知道学什么、也不知道该从何学起,学了很久还只会写个Hello World。根据我的经验,除了这个问题,很多同学应该还会遇到如下问题:为什么有的人学了很久很久编程,还是只会写一些简单的算法题?学了几个月编程,还没有写出超过100行的小项目。好不容易看完了一本书,合上却发现前面的内容全忘了。我相信,很多学习编程的同学都想切实地做出一个项目,比如可以真正被使用的软件。可是很多人搞来搞去,永远都只会写控制台程序,不是动态规划就是贪心。以上现象你中招了吗?不要怕,你不是一个人,我刚学编程那会儿也是这样的。不仅是我,我相信还有很多同学是这样,那到底是什么隐形的力量在阻止我们学会编程呢?我总结了以下几个原因,如果你中招了,可以考虑参考一下解决方案哦。先问大家一个问题,学习编程的你有没有刷过OJ(OJ指在线编程练习)。我相信大部分人都有过刷题的经历或是现在正想开始刷题。我曾经也是,一闲下来就迫不及待地打开一些刷题网站不停刷题,今天刷动态规划,明天刷最短路......为了AC一道题,我曾一天都忘了吃饭。直到有一天,我突然发现了一个问题——我究竟为什么要刷题?不知道各位刷题是为了什么。提升编程能力?如果是这样,那么问题来了...... 刷题真能提升编程能力吗?如果能。那么问题又来了......什么是编程能力?你可能又会说:“会刷题!”噢!恍然大悟,原来刷题是为了提升编程能力,编程能力提升以后刷题就更容易了......这好像是个无解的问题 ......不知道各位有什么高见没有,如果有,请务必留言告诉我,谢谢!集思广益嘛。昨天有个读者在公众号后台问我刷题的事情,我想她(没错,是个妹子)可能遇见了我当年遇到过的问题——每日一题。她还问我是否需要多做题,好像她也不知道为什么要刷题,但是就是每日一题......好了,我来讲下我对刷题的理解吧。我先讲一个我和ACM的故事。首先解释一下什么是ACM,ACM的英文全称是 Contest,简单来说就是一个*生程序设计竞赛。计算机和软件的同学肯定知道这个竞赛,也有很多人参与。由于我是被调剂到计算机专业的,所以在*前对计算机的相关行业并不是特别了解。在我懵懵懂懂地入学时,学校有各种课外社团宣讲招新,其中有个社团就是由ACM爱好者组成的。听完那场宣讲会我只有一个感觉:牛逼的人都参加ACM。对,我并不是因为爱好,只是觉得参加了ACM就比别人懂得多。这种心理就和高中参加课外补课班的感觉一样,有种私下里偷学了很多知识,看谁都是傻逼的感觉。所以我报名参加了ACM,可能是因为我大一的时候编码能力太弱,没入选,也就和ACM失之交臂。我并不是因为当初没被选上参加ACM而“怀恨在心”,才在这里吐槽。我并不是吐槽ACM不好,其实参加ACM对提升思维能力是很有好处的。我想吐槽的是很多人无理由地参加ACM——从众心理。很多人生怕别人参与了ACM就比自己学得多,所以别人做什么他就要做什么,就像人人都说机器学习牛逼,你就跟着去学,结果什么都学不好。学习任何一个技能,要么是因为爱好,能从中获得快感,要么能提升自己。学编程,刷题一定是要的,但一定不是盲目地刷。*遍刷题是将你学习的算法和数据结构理论变成实践,强化知识。刷题有助于我们将抽象的算法转化为具象的代码实现,让我们明白其中的原理。比如你用C++、Java或是Python把9大算法都实现一遍以后,你就知道其中的原理,之后就没必要再继续刷同类型的题了。我们需要培养自己的技术选型能力、方案选择能力,具体是指:当遇到实际业务和需求的时候,你需要知道在什么场景下使用什么样的数据结构和算法,然后通过查询或调库使用这些算法。技术是服务于业务的,编程是为了解决问题。当然,以上言论都是我自己的理解,你可以有不同的看法,但是我不接受反驳。第二遍刷题是在你找工作面试的时候将各种算法写给面试官看。为找工作刷题无可厚非。就像高考一样,我们需要一套选拔的机制,面试中手写代码的过程就能直接体现一个人的代码能力。为了拿到一个好的offer,你必须刷题,关于刷题的事情我也在我之前找工作的系列文章中提到过,感兴趣的同学可以自行查看,此处就不过多套路。以上两点就是我自己“刷题”方式,我*时就在这两个时期全身心地投入刷题,其他时间我就做其他的事情了,做什么事情呢?后文我们继续聊。总结一下就是,不管是编程还是任何其他*的学习,我们一定要明白自己学习的意义,如果仅仅是因为从众,而根本不知道自己为什么要做这件事情,那么还是先搞清楚自己为什么要做,否则很多时候都是在做无用功。死磕原理指的是什么?举个简单的例子。大家要是学过树或图的遍历算法,肯定知道最基本的两个遍历方式:DFS和BFS(这里有北外的同学吗?)其实就是深度优先遍历和广度优先遍历。不明白没关系,我先简单解释下。就拿最简单的二叉树举例,下面是一个二叉树。如果要从A点出发遍历完所有的点。深度优先遍历就是“不撞南墙不回头”,从A点一直往下走到尽头才往回走,在发现新路后又继续往下走,所以遍历顺序是:A-B-D-E-C-F-G。宽度优先遍历就是“先走完上一层再走下一层”,所以遍历顺序是:A-B-C-D-E-F-G。那么问题来了,死磕原理和二叉树遍历有毛关系?不瞒您说嘞,关系大着呢...我们把二叉树比喻成一个知识体系。*层A代表了你所学的所有的专业知识。第二层代表*本科阶段的各个科目,比如B有可能是Python课程,C有可能是算法和数据结构,当然还有很多其他的科目,如高数,英语等,我就不一一列举了。试问大家一个问题,如果挂了几科第二层的课程,能毕业吗?好像是不能毕业的。那现在假设某个同学第二层的课程全部通过得以顺利毕业,他将进入到研究生阶段。这时候他会选择一个“方向”继续“深造”。请注意上面加粗的词语。本科生阶段是面向于“面”的教育,就是啥都教给大家;研究生阶段是面向“点”的教育,是建立在本科阶段对自己专业的整个体系有了初步了解后做出的选择,他可能会选择自己感兴趣的方向继续学习。所以,如果他选了B方向,那么他将继续攻克D和E。和学习编程一样,第二层就像是你肯定要学习的编程语言、算法、数据结构等*,学好它们才能写出一个靠谱的程序。再往后的第三层,是你可能在研究生阶段主攻的机器学习、人工智能等知识,或是架构方向、图像处理等方向。”死磕原理“的定义渐渐清晰了:我们不要一个胡同走到黑,初学编程的时候,一定要多多了解各个*之间的联系。人的精力是有限的,如果你一直在一门课上搞啊搞的,缺点有三:你很可能很久都写不出来一个像样的程序,自信心受到打击;你可能会做很多无用功。一些*需要其他*的知识做铺垫,而仅仅在一门课中闭门造车会浪费大量的时间;你可能会陷入造轮子的境地。那到底有什么好的方法可以学习编程吗?有的!还是举个例子,我们学数据结构的时候不是有很多已经封装好了的数据结构吗?比如C++中的Vector,Python中的dict、list等,你们有看过它们是怎么实现的吗?如果你看过Vector的实现方式,你肯定会感叹它的动态扩展内存有多么巧妙。你自己能把这个数据结构写出来吗?注意,上面加粗的字,正是很多人编程学得慢的重要原因之一。什么知识都要强调自己能写出来。我刚学数据结构那会儿也是这样想的,当时我在心中定下一个宏大的目标,要自己实现课本上所有的数据结构。所以我花了很长时间去写一些现有的数据结构,也成功地写出了一些,如平衡二叉树、红黑树......可真的花费了我很多时间......我又陷入了沉思......可以直接用的东西,我为什么要去写呢?初学的时候,我建议大家还是面向“面”去学习,我们可以了解某个数据结构的内部原理,但先不要尝试自己去实现。遇到一个场景,我们知道选择什么样的数据结构去使用就好。然后学完原理之后,大家就可以学一些算法和一些小的框架了。不瞒您说,如果只是一味地学习编程语言语法和刷题是学不会编程的。一定要去看一些框架、做一个项目,然后运用你现在学习的这些知识,把它们融合起来。在实践的过程中你会发现自己还欠缺很多其他的知识,这时你再去有针对性地学习,知识转化率才高。这个项目可以是一个Web,一个App,或者一个爬虫系统。为了让大家更理解,我举个自己的例子吧,下文图片有点多,但请大家耐心看完。当时本科毕设,女朋友的老师希望她做一个与高考志愿填报相关的调研。但是她无从下手,这种情况只有我上了。我的想法是用最直接的方式去展现高校录取的变化规律,可以做一个展示高考录取情况的数据分析网站,绝对亮瞎老师们的钛合金......好像不对,绝对让老师们目瞪口呆。然后我用两周时间搞出了下面这个网站,是边学边搞的,不知道的东西就查。Web主页:数据查询功能:数据可视化与对比功能:这个项目运用到了哪些知识呢?爬虫,我抓了上千万条数据,项目完成后我的爬虫技术提高了很多。数据分析能力,为了进行数据可视化,我又学习了echarts的使用。Web知识,可以通过PHP搞出一个网站。前端编码能力,虽然我搞的网站有点丑,不过好歹在过程中理解了前端工程师的一些工作。数据库,对数据库的使用更加熟悉。同时,我知道了自己的不足之处,在做项目的过程中快速迭代,不断更新自己的知识,得以进步飞速。如果你永远刷题刷题刷题,估计等毕业了也还是只会刷题刷题刷题。“一口吃成一个胖子”的贪婪心理也是一个阻碍大家学习编程的绊脚石。还是举个例子:我们学习一个框架或者学着做一个项目的时候,可能文档或课程说明上会写“学习本课程之前需要先会Java、数据结构、数据库、操作系统等知识”。但你肯定不是全会啊,怎么办?立马放下这个项目去学习上述课程?这就是典型的“一口吃成一个胖子”的表现。我们做项目的时候不要怕自己这不会,那也不会。不会先上谷歌百度查一下,或者先直接参考别人的代码,然后自己把问题记下来,后面再去深究。当你成功做出*个项目后,你就会大受鼓舞,再去做第二个、第三个,然后就起飞了。万事开头难。一定要采取项目驱动式的学习方法,不管是编程还是其他科目,我们除了系统学习,还一定要建立一条“发现问题,解决问题”的学习路径。一开始做项目,不用自己去做,先找个别人的项目来看。如果找不到项目,出门右拐github。顺便给大家推荐一篇我的知乎万赞文章:这可能是我见过*的编程指南了!看完你会回来给我点赞的。以上~本文首发于专栏同名微信公众号:逆袭的二胖。

2.哪些比较好的在线编程网站?

收到一封来自知友@蔡兴炜 的私信,推荐一些在线编程测试的网站。于是就加个班好好写一篇这样的推荐,希望可以帮助到你,同时可以帮助到各位有需要的朋友。开始前先说一下:虽然会写这篇推荐,但是仍然不希望大家平时用在线编程的网站。现在在本地搭建一下编程环境都是很快的,搭建好本地环境也会更容易促进学习编程。写这篇文章的意义在于,或者说使用在线编程的网站的原因在于:(1)、一台临时电脑需要简单测试一段代码(2)、 网页编写代码可以实时地看到效果(3)、烦了、腻了本地的编码(4)、可以实时分享代码 (5)、有的在线编程的编程语言网站都支持多种语言的编译或解释,具有较强的集成性 针对第三点,如果本地编码没有激情,是不是编辑器不好、颜色不好看、字体不好看呢,可以换一换好看的呀(专栏的一下四篇文章希望可以帮助到大家呢):关于编辑器(IDE):10个常用的代码文本编辑器/IDE - 学习编程 - 知乎专栏关于字体: 更舒服的写代码[字体篇] - 学习编程 - 知乎专栏关于配色方案:代码编辑器的配色方案 - 学习编程 - 知乎专栏关于插件:代码编辑器的插件推荐 - 学习编程 - 知乎专栏更多功能用途大家取发掘吧,以下开始做一些推荐,欢迎评论补充、私信提问(说不定会写文章的,这不就是活生生的例子嘛)( Text/Python/Ruby/Scheme/Tcl,写完代码提交之后会生成一个独特的链接,你可以通过这个独特的链接把这段代码机器效果发给你的朋友团队等。有一点需要强调的是此网站不支持标准的输入。( 、海量资源都可以帮助你提高自己的编程能力。( 理念来简化开发人员的工作,Prefix-free就是开发者勿需写CSS 前缀,由软件来自动完成。你还可以将你的代码保存到Github上和朋友或别人来分享你的作品。当下该工具只支持Google Chrome,Safari和Firefox,但很明显你很少用别的浏览器对吧?( 选择右上角的闪电编程就可以进入在线编程模式,此网站支持C#、C、C++、Clojure、Java、Go、Plain 、PHP、Python、VB.NET、Bash、Objective-C、MySQL、HTMLCSS,同时该网站包含大量的学习资源、学习路径等等内容。( 此网站支持PHP、Python、C#、F#、Java、shell、C、C++、nasm、Go、Lua、Perl、Ruby、Nodejs、Objective-C、Swift、Erlang、Rust、R、Scala、Haskell、D、Clojure、Groovy、Lisp、ocaml、、Racket、Nim等多种语言,与前面网站相比,此网站所持语言更加全面丰富。此网站可以满足大部分编程的需求。(.com)(w3school.com.cn)(shiyanlou.com/)以上三个网站都支持在学习的同时有相应的在线编程,你也可以直接用来做在线编程测试使用 并没有提供传统的编程教学视频,也没有任何“老师”进行教学,而是精心地将原本复杂的课程拆解成一个个非常简单的小节,通过各种提示来引导用户学习,譬如教会用户怎样计算出自己的名字的字数长度。用户在命令行中输入正确的代码,提交保存,即可以一关一关地完成整个学习过程。而且,由于是分段式的学习,用户可以很快地拿起学习然后放下,整个学习过程不会有太大的时间压力( 在文末推荐一个与编程无关的网站给大家玩一玩,如果编程累了的时候,无聊发呆的时候可以点开玩一玩,放松一下心情:

3.在线求一个能在线练习java编程的网站,该网站能提供题目并判断代码是否正确的

木有这么方便的东西…… 如果你要练习前台的话,W3CSchool倒是有相应的功能,你写了马上就可以看到效果

4.如何学习编程,练习编程

编程是从你兴趣开始, 现在兴趣决定方向,有了方向在决定语言。你也百度一下, 80x86汇编小站, 看看 站长写的下面这几篇文章, 或者 你直接联系 这个站长 跟他交流编程方面的事情。编程是什么,什么是编程?如何正确入门Windows系统下C/C++学习领域?掌握C/C++后,如何在Windows系统下开发有界面的程序?如何正确入门Windows系统下驱动开发领域?如何正确进入基于x86-64Bit Windows系统商业软件破解领域?如何正确的待汇编学习和反汇编学习?成为VC++程序员,我需要学会哪些东西?

5.打怪升级,在线练习编程、学算法的神器!

Codewars,在线练习编程的网站,实战式编程挑战平台。 学编程的重点是要多敲代码练习。练习编程的方式有很多种,常见的有写习题、做项目、刷算法题目等。Codewars(代码战争)是一个完全免费的在线练习编程的网站,网站提供了大量的编程小题目。区别于目前流行的算法刷题平台 LeetCode,在这里,你可以使用多种编程语言,像打游戏升级一样进行挑战。每个挑战都非常地有趣,又叫做 Kata(形,即招式、套路,练习时必须按形进行)。你可以选择编程语言和目标,有针对性地练习,系统会自动为你推荐合适的题目。打开题目,Codewars 网站提供了在线代码编辑器,让你可以随时随地进行练习。在这里,你还可以学习其他同学的解题思路,并且和他们交流讨论。系统支持自由选择题目,你可以由易到难,也可以只做自己感兴趣的题目。还可以针对某道题目,向其他同学发起 1 对 1 挑战,来比比谁的代码更精妙!通过完成一个个挑战题目,你能学到很多除了算法之外的知识,全方面地提升你的编程能力和工程思维。还能够提升等级和荣誉值,冲击排行榜,证明自己的实力!感兴趣的同学一定要试一试! 项目地址:编程导航在 编程导航 中还能发现更多优质编程学习资源,欢迎分享给有需要的同学吧!

如果以上内容没有帮到您,欢迎电话联系我们,或者联系在线客服咨询

温馨提示:为不影响您的学业,来校区前请先电话咨询,方便我校安排相关的专业老师为您解答
相关资料
姓名不能为空
手机号格式错误