❶ 如何自学编程
自学编程对很多萌新来说是一件很难的事,但我们应该要克服这个困难。毕竟学习从来都不是一马平川的坦途,等着别人来教,那就意味着自己会永远被限制在一个小圈子里。
关于如何自学编程,我们首先要有一个明确的目标。很多萌新在初学编程的时候都喜欢想东想西,看到黑客很酷就想学渗透搞信息安全,看到别人做的 游戏 很炫,就想去学 游戏 开发。殊不知,学习一道,最忌三心二意。在初学之时,我们一定要明确自己的目标,然后朝着它前进。东搞一下,西搞一下,到头注定是竹篮打水一场空。
明确好自己的目标后,就要对自己所选择的方向做一个大概了解。如常用开发语言、主流技术这些。再对自己的学习路线进行合理的规划,为什么要制定一个学习路线规划了?一是能让你对未来的学习有一个明确的大概认知,脑袋里面想的始终不如落实到的纸面上;二是能在学习之初给你带来一定的信心提升,而且每实现一个目标都能给自己带来一定成就感和更多的信心,以此来提高继续学习的动力,避免学着学着就不想学了的情况;三是起到一个督促作用,计划既然已经做出来了,那就要去落实,没落实的话一般人心理或多或少都会想着这个事,心里空落落的以此逼迫自己去学习。
讲完了做计划的用处,再来讲讲做计划时常入的误区。很多萌新总是计划的很好,排的满满的,想的很多很好,却忽略了实际情况,以至于执行总是不能到位,挫败感不断积多导致放弃学习。所以我们一定要注意,在制定学习计划的时候一定要考虑自身因素,如自己的学习能力、自己的管控能力等。其次是对于做计划这件事,我们最好是自己来做,别人的计划顶多只能用来参考,直接生搬硬套很容易导致不符合自身的情况出现。每个人都有每个人的学习方法与方式,可借鉴可参考,一味死磕注定路会越走越窄。从自身出发,去寻找最根本的解决。
在制定计划的时候我们可以搭配一些脑图工具来让计划更快的制定好且条理清晰,如笔者想要学习Web前端,就先了解Web前端的基础知识是哪些,进行记录并安排好学习顺序。后期的进阶知识,项目实践都可以用上面的方法实现。
这个部分是让大家对自己的学习路线进行梳理并简单了解自己所要学习的知识,破除对学习的恐惧和迷茫。
制作脑图的工具大家可以自行选择,常用的如XMind、幕布、网络脑图、ZhiMap等(排名不分先后顺序,选择自己用的顺手的即可。网络脑图、ZhiMap为在线脑图工具)。
定完了计划,做好了脑图,就到了执行的时候了,我们在这一步可以使用番茄钟类的工具来进行提高己身执行力,如番茄ToDo、番茄薯仔等。在这里我们需要注意的是,工具终究只是外物,是外力是靠不住的,过分依赖外力的后果就是被外力所束缚;工具所起的作用只是辅助和提醒,关键还是要靠我们自己去执行。学习一事是自己的事,是于自己有益的事,我们如果有拖延症、懒癌那我们一定要克服它们,在心里在脑海中反复提醒自己不要被拖延和懒惰吞噬,不要被一时的欢娱而引诱,自律很痛苦,但没有自律的人生会更痛苦。
学习过程中,切忌好高骛远,学着眼前的,想着后面的,更不可一口气吃成个胖子,学习一道还是要一步一个脚印为好,当前所学最好是要融会贯通,不济也得要明白学的是个什么东西,一味追求效率岂不落了下乘?万丈高楼平地起,基石是重中之重。
遇到问题,我们不要直接去问别人。一定要自己先思考而后实践,阅资料翻看文档,寻求自己的解决方法,万般未果之后再去寻求他人的帮助。在获取到他人帮助时,我们也不要一味接受,可以将他人的方法与自己先前思考实践所得来的成果进行互相印证,寻找自己错在哪,还有哪些不足。吃了一堑,那就要长一智,不要为了解决问题而去解决问题。
我们生在了一个很好的时代,这个时代有互联网,使得我们获取知识相对再简单了很多。在互联网上获取各种资源我们必不可少的要用到搜索引擎,最常见的是网络搜索,但做为学计算机的我们还应该知道"传说"中的Google搜索,小众的必应搜索和秘迹搜索。为什么要知道这些了?首先我们要明白,网络搜索虽然本土化做的相对较好,但有时候并不是那么靠的住,这个时候就需要其它搜索引擎上场了,如果你在网络搜索上没有找到自己想要的答案和资源,何不试试其它搜索引擎了?
了解完搜索引擎我们再来了解一些比较常用的学习资源获取网站和平台。首先我们要提到CSDN(Chinese Software Developer Network)中国专业IT社区,也是中国最大的IT社区,有着非常多(混杂)的学习资源,是萌新学习时必会接触到的一个社区网站。
其后是博客园,作为开发者的知识分享社区和纯净技术交流社区,博客园相比CSDN"简陋"了许多,但相应的也简洁不少,也有着不少的开发者进行经验和资源分享。
上面提到的都是社区类型的网站,但我们的学习光靠社区还是不够的。社区虽然资源多,但大多不够系统和优质,萌新学习起来很容易懵圈,而且萌新阶段学习过程中必不可少要接触一些文字教程和视频教程,这时候就要轮到那些专门做相关方面的网站显身手了。
文字教程,可以去菜鸟教程上面寻找,菜鸟教程上的文字教程相对来说全面。萌新前期学习的知识基本都能找到。如果菜鸟教程上的资源不够满意,还可以去自己想学习的技术社区寻找,基本上一门技术和编程语言都有自己相应的社区。再以Web前端为例,学习Web前端,就可以去W3School教程(全球最大的中文 Web 技术教程)上寻找学习资源。当然,除了上述的寻找方法我们还可以依靠搜索引擎和自己上电商网站购买书籍来获取文字教程和资料。
视频教程资源的获取就要比文字教程资源的获取要多很多了。国内的诸如中国大学慕课、慕课网、优达学城、网易云课堂、网易公开课、腾讯课堂等一些列视频教程网站(中间有些是付费课程,个人按需选择并分辨即可)。
拥有了学习资源,我们在自学过程中难免会遇到一些自己甚至身边的同学朋友及老师也解决不了的问题,这个时候我们除了可以去社区发帖提问还可以去专门的问答平台提问,国外有个叫StackOverFlow的网站就是一个IT技术问答网站,不过它要转比较久的圈圈才能打开,而且使用体验对萌新来说可能并不是很好。我们可以去SegmentFault(思否,以StackOverFlow为原型的技术问答网站)看看,说不定就会有令我们满意的答案。
对于一些学习能力比较强的同学来说,除了在学习之余做些小项目之外难免想要自己动 手参与到真正的项目中去,那可以去Github上找一找有没有适合自己的项目。作为世界最大的开源中心及有软件项目托管平台,上面一定会有你的"真爱"。
文末,附上一些未介绍的网站,有兴趣的同学可以自己去发掘一下。
V2EX、掘金——社区类
InfoQ——知识拓展
程序员的工具箱——在线工具箱
Office-converter——在线文件转换器
FirefoxSend——在线临时网盘
Bigjpg——AI人工智能图片无损放大
宜配屋——国内外公开课下载
IT eBooks——电子书下载
牛客网——刷题
codingground——在线使用的免费 IDE 和终端工具
Speedtest测速网——在线网速测试
道阻且长,仍需努力。纵有疾风起,人生不言弃。
❷ java初学者,应该如何学习java呢
初学Java编程时,大家通常会对学习方法、知识难点做一个了解,但学一项技能不仅仅只是这样,学习过程少不了我们的亲身参与,那我们对自己的学习条件了解是否充分?心理上思想上是否做好了准备?要准备学到哪种程度?···这些其实都是学习编程时需要注意到的。
学Java编程的目的?
知乎无数的优秀学习类回答、技术大佬的分享,在开头的第一段都会提到的,是想清楚做某事的目的是什么。千万别觉得这样很老套很无用,明确学习目的其实就是在做思想上的准备,不然在后期非常容易缺乏坚持下去的信念。
因为没有描述,就假设题主同学学习Java是为了从事相关的开发工作,去发现一下真实的需求就能知道,“找工作”其实都是表象,真正的本质是“高薪”,是“挣钱”是“有发展”。那么“薪资高”就是学编程的目的之一。
稍微多想想我们就会有接下来的问题:企业招聘的基本要求是哪些?需要达到什么样的技术水平薪资才高?薪资比较高的Java岗位是哪些?大公司都需要哪种技术人才?
问题比较多也没关系,接下来就是一步步理清楚。
有没有自己的学习目标?
学习目标围绕学习目的而定,别太贪心什么都想学,学不完的,太高深的概念对于初学者也是有毒的。
高薪资的岗位需要的技术能力都在Java的知识体系中了,我们从整体到局部开始,先了解Java的大致全貌--Java是用来做什么的。
按Java的应用场景来分有三类:J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。
J2SE就是Java2的标准版,主要用于桌面应用软件的编程;
J2ME主要应用于嵌入式系统开发,如手机和PDA 的编程;
J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站,OA系统和ERP系统。接着是局部--比如其中涉及J2EE方向的是什么岗位,需要会什么?且薪资是多少?
在此场长还要补充两句,对于程序员来说,学历高低不是唯一标准,但绝对是加分项,能提升学历就尽快提升,不要让它在后期成为你职业发展的阻碍。
以上从“整体到局部”的好处是,不仅为你的学习找到重心,还是在定位你的技术重心,也将会成就你写在简历中的那句“本人擅长XX开发,熟悉XXX技术,且精通XXXX,在XXX有丰富经验。”
有没有一个学习计划?
有了学习目的,找到了一个高薪的技术方向和技术重点,有了这些信息,你就可以开始制定学习计划了。
一个科学而合理的学习计划,关键并不是面面俱到的详细,而是“极高的可执行性”,要避免看到自己定的计划就头疼,无法完成这样的情况,就要注意别一开始就把自己逼得太狠。
记得围绕着学习目标开展学习,专注能保持高效率,这也能减少你的学习时长,还能保证学习效果。
最后,
编程讲的是多多练习没错,但别忘了编程背后是思维,是逻辑,是解决问题的思路,希望在学编程的你,能把编程看成一种智力的游戏,在提升自己心智的同时,看到一个奇特而有趣的代码世界。
祝编程愉快。