网站首页 > 技术文章 正文
编程本身其实并不难,学会一门编程语言,了解数据类型、条件控制语句、循环控制语句、函数、逻辑运算、数学运算基本上就学会了编程语言了,如果面向对象语言比如C++、Rust、Java、C#等,关于类、继承等一些概念学起来复杂一些,其实如果只是为了完成特定的小任务,并不是很难。任何事情想做大,都不是单纯的某一个技术能解决的问题,编程也一样,因为涉及的东西比较多。
一、业务表达
如何用计算的语言把业务问题表达出来,然后让计算机去完成特定的任务,这就涉及到数据结构、算法问题。再往大了说,一个信息化系统,就需要有数据存储、业务逻辑、用户界面等一系列的业务问题要解决,甚至美观程度、用户体验,如何很好地用计算解决业务问题其最难的一点。所以,产品经理就诞生了,软件产品需求的分析与设计本身就是一门学问。
二、抽象
软件,之所以称其是“软”的,就是因为它太难以拿捏,看得见却摸不着,又变化万千,一千个人做同一个软件,以做出一万种结果。原因就是软件太抽象,在前期纯靠想象,即使用文档描述出来,说的跟听的可能根本不是一个东西,需要不断地核对。所以“敏捷软件”应运而生就是要解决软件变化快的问题,一方面是因为业务变化快,另一方面是在开发过程中每进行一步与原来的想象都不一样,要及时调整,拥抱变化。
三、技术多,变化快
每一个需求的实现方式都有很多种,比如操作系统就有Windows、Linux、Unix、MacOS、Android、Harmoney等,在做软件之前要先选择基于什么平台,虽然有很多东西是跨平台的,但体验上还是有很大差异。
然后,你的GUI是打算用原生应用的C/S架构,还是想用基于浏览器的B/S架构?开发语言想用C/C++、Rust、C#、Java、Python、Node.js、PHP等,接下来数据的存储打算SQL的还是NoSQL的,SQL的是打算用MySQL、Oracle、SQL Server、PostgreSQL?这还是大类的,小的各种技术框架更是层出不穷日新月异,刚学会了Perl,Python又出来了,看到还有Ruby也不错,还没用两年,发现没人用了;Hadoop刚火一阵儿,还没学明白,又出来个TiDB;听说jQuery很火,学会了感觉真棒,React又来了,刚学会又有人说React这缺陷那问题,又听说还有Vue、Angular?
编程是非常考验一个人的学习能力的。
四、系统性强
编程不光是写代码本身,代码工具、操作系统、数据库、网络、软件库等各种各样的相关环境,一旦出了问题如果不是对所有细节都很了解,解决起来非常困难,甚至说根本解决不了。比如装软件多了发现环境变量互相有冲突;用的软件库多了,发现软件库版本有冲突(如A引用了B 1.0版本, C引用了B 2.1版本,这是我们引用了A和C,这时头可就大了去了);再加上嵌入式相关的,有时问题不知道出在硬件还是软件,尤其是稳定性的问题,没有对整个系统的深入理解,光靠网上搜各种解决方案基本不太可能。
所以编程要做好不光要有深度,还要有相当的宽度,而且在每个维度上都很深才能真正地把软件做好。
猜你喜欢
- 2025-09-12 编程语言那么多,为何C语言能成为最成功的语言?
- 2025-09-12 为什么Java用途这么广泛,而地位不如C++
- 2025-09-12 学java还是学C++?_学java还是学c语言
- 2025-09-12 中小学生学习编程选择C++还是Python
- 2025-09-12 今天测试一个常用功能时,发现纯C语言竟然比C++快15倍
- 2025-09-12 C语言怎么样,好学吗?_c语言好学吗零基础
- 2025-09-12 C语言这么难,为何大家都如飞蛾扑火般学习?现在带你揭秘
- 2025-09-12 C++真的很难学好?大师告诉你程序设计要怎么做
- 2025-07-02 嵌入式程序开发,C语言和C++究竟应该用哪个?
- 2025-07-02 C语言?c++?到底先学哪个才能更好的理解编程,这些你造吗
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)