聊聊编程是什么

2023-11-06

前言   

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

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

      刚学编程的时候总是很恐慌的,天赋不够,我这么认为的原因,一是当时流行一种说法叫不是热爱编程的是坚持不下去或者没什么发展的,后来发现是一些阴谋家为了减少竞争的言论;二是确实遇上了同班里优秀的一听就懂,不像我最开始连安装个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中的某一个值

if(itmp == 3)){
}

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

for(i=0;i<s.length;i++){
    int itmp = s[i];
    if(itmp == 3)){

    }
}

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

int[]  s  = new int[]{1,2,3,4};
int[]  s2 = new int[3];
int s2i=0;
for(i=0;i<s.length;i++){
    int itmp = s[i];
    if(itmp != 3){
       s2[s2i]= itmp;
       s2i++;
    }
}

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

编程的灵魂-逻辑

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

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

for(;;){
    if(itmp != 1){

    }
    if(itmp != 2){

    }
    if(itmp != 4){

    }
}

也可以写等于3,如下

for(;;){
   if(itmp == 3){

   }
}

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

聊聊编程是什么 的相关文章

随机推荐

  • 再见,Navicat!

    DataGrip使用入门 最近看到一款数据库客户端工具 DataGrip 是大名鼎鼎的JetBrains公司出品的 就是那个出品Intellij IDEA的公司 DataGrip是一款数据库管理客户端工具 方便连接到数据库服务器 执行sql
  • 原生Android何去何从

    lt 原生Android何去何从 gt By 我承认永不变 一 Android发展方向 1 跨平台开发 科技日益发展 未来的世界 不可估量 在此发表一下我的意见 虽然很不想承认 但是却不得不承认跨平台开发会成为主流 跨平台应用的优点显而易见
  • 华为OD机试真题 Java 实现【表示数字】【牛客练习题】

    一 题目描述 将一个字符串中所有的整数前后加上符号 其他字符保持不变 连续的数字视为一个整数 数据范围 字符串长度满足1 n 100 二 输入描述 输入一个字符串 三 输出描述 字符中所有出现的数字前后加上符号 其他字符保持不变 四 解题思
  • linux中编译tslib1.4出错:./autogen.sh: 4: autoreconf: not found

    autogen sh 4 autoreconf not found 是在不同版本的 tslib 下执行 autogen sh 产生 它们产生的原因一样 是 因为没有安装automake 工具 ubuntu 10 04 用下面的命令安装好就可
  • Java微信小程序的授权登陆

    前提 获取服务号的公众号平台 中的 开发配置 进去 获取小程序的 AppId 与 AppSevrect 登陆授权作用域分为两种 一 静默登陆 scope参数值为 snsapi base 只能获取到用户openid 好处是静默认证 无需用户手
  • Qt窗口之QMainWindow、QDialog、QWidget

    在 Qt 中 我们将窗口和控件统称为部件 Widget 窗口是指程序的整体界面 可以包含标题栏 菜单栏 工具栏 关闭按钮 最小化按钮 最大化按钮等 控件是指按钮 复选框 文本框 表格 进度条等这些组成程序的基本元素 一个程序可以有多个窗口
  • android面试-事件分发

    回答思路 首先事件是哪几个事件 视图的结构 事件分发的整个流程 事件类型 首先事件分为按下 移动 抬起 还有一个cancel 非人为的结束 视图结构 首先得有个结构模型概念 ViewGroup和View组成了一棵树形结构 最顶层为Activ
  • 中台战略-第九章、数字营销的技术架构与路径

    文章目录 第九章 数字营销的技术架构与路径 9 1基于中台架构 构建立体数字营销云 9 2 数字营销技术架构和设计理念 9 2 1 数字营销云应用介绍 1 全域会员i CDP 2 智能营销i Marketing 3 全渠道销售i Comme
  • 在线沙箱网站 在线恶意文件监测网站 病毒在线监测网站 apk分析在线网站

    沙箱 https www joesandbox com windows 沙箱 VirSCAN https www virscan org language de 只能传20M以内的文件 VirusTotal https www virust
  • 【注释模板】IDEA中JAVA类、方法注释模板教程

    文章目录 TOC 1 引言 2 JAVA创建类时注释模板配置 2 1 打开IDEA 依次点击File gt Setting 2 2 在Settings界面中依次点击Editor gt File and Code Templates 并在Fi
  • 关于示波器产生奇特波形的解释

    转发 https blog csdn net y511374875 article details 80583585
  • 让机器“看山是山”:脑启发的视觉计算

    编者按 人生之三境界的第一层 看山是山 看水是水 本质上展示了人 看见 的过程 以及思绪与理解在这一过程中所起的作用 看见 对于人类而言 似乎是一个很简单自然的事情 其实则不然 从地球上第一个长出眼睛的生物三叶虫 走到今天的人类视觉 经历了
  • office365 无法登录_office365、office2019微软账号无法登录如何解决?

    我相信很多人肯定被这个问题折磨得头大 因为微软服务器在国外的原因 所以部分设备很难登入 但是OneNote Office365 Ofice等软件如果是绑定了微软账号的 需要登入微软账号才可以激活和保存数据 日常帮助很多订阅客户处理过这个问题
  • 【数据结构】循环队列的实现(附带详细注释)

    前言 数据结构系列首页 是数据结构系列文章的首页 其中会逐步更新各种数据结构的实现 有兴趣的选手可以一看 首页中不仅有各种数据结构的实现 还有学习数据结构必备的基础知识 如果有选手觉得自己的基础不太牢固 可以先将搞定基础知识 之后再攻克数据
  • 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 -- 递归

    0 题目描述 leetcode原题链接 剑指 Offer 68 I 二叉搜索树的最近公共祖先 1 递归解法 终止条件 当 root 为空时 返回 None 当 p q 都在 root 的右子树中 则开启递归 root right 并返回 否
  • 企业大数据CDH集群安全----sentry

    Sentry安装 1 cm中选择添加服务 选择sentry 2 选择要安装sentry的主机 3 配置数据库 HDFS配置 开启启动访问控制列表 选中打勾 开启检查HDFS权限服务 开启sentry服务 hive配置 修改hive配置参数
  • 获取IronSource的广告源Pod和Maven版本

    接入IronSource库后 现在可以选择Maven或者Pod的形式导入相关广告源 Ironsource官网上有一个入口 可以方便的获取接入广告源的Maven和Pod Android https developers ironsrc com
  • Object.keys()、Object.values()、Object.entries()的用法

    一 Object keys obj 参数 要返回其枚举自身属性的对象 返回值 一个表示给定对象的所有可枚举属性的字符串数组 处理对象 返回可枚举的属性数组 let person name 张三 age 25 address 深圳 getNa
  • java参数校验常见注解介绍

    一 NotEmpty NotBlank NotNull区别介绍 NotEmpty 常用于集合 字符串等 不能为空 且长度必须大于0 NotBlank 用于字符串上 不能为空 且长度必须大于0 NotNull 字面意思 一般用于基本类型 不为
  • 聊聊编程是什么

    前言 前言不看没关系 不影响 半夜睡不着 想写点啥 浅聊下我理解的编程的 我认为编程就是解决问题 就像互联网是依附于实体业 是处理解决实际问题的 刚学编程的时候总是很恐慌的 天赋不够 我这么认为的原因 一是当时流行一种说法叫不是热爱编程的是