作者回复: 是的,我一点都不慌(擦擦手心汗
作者回复: 这个问题我思索了一天。写了一篇文章来给大家参考。
文档地址 :
https://github.com/deepnighttwo/LetsJava/blob/master/FAQ/00%E7%AB%A0-%E8%BF%99%E9%97%A8%E8%AF%BE%E9%80%82%E5%90%88%E6%88%91%E5%90%97.md
学习不仅仅付出的是钱,更多的是付出了学习的时间。所以我觉得我有责任来告诉大家这门课是不是适合你。抱有以下两个学习目标的同学,我相信这门课会让你学有所获。
- 零基础学编程,并且想继续深入学习编程的同学
- 希望夯实基础,系统学习 Java 和面向对象编程思想的同学
下面说说为什么哈
# 零基础学编程,并且想继续深入学习编程的同学
这门课在录制之初的定位,就是要让零基础的同学能看懂学会 Java。有了编写《Java入门1·2·3》的经验,这个目标我还是很有底气能达成的。从同学们问的问题来看,同学们不仅学懂了,而且还提出了很多优质的问题。这些问题我都总结放在了 FAQ(源代码的GitHub repo里的FAQ目录) 里面。
说到提问,也是这门视频课的优势。极客时间这个平台可以很方便的提问和互动,及时且有针对性的解决大家的疑问。
这门视频课也为同学们后续继续深入学习编程打好了基础,如果有计划深入学习 Java 或者编程,那么这门课就更适合了。为什么呢,请接着向下看。
# 希望夯实基础,系统学习 Java 和面向对象编程思想的同学
录制这门课时距离我写书又过了六七年。十几年的一线编程经历,让我无论是 Java 语言的掌控力,还是面向对象的理解,还是程序设计和架构的经验,都能够候游刃有余的准备这门 Java 视频课。相比《Java入门1·2·3》这本书,我将很多理解和经验的内容,以合适的方式和力度放到了这门视频课里。
这门课不仅仅是 Java 的入门课,更是 Java 和面向对象的基础课。入门的特点是要简单,门槛低,由浅入深。而基础的特点是抓住根本,理解本质。在这门课的备课过程中,我结合自己的经验和理解(还有教训),由表及里,从语法元素开始,涵盖语法的本质和语法背后的意义。知其然,还要知其所以然。这是基础要解决的问题。
如果 Java 是自己的工作语言,但是写 Java 的时候又感觉没底,不知道有没有更合适的写法,不知道写了这行代码,实际上代表的意义是什么,那么学习这门课会有帮助。
如果自己一直在听别人说面向对象,听的耳朵都起茧子了,还是不知道什么是面向对象,不知道为什么面向对象的三要素是封装、继承和多态,甚至说不清什么是封装、继承和多态,那么这门课将给你一个清晰的,生动的答案。
# 题外话:编程入门怎么选
抛开 Java,我认为一门好的入门语言应该具备以下特点
- 不能太难,也不能太简单
- 成熟,资源丰富
- 使用广泛/有被广泛使用的潜质
- 有深入学习的途径/氛围,能从开始就帮助树立正确的学习编程观
Java 还是比较适合入门的:
- 难度适中:不至于简单到三天从入门到精通, 也不至于难到让人望而却步。
- 成熟:坑基本都填平了。
- 热门:会的人多,有问题很多人可以帮忙解决。如果学一个冷门的语言,会有很多问题。比如资源匮乏,问题没人能解答,环境不成熟等等。
- 当然还有很多,视频中也说了一些。这里不再赘述。对于入门时的那些门槛,课程中也着重进行了讲述,让大家能够容易的迈入 Java 的大门。
别的好理解,为什么入门的编程语言不宜太简单呢?
如果一门语言纯粹是为了讨好入门者,那么它可能也只能用来入门。Java是一门实实在在的工业级语言,Java 是有深入学习的路径的。
很多语言简单到不需要深入学习,或者说整个生态不鼓励深入学习。这样的话,一门语言入门即精通,并不是一个好的事情。这门语言做的事情可能只能停留在堆砌代码的水平。学习这样的语言,对于进一步深入学习编程,成为一名合格的软件工程师,并没有太大帮助。甚至于还有坏处。让人产生“编程不过如此”的错误认知。
比如说 basic 语言,作为编程的启蒙语言没有问题,但是太过简单的设计,也让人没有深入学习的欲望/途径。
又比如 .net 生态环境,太过于“讨好”开发者,让开发者只是重复的堆砌业务代码,造成整个.net生态都有些浮躁,没有深入学习的氛围。我曾经见过有的.net 程序员以不需要深入学习为荣,并拒绝学习写多线程的程序。很难想象在这种氛围下,能培养出优秀的程序员。(当然这可能也是微软不想开放底层细节有关系。还有这也算是我一家之言,对于.net的更全面的见解,大家可能要找.net专家(如果有的话)详细咨询)。
作者回复:
培训班这种花不少钱的事情,确实不大好给个建议……
仅供参考:
如果你自己觉得看书看视频已经可以学会语言的基础语法了,那就不要报这种语言基础的培训班了。学好了基础之后,后面的主要是多加锻炼。如果自己有想法,可以自己多学多练。遇到不会的技术,就去学。这样比较省钱,自己有兴趣的东西做着也比较有意思。编程这种东西就是既要多学也要多练,否则学会的东西确实很容易就忘掉了。
如果想要有老师带着做项目学习,可以考虑有一些实战类的课程。比如带着做一些电商系统等,这样会涉及一个有实际意义的项目的所有过程和技术,比如技术选型,Linux,Spring,DB,部署,监控等等。
培训班具体的事情我了解的不多。只是据说培训班坑很不少,而且听说都不便宜,量力而为。
作者回复: 是吗?我今天再好好照照镜子。
作者回复: 我可以很负责又自信的说不需要了。有任何不会的问题,包括课程里没有涉及的问题,都可以在相关的小节里提问。
作者回复: 有C++基础学起来会很快~,哦,建议你从第二篇开始上心看,或者从第一篇的数组那一节开始。前面的看个意思就够了,Java比C++要简单,前面的东西其实跟C++都是一样的。
作者回复:
参加给你的另一个回复
作者回复:
不用,视频的形式更生动一些
作者回复: 什么都不希望学习到的话,进来听听单口相声也是极好的亲。
作者回复: 只是学会还不够,要多写代码,积累一些代码量。可以根据自己的兴趣,做一些相对功能完整的程序,证明自己的能力。
作者回复: 会python可以对比着学。Java对于有编程经验的同学来说还是挺简单的。
作者回复: 这门课就是为你打造的,加油哦!欢迎通过留言交流。希望你能把我最后的小游戏移植到Android上
作者回复: 坚持哦,学到后面带你做游戏。一人之言,项目规模越大,Java的优势越明显。
表情,其实是肉太多衣服瘦勒的表情略不自然
P.S. 就我这体形还小胖子,请问你是把我跟孙越比吗?