许久没有坐在电脑前写东西了.除了密密麻麻的英文小虫子,还是英文小虫子.今天不是解决bug,明天就是在创造bug,一句话不在bug中沉默就在bug中爆发.或许喜欢小宇宙爆发的样子吧,那样的感觉总是让人热血沸腾.所以大部分时间总是在爆发中度过.每一次键盘噼里啪啦的响,那预示这一个伟大的,头疼的bug诞生.

c/c++是我喜欢的语言,喜欢他原自我的启蒙老师,一个干瘦的老头.我的启蒙老师告诉我,学习c/c++你可以做你喜欢做的事情.我喜欢做的事情是什么?我的启蒙老师回答:你头顶的光环.我回宿舍拿镜子照了半天也没有找出我头顶上的光环,气馁万千,感觉老师是欺骗了我.后来我们的计算机中毒了,害的我所有的资料都被感染了,心疼万千.发誓,我一定写出更加厉害的病毒,让那些祸害我们菜鸟的人知道什么病毒,可是迄今还未写出一样拿的出手的病毒,到是参与了安全工具的研发.我现在明白了我头顶的上光环是什么,可是我很对不起我的启蒙老师,很对不起他对我的栽培,很对不起他对我的期望,我知道了用c/c++可以做自己喜欢的事情,可是我始终没有让头顶的光环放射出灼人的光.
      学c/c++,最大忌讳就是眼高手低,只看不练.我发现身边好多的同事都是看了好基本优秀的书,可是怎么也没有看出有多大的进步.代码的健壮性依旧是差,可读性还是那么的不友好.书不在多,在于精,看是一方面,写又是另外一方面.大家喜欢上了看却为度少了练习.我面试过好多的同事,都是基本的问题,他们的回答都是摸棱两可,一看就知道,他们看的书肯定不少,他们把知识记混了,不清晰.如果在研发中有这样的情况那有多大的风险.例如:移动通信的后台都是c语言写的,他们的业务处理错综复杂,如果有这样一条语句
char* pt = new char[100]; 处理完业务后delete
pt;大家能看出来问题吗?看不出来是吧,告诉你如果业务处理超过百万条的数据,这个程序就崩溃掉了.因为他造成了内存泄露,内存泄露在了哪里?对就是这句
delete pt,正确写法应该是 delete
[]pt;所以稳固的基础,是研发的一个关键.你的知识丰富,只能说明的你的阅历丰富而已.其他的并不代表什么.
    
大意是大家都犯的错误,这个我不否认,我也犯过.但是我犯的错误和大家不一样,大家写程序无非是变量书写错误,或者忘记了加标点符号,但是我的不同.我的代码能造成堆溢出(非常的严重的错误),或者编译器直接崩溃掉,以上的种种都是大意造成的.是完全可以避免的.所以大家写程序时一定要仔细,认真,我们能自己发现的错误就不要让编译器帮我们找出来.我们感谢编译器.而不是让它来帮助我们纠正我们的错误,不要增加编译器的负担.我是最瞧不起那些,认为编译器很强大,它能帮我们做任何的事情的人.凡有这样想法的人,应该拉出去统统毙掉.
      这样看来c/c++貌似很复杂,其实很简单.大家都说指针复杂,其实是一个误区.关键是心态问题.如果你学够扎实,这些问题都是可以避免的.大家或许问,什么最难?我告诉大家,搭建系统框架最难,搭建系统框架不仅仅是语言方面的问题了,它还设计到了性能,维护,拓展,效益等方方面面.我曾培训6个人的团对写一个安全工具.我搭建了一个软件框架.数据+业务+控制管理+页面,四个层次的软件结构.这样做的目的不仅做到高内聚低偶合,还符合构件编程的思想.可是大家实施起来确实困难万千.原因是框架结构他们始终不理解.我解释了数次,最终写了一个demo出来,他们才理解.这时不在是你知识丰富不丰富的问题了.而是一个你能否独揽这个体系大局的问题.后来又爆漏出,不懂windows
API这个问题来,哎.....总之很是乱.归根揭底.就是知识不稳固,态度不认真.
      眼下又要带队去南京做手机通信去了,不知道这个队伍又会怎样呢.希望做好吧!

c/c++ 感悟 2008-10-03 02:08的更多相关文章

  1. Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)

    摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...

  2. phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  3. CISCO运维记录之4507设备升级IOS(Version 03.03.02.SG版本存在bug)

    CISCO运维记录之3650堆叠设备升级IOS(Version 03.03.02.SG版本存在bug) 1. 问题详情 思科45系列交换机使用Catalyst 4500 L3 Switch Softw ...

  4. OpenWrt for vmware 从openwrt.org下载10.03.1 或是自己下载最新的源码进行编译生成x86 vmdk格式

    1,直接从OpenWrt.org官网下载 http://downloads.openwrt.org/backfire/10.03.1/x86_generic/ 更新OpenWrt在线软件源 opkg ...

  5. datetime 2017-10-21 10:09:02.560 转年月日的时间类型

    sql语句时间转年月日格式: 适用于多种时间格式 select  REPLACE(STUFF(CONVERT(char(10), REPLACE(CONVERT(varchar(10),'2017-1 ...

  6. 本周ASP.NET英文技术文章推荐[02/03 - 02/16]:MVC、Visual Studio 2008、安全性、性能、LINQ to JavaScript、jQuery...

    摘要 继续坚持,继续推荐.本期共有9篇文章: 最新的ASP.NET MVC框架开发计划 Visual Studio 2008 Web开发相关的Hotfix发布 ASP.NET安全性教程系列 ASP.N ...

  7. ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-

    在ROS industrial介绍中,给出了ROS和常用机械臂的连接方式.具体信息可以参考:http://wiki.ros.org/Industrial ROS连接ABB机械臂调试详细教程-ROS(i ...

  8. 2019.03.02 ZJOI2019模拟赛 解题报告

    得分: \(10+0+40=50\)(\(T1\),\(T3\)只能写大暴力,\(T2\)压根不会) \(T1\):道路建造 应该是一道比较经典的容斥题,可惜比赛时没有看出来. 由于要求最后删一条边或 ...

  9. 2018.10.03 NOIP+ 模拟赛 解题报告

    得分: \(30+5+0=35\)(考得真不咋滴) \(T1\):奥义商店(点此看题面) 以为很简单,对着这题想了一个多小时,最后果断打了个暴力交了... ... 看完题解发现其实也不是很难. 对于\ ...

随机推荐

  1. ES6标准中的import和export

    在ES6前, 前端使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库,  而像seaJS是基于CMD规范的模块化库,  两者都是为了为了推广前端模块化的工具 ...

  2. final总结

    final 1.类 不含任何子类,有父类(太监类):其中方法不能覆盖重写. 2.方法 最终方法,不能被覆盖重写. 3.局部变量 赋值后不能改变,只能赋一次值. 4.成员变量 <1>由于成员 ...

  3. .net core 自带分布式事务的微服务开源框架JMS

    事务的统一性是微服务的一个重点问题,简洁有效的控制事务,更是程序员所需要的.JMS的诞生,就是为了更简单.更有效的控制事务. 先看一段调用微服务的代码: using (var ms = new JMS ...

  4. 常用核心数据库查询sql

    一.查询账户信息 -- 查询数据量 /*{"xdb_comment":"1","table":"mb_tran_hist" ...

  5. Android上传图片的两种方式

    参考:https://www.jianshu.com/p/f47943880cea

  6. Bootstrap++:bootstrap-select 使用

    效果图: HTML: <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.or ...

  7. 友好城市dp

    // // Created by Arc on 2020/4/27. //对了,这篇题解的代码是小白自己写的.有啥错误还请各位大佬多多包涵. /* * 某国有一条大河(一条大河~~~~,波浪宽~~~~ ...

  8. Python定位模块_PYTHONPATH变量

    Python定位模块: 导入模块时,系统会根据搜索路径进行寻找模块: 1.在程序当前目录下寻找该模块 2.在环境变量 PYTHONPATH 中指定的路径列表寻找 3.在 Python 安装路径中寻找 ...

  9. PHP 基础语法介绍

    PHP 语法 PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器. 基本的 PHP 语法 PHP 脚本可以放在文档中的任何位置. PHP 脚本以 <?php 开始,以 ?>  ...

  10. Python Tuple(元组) len()方法

    描述 Python 元组 len() 函数计算元组元素个数.高佣联盟 www.cgewang.com 语法 len()方法语法: len(tuple) 参数 tuple -- 要计算的元组. 返回值 ...