自学_自学java - CSDN
精华内容
参与话题
  • 自学编程难吗?如何学?

    万次阅读 多人点赞 2018-11-04 16:00:50
    自学编程2年来,加过n多群,泡过n多论坛,接触过心怀激情的编程新人,遇到过沉着冷静的技术大牛……编程,吸引了一批又一批的热血青年,或许是为了理想,或许是心中的爱好,不断有新人的加入,也不断有人从编程中...

    推荐给那些喜欢编程的,迷失学习方向的伙伴!


    自学编程2年来,加过n多群,泡过n多论坛,接触过心怀激情的编程新人,遇到过沉着冷静的技术大牛……编程,吸引了一批又一批的热血青年,或许是为了理想,或许是心中的爱好,不断有新人的加入,也不断有人从编程中退出。编程的入场入口只有一个,出场的出口却很多。自学编程的新人,有很大一部分卡在了入门上,对此,我想写下对编程入门的一些拙见,权当抛砖引玉,或对或错,还望同学们自己鉴定。

    1.零基础,打算自学编程,应具备哪些的知识?

    答:
    对于入门阶段,对知识水平的要求并不算高,或者说很低,大家都应该听说过xxx小学生编程如何如何这般这般怎么样之类的话题,这里,我们不谈长期发展,只谈如何入门。首先,我觉得你应该具备计算机的基本操作能力,如果说你连新建一个文件夹或者说从网上下载资料都不会,那么你应该先买本《windows xx从入门到提高》看,然后再考虑编程这件事,如果你觉得对计算机的基本操作已经熟练后,请继续向下看。

    2.学编程应具备哪些条件?

    答:
    第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看,操作系统还是首选windwos。
    第二:有xx语言的入门本书,纸做的,具体xx语言是哪种语言,后面我们再讨论这个问题。虽说现在铺天盖地的都是电子书了(保留这句话的确定性),到处是扫描版,还高清呢,但我还是推荐看纸做的书,好处有两点,其一是便于携带,可以随时翻阅;其二是避免眼疲劳,我不信你一直晚盯着显示器看电子书眼睛不会酸;还有一点,尊重图书作者的版权。
    第三:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习,在编程这块,我不认为这是在用功学习,零碎时间去背单词?应该是个不错的选择。

    3.你确定要学编程?

    答:
    这个问题看起来有点多余,但为什么要提出这个问题?要知道,编程不是一朝一夕的事,如果你只是一时的冲动,或者仅仅是要完成心目中的某个小工具,并没有长期写程序的打算,这样的话,编程不学也罢,毕竟编程从入门到能独立写软件会有很长的一段路要走,中途一旦放弃就前功尽弃,并且已经浪费了你大把的宝贵时间,实在是得不偿失。不过,你尽管吐槽说是这是你的业余爱好,有个爱好也挺好,那么,继续往下看吧。

    4.如何才能入门?

    答:
    到底怎样才能入门?其实,只要你有毅力,慢慢折腾个一年半载,肯定能入门,但写这篇文章的目的就是为了把这个周期缩短些,不是吗?所以,下面我就以个人的观点来谈谈怎么才能更快的入门,这里先笼统的介绍下,对于每点,后面单独介绍。
    –1>.去了解计算机的基本组成,计算机的发展史和编程的发展史,看起来和编程没什么关系,潜在的影响还是十分大的;
    –2>.选择一门简单的语言作为入门语严;
    –3>.学会使用搜索引擎;
    –4>.知道如何看书;
    –5>.要”像”个高手;
    –6.>应具备的学习态度;

    4.1:了解这些历史的意义:

    了解一些编程的实质远比知道如何编程更有意义,不要在编程是怎么回事的情况下就去学习编程,这样对你的学习是十分不利的,作为一个编程爱好者,知道计算机的工作原理,这应该是一件再正常不过的事,你难道不想去知道吗?

    4.2>.选择入门语言:

    这个问题在入门阶段一直是争议十分大的问题,n多语言,n多推荐,到最后搞到新手一会听说这种语言适合新手,于是学习这种语言,一会又有人说xx语言是垃圾、弱爆了,学了也没用,之类的话,开始推荐你xxx语言,于是新手们又开始学习这种语言,搞到最后,什么语言都没搞懂,时间大把大把的流失,热情消耗殆尽。要解决这个问题,首先要明白一个根本问题,怎样挑选适合入门的编程语言?我推荐从难度这个角度来考虑,这门语言必须简单易学,有趣,而且要有一定的热度,有热度才能有更多的人一起交流讨论,翻开编程语言列表,发现有100多种编程语言,而且这个数还是在不断增加的,这里我们一起来看下2012年5月份的编程语言排行榜,能进排行榜前20的,首先在热度上都已经差不多了,现在要做的就是从排行榜里找到一门简单有趣的语言。
    2012年5月编程语言排行
    对于上述的语言,这里不可能一个个详细介绍,篇幅有限,最主要的是,这些语言的介绍只需要你打开搜索引擎(百度?谷歌?还是其他?随便你喽。),输入这项语言的名字,搜索一下,就能看到他的详细介绍了,如果你说你不会搜索,那么,请返回第一个问题,一般来说,如果你去论坛提问什么语言适合入门,得到最多的结果应该是C语言,没错,就是上述排行榜排行第一的那个,强烈推荐C语言入门的同学如果看到这篇文章可能会很想吐槽,因为这里笔者要推荐的不是C语言,笔者认为,Python语言对于零基础更适合入门,很多人推荐C语言原因我猜测可能有两个,一是全国大部分的高校的编程课C语言是都有开设的,也可以说是学习过C语言的用户基数大,第二是C语言自身的强大,可谓是口碑好。基数大+口碑好,足以让你得到的结果是C语言居多。
    笔者是Python语言入门,接触编程时完全是零基础,现在接触了C、接触了C++、JAVA,Visual Basic 6,回味了下,如果让我再次选择一门入门语言,我绝对不会后悔选择Python,建议每位同学去百科搜索下Python,看下是否真的简单易学,并且强大,如果你想快速写GUI(图形用户界面 )的软件,Python有一大把图形库供你选择,不像C语言,半年下来,还是停留在黑框框里,大大打击了初学者对软件开发的信心,对于写游戏,Python也是绝对不会让你失望的,pygame模块为你提供简单快速的游戏开发,Pygame是 跨平台 Python模块,专为电子游戏设计。 包含图像、声音。 虽说没法和Direct X相比,但对于新手来说,独立写个2D游戏不也是一件很愉快的事吗?
    对于Python,笔者就不再详细介绍了,只是推荐,具体选择什么语言,决定权还是在你手里,无论是C语言也好,Python语言也罢,下面所介绍的学习方法都是适用的。

    4.3>.学会使用搜索引擎:

    之所以推荐使用搜索引擎的目的是培养更好的独立解决问题的能力,通常来说,刚学编程时,可能我们有时候连使用什么软件作为编程环境都不知,或者下载安装了编程环境却不知如何使用,这时搜索就派上大用场了,跑到搜索引擎里输入”xxx 使用教程”,结果就出来了,简直太方便了。
    而且,新人都喜欢加很多xx语言的编程群,而且大都是挑人多的加,一旦编程中出现了一点小错误,就立马到群里提问,这是一个很不好的习惯,假如说群里有人在线,为你解决了这个问题,那么你独立解决问题的能力就降低了一分,假如没人在线,你就可能面临着等待,或者把问题放这,不去管它,这样积累的后果你是知道的,最好的方式就是动用搜索引擎,不需要等待,还可以锻炼独立解决问题的能力,何乐而不为?还有一点,许多新人反应说许多知识搜索不到,我很负责任的说,不是搜索不到,是你不会使用搜索引擎,至少我现在在编程上还没有遇到过搜索不到某个知识点的情况,对于搜索的使用技巧,如果你还不知道,去搜索吧。
    总之,有问题,就要去搜索。
    顺便说句,加很多群不是一个好习惯,群里并不能让你学到太多知识,他的功能在于能找到一群有共同话题的朋友,真实的情况是大多时间都在时一起闲扯一些与编程无关的话题。

    4.4>.知道如何看书:

    无论是电子书还是纸做的书,都会有页码(txt?当我什么都没说过),要做好学习的计划,每天看多少页?这倒不是,不要忽略目录这个好东西,先认真看下一本书的前言和目录,了解本书的知识点的分布,这样有利于更快的融入这本书,然后按章节作学习计划,按页来你就不怕把一个知识点切成两半?笔者看书时第一遍喜欢浏览,也就是走马观花的看,花一上午或一下午从头把书悠闲的翻一遍,不求记住知识点,只求记住几个名词,知道书里面有这些东西,给大脑一个模糊的印象。
    从第二遍开始认真看,不放过任何一句话,碰到不明白的名词,没关系,搜索解决。看书要及时复习,推荐“看五退三”(笔者自造的词)式看书,也就是说一次看五页,下次看书式再向后退回三页,这样可以起到很好的复习效果,遇到确实看不懂的地方,也不要停留太长时间,很有可能当你继续向下看,再返回这个问题时,发现你已经可以理解了,这种情况很常见。
    代码是一定要亲手调试一遍的,要亲手输入一个字符一个字符的输入,不是机械的复制粘贴,复制粘贴的后果就是你自己感觉学的差不多都理解了,然后到你上机亲手写代码时,要么写不出来,要么一运行报错一堆。所以,书上的每段代码都要亲自调试(再次强调:学编程,就必须得要亲手实践,不要想着走捷径,捷径在哪?有捷径我早走了。)
    对于代码报错,作为新手,正常的不能再正常的一件事,这里说两点,注意单词的拼写错误和符号是不是在英文状态下输入的;还有就是坚持自己找出代码错误,坚持,代码报错不求人,自己解决。

    4.5>.要”像”个高手:

    在写这几个字的时候我还是在担心等等这句话会不会造成误解,像个高手,并不是让你打肿脸充胖子,而是一种激励自己学习的一种方法,具体就是,要多帮助其他新人,帮助别人可以提高自己的话就不说了,在论坛或群,你可能遇到新人们各种各样的问题,要么代码报错自己检查不出错误,或者想解决某个问题却找不到方法等等,诸如此类的问题,如果你能解决,一定要记得解答一下,不断这样下去,你在你的圈子里说话就会越来越有分量,别人也就更信任你的能力,正式由于这种信任,也渐渐使你背负上了一种高手的责任感,别人请教问题我能不会?即使出于虚荣心,我们也得不断学习,维护我们在别人心中高手的形象,这样也就达到了刺激自己不断学习的目的。

    但是需要记住几点;

    一:不要误导其他新人,自己不确定的知识不要回答;
    二:对于那些弱爆了的问题,你已经回答过很多遍了,如果别人没指明让你回答,那么就把这个机会让给别人吧,确实没必要再在这些弱爆了的问题上浪费时间;
    三:每天冒泡回答问题的时间不要过长,否则会影响到你的正常学习进度;
    四:发现自己错了就要勇敢承认,等高手出来吐槽时只会让你更难堪,不要以为新手好忽悠,当新手有天成为高手时,他会记得当初是谁在挖坑让他跳;
    (悄悄告诉你:假如有人问题你确实不知道的知识,而你觉得这个问题你能解决的时候怎么办?咳咳、有点事,离开一下,一会再回答你。这时候,不用说了,抓紧时间去翻书、上网搜索,高手的形象不能丢哇!)

    4.6>.需要具备的态度:

    –①:恒心?专注?相信自己?每当看到有人告诉新人学习方法讲要有恒心,要学会坚持不懈之类的我就想吐槽,做什么事不需要这样的态度?编程,要有激情,要有想象力,不局限于书本上的知识点,大胆实验,尝试把已经学习的话知识点组合成新的知识点,就拿C语言的链表来说,几乎所有的C语言入门书都把链表作为单独的一个知识点,如果说所有的书都取消链表这个知识点,当你学完指针、结构体、再告诉你malloc函数的用法,你能想到可以组合成链表这有趣的知识点么?
    –②:学会稳定自己的情绪,当在论坛或群意见不合,或者有人无理取闹时,不要动怒,立即潜水,因为没必要动怒,谁对谁非,旁观者自然能看到,有个词,叫冷暴力。
    人往高出走,尽量和高手混在一起,尽管在高手眼里你可能会仅仅是个菜鸟,但这样做确实有利于你提高自己,有压力才有动力。需要叮嘱一点:永远不要指望技术大牛经常出现在xx群,高手在哪里?高手多半都在写程序,会有时间泡群?
    笔者的阅历,暂时只能提出这么多建议了,不管建议是好是歹,也算是表达出了心中一直想对新同学们想说的话,所有准备踏入编程这片天空的同学,祝你们学习愉快,早日实现心中的那份梦想。
    最后,引用《黑客防线》上的一句话,作为本篇文章的结束语,这句话我一直记在心中:程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。

    最后给大家一点总结,其实这个自学就是需要经历很多自己从未经历过,学习是一种演变,在你想学、想做、想知道一件事之后,你就会通过各种方式去完成自己的目标,但是由于自己的恒心不够,就会半途而废,所以很多东西,你在需要的时候,虽然会走很多弯路,但是走完这些弯路之后要吸取教训,吸取教训之后就会获得经验,下次也就不会在出同样的错误,例如:我开始学前端的时候,什么都不懂就想去学,然后自己不会怎么办?去问啊,我就去加群,加了很多很多,然后问别人,有些好心的、有耐心的就回答你,给你路线,但是有些没有耐心的就直接叫你百度,当时给我方法的那个人,我很感激,但是那时候的我很天真,有很多方法,但是不够恒心就没有去坚持,后来等到真正想去学习的时候我才发现,原来学习是一个过程,当你要经历这些事的时候,你不管有多笨,你都能懂。所以这个要考持之以恒,坚持不懈,不能半途而废,及时你学习到一课不会的东西的时候,等到后面做项目的时候,你迟早要用到你不会的,然而自己不会怎么办?那时候你就会很容易理解你不会的。----------加油吧!趁自己还年轻、有时间、有青春,就抓紧多学点东西吧,及时你不走这条路,你也不会亏,只有收货,没有遗憾!等待明年的时光,我将会推出我的微信公众号号,每周会写1-3篇文章总结自己,分享给你们,人生虽长,少走写弯路也是好的!我的官方小白客交流群:773680934(欢迎新手入群交流!)

    展开全文
  • 我是一个自学者 从半年多之前,我开始了前端之路,那时候一心只想学一门技术,所以我开始了盲目的学习生涯。 刚开始,搜了一下前端基础主要学习什么,html,css,js,都说是基础了,开始吧,中间还要小升级一下,...

    我是一个自学者

           从半年多之前,我开始了前端之路,那时候一心只想学一门技术,所以我开始了盲目的学习生涯。

          刚开始,搜了一下前端基础主要学习什么,htmlcssjs,都说是基础了,开始吧,中间还要小升级一下,学习XHTML,当看到一个静态页面出来的时候感觉值了,为自己的小小进步内心欢喜一下,虽然代码有点丑!

          在学习js途中并不是那么顺利,买了一本犀牛书,结果看了一百页实在看不下去了,对了,我忘了说我之前学习的直接买了两本书学的,完全不知道还有网上视频教程这么一说,js后面买了一本DOM编程艺术再找到了网上的一些视频教程,反复研究,打代码,每成功一段代码都会为自己高兴一会儿,但有时候打错一个标点,一个字母,都有可能悲剧,所以在这里我要提醒一下初学者,一个好的代码编译工具,浏览器开发者工具和重复的输入代码查错是有好处的好的代码工具可以在你输入代码错误的时候有提示,我现在用的是webstorm,很好用,推荐一下,网上有破解中文版!而浏览器开发者工具能在你出错的时候更直观的指出你的错误类型和出错在多少行,看不懂英文不要紧,可以保存一个翻译网站来多翻译一下,也可以顺便学点英语!

         在学习js时感觉能用就行,直到后来我两次回头研究js,才深刻领受了基础的重要性,js是一门面向对象的语言,其中的要点我说的可能不全面:基础语法,什么是对象,函数,执行环境,this,继承,闭包,兼容ie,事件机制和绑定,cookie与存储,XML,php,ajaxjson。最后学习封装才是牢固你js好方法之一。

          学习完js,写了一个网页,我就去面试了,盲目吧,实在是在家呆的受不了了,除了睡就是学,身体都快吃不消了!所以在这里我要提醒一下,合理的放松自己的心情是有很大的必要,既然选择了这条路,放弃不是我的性格,每个人都有压力,但也要合理安排自己时间,偶尔出去走走,聊聊天也好,显然我不是,有时候长时间研究一转眼就是四个小时,有时候会开始质疑自己,但每当我想到,可能我再坚持一下就成功了!去面试的时候,刚开始投了一些简历,也面试过一些,也开始让我有点小小打击!网上找工作要看清楚,真正的公司不会要没有什么基础的,那些都是培训机构,也有收留的,可是我原生没通过!这里就证明了一件事原生js多重要

          面试一次也有好处,知道了自己很多不足,很多人会气馁会懈怠,所以一定要想清楚你是不是真的要学下去

          之后我买了锋利的jquery,bootstrap实战两本书,结合w3c网站文档和视频学习了html5,css3,jquery,bootstrap,自己不断实操,最后我又写了一个页面拿去面试,结果没通过,那时候我不了解公司到底如何写法规范,如何评价一个页面的性能各方面,对了,那是一家杭州的达内,我简历投的不是叫这个,但地址没错,第二家公司人事张口就来全栈,node.js,我还凑巧碰到有个人过来问前台说某老师。。。有点憋气,后来我再次开始了学习之路,多看csdn的帮助还是非常多的,里面有很多有意思的代码和一些学习思路。

          在这里我要说一下,如果你有代码基础的同时很想速成,培训还是有帮助的,多问为什么,学费都交了是吧!没有基础的还想速成,很辛苦,我只能这么说,所以要慎重考虑,合同一签就是小两万,生活费什么的,虽然会提供住宿!

          在学习期间一定要问为什么,找资料,不懂就搞懂来,代码容不得马虎,公司容不得你不会!

          之后我重新梳理了一遍前面所学的知识,因为我手写了笔记,四五本了吧,然后重新再复习,把一些自己不熟悉的东西再记一次笔记,打一些代码,有人可能会用我抄笔记的时间用来多打几次代码或者多学一些内容,笔记有的好处可能是在你打代码而有些找不到方法的时候给你节约时间,多用w3c也是可以的,其他网站我就不介绍了。

         到这里快结束了,现在我在学习vue。

           敲黑板!!!  

       在这里再次说一下

         1.  一定要考虑清楚是不是真的要学习,现在前端更新不断加快,你的学习长度也在不断拉长,是不是有足够的韧性和时间能坚持下来

         2.  学习思路如果提前多参考csdn的一些内容从而制定学习方向是非常有必要的,总结出来,它能帮你提高效率

         3.  学习之余别忘了偶尔放松一下,说不定它能让你的思维更清晰,不经意就解决了你的问题

         4.  多问为什么

    展开全文
  • C的自学(放弃)之路

    2018-08-27 19:10:50
    第一篇 在师父的推荐下,我决定要写写博客来记录一下自己的菜鸡之路,我的菜那真的不是一般的菜。 0.1_HelloWorld遇到bug ...我按照C他爹写的《The C Programming Langauge (第二版)》在vim上敲了程序 ...

    第一篇

    在师父的推荐下,我决定要写写博客来记录一下自己的菜鸡之路,我的菜那真的不是一般的菜。

    0.1_HelloWorld遇到bug

    我按照C他爹写的《The C Programming Langauge (第二版)》在vim上敲了程序

    #include<stdio.h>
     main(){
            printf("hello!world!!");
    }
    

    是很简单的helloworld程序,很简单的报错
    这里写图片描述
    English太渣没有办法,复制粘贴一波去翻译得到这样的结果说是类型说明符丢失,默认为“int”
    这是什么意思呢??
    完全按照书上的来的啊,是不是过时了呢?与ISO c9x有关(不懂不懂)??
    后来我改了代码

     #include<stdio.h>
    int  main(){
        printf("hello!world!!");
    }
    

    然后就成功了
    这里写图片描述
    后来仔细了解了一波,其实也不知道真假,说是

    • main()形式c90允许,c99不允许,虽然一些编译器允许,但这不符合标准,最好别这么写。void main()还没有被任何标准接受,有些编译器允许这种形式,但有些不允许。只有int main(void)是最标准的,你把程序从一个编译器转移到另一个编译器的时候不用担心出问题.

    • 还得知了操作系统是根据main的返回值来判断该程序是否正常结束,返回值为0显示正常。

    从这开始其实我已经知道了好好读提示的重要意义。这个程序是昨晚写的,报错的时候我就一直在想怎么回事,费了老大力气去复制粘贴百度搜索,其实人家已经提示的清清楚楚明明白白,我只要在箭头上方加上声明int就好了呀!你看菜鸟就是这么蠢

    0.2_getchar函数的bug

    按照C他爹的指示,我敲了以下的简单代码

    #include<stdio.h>
    int main(void){
            int c;
            while((c = getchar())!= EOF)
                    putchar(c);
    }       

    编译运行
    这里写图片描述
    唉,这不对头啊
    C他爹可不是这么说的啊
    这里写图片描述
    不说是一次只打印一个字符吗??
    又废了不少时间,终于搞明白了几个关键点

    • EOF为End Of File的简写,这是一个宏定义,代表文件结束符,其值为-1,
      这是一个仅用于输入的概念,即没有输出EOF的说法。
      输入时,如果是读文件,当读到文件尾部,即已经读到了文件的最后一个字节,还尝试读操作,就会获得一个EOF错误。
      如果是从标准输入进行读取,那么在终端下输入指定组合键,可以实现输入EOF。
      在windows下,需要输入Ctrl+Z; 在其它系统下需要输入Ctrl+D。输入时不区分大小写。

    • 代码写的也很清楚,只有遇到了这个EOF才能停止

    • 如果我将EOF改为遇到字符‘a’,那么在敲do you like apple?时,在遇到‘a’就能跳出循环,输出就会是do you like ,接下来就写代码验证一下

    #include<stdio.h>
    int main(void){
            int c;
            while((c = getchar())!= 'a')
                    putchar(c);
    }
    ~  

    成功了
    这里写图片描述

    从这里我就开始有点点感觉了,不要怕麻烦,遇到了问题解决了,接下来的路才会更好走一点。

    0.3_使用getchar函数写的字符计数小代码

    从这里开始我已经体验到了事事问为什么的好处(菜鸟总会自带一些满足感),好像经过上面的bug之后写起C他爹介绍的同类型的代码感觉有点爽。很快就搞定了。

    代码如下所示,是一个非常简单的字符计数代码,将敲入的字符一个一个输出并且计数

    #include<stdio.h>
    int main(void){
            int c;
            int a;
            a = 0;
            while((c = getchar())!= EOF){
                    putchar(c);
                    a++;
                    printf("\n");
                    printf("%d\n",a);
    }
    
    }

    效果如图
    这里写图片描述

    0.4_单词计数代码bug

    这是我的第四个代码,花了半小时才搞明白,因为C他爹给的这个代码对我这个菜鸟来说是有难度的!我仔细读了几遍,没什么头绪,没办法,可能就是脑子不太灵光。所以我cpoy去编译了一遍,才有了点领悟

    在这里我又学了一点,不要死啃代码,拿笔画什么的会浪费时间。拿到这个代码应该将它的功能了解了,去编译一下,看看打印出来的这个是个什么东西,然后对比着代码来看,这样的效率会高一点。

     #include <stdio.h>
       #define IN   1  /* inside a word */
       #define OUT  0  /* outside a word */
       /* count lines, words, and characters in input */
       main()
    
           int c, nl, nw, nc, state;
           state = OUT;
           nl = nw = nc = 0;
           while ((c = getchar()) != EOF) {
               ++nc;
               if (c == '\n')
                   ++nl;
               if (c == ' ' || c == '\n' || c == '\t')
                   state = OUT;
               else if (state == OUT) {
    state = IN;
    ++nw; }
    }
           printf("%d %d %d\n", nl, nw, nc);
       }
    • 不错我总算是有点头绪了
    • 如果把单词看作是一个个整齐排列的苹果矩阵,那我做的计数就是放一条小虫子,从光标首行的头个苹果开始啃洞,进去就是IN,当从这个苹果出来时遇到’\n’||’\t’||’ ‘时就是OUT,但是下一步就会进入另一个苹果,所以在这一步修改状态state为IN
    • 所以10+dd删掉了C他爹的代码,自己手码了一段
    #include<stdio.h>
    #define IN 1
    #define OUT 0
    int main(void)
    {
    int c,linenum,worldnum,state;
    linenum = worldnum = 0;
    state = OUT;
    while((c = getchar()) != EOF){
        if(c == '\n')
            linenum++;
        if(c=='\n'||c==' '||c=='\t')
            state = OUT;
        else if(state == OUT){
            state = IN;
            worldnum++;
            }
        }
        printf("%d %d",linenum,worldnum);
    }       
    

    成功了
    这里写图片描述

    0.5_打印输入中单词长度bug(未解决)

    这是一道课后练习小题,我尝试自己做出来,但是很快就遇到了bug

    #include<stdio.h>
    int main(void){
            int c,worldlength;
            worldlength = 0;
            while((c=getchar())!= EOF){
                    if(c==' '||c=='\n'||c=='\t')
                            printf("\n\n");
                    else {
                            printf("*");
    
                    }
    
                            }
    }
    

    代码很简单,但是我却感觉到很奇怪的地方是,我在终端键入的单词只能是一行,然后就出*了,
    这里写图片描述
    是什么意思呢?
    我应该敲成这样
    apple orange banana
    one two three
    ^D
    然后返回效果如图
    (由于*为markdown的敏感符号我将用©️将其代替)
    ©️©️©️©️©️
    ©️©️©️©️©️©️
    ©️©️©️©️©️©️
    ©️©️©️
    ©️©️©️
    ©️©️©️©️©️
    但是实际上我却只能键入第一行apple orange banana,再敲回车时就开始执行了。
    我知道回车就是执行程序的意思,仔细分析我的程序,只要我不渐入^D(EOF)就不会退出程序
    但是奇怪的是我在0.4中的那个单词计数代码中,却可以实现多行输入,最后键入EOF就会出结果,这是为什么呢??我在这里疑惑很久,希望有大神可以告知


    首篇博客就到这里,感觉菜鸟的鸟生才刚刚开始。。。下篇见

    展开全文
  • 自学编程的 6 个致命误区

    万次阅读 多人点赞 2020-04-24 09:14:23
    本篇文章来和大家聊聊自学编程中的一些误区——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题,很有代表性,所以我就结合自己的亲身体会来谈一谈,希望对小...

    嗨,小伙伴们大家好,我是沉默王二。本篇文章来和大家聊聊自学编程中的一些误区——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题,很有代表性,所以我就结合自己的亲身体会来谈一谈,希望对小伙伴们有所启发。

    01、追求时髦

    所谓基础不牢,地动山摇啊。可很多小伙伴压根就没注意过这个问题,市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟,心灰意冷。

    别的语言我不懂,就拿 Java 来说吧。时下最火热的技术,有微服务 Spring Boot、有分布式 Spring Cloud,虚拟容器 Docker,流处理框架 Flink 等等等等,但如果你连 JDK、JRE 和 JVM 都搞不清楚的话,那这些技术学起来可想而知有多痛苦。

    我从一开始写作那会就计划着用半年的时间把 Java 基础方面的文章写完,结果呢,写了一年多,发现还有特别多的内容没有覆盖到。

    学习是个漫长的过程,小伙伴们在学习一门语言的初期,一定要从基础开始,不要着急,时髦的东西咱把基础夯实以后再来吃,不然容易撑着哈。

    02、孤军奋战

    透露给大家一个小心得,我有很多知识都是从小伙伴的留言当中学到的。

    我写文章从来不怕自己犯错,因为我有一颗强大的心,经得住批评和嘲讽。金无足赤,人无完人嘛,况且我一直认为自己就是一枚菜鸟,本着这种谦虚谨慎的态度,我想说一句哈,文章中有些知识点写错了,不是我不负责任,是我也在学习,我又不是孔子,传道受业解惑的,纯粹是为了和大家交流而已。

    对吧?如果你没有分享的勇气,只肯自己闷头学习,那么不好意思,你的成长是很有限的。

    这就和打战是一样的道理,要团队配合,不可孤军深入。

    我已经建了 8 个学习交流群了,有些小伙伴进去后一开始嫌人少,不想做元老,想去人多的,可到了人多的群里仍然沉默,一言不发;有的小伙伴呢,不管三七二十一,有问题就是问,这次没人回答,下次还是问。

    这种心态非常值得肯定。为什么这么说呢?群嘛,不可能所有人都在盯着你的问题,也不是所有人都会解答你的问题,问不到答案是很正常的一件事。

    但提问本身是具有重大意义的,因为你会在提问的过程中组织语言,你总得把问题描述清楚啊,不然别人解答也无从下手,对吧,陈述的过程是要花心思的。一旦你的大脑在高速运转,那么答案很可能自己就找到了。

    03、刻意记忆

    有好几个小伙伴曾发私信给我说,“二哥,总感觉学完就忘,可怎么办啊?”

    其实这种困惑真的没有必要,因为人总会忘的,忘是一种常态,我连勾股定理都忘了。还记得张三丰教张无忌太极拳那个桥段吧,忘,忘了,才能学新的。

    我们学习,其实从某种层面上来看,学的是一种学习的能力,而不是死记硬背的知识,对吧?

    在我的概念里,不管你是名校毕业,还是野鸡大学毕业,只要你能在工作中解决问题,那就会受到重视。解决问题就不需要你记忆大量的知识点,记不住了问搜索引擎啊。

    其实,我最讨厌的就是那些炫耀记忆力的,真不如炫耀一下学习力。互联网解决了人类一大难题,就是信息的存储和检索,对吧?

    我上学的年纪,没有手机,没有互联网,查个字只能翻一本厚厚的新华字典,效率极低。甚至为了写作文,背大量的名句典故,虽然现在考生还需要,但我觉得早晚要被取代。

    对于程序员来说,就更没有必要记那么多知识点了,除非——你要面试。说起来这事,我觉得很有必要以后面试的时候,上机联网考试,咱们不扯那些没用的,你要造火箭,咱造就不就完事了。

    多花点心思搞创新,提高学习能力,它不香吗?

    04、怀疑自己

    世界上优秀的人毕竟是少数,大部分都非常平凡。只有意识到这一点,你才能做到不妄自菲薄。

    我时常遇到一些小伙伴,说:“二哥,我学历不好,我出身不好,我在公司好像不受到重视。”针对这些小伙伴,我只能说,心理建设真的非常非常重要。老怀疑自己,你怎么可能变得更强?赶紧把那些自卑扔到垃圾桶,与其卖惨博同情,不如自我超越。

    不是所有人都是学霸,也不是所有人家庭条件都很优渥,作为一个平凡人,我们必须要学会自信,学会扬长避短。

    我就写不了高大上的技术文章,甚至有些文章还会出现一些错误,没关系的,真的,有人爱喷就让人家喷啊,那是人家的自由。

    因为被别人喷就停滞不前,不敢分享,那是弱者的表现,真正的勇士敢于直面别人的口水。我敢说我就很勇敢,有啥好怕的呢?总有人欣赏你的。

    我以前非常喜欢一本书,叫《自卑与超越》,读了很多遍,虽然没有找到超越的秘诀。但不得不说,这本书的书名非常棒,对吧?不要和那些优秀的人比,你需要超越的不是他们,而是从前的自己。我就不信,真的是活一天不如一天?

    可以允许别人超越你,但绝不能允许自己怀疑自己。

    05、收集资源

    好像网络上特别流行一句话,叫做:“收藏从未停止,学习从未开始。”每次看到都觉得特别扎眼,有些人是处于调侃,有些人呢,是真的养成了习惯,见到好的文章,见到长篇大论就赶紧收藏,但从来没有认真从里面学习到一丁点知识。

    哪怕你看 100 字,看 200 字,从中真的学习到一点,然后把它扔到垃圾箱,都比你把它放到收藏夹吃灰,强上一百倍。

    我公众号里不是整理了 500G 的教学视频嘛,然后我就观察啊,有些小伙伴呢,一次性就想把所有的视频全都取走;而有些小伙伴呢,一天过来取一集。我认为,后者要比前者更能学到知识。

    网络上资源真的是已经泛滥了,除了坏的,好的都快。。。。。。你花一辈子都看不完,真的。

    与其收藏,真不如每次看到就学一点,哪怕学一分钟,对吧?

    最近一段时间,我每天到 B 站刷 2 集视频,咱不多刷,然后就地消化,等到真的融会贯通了,再去刷新的。

    这样的好处显而易见,刷一集就吸收一点,长年累月下去,那自然身强体壮啊。

    06、想学最好的编程语言

    每次谈论“谁是最好的编程语言”这个话题,总忍不住把“PHP 是世界上最好的语言”这个梗扔出来。真的,不管是不是梗,“想学最好的编程语言”就是一个伪命题。

    每种语言都有它存在的道理,但也有它的生命周期。我们所能做到的,就是学一门,爱一门,真的把它变成养家糊口的工具。

    对于程序员来说,技术永远都是学不完的,因为时代在进步啊,新鲜的有活力的新语言早晚都要出现。如果你不能从中获利,那么学哪门语言都白搭。

    就目前来说,Java 肯定是就业形势非常好的一门语言。Python、C++、C#、C 等等等等,几乎市面上没有被淘汰的语言都值得去学,不要挑肥拣瘦。

    我记得有一次,有个小伙伴就给我说,“二哥,你这么优秀,能预测一下未来十年里哪门语言最火吗?”

    哎呀,我去,当时我就感觉自己要懵逼。未来十年,计划得可真长远。别说十年,五年内我都预测不了。

    纠结于这个命题的小伙伴,让我想起了“铁饭碗”。偶尔听一些长辈谈论,你家孩子上那个什么什么学校吧,学什么什么专业吧,保准毕业后拿到一份稳定的工作,都什么年代了,还这么向往“铁饭碗”啊。

    语言之间都是相通的,真不假,虽然各自有各自的壁垒,但像我这种对编程没有极致追求的程序员,不也凭借 Java 这门编程语言养活了自己嘛。

    在我这 10 年程序生涯中,我搞过 Ruby,SQL、Flex、ActionScript、JavaScript、PrimeFace,甚至还有一段时间自学过 PHP。无论哪门子编程语言,我敢拍拍胸脯说,我能学会。关键是,挣到了钱,你信不信?

    谈钱多俗,对吧,但你学一门语言不就是为了挣个面包钱吗,只要能帮助我们达到这个目的,就是最好的编程语言。

    COBOL 程序员不是都被抢了吗?

    好了,亲爱的读者朋友,以上就是本文的全部内容了,能看到这里的都是最优秀的程序员,我必须要伸出可爱的大拇指为你点个赞。

    如果觉得文章对你有点帮助,请微信搜索「 沉默王二 」第一时间阅读。本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。

    我是沉默王二,一枚有颜值却靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,嘻嘻

    展开全文
  • 自学网站大全(值得收藏)

    千次阅读 2019-01-09 08:15:09
    自学,顾名思义就是自我学习。在这个信息爆炸的时代里,网络上有很多学习资源的。以下就是学习网站的介绍: 目录 综合类 中国大学MOOC(慕课)_国家精品课程在线学习平台 https://www.icourse163.org/ MOOC中国 - ...
  • 想让工资翻倍,就要不断学习,不断进步,如果你现在还处于迷惘与彷徨中,那么你现在需要做的,就是去招聘网站上看看人家岗位与你自己的能力是否符合,自己拿的出手的是什么,然后进行对接学习,剩下的交给时间就好了...
  • 一些自学网站

    2019-12-17 16:43:37
    一、电子书搜索 对于大部分程序员来说,电子书的需求量还是很大的,介绍几个不错的免费搜电子书的网站吧。 1、鸠摩搜书 这个网址可以用来搜索一些pdf版的电子书,有了这个网址,就不用百度全网搜索电子书了。...
  • 一些免费自学的网站

    千次阅读 2019-07-30 10:51:48
    几个月前随手分享了电脑里的几个学习标签,没想到大家这么捧啊,由于之前的分享带很强的个人观点多多少少会影响大家的选择,所以今天就重新整理。 学堂在线 ...学堂在线是免费公开的MOOC(大规模开放在线课程)平台,是...
  • 请大家根据自己的实际情况对号入座,挑选适合自己的 Python 入门书籍: 完全没有任何编程基础:01 号书少量编程基础,不求全,只希望能以最快的速度入门:02 号书少量编程基础,有一定的英文阅读能力,喜欢多一些...
  • MATLAB R2016a完全自学一本通PDF

    万次阅读 多人点赞 2018-10-04 23:49:30
    MATLAB R2016a完全自学一本通PDF下载地址: https://pan.baidu.com/s/1kb2L3C4XOjgiQhPR0ZaOWw; 密码:9twg;   资源全部收集于互联网,分享目的仅供大家学习与参考; 如有侵权,请联系@__WindRises_及时删除!...
  • 自学是门手艺》从已发布很快就在github上获得上千颗star 但是最初想看书还得部署服务,对新手不是很友好。我照着附带的教程本地部署,发现有些坑小白很容易掉进去。于是上一篇写了个国内快速部署教程。 这个部署...
  • 正文开始 很多人包括一些企业家,和市场营销人员都认为学习编程对一个人走向成功十分有帮助。在过去的一年里,我一直在学习编程。它有助我成为一个更好的创业者,我甚至可以提供一些帮助,当我的团队需要解决一些...
  • 不管你是自学的,还是去培训机构获得的,只要你有这个能力,可以胜任职位要求,就可以找到工作。所以说能力是很重要的。 我是计算机专业毕业的,当时在互联网公司做编程,并不是所有的程序员都是科班出身的,有的...
  • c语言入门自学 零基础学c语言教程

    万次阅读 多人点赞 2019-05-04 14:07:32
    C语言通过自学软件工程师要多久? 许多同学问C语言怎么学?考二级c的话c语言书籍的话推荐看谭浩强,但是你要用于工作上的话我推荐你看传智播客的C语言教程!精通C语言肯定得花上几个月时间。 很多人对学习C语言感到...
  • 自学java的网站

    万次阅读 2019-11-15 11:45:28
    一直在找这样的项目,作为个人项目...什么OA人事管理系统,什么ERP系统等等,找出来都不太适合我,后来真的被我找到了一个项目,它是一个很用心的自学网站。 网站分为一个个小的学习模块,有视频教学,有题目和答...
  • 链接:http://pan.baidu.com/s/1o81XLDS 密码:dhfm
  • java自学路线图(超全超详细)

    万次阅读 多人点赞 2017-06-18 21:05:16
    自学路线图:
  • 推荐给大家一个好的软件自学网站

    千次阅读 2018-01-25 11:28:41
    http://www.51zxw.net/study.asp?vip=15682593
  • java自学网站

    千次阅读 2018-01-07 09:24:10
    java是一门非常重要的编程语言,自学一些项目,是非常必要的。 java自学网站:http://www.51zxw.net/study.asp?vip=15569973
  • 推荐一个自学java非常好的网站!

    万次阅读 多人点赞 2019-03-12 20:20:00
    http://how2j.cn?p=7870 这个是一个在淘宝有8年工作经验的大神制作的一个java自学网站,里面有java基础知识,大型实战项目以及很多好用的java工具,针对每个知识点都结合非常有趣的lol举例,让你在快乐中学会java!...
1 2 3 4 5 ... 20
收藏数 164,091
精华内容 65,636
关键字:

自学