聊聊编程是什么

2023-09-16 02:37:46

前言   

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

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

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

更多推荐

分享一个基于uniapp+springboot技术开发的校园失物招领小程序(源码、lw、调试)

💕💕作者:计算机源码社💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流!💕💕学习资料、程序开发、技术解答、文档报告💕💕如需要源码,可以扫取文章下方二维码联系咨询💕💕JavaWeb项目💕💕微信小程序项目💕💕

数据结构与算法(五)--链表概念以及向链表添加元素

一、前言今天我们学习另一种非常重要的线性数据结构–链表,之前我们已经学习了三种线性数据结构,分别是动态数组,栈和队列。其中队列我们额外学习了队列的另一种实现方式–循环队列。其实我们自己实现过前三个数据结构就知道,它们底层均依托静态数组,靠resize解决固定容量问题。而链表和前三种均不同,它是真正的动态数据结构。学好链

SpingBoot:整合Mybatis-plus+Druid+mysql

SpingBoot:整合Mybatis-plus+Druid一、特别说明二、创建springboot新工程三、配置3.1配置pom.xml文件3.2配置数据源和durid连接池3.3编写拦截器配置类四、自动生成代码五、测试六、附件-mysql数据库表本文参考链接:[Java]SpringBoot集成MyBatisPlu

有没有普通人可以做的项目?分享几个项目适合普通人做的!

当谈到副业时,我们通常会想到能够轻松实施的兼职方式,并且希望通过这些副业增加我们的收入。那么,以下是我推荐的几种副业,这些副业不仅有良好的收入潜力,而且在执行过程中也很有趣。让我们一起看看吧!第一种:闲鱼卖货对于闲鱼的操作,之前已经说过,闲鱼是目前最大的二手交易平台,另外一个平台就是腾讯合作的转转,转转上面主要是以卖手

gRpc入门和springboot整合

gRpc入门和springboot整合一、简介1、gprc概念gRpc是有google开源的一个高性能的pc框架,Stubbygoogle内部的rpc,2015年正式开源,云原生时代一个RPC标准。tips:异构系统,就是不同编程语言的系统。2、grpc核心设计思路grpc核心设计思路1.网络通信-->grpc自己封装

激光雷达在ADAS测试中的应用与方案

在科技高速发展的今天,汽车智能化已是必然的趋势,且自动驾驶汽车的研究也在世界范围内进行得如火如荼。而在ADAS测试与开发中,激光雷达以其高性能和高精度占据着非常重要的地位,它是ADAS测试与开发中不可缺少的组成。一激光雷达介绍|激光雷达原理1.全称激光雷达(英文:Lidar),英文全称为LaserDetectingan

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

智能合约漏洞案例,EulerFinance1.96亿美元闪电贷漏洞分析2023年3月13日上午08:56:35+UTC,DeFi借贷协议EulerFinance遭遇闪电贷攻击。EulerFinance是一种作为无许可借贷协议运行的协议。其主要目标是为用户提供各种加密货币的借贷便利。这家总部位于英国的科技初创公司利用数学

学习jQuery库的第一天

简介什么是jQuery?jQuery是一个广泛使用的JavaScript库。它简化了网页开发中常见的许多任务,例如HTML文档遍历、操作HTML元素、处理事件、动画效果、Ajax网络请求等。通过使用jQuery,开发人员可以更加高效地编写跨浏览器兼容的JavaScript代码。jQuery提供了简洁明了的API,使得操

肖sir__mysql之多表练习题__007

已知2张基本表:部门表:dept(部门号,部门名称);员工表emp(员工号,员工姓名,年龄,入职时间,收入,部门号)1:dept表中有4条记录:部门号(dept1)部门名称(dept_name)101财务102销售103IT技术104行政2:emp表中有6条记录:员工号员工姓名年龄入职时间收入部门号对应字段名称为:(s

麒麟系统开发笔记(十二):在国产麒麟系统上编译GDAL库、搭建基础开发环境和基础Demo

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131805718红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…国产麒麟

Zebec 生态 AMA 回顾:Nautilus 以及 $ZBC 的未来

在9月7日,Zebec创始人Sam做客社区,并进行了“NautilusChain以及$ZBC的未来”主题的AMA访谈。Sam在本次访谈中对NautilusChain生态的价值捕获、Zebec生态布局规划、可能会推出的NautilusChain治理通证NAUT进行了解读。本文将对本次AMA进行回顾与总结。主持人:社区新的

热文推荐