精华内容
下载资源
问答
  • 基本编程知识
    千次阅读
    2020-04-08 22:21:15

    C语言:面向过程 C++、JAVA:面向对象
    优点:代码量小、速度快、功能强大
    缺点:危险性高、开发周期长、可移植性不强

    32个关键字:

    auto      break      case       char          const
    continue  default     do        double        else
    enum     return      float      for            goto
    if         int         long       register       return
    short     signed     sizeof      static          struct
    switch    typedef    unsigned    signed         void
    volatile   while
    

    基本编程知识
    1、CPU不能直接处理硬盘上的数据,硬盘上的数据先调入内存条,内存是在操作系统的统一管理下运行的。

    2、程序——>编译联机——>生成exe文件——>运行——>操作系统执行文件

    3、 变量的本质就是内存中的一段存储空间。
    变量为什么必须初始化:所谓初始化就是赋值的意思,
    只定义不初始化VC++中输出垃圾值,会自动放一个添充字。
    软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间遗留下来的数据)

    定义变量:
        数据类型 变量名 = 要赋的值
    

    4、进制转化
    十进制就是逢十进一,二进制逢二进一
    冯诺依曼:把十进制改成二进制 图灵
    %d表示以十进制输出,%x或%X表示以十六进制输出,%o表示以八进制输出。

    5、常量在计算机中的表示:

    1. 整型

      十进制:传统写法
      十六进制:前面加Ox或OX
      八进制:前面加0(是数字零)
      
    2. 浮点数

      传统写法:
           float x = 3.2;   //传统
      科学计数法:
           float x = 3.2e3;   //x的值是3200
           float x = 123.45e-2;  //x的值是1.2345 
      
    3. 字符

      单个字符用单引号括起来
        ‘A’表示A
         “A”错误
         “AB”正确
      字符串用双引号括起来
         “A”正确,因为A代表了‘A’‘\0’的组合
      

    6、整数是以补码的形式转化为二进制形式存储在计算机中;

    实数是以IEEE754标准化为二进制代码存储在计算机中的;
    字符的本质也是与整数的存储方式相同。
    

    7、代码规范化

    括号成对的敲
    缩进
    空格
    

    8、字节就是存储数据的单位,并且是硬件所能访问的最小单位

    1字节 = 8位
    1K = 1024字节
    1M = 1024k
    1G = 1024M
    

    9、不同类型数据的相互赋值
    考虑补码

    int i =45;
    long j = 102345;
    i = j;
    printf(%ld %d”,i,j)
    

    10、ASCII码
    不是一个值,而是一种规定,
    ASCII码规定了不同的字符使用哪个整数值去表示
    规定了:

    ‘A’-- 65
    ‘B’-- 66
    ‘a’-- 97
    ‘b’-- 98
    ‘0’-- 48
    
    更多相关内容
  • 编程知识如何分类呢?

    千次阅读 2015-04-27 09:40:32
    分类一:知乎萧大的分类  编程知识的金字塔底部有三个关键的部分: 算法思想:例如怎样找出一组数中最大的那个数?首先你得有一个 maxSoFar 变量,之后对于每个数… 语法:我怎样用某种编程语言表达这些算法,...

    一、分类一:知乎萧大的分类

      编程知识的金字塔底部有三个关键的部分:

    算法思想:例如怎样找出一组数中最大的那个数?首先你得有一个 maxSoFar 变量,之后对于每个数…
    语法:我怎样用某种编程语言表达这些算法,让计算机能够理解。
    系统基础:为什么 while(1) 时线程永远无法结束?为什么 int *foo() { int x = 0; return &x; } 是不可行的?

      编程能力包括什么呢?

    X = 用于思考解决方案的时间,即「解决问题」 部分
    Y = 用于实现代码的时间,即「利用计算机」部分」
    编程能力 = F(X, Y) (X>Y)
    要想提高编程能力,就得优化 X,Y 与函数 F(X, Y)

    来自萧大专栏:http://zhuanlan.zhihu.com/xiao-jing-mo/19959253

    二、分类二:来自知乎——内功和外功

    1、内功:

      编程内功是所有语言通用的东西,内功就是编程理论和共性已经通用的知识,是一种能力。

    编程通用性的知识
    1. 算法
    2. 编译原理
    3. 数据结构
    4. 设计模式
    5. 重构
    6. 性能优化
    7. 面向对象编程
    8. 数据库
    9. 抽象化

    语言内部的共性
    1. 字符串处理
    2. 正则表达式
    3. 变量与常量
    4. 控制语句if-else
    5. 循环
    6. 函数/方法
    7. 类/对象/接口
    8. 递归
    9. 哈希表
    10. 数组

    还有工具类的内功:
    1. 构建工具 (通用知识)
    2. 单元测试 (通用知识)
    3. 依赖包管理 (通用知识)
    4. MVC 框架 (通用知识)
    5. 代码质量检测 (通用知识)
    6. JSON 和 XML 设计 (通用知识)

    代码控制 (通用知识)

    IT外的相关知识:
    1. 数学(离散数学,几何学)
    2. 物理
    3. 图形处理
    4. 图形/UI设计

      等等,这些都是可以各种语言内都能交叉使用的共同的知识。这些知识学好了,大部分语言都可以用到,也都能或多或少在项目和应用中体现出来。

    2、外功:

    1. 各种编程语言包括C++,javascript,java,php,C#,perl,python等
    2. 各种编程环境,.NET, WAMP/LAMP,node.js 等
    3. 各种IDE和编辑器,notepad++,vim,Visual Studio,Sublime等
      各种快捷键,
    4. 各种包依赖管理器,npm,composer,Nuget
    5. 各种版本管理器:git,svn,cvs
    6. 各种单元测试工具
    7. 各种构建工具
    8. 各种MVC框架,等等

      外功是浮在表面上的那些具体的产品和工具,外功是使用语言和工具的一种技能,可以一直在变化,可以随意换。

    3、内外功之间的关系:

      学好内功,用内功推动外功,以外功表现出来,可以做到型变神不变,通吃所有的语言和工具。

      还有就是内功比外功重要,学好内功,任何新的语言和工具都能很快上手使用。外功是辅助工具来显示内功实力,但却更有现实的实践意义。

      外功就是一个个的独立工具的使用知识。其实就是一个和内功的具体实现,具体的外功是抽象内功的具体实现。使用这些工具,你可以实践你的内功。

      由于内功的通用性很高,所以比如说你在java中能实现的数据结构,你可以立刻在C#中复制出一样的数据结构,如果再学了一个新的语言,比如说python,ruby,也能很快实现出一样的数据结构来。因为是相通的。 内功就是你在一个工具里面能实现的东西,在另外的那个工具也能同样实现的东西。

      另外,内功学好了,学习新的语言或者工具会很快,这是因为,所有的编程语言和工具都有很多共同点,知识语法改了一改,当然还有一些特有的特性,是要你针对学的。所以假设当你还没有学习java或者C#的时候,你学java需要一年时间,学习C#也同样需要一年时间,但是如果先学习了java后,在学习C#(或先学C#再学java), 两个先后学习的时间总共只要1年2-3个月的时间,而不是2年。这是因为你用Java去学习语言的共性,修炼了编程的内功。

      内功学好了,内功比外功重要,那要学习外功吗? 要,当然要,还要好好的学。因为你是通过外功来学习内功的。没有语言本身,那里表现内功的载体呢。当你把一种语言作为载体,把所有语言的共性都学完了,然后就关注特定语言的特性了,有了内功的基础,这些外功很容易就啃完了,然后具体问题具体分析解决。比如要跨平台的桌面程序,用Java;快速网站构建,用PHP;嵌入式编程,用C;网页内编程用javascript; 然后还有不同语言之间的通信,用json或者xml。

      而那些工具,可以辅助你的编程技巧,加速你的编程速度,提高你的编程质量,是你的编程得心应手,享受编程带来的乐趣。

    4、总结

      编程的学习和提高,应该重点在编程内功上。通过某个编程语言和工具,去学习研究编程的通用功能和共性上。这样就算未来有新的语言和技术出现,也能很快的适应新的语言和技术了。

      而外功的提高,是可以大大提高自己的工作效率,它和内功相辅相成。外功作为辅助和内功的载体,也是很重要的。毕竟它可能是一个程序员吃饭看家领工资最具体的技术表现。

    三、分类三:来自网络

    编程。主要指的是编程语言、范式、技术和工具。就像我前面所说的,很多核心概念都是相通的,虽然在细节方面(语法)有所不同。

    领域。这是指程序使用的环境,例如,如果你的工作是有关电信方面的,那么这指的就是有关于各种协议如何工作、短信如何处理、如何计费和监控等方面的内容。你在某个行业领域工作的时间越长,你能作出的贡献产出的价值就越多。

    代码库。这在每个公司都是独一无二的。工作时间久了,你自然而然就会知道周围这些代码为何如此了。

      作为一个程序员,如果以上3个方面你都属于知识渊博的那一类,那身价自然就高了。如果你换了工作——这是不可避免的——那么对于这个新的代码库你自然又变得一无所知。这时候你需要做的就是开始新的学习和钻研。

      不要以为换了工作,以前学的编程知识和领域知识就没用了。多掌握几门编程语言能让你从多个角度看问题。此外,阅读一些软件开发的好书也蛮有益处的,例如《Code Complete》、《Clean Code》和《The Pragmatic Programmer》等。

    感恩:
    http://zhuanlan.zhihu.com/xiao-jing-mo/19959253

    http://www.zhihu.com/question/22471978

    http://www.l99.com/EditText_view.action?textId=4861385

    展开全文
  • 编程基础知识

    千次阅读 2021-05-29 19:57:19
    原码、补码、反码、移码和BCD编码 这确实是计算机中一个基础的知识点,但对于学习基础编程来说,其实并不是十分必要学习的,因此这个内容先指出来,先做了解,等日后有时间我再来继续补充。 4.关键字 这里开始都是...

           想必大家都已经开始期待用自己灵巧的双手,睿智的大脑,编写出一个个完美有趣的程序。但在踏入计算机的世界之前,还需要做不少准备。本篇文章主要讲述一些计算机领域中的一些“常识”,避免大家在学习编程语言、计算机课程中磕磕绊绊。

    目录

    1.计算机的进制

    2.进制转化

    3.原码、补码、反码、移码和BCD编码

    4.关键字

    5.函数


    1.计算机的进制

          计算机一般使用二进制,这是因为计算机硬件的晶体管一般只有导通和截至两种状态。使用二进制,能更方便于计算机的运行。此外,二进制运算的硬件结构更容易设计。(但这并不代表二进制运算更加简单,实际上反而复杂了不少。)

    2.进制转化

         十进制想必大家都已经十分熟悉。进制的每一位,其实都有一个权值。如十进制,它个位上的权值为10^0,十位上的权值位10^1,百位上的权值为10^2.因此,对于十进制数302也可以写作3*10^2+0*10^1+2*10^0。对于n进制,它第m位的权值为n^(m-1)。此外,在可能碰到多种进制时,为了区分进制,一般会将数字写在括号里,并在括号的右下角写上进制n。接下来详细介绍一下十进制与n进制之间的转化过程:

    (1) R 进制数 => 十进制数
    按“权”展开 (a power of R)
    1: (10101.01) 2 =1 × 2^ 4 +1 × 2^2 +1 ×2^0 +1 ×2^-2 =(21.25) 10
    2: (307.6) 8 =3 ×8^2 +7 ×8^0 +6 ×8^-1 =(199.75) 10
    1: (3A. 1) 16 =3 ×16^1 +10 ×16^0 +1 ×16^-1 =(58.0625) 10
    (2) 十进制数 => R 进制数
    整数部分和小数部分分别转换
    ① 整数 (integral part)---- 除基取余,上右下左”
    ② 小数 (fractional part)---- 乘基取整,上左下右”
    下图是十进制数35转化为二进制的过程:

    3.原码、补码、反码、移码和BCD编码

           这确实是计算机中一个基础的知识点,但对于学习基础编程来说,其实并不是十分必要学习的,因此这个内容先指出来,先做了解,等日后有时间我再来继续补充。
     

    4.关键字

           这里开始都是编程中出现的一些常见概念。关键字,是指一个编程语言中具有特定含义的单词,如int、float、void、static等。每个编程语言的关键词可能不尽相同,但一些基本的关键字都是比较固定的。关键字在程序中一般用于修饰其后面的内容。如在C++中的如下代码:

    int a=1;       

            int表示整型,你可以认为是整数,是不具有小数位的,这段代码的意思为令变量a=1,且声明a为整型。

    关键词丰富多样,对一些基本的关键词,如整型、浮点型等关键字你将牢记于心,其余的关键字,你将在学习的过程中慢慢了解。

    !!!保留字、关键字、标识符的区别

           突然发现有很多朋友搞不清楚这三者的区别,所以来说明一下这三个的区别。

           首先讲讲什么是标识符,以下是比较官方的定义:

           标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。

           你可以认为标识符大概就是你给变量、函数等单位起的名字。比如在C++中:     

          int  love=1; 

           这个语句中,love就是一个标识符。

           保留字其实就是关键字,这两者是同样的概念。它是指程序语言内部已经定义好的字,比如int、if等。

           很多人可能疑惑于为什么有的地方说int是关键字,有的人说int是标识符。实际上,这和程序语言的标识符要求有关。有些语言明确要求用户在定义标识符时,禁止使用关键字,因此,在编程时应该避免用语言中的关键字作标识符!

    5.函数

           这是一个比较简单的概念,大家知道的最常见的函数是y=f(x),f()是一个操作,通过这个操作,能通过x的值得到y的值。编程语言中的函数也是一样,函数是用来进行某些操作的代码段,一般在编程语言中的形式为:

    【关键字】   函数名  (参数表)

    如C++中的函数:

    int Study(int a,int b) {};

           其中,Study是函数名,便于在后面的代码中调用,()中的a、b为参数,这些参数的关键字限定了你在接下来调用这个函数时输入的参数的类型,{}中的代码段即是这个函数的操作,一般函数只能调用全局变量(即在整个程序中都能访问的变量,程序中的变量并不是随便调用的)和函数的参数以及函数内部定义的变量(即局部变量,局部变量和全局变量将在学习编程语言的时候详细了解)。关键字int表明这个函数的返回值为整型,类比y=f(x)来说,就是y的值的类型。

     

     

    (先就想到了这些,要是后面还会想到什么重要的东西的话再来补充吧>-<。如果发现文中的错误还请大家不要吝啬批评指正,感谢!)

    展开全文
  • PLC编程入门基础知识.pdfPLC编程入门基础知识.pdfPLC编程入门基础知识.pdfPLC编程入门基础知识.pdf
  • 程序员所积累的编程知识在十年后将有一半没用。 这可能有些偏激,但起码对我来说似乎是正确的。如果我在这个期限中不学任何其他的东西,我敢打赌,只有大约一半的知识我可以在十年后继续使用(比如长期活着的 SQL )...

    一篇旧文,受益匪浅


    【导读】:Ben Northrop 在 2017 年满了 40 岁,本文是他对职业生涯的思考。他认为从长远来看,应该多投资一些不容易过期、衰竭期较长的知识领域中。

    640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

    我是一名程序员,几个月前刚过完 40 岁生日。某个星期六的早晨,我参加了一个 React Native 技术交流会,演讲者正在竭力说服我们为什么他会成为移动开发领域真正的下一个大事件。但对我来说,它有点像 15 年前的 JSP,将所有的逻辑都放在演示代码里面。但我“老”了,我认为这是因为自己还没有完全理解它。

    演讲者展示完 PPT 后,现场进行编码,还展示了很多我没听说过的配套工具,这些都让我感到有点沮丧。

    当然,我并不是真的惊讶。在过去 20 年里,我也掌握了一些比较流行的技术,并享受驾驭它们的乐趣。新的东西总能给编程带来一丝激动的体验,并且能让事情变得更容易、更快和更清楚。

    但是在这个特别的早晨,在 40 岁的这个门槛上,我不得不承认我感觉有些落伍。我知道如果想跟上节奏,我得继续付出,抛弃一些已经充分吸收的知识,吸收一些新的知识,为下一次旅程做准备。

    我在想,我的编程生涯不像其他的专业人士,医生到了 40 岁不用担心他对血管系统的知识会蒸发,同样的,律师、水管工、会计、英语老师,也是如此。他们积累的知识是相对稳定的,并随着年龄会给予他们相应的尊重和补偿。但是在编程领域,20年的经验,似乎并没有赋予同样的优势。


    两个概念


    当然,我们的行业也不是那么糟糕 —— 程序员需要爱上很多东西 —— 有趣的是,无休止的跟进,好像是我们这个领域或多或少独一无二的特点。编程生涯是真的如此不同吗?如果是,为什么?对我们的事业轨迹来说又意味着什么?我想从以下两个观点来尝试回答这些问题。

    一、知识衰退

    我们所知道的一切,都有一个有效期(不仅仅是编程),过了这个期限将不再有用。我 16 岁学会了开车,到现在依然用的很好,这种技能可以认为有一个相对较长的半衰期 。医生的知识会越来越渊博,是因为他学习的每一件事情都是基于他以前的知识。

    而在编程领域,无论好还是坏,我认为:程序员所积累的编程知识在十年后将有一半没用。

    这可能有些偏激,但起码对我来说似乎是正确的。如果我在这个期限中不学任何其他的东西,我敢打赌,只有大约一半的知识我可以在十年后继续使用(比如长期活着的 SQL ),另一半可能都是没用的( React Native ) 。当然,我会不断获得新的知识来取代要死掉的那些东西,但这足够吗? 


    二、知识积累速度

    在所有领域,必须满足一定的知识门槛才能获得“认证”(或至少可聘用),职业生涯的早期通常都是在努力获取知识。然而,在编程领域,由于知识的快速衰减,似乎我们从来没有真正度过“学生时期”,我们必须永远一直学习。


    三个阶段

    如果去记录程序员的知识衰退和积累速度,我认为可能会是这样:


    640?wx_fmt=other



    在职业生涯的开始,可以称之为热切的学徒阶段,积累知识比较容易。一切都是新的,每个经验都是获得更多知识的工具。而且,由于年轻,我们不会有太多的义务,所以可能不介意花几个晚上和周末拿起新的语言和框架。重要的是,雇主对我们的期望值也比较低,我们可以在工作期间抠出一点时间来填补知识。这是一个有趣的阶段,连自己都没意识到自己有多坚持。

    然后,我们不再是新手,成为了自给自足的开发者。我们在学习中的投资已经得到回报,所知道的一切全部有用。在这个充满知识的阶段,我们开始赢得客户、同行和管理者的尊重,获得头衔、薪水和机会。虽然我们当时不一定看得出来,但这也是一个重要的转折点。

    两件事情发生了。首先,“高级”的晋升不仅仅是金钱,而是更多的期待。雇主需要他们的“明星程序员”成为领导者 – 帮助初级开发人员,审查代码,执行访谈,参加更多会议,帮助他们维护、构建复杂的旧版软件。这一切都很合理,但它巧妙地牺牲了我们的知识积累速度,我们不再有时间去读一些科技博客、文章。第二,这时候,我们首次体会到(或至少认识到)一点点知识的朽烂,早期学到的一些东西开始过时了。

    随后,我们进入第三个,也是最后一个阶段,衰落和流失。是的,我们是知识渊博和富有成就的,但我们也明白,事实上知道的已经比最初阶段更少(有用的)东西。我们可能没有时间积累足够的新知识来填补,这是令人沮丧的。我认为这就是为什么,在这时候,许多人开始转向 – 管理、销售、测试或农业(我的梦想)。我们意识到需要再次努力来保持我们的水平和熟练度 – 不然的话,我们的工作会在 5 年后比现在更糟。



    两个方向


    我正处于第三阶段。我还是很喜欢学习,但我明白,不努力的话,我可能会一直保持在“专家”的平衡状态边缘。


    首先,我尝试采取长远的观点。不要过度榨取自己,要尽可能的取得获得新经验的机会。我看到不少同事虽然获得了丰厚的薪酬,但职业很少有机会接触新兴事物。再过五年,他们会意识到他们的宝贵知识已经蒸发,薪酬与实际价值相去甚远。在某些情况下,我认为短期内赚更少的钱(有更好的雇主)会在长期的职业生涯中产生更多的钱(和稳定)。

    第二,考虑到时间有限,我试图去学习那些耐用的知识。也就是说,把精力投入在那些有更长的衰减期的知识上,比如,算法逻辑、应用安全、性能优化和架构。

    最后,很乐意听听大家的想法!

    本文转载自【程序员大咖】

    640?wx_fmt=jpeg


    展开全文
  • 学习并发编程,没有想象的那么难!!
  • 编程知识提高工作效率

    千次阅读 多人点赞 2019-06-07 14:17:07
    利用生活知识去类比来学习技术,并且利用技术知识反向促进生活效率的改进。 本文介绍几个提高工作效率的技巧。 下面举几个栗子。 二、举两个例子 2.1 多线程并发的思维 如果是单线程卡住了,后续任务就无法...
  • 此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若有想学习的内容可以在评论区留言,根据大家的要求持续更新。点赞过十万...
  • Java高级编程都有哪些知识

    万次阅读 2017-12-19 22:31:42
    Java高级编程都有哪些知识点 作者:谁不重要  当我们面试的时候,可能经常会被问到一些Java基础知识,聊着聊着,有时就会进阶到哪些高级知识点了,比如 什么JVM虚拟机,Java高级编程。其实所谓的高级,都是...
  • 编程需要掌握哪些基础知识

    千次阅读 2021-06-26 11:27:21
    随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而今天我们就一起来了解一下,学编程需要掌握哪些基础知识。1、CPU架构你需要了解CPU架构,理解运算单元、记忆单元、控制单元是如何既各司其职又...
  • **博主已经讲文中的各种知识点以及其他核心知识进行了分类整合打包(里面包含了:Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等各种刚需知识点) 如果有需要的小伙伴可以加群1149778920 来自行领取 暗号...
  • 数学建模需要掌握哪些编程语言和技术关注:284答案:5信息版本:手机版解决时间 2019-01-12 09:40两耳就是菩提2019-01-11 09:41本人所读专业是软件工程,现在能比较熟练得使用C和C++,C#也会一点。下学期想要在数学...
  • 夜曲编程Python入门课程Pro

    千次阅读 2021-11-20 18:17:55
    第 1 课 编程中的文本 打印命令 print() 打印数字 print(1024) 打印字符串 print(“1024”) 单双引号都可以,一般双引号。 如果字符串表达里有某个引号,可以选用另外一种引号。 如果字符串表达里有单双引号,用...
  • struct pollfd{ int fd; short events; short revents; };
  • Java图形界面编程知识点汇总 一:基本概念: @.AWT(Abstract Window Toolkit):  抽象窗口工具包,SUN 公司提供的用于图形界面编程(GUI)的类库。AWT框架不使用原生窗口部件(native widgets),一直未能突破LCD问题...
  • scratch一级-熟悉编程软件试题 【熟悉编程软件】 一、选择题 1. 下列关于舞台的描述,不正确的是?( ) A. Scratch只能设置一个舞台 B. 舞台不能进行编程 C. 舞台可以有多个背景 D. 舞台上可以有角色 2. 在...
  • 学习编程需要一个系统的过程,在学习编程之前最好了解以下几个方面的知识:第一:操作系统体系结构。操作系统是计算机重要的基础知识之一,掌握操作系统体系结构对于理解编程有非常重要的作用。操作系统涉及到的内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 963,521
精华内容 385,408
关键字:

编程知识