那么如何提高自己的编程思路呢?

那么如何提高自己的编程思路呢?
     总结了以下几点:
             (1)重视“需求分析”,学过计算机软件工程、系统工程的同学都会背这一篇。
             (2)多多查阅资料,面对一个项目(问题)时,多用google、百度查找相关资料。主要是查找别人对该问题的“解决方案”、“系统架构资料”
             (3)学会“画图”比学会“语言”重要,尤其是绘制系统架构图。
                        例如,我最近正在计划开发的一个系统平台。
              
              良好的绘图基础是成功的开始。(当然,我现在还没有成功,可能没有资格这么说。但是我相信,将来的某一天我成功了,那么这句话一定是“至理名言”)
            (4)对待技术,要学会“浅尝辄止”,因为IT行业是高风险行业,每天都会有新技术产生。你不可能每天都去跟随新技术跑的。尤其新技术往往带有“厂商”利益。
                     例如: symbian  、Android、IOS之争,谁能笑到最后?
                                 谁都不好确定,既然无法确定,作为小角色的我们,怎么办呢?
            (5)万变不离其宗
                    软件无论怎么变,单机变多机,C /S变  B/S,但是核心都是为人民提供服务,只要可以提供服务,满足用户的需求。没有人会管你是用什么技术开发的!
                     可能会有些人吹嘘:“你看我们的软件是采用了xxx 技术,xxxx平台,最新最强的 xxxx平台”,这一切都是广告语。用户关心的只是,能不能用?好不好用!
                     而我们要做的就是,选择自己最熟悉的技术、最稳定的方法,完成用户的需求。

                    软件开发在我看来,就是解决用户需求的过程!编程(敲代码)仅仅是这项活动中的体力活而已!

编程切忌“盖空中楼阁”,学习切忌“囫囵吞枣”

       软件的编程,在我理解为有2层含义: 一是设计,二是敲代码。


       因为大多数“作品”都是用代码堆砌的,没有任何“设计思想”可言。

       好的软件,靠的是“设计”,而不是代码。

     如果一个不懂DOS、不懂DEBUG调试技术的人,是很难写出高水准的程序的。就算能写出“代码”也只能是皮毛。任何技术的发展,都是传承在此之前的“优秀技术”总和。

      由于DOS是一个黑暗的时代,因此“苹果”开创了“桌面”操作时代,当然可能很多人为认为windows是微软公司发明的。其实究竟是“乔布斯”还是“比尔盖茨”都不重用了,重用的是DOS到Windows的转变,将电脑的“使用难度”降低了。这就是一个设计理念的改变,计算机不再是“科学家”的玩物。

     当然,Windows的出现,也改变了“编程”。Basic语言被冠上了 Visual,C++语言被冠上了Visual。

     没有“Visual 可视”的年代,就算是最基本、最简单的 Basic编程,你也得懂“DOS命令”、懂计算机中断地址。

    可能有人会问 学DOS命令有什么好处呢?

        至少在没有杀毒软件时,中了“ARP攻击”你还可以临时拯救哈计算机。呵呵

    在DOS时代,bat(批处理)技术也是一门高深的“编程技术”。如果把DOS学会掌握了,那么Linux的Shell编程,也会事半功倍!

    Linux下,一直没有一个Visual Studio 航母级的集成开发环境,大量的软件编译、配置、安装都还依赖于shell,因此很多初学者往往很难入门。

              如果你对 Linux C/C++编程感兴趣,也可以在Linux下用 Eclipse来学习开发.

   DOS时代,所有的程序都可以通过DOS中断、BIOS中断获取到计算机的控制权。但是在Windows 2000/XP 下就很难这么操作了。

  如果编程是从Windows XP环境下 C++ 起步,那么可能对  windows API这个东西会觉得莫名其妙的。

  如果编程是从Windows XP环境下 C# 或 Java起步,那么可能对  windows API 是什么都可能不知道了!

  那么windows API 这个东西有必要掌握吗?对于打算从事计算机软件设计、编程的同学来说,是很有必要的。通过windows API学习,你的软件设计思想可以拓宽了很多,你将不在受制了语言的约束。

    举个例子:

        Q1、编写一个程序,将计算机在某一个时刻关机。

               给你5分钟,你可以想到办法吗?(C语言、C++、JAVA。。。。凡是能看到的语言,你都可以选择)


       Q2、编写一个程序,可以在Linux或Windows 下将计算机在“某”一个时刻关机。

               给你5分钟,你可以想到办法来实现吗?


       以上这2个问题,解决的办法至少有几十种。你可以写出几种?但是无论你怎么写,怎么编程,怎么去实现它,最终的核心编程思想都是一样。

      (1)调用DOS中断关机

      (2)调用操作系统API接口关机

               例如: windows:

                               BOOL ExitWindowsEx( UINT uFlags, // 关闭参数   

                                                                         DWORD dwReserved // 系统保留,一般取0  

                              );


     (3)调用操作系统 Shell,调用程序关机

                Linux :  system("halt")  或  system("init 0")

                windows:  shell(c:/windows/system32/shutdown.exe)

        以上代码或方法仅仅适用于C / C++, 如果是C# 或 Java 那么怎么办呢?

        在C#下, 可以通过调用API函数来完成,仅仅比VC多一个操作,就是要把Windows API函数进行封装

       在Java下, 稍微有点麻烦。 得通过JNI调用了。首先将关机的函数封装在C代码里, 然后用 gcc 或 g++编译。然后再在Java里进行本地调用。实际上Java仅仅充当了GUI作用,而所有的操作代码均在C程序里完成了。

      当然,这么做,很可能还无法实现,因为可能遇到C程序没有权限。那么怎么办呢?

      换个思路,用VC写一个后台服务程序负责关机,然后采用 Socket编程,监听本机的某一个端口(例如8000),至于协议(TCP、UDP)随便了。

     这样做后,其实无所谓客户端程序了, Java、C#、只要是可以提供Socket访问的语言,都可以通过TCP或UDP和服务程序通讯完成关机了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值