zoukankan      html  css  js  c++  java
  • C/C++的指针以及对编程的学习感悟

       博主是个22岁刚毕业的应届生,还好在学校所幸自己努力,通过自学弥补了小部分不是计算机专业出生的缺陷。曾别人帮助我,我觉得应该写博客,乐于分享。

       博主去年11月开始实习,因为自学,基础差的要命,有多差?我只能告诉你,连C++语法都没过关。类模版是什么都不知道,以至于别人问我“你知道类模版吗?(说说你对类模版的理解)”.哦,类模版啊,Template嘛,面试官开始微笑,我现在想想,估计那面试官只差没当场笑倒在地上了。所幸的是,后来有个经理看着我很努力,很好学,学习态度好。肯收留我,拿到的薪水也是一个月吃饭租房用光的薪水。直到现在,我还很感谢他,他教我的不只是编程,不单单的只是如果工作,而是做人。先学做人,在学做事。人做好了,其实很多事情都会慢慢的做好。这个道理相信很多人都会懂得。好了,开始进入正题吧。

       之前一年都混迹CSDN,其实说白了,CSDN的问题在工作中很少有用上的(CSDN的博客很好,很吸引人),基本上很多的语法问题,都是学生在问题,工作若干年的热心人事在解释,当然,不泛很多高深问题。在那也学到不少,当然现在也不在去CSDN了,原因个人想法吧(偶尔还会去灌灌水,补补基础,学习下各位老师的解释,理解他们的思想)。避险,所以不继续说这个。我只能说,如果你想看看自己的基础了,去CSDN看看会有很多的弥补,牵起你的记忆,这好似一个记忆链,把你不知道的全部连根拔起.

       很多人说C/C++太恶心,尤其是C++,门槛过高,其实博主认为只要掌握到一点,短时间自然会茅塞顿开。理解指针即可,指针的本质是什么?“指针的本质是->地址”指针就是抛出一个地址,谁爱用谁去用,用不用得了就不知道了,其实不止是指针,编程其实都是地址,我们都是在操作内存而已。与其在“万物皆对象”说,不如说“万物皆内存更合适”,当然这是博主的一己看法,不赞成的请见谅,毕竟博主还是实习了一年(这一年也就打打酱油吧,什么都看,乱七八糟的,也不算努力,所幸有人教,认识几个技术好点的,脸皮厚粘着问才会有点小小的感悟--这里感谢下他们,分别是上海勤和互联网的刘老师,360某位组长,金山的某个同届朋友雷同学(这个人有天赋,很羡慕他,也很努力,也聪明,据说他还有个同学,大一就去了金山吧,佼佼者,还有北京某公司网名“孤星赶月”,以及云南某重点大学的烟酒生,还有第一家公司的三位同事以及经理)的菜鸟,编程这东西,弄个一年才算刚入门吧。

      打个比方 Class  Test{

            fun();

          member;

    }

       int main()

    {

        Test  t; ---->t也只不过是一个地址,不要总是想着书上的,声明类X的一个对象,对象对象?到底什么是对象,什么又是面向对象呢?书上只说了“封装继承多态?书上是这么说的”,我想很多在校的学生也不会知道把?大多数老师也不会告诉你什么是对象吧?说白了也就是一块内存,存取着你自定义的数据,这块你自定义的数据是由常见类型组合而来的,常见类型又是由语言本身定义的,语言本身更是由开发者们从低级代码通过编译器做出来的吧?这也是面向对象的最最本质的答案?。。。细分细分在细分。。

       第一个经理教我的,同事也是面试的问题,要我把 地球上的东西搬运到火星,细分细分再不断细分。    打个比方:如下

    std::vector<int> m_vector; ----->m_vector的对象是?是这个vector里面的元素,里面元素的对象呢? 我想说是地址,不知道合适吗?个人理解,各位不妨说说自己的看法。

    }

    那指针不就更显而易见了吗?

      个人认为,编程这东西,《操作系统》《编译原理》《微机原理》是必不可少的,虽然在短期看来,他的作用不大,算不上什么,但是长而久之带来的帮助是不同凡响的.更重要的是数学,数学带来的是一种思维,可能你会觉得用不上什么算法,但是博主说说自己的经理吧,一个数学学位的同事,关系比较好,他现在在华为吧,他编程量少,但是真的很多东西就算你堆了一堆代码,他能很快用快速简洁的思维想出来,然后马上给你做出来,而且面试各种算法,与人交谈都是那么的轻松,自在。HR更会赏识这样的人。

      另外,给在学校走在编程路上的同学一点建议,多交流,我们以后进入一家公司来说,最重要的不仅仅是学习如何编程,如何高效编程,不蛮你们说,我见过几个公司的代码,那都是狗屎一样的代码,没注释,写得莫名奇妙。例如: bool _bool = IsError()   if ( !_bool); 这样很多时候是没必要的 直接这样 if(!IsError()) 是更清晰的,可读性更加强吧?这还只是冰山一角。写代码大脑要有个思维流程跟着走,逻辑性一定要强,不要突然钻出一行代码,把逻辑断了,如果非得这样要么是你涉及方案有不合适,要么就是其他原因了,非得出现写个注释,以后在来改进改进。

        除了学习如何编程外,与之并肩学习的是你们老大的编程思想,你同事的编程思想,从生活方式,从思维方式,从工作方式等等方面去学习,这才是一个团队存在的原因,团队需要互相弥补,增强不足,进入一家公司不仅仅是做事拿钱,技术好了跳槽,那么换来的必然是个“悲剧”,这样学习无论对你,还是对你的后代帮助都是不可思量的。

       最后还酱油下,很多人也会说,自己不适合编程,学完后压根没思路,不知道怎么开始。不知道就照着代码例子抄,先运行他的看看,什么效果,然后看每一行代码,抄一遍,自己心里过一遍,抄完思考完毕后自己在有自己的思路做一个。这样就下来了,从小学到中学到高中最后大学,甚是读书读下去,都不是这样吗?先看别人的思想,在做自己的。中华民族的文化思想是不可估量的。很多东西都是一生二,二生三从无到有的。不可能突然锐变的。

       好了,一点唧唧歪歪i啊,其实博主的编码也如同这博客,没有一点点逻辑思维,东一句西一句,希望与大家一起学习。。

        

  • 相关阅读:
    jython运行python文件
    jython查看帮助help和模块modules
    ubuntu 星际译王3.0.1-9.4隐藏主界面不能打开
    ubuntu火狐(firfox)浏览器安装视频插件
    ubuntu安装mp4播放器vlc & smplayer
    ubuntu+Windows双系统默认引导顺序
    notepad++ 各种颜色调整
    Linux绿色版软件expect
    aix下shell读取脚本文件并逐行执行
    AIX系统常用命令
  • 原文地址:https://www.cnblogs.com/dragonmoon/p/4038932.html
Copyright © 2011-2022 走看看