• 聊聊编程是什么


    前言   

    前言不看没关系,不影响。   

          半夜睡不着,想写点啥,浅聊下我理解的编程的,我认为编程就是解决问题,就像互联网是依附于实体业,是处理解决实际问题的。

          刚学编程的时候总是很恐慌的,天赋不够,我这么认为的原因,一是当时流行一种说法叫不是热爱编程的是坚持不下去或者没什么发展的,后来发现是一些阴谋家为了减少竞争的言论;二是确实遇上了同班里优秀的一听就懂,不像我最开始连安装个JDK都是自己安装了十几遍才死记硬背式的记住流程,当然这跟我个人英文水平稀烂也有一定原因,现在想想会不会英语,有没有天赋大概是没什么关系的,当然只是针对大多数岗位,只是可以考编程谋生的这么一个水平,像那种引领行业发展,或者有内驱力不间断学习突破的是两个不同的领域。当时的恐慌和没天分的我只能不断的练习,不懂可以,多写几遍,原理不懂就多实践,再就是背下来,就像考试刷题一样,后面做的多了不知道哪一天在看的时候发现就这么回事,包括很多听起来牛逼的技术,知道后发现不过如此,难者不会会者不难,哦跟屁话一样,一直爬山,不死总会登顶。

           一开始接触的是C,自学C还是很简单的,当看到C++的时候是有点吃力的,当时上大学自学也没什么动力,后来也就不了了之了,之后在培训机构学习的java,集中式高强度的学习,加上个人的不断练习才能在这个行业留下来,多年后了解到当时同班的也就寥寥几个靠这个谋生。

          既然是聊编程,我最熟悉的是java,就拿java为背景简单阐述下一些简单的问题。

    如何表达-基础技术知识

    如何使用编程语言解决问题,需要一定的基础技术知识,你需要知道你能用的工具是什么,如何用这些工具实现自己的想法,从而解决问题。

    一般基础技术知识有,变量,运算符,数据结构,控制流程语句

    变量是程序中存储数据的容器。变量可以是任何数据类型,如整数、浮点数、字符串等。开发人员通常需要声明变量并赋值,以便程序可以使用它们进行计算和操作

    运算符是用于执行计算或操作的符号或关键字。例如,将两个数字相加,可以使用加法运算符(+),减法运算符(-)用于减去两个数字。逻辑运算符(&&,||,!,==)可用于比较和评估表达式。

    据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合

    控制流程语句是指编程语言中用于控制程序流程的结构。例如,if语句可用于根据条件执行代码块,while和for循环可用于重复执行代码块。

    怎么解决问题-抽象

    抽象是针对问题的特征对现实事物的紧密相关的属性的提炼过程及结果,把数据(1,2,3,4)抽象为代码中的数据结构数组,把筛选抽象为流程控制语句。

    有这么一个问题,现在有4种类型的数据(1,2,3,4),要筛选掉其中一个3,放行其他的。

    怎么表达这个数据的总体的呢,数组吧.

    int[]  S = new int[]{1,2,3,4}

    那如何实现筛选这个呢,我如何知道我要筛选的是否是我需要的,需要引出控制流程语句,itmp代表当前数组s中的某一个值

    1. if(itmp == 3)){
    2. }

    光想出一个代表数组s的某个值的这么一个变量也是不行的,那怎么让itmp表示数组s的每一个值呢,这时候需要引入遍历

    1. for(i=0;i
    2. int itmp = s[i];
    3. if(itmp == 3)){
    4. }
    5. }

    筛选出来之后也需要实现放行其他这个逻辑概念,需要把原先的数组(A,B,C,D)变为(A,B,D),我们需要新的一个容器s2来存储我们需要的结果

    1. int[] s = new int[]{1,2,3,4};
    2. int[] s2 = new int[3];
    3. int s2i=0;
    4. for(i=0;i
    5. int itmp = s[i];
    6. if(itmp != 3){
    7. s2[s2i]= itmp;
    8. s2i++;
    9. }
    10. }

    当然这只是很多种实现方式中的其中一种,不同的数据格式有不同的处理方式,不同的逻辑处理也有不一样的效率或者占用资源的多寡。只是一种启发,抛砖引玉,当我们能拥有解决很多个这样小问题的能力的时候,自然就能解决很多业务问题,例如做一个短信发送平台,通过处理数据然后展示简化我们实际的工作,例如百度一下等。

    编程的灵魂-逻辑

    前面说了编程是为了解决问题,当我们能独立解决一些实际问题的时候,就会有优化的想法,简化代码,提高执行效率,这时不得不提下编程的灵魂,逻辑,逻辑能力强解决问题的能力和实现会更简洁高效

    1,2,3,4中找3,可以写不等于1,2,4,如下:

    1. for(;;){
    2. if(itmp != 1){
    3. }
    4. if(itmp != 2){
    5. }
    6. if(itmp != 4){
    7. }
    8. }

    也可以写等于3,如下

    1. for(;;){
    2. if(itmp == 3){
    3. }
    4. }

    后者比前者每次执行都少执行两次逻辑判断。

    也不知道自己啰嗦半天说的啥,之后会出java基础的一系列内容温故知新,本文算是入坑指南吧。

  • 相关阅读:
    459. 重复的子字符串
    理想汽车有增长潜力,但风险也很大
    162_Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0
    数据治理系列:数仓建模之数仓主题与主题域
    蔚来杯“2022牛客暑期多校训练营10
    springboot整合其它项目
    软件测试必须要注意的地方
    Lab【1】:Blitz
    开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板
    [电脑运用及修理]2022年电脑配置推荐(台式1000-20000元预算清单)
  • 原文地址:https://blog.csdn.net/qq_39308071/article/details/132913889