对于刚刚上大一的新手,且是那种十分有上进的学生,在学习计算机的过程中必然会有一大堆的困惑,比如:

1 .如何学好编程(这与以往的应试教育完全不同,按照以往的那种学习方式,看书刷题不过是成为一个考试学霸而已,笔者见过太多考试很牛掰,但是写出来的代码却很恶心的人)

2.学习计算机的方向和目标,计算机道路永无止境,知识永远学不完, 如果盲目的学习,可能会错失在正确时间学习到相当重要知识的机会, 所以要有目标的学,并且在大一就需要迅速的奠基自己深厚强大的基础.

3.如何循序渐进的学习,错误的学习顺序,会很打击学生的学习热情,以及很容易浪费时间,在重要的时间段里学习一些自己很快就会忘记的东西.

 针对以上的问题,笔者提出以下的一些建议,这些都是笔者自己的一些经验,源于笔者当时学习踩过的坑!以及当时没有把握住的机会, 还有就是笔者自认为做的还不错的地方:

1.首先,我们先谈谈在开始编程之前的事, 选择自己的工具。很多学校(比如笔者学校), 还会在使用一些十分古老的编程工具,像许多大一开c/c++的课程的学校,还在使用vc6.0, 这实在是非常非常落后的编译器,十几年前就有的东西,如今计算机发展迅速,还在用那么落后的工具(且很多编程语言的新标准都不能使用,如:c++11)是不利于学习且用的也不舒服。这里笔者推荐几款自己比较喜欢且常用的编译器:

   ①Vs2013,这是笔者十分喜欢的一款编译器,有十分炫酷的界面,以及可以使用很多编程语言的新标准,还有就是有强大的代码补全功能。唯一的缺点就是太大了,建议读者在安装的时候参考网上的一些教程,或者是咨询一些牛掰的学长(学习计算机的朋友,在安装软件踩过的坑应该很多吧,记住踩坑后学会用百度).(http://jingyan.baidu.com/article/09ea3ede3b2496c0afde3944.html     这里放上vs2013的安装教程链接. 安装包链接: https://pan.baidu.com/s/1bVpY26 密码: 6kdu)

          ②Dev,这是笔者十分常用的一款编译器,因为他十分的快捷方便,Vs下面要很多步后才能写程序,再运行,这里只需要按下Ctrl+N就可以直接建立一个项目写代码了.

③.还有其他一些就是如: codeblock(简洁且功能很不错!但是笔者现在不怎么用,因为比较喜欢vs) 以及其他等等(这些到时候新手估计也成老手了,大家自己选择吧!) 链接: https://pan.baidu.com/s/1b575fg 密码: awne

2. 然后,我们就可以开始选择如何开始学习了,笔者非常非常非常建议新手在学习的开始(以及以后),能够去看一下网络上的学习视频,这些学习视频来自全国最顶尖的学校,甚至是世界顶级的学校,你可以在上面有体系且十分详细的学习到你的专业课知识:

  这里,我放上几个笔者十分喜欢且常用的视频地址,建议新手能够把他收藏到你的浏览器最最显眼的地方,然后经常观看之!!

  ①. http://www.xuetangx.com/event/computer       ----      学堂在线,这个最吸引人的就是那个清华专题了,他很系统的画出了一个学习结构,且每种课程,他都放好了链接.

②. https://www.coursera.org/                                ----  Coursera, 世界上的好学校都在这里了,这里你可以学习到一些更高级的东西,等大家视野开阔之后自然会明白其中的美妙)

③. http://www.icourse163.org/                              ----- 中国大学Mooc,想要的课程在上面链接找不到,来这看看吧,也是不错的教程

选择自己常用的一个教育平台就可以了,个人十分推荐学堂在线.

3. 看过视频做了一些简单的了解后,我们就可以来选择书籍来进行深入,细致,系统的学习了,在大学,阅读一些课外的专业书籍,是十分十分十分十分必要的!!这可以帮助你提高学习学校教的知识的能力,阅读过这些书籍你会发现你学习的书很容易就理解了), 下面的书籍是按照笔者觉得很好的学习顺序来描述的 :

①. 学习C语言入门的同学,可以选择,K. N. King等人的《C语言程序设计:现代方法》(第二版),比较新的C程序设计语言的教材。这是一本可以结合你自己学校的书籍来阅读的一本教程, 结合你学校的教程来读,效果是很好的!

②. 学习c++入门的同学,可以选择 《c++primer》来结合学校的教程阅读,记住是结合学校的教程读(额,我就是这样的,感觉这样做没错..),感觉笔者在学习指针的时候理解了好久,结果看了《c++primer》指针这块之后一下子就看懂了~ 在大一,建议至少把前400多页都看完!(这是我的经验之谈,个人觉得这是十分有帮助的), 之后最好尝试着用上面的知识写一些程序,不然你会很快就忘了......(ps:一个非常非常非常重要的地方,看书必须写代码,看书必须写代码,看书必须写代码,重要的事说三遍!任何不以敲代码为目的的学习编程都是在耍流氓!!!刚开始的时候照着书敲代码,不理解就慢慢理解,书多看几遍!!笔者属于那种蠢到家的人,一些看不懂的地方可以看7,8遍。然后,就必须自己动手独立的写代码,如书后的习题之类的,或者学校提供的刷题网站)

③. 面向过程编程学完后,大概大一上学期就应该结束了(不过大神们早就应该提前学完了!),这时候,那些想要在计算机专业上很牛掰的同学注意了,且想在之后参加一些算法竞赛(或者其他竞赛),这个时候(大一上学期)如果学校有组织参加比赛,一定要参加!!!不要觉得自己水平不够!!只要面向过程编程学完就可以打算参加比赛了!(PS; 这是笔者十分遗憾的事,当时在这里被其他大神甩开了老远!),这时候参加竞赛,会被比赛逼迫的去写程序,这段时间里,提高的空间是非常非常大的!到了这里,我就应该推荐如何搞竞赛的书籍了!(ps: 看书写代码缺一不可!!)

      ⒈《挑战程序设计竞赛》:在网上的人大多数会推荐刘汝佳的那本《算法入门经典》,我也会推荐,但是我会先推荐学这一本!!从这本你可以很快的了解到算法的一些基础,并开始你的刷题计划了! (ps: 这里放上笔者常用的两个刷题的网站:  http://www.tyvj.cn/Problem        http://acm.hust.edu.cn/vjudge/index    第一个是纯刷题的,第二个相当于把各种牛逼的刷题网站(链接)放到一起了.)

  2. 《算法竞赛入门经典》: 真心讲,这本其实不怎么适合新手,看上面的代码可以说时十分头疼的事,但是这本书几乎是必看的!!!当你觉得你已经刷了一些题目,就可以来学习这本书了,上面推荐的题目,最好能够按照上面要求来练习!!不会就去百度,去看别人的博客!!挑战难题是你学习计算机一件非常非常非常必要的品质和能力!!)

4. 我并不想给新手推荐太多的书籍,以及告诉他们什么什么是你以后要学的,这会让新手很茫然(感觉什么都想学,结果导致什么都学不好!), 让他们大一打好一个坚实的基础!并且让他们养着一个强大的学习习惯(能力)才是非常非常非常必要的!!

5.下面我介绍几个很有用的经验

①. 学会用搜索引擎。俗话说,大学教会你使用搜索引擎,然后搜索引擎教会你一切!遇到实在不会的东西,麻烦,困惑,在搜索引擎上(国内就百度了),首先使用搜索引擎寻找答案,如果实在搜不到再去问别人!!!(百度,google,stackoverflow是你今后学习生涯经常要用的东西,记住收藏到你浏览器的最显眼的地方!)

②. 认识一些牛掰的学长!!他们真的真的真的对你的学习生涯起到决定作用,自认为,我做的最最最正确的决定就是认识一些很好的学长,他们在对我的启发和帮助受益匪浅!!!他们的建议十分的宝贵!!他们会教会你如何学习,我自认为,学长教我的东西比老师教我的东西还要多(毕竟大学靠自学嘛)

③. 强大的自学能力,让别人来督促你学习,是一件很恶心的事,如果你自己不能在大学主动的去寻求知识,可以这么说,你是不会有多牛逼的......之前说过了,那些学习网站都是十分十分完美的资源!

④. 问问题的方法,问问题的方式,决定了别人是否会给予你回答!⑴那种不经过思考就问别人的问题,是最糟糕的.⑵问别人问题,不要复制全部的代码给别人,然后说,某某大神,能帮我调一下代码吗?(别人的时间是很宝贵的好吧!如果是新手还可以这样,等以后一些几百行的代码复制给别人....不说了)⑶. 记住,问别人题目,把你觉得搞不明白的(一小行)代码发给别人,还有就是注意你的代码风格!(建议模仿《c++primer》上面的代码风格,看起来很舒服).⑷ 记住感恩别人,别人没有义务回答你的问题,别人回复你慢,也是因为别人也是很忙的,我自认为对帮助我的人感谢至极!

⑤. 英语,英语也是非常需要重视的!他决定了你未来的路有多远,基本上,未来你看的文档资料,都是英语的...

总结: 在我看来,在刚刚开始学习编程的时候,希望能多花些时间,有很多朋友,在刚刚开始的时候,没有好好学习,之后想学习的时候,却已经被打击的失去了学习的信心和热情。还有遇到难题不可怕,努力的去寻找解决的方法吧!(搜索引擎,学长的帮助)。还有就是希望能多阅读!上面内容,足以让新手拥有好的学习习惯,之后他们估计也能自己去寻找应该阅读的书籍吧!

  引用一句话:学习计算机是一条不归路,身后是悬崖,唯有向前!

(以上纯属个人观点,欢迎大家对我的总结评价,我也会根据此修改,希望能对新手有一个好的建议!)

对于大一学习计算机的新手(c/c++ )提出一些学习经验的更多相关文章

  1. 从新手到高手c++全方位学习 pdf + 视频教程 共18章

    淘宝已经和谐了这个网站,原网址:https://item.taobao.com/item.htm?spm=a1z09.8149145.0.0.mb00D0&id=17350311256& ...

  2. Dart语言快速学习上手(新手上路)

    Dart语言快速学习上手(新手上路) // 声明返回值 int add(int a, int b) { return a + b; } // 不声明返回值 add2(int a, int b) { r ...

  3. Linux学习-计算机基础

    Linux 学习-计算机基础 一.描述计算机的组成及其功能. 计算机系统是由硬件(Hardware)和软件(Software )两部分组成. 硬件: 从硬件基本结构上来讲,计算机是由运算器.控制器.存 ...

  4. Linux内核分析第一周学习博客 --- 通过反汇编方式学习计算机工作过程

    Linux内核分析第一周学习博客 通过反汇编方式学习计算机工作过程 总结: 通过这次对一个简单C程序的反汇编学习,我了解到计算机在实际工作工程中要涉及大量的跳转指针操作.计算机通常是顺序执行一条一条的 ...

  5. Winform设计-小百货 涵盖基础插件学习(适合新手)

    Winform设计-小百货 涵盖基础插件学习(适合新手)   第一次写winform,主要是为了加快对  事件的 理解. 代码如下: private void Form1_Load(object se ...

  6. .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一)

    原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一) 写下此文章只为了记录Surging微服务学习过程,并且分享给广大想学习surging的基友,方便广大 ...

  7. .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)

    原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图: 以上可以看出项目结构可以划分为4大块,1是surging的核心底层,2,3,4都可以 ...

  8. Netty学习——protoc的新手使用流程

    Netty学习——protoc的新手使用流程 关于学习的内容笔记,记下来的东西等于又过了一次脑子,记录的更深刻一些. 1. 使用IDEA创建.proto文件,软件会提示你安装相应的语法插件 安装成功之 ...

  9. 如何优雅地学习计算机编程-C++1

    如何优雅的学习计算机编程--C++ 0.导入 如何优雅地学习计算机编程.我们得首先了解编程是什么?打个比方--写信. 大家都知道写信所用的语言双方都懂,这样的信才做到了信息交流,人和计算机也是如此人和 ...

随机推荐

  1. Bootstrap编码规范

    黄金定律 永远遵循同一套编码规范 -- 可以是这里列出的,也可以是你自己总结的.如果你发现本规范中有任何错误,敬请指正.通过 open an issue on GitHub为本规范添加或贡献内容. 不 ...

  2. Java Io(数据输入输出流)

    Java Io 字节流中的DataInputStream 和 DataOutputStream,使用流更加方便,是流的一个扩展,更方便读取int, long,字符等类型数据. 事例代码如下: pack ...

  3. Gunicorn 问题

    Does Gunicorn suffer from the thundering herd problem? The thundering herd problem occurs when many ...

  4. HDU 1423 最长公共字串+上升子序列

    http://acm.hdu.edu.cn/showproblem.php?pid=1423 在前一道题的基础上多了一次筛选 要选出一个最长的递增数列 lower_bound()函数很好用,二分搜索找 ...

  5. HDU 4707 DFS

    Problem Description One day, Lin Ji wake up in the morning and found that his pethamster escaped. He ...

  6. CodeVS 1344 线型网络

    Sol 随机化算法+哈密顿路径. 好厉害的题...首先都会想到状压DP对吧,复杂度 \(O(n^2 2^n)\) . \(n=20\)  exm?? \(10^8\) 有一种算法就是随机化算法 再调整 ...

  7. echart字符云之添加点击事件

    // 路径配置 require.config({ paths : { echarts : 'jquery/echarts-2.2.7/build/dist' } }); // 使用EChart.js画 ...

  8. python 模块之间的变量共享

    才疏学浅,只知道两种方式: 1. 通过__builtin__实现: builtin1.py import __builtin__ __builtin__.some_global_var_among_m ...

  9. sublime-text3设置浏览器预览html

    选择:Tools - Build System - New Build Syatem... 或者:工具 - 编译系统 - 新编译系统 然后粘贴代码 { "cmd": [" ...

  10. Git SourceTree 冲突解决方案

    Git现在越来越火,很多人都从Svn迁移到Git上面,Git让我们更加与世界接轨,不再是"局域网"的程序猿,特别是掌握了Git之后,会发现它真的很好用,本文对Git中比较烦人的冲突 ...