现在的人们,每天在使用着各种手机app或网页之类的,进行日常工作,亦或是打发闲暇时间?但是在使用它们的时候,你是否曾有过一丁点的好奇心,想过这些东西到底是什么,是怎么来的?
今天,我要来给大家稍稍的科普一下这方面的知识。
软件是谁制作的
在这个星球上,生活着一群神秘的有机生命物种,他们中大多数作息时间是:起的比鸡早,睡的比鸡晚。他们不太善于使用祖先传下来的母语进行同族之间的沟通,却发明了各式各样的语言,和电子无机生命体进行着沟通,并以此为乐。更甚者,他们中的很多成员,成为了某种无机体语言的激进崇拜者,分门立派,并且坚定的认为:非我语类,其心必异,必须骂死丫的!
尽管如此,和他们相处的时候,你大可放心。只要不涉及到无机体语言的事情,他们还是一种比较温和的生物。
这种生物,就是我们俗称的“程序猿”,也叫软件工程师。
![](http://upload-images.jianshu.io/upload_images/3407939-a15841668f399f2b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我们使用的各种电脑软件,网站,手机app等,都是程序猿们和各种无机体(电脑,手机等)进行沟通后的产物,它们其实就是这些懂无机体语言的程序猿设计出来的一种辅助工具,这样一来,那些即使不懂无机体语言的人群,也能通过它们很容易的去操纵电脑、手机等完成一些事情。
什么是编程
程序猿制作这些电脑软件、网站、app的过程,就叫做编程,也叫软件开发。
编程,其实就是在编写一份工作流程清单,在这份清单中,程序猿要非常详细的写下需要电脑做的每一件事情,每一个步骤。当你运行你电脑上的一个软件,或者是手机中的一个app的时候,实际上,你的电脑或手机就是在运行一份这样的清单,按照程序猿们事先编制好的步骤,一步一步的运行着。
客户端和服务器端
以前的软件程序,比较简单,一般都是在你的电脑上安装一下就可以了,运行的时候,也只是在你的电脑上运行着。但是随着历史的变迁,随着网络技术的发展,你电脑或手机上的软件运行的时候,它们其实不再只是在你的这些设备上运行了,而是被拆分,有可能在2个地方运行,也有可能在200个地方运行。运行在你电脑或手机上的那部分,也许是整个软件中不那么重要的部分而已。
![](http://upload-images.jianshu.io/upload_images/3407939-8ad177f2ec948bfc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
运行在你的电脑或手机中的那部分,我们叫做“客户端”,它是提供一个比较形象的界面,让你和你的设备/软件进行对话:你可以通过这个界面下达命令,或者当软件做完事情后它会展现给你结果。
还有一个“服务器端”,是你平常情况下完全感觉不到的东西。也许只有在断网的情况下,你看到你的客户端提示的“服务器连接失败”之类的信息,你才会隐约感受到它的一点点存在。其实,它才是一个软件系统中的那个大BOSS,大核心。比如一个聊天软件:
- 你所有的好友列表,都由服务器端在存储和处理;
- 你所有的聊天信息,都会先发送到服务器端,然后再通过服务器端,转发到你的目标好友的电脑或手机客户端上;
- 你的朋友圈视频和图片,好友评论和点赞信息,它们统统都会经由服务器端的处理;
- 等等等等...
搭建和开发一个完善的服务器端,是个大工程。而且很多时候被不知道的人所忽略。所以,千万别在你程序猿朋友面前,说什么你想开发一个模仿XX的app,要求x天x千块完成,我想,你朋友的内心一定是想甩你几个响亮的大嘴巴子的。
![](http://upload-images.jianshu.io/upload_images/3407939-51ae6ece0d4955c2.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
哪些地方需要编程
随着计算机技术的发展,越来越多的地方可以进行编程,你身边充斥着被编程过的东西,电脑、手机、汽车、电视机、空调、冰箱、手表、眼镜......掌握编程,就是掌握了未来的主动权(哈哈哈,希望是这样吧)。
好了,到此,你应该对编程有个概念性的认识了吧?如果你对编程感兴趣,请关注我后面的系列文章吧。在这一系列的后文中,我将从一个初学者的角度出发,带你一步步学习编程知识,成长为一个能前能后,能PC能移动,能独自扛起比较完整的软件系统的程序猿。
这个系列我就叫它《从编程小白到全栈开发》吧。
相关推荐
这份珍贵的Python全栈开发教程,囊括了从编程基础到实战应用的全方位学习资源。无论是初学者还是希望提升技能的开发者,都能在这里找到宝贵的知识财富。教程以深入浅出的方式,详细讲解了Python语言的基础语法、数据...
全栈开发这一概念涵盖了从前端用户界面到后端服务器架构的整个软件开发流程,强调开发者应具备全方位的技术能力,能够处理应用程序的所有层面。在这本书中,黄峰达将分享他的经验和见解,帮助读者提升成为全栈工程师...
Django全栈开发高级实战项目 知识领域:编程 技术关键词:Django, 全栈开发 内容关键词:实战项目 用途:学习
对于初学者来说,从基础的概念开始,逐步深入到具体的代码实践,最终能够独立完成一个Web项目的全栈开发是非常有成就感的。而对于想要从事Web开发行业的人员来说,掌握全栈开发技术意味着拥有更多的机会和更广阔的...
用途:这些面试题及答案是专为Python全栈开发领域设计的,目的是帮助应聘者准备技术面试,评估他们在Python编程、Web开发、数据库管理等多个关键技术领域的知识和技能。这些问题覆盖了Python全栈开发的核心概念和...
编程知识+技术开发+从技术小白到Ruby编程专家的学习路径;编程知识+技术开发+从技术小白到Ruby编程专家的学习路径;编程知识+技术开发+从技术小白到Ruby编程专家的学习路径;编程知识+技术开发+从技术小白到Ruby编程...
3. **AngularJS**:一种基于JavaScript的开源前端框架,提供丰富的功能如数据绑定、路由管理等,让Web应用开发变得更加高效。 4. **Node.js**:基于Chrome V8 JavaScript引擎的服务器端平台,支持快速构建高性能的...
《ChatGPT全栈开发实战》是一本涵盖广泛IT领域的指南,主要针对ChatGPT技术在全栈开发中的应用。本书旨在帮助读者从需求分析到数据可视化,全程掌握ChatGPT开发的关键技能。以下是该书涉及的主要知识点: 1. **需求...
Meteor是一个强大的JavaScript框架,它允许开发者使用单一的编程语言和工具链,从后端数据库到前端用户界面,实现快速、高效地构建实时Web应用程序。 全栈开发是指开发者能够处理应用的各个方面,包括服务器端、...
.NET全栈开发是现代软件开发领域中的一个重要方向,它涵盖了从后端服务器到前端界面的全方位技术栈。在这个价值4k的.NET全栈开发课程中,重点是学习C#编程语言以及.NET Core框架,这两者构成了.NET开发的核心基础。 ...
《编程小白的第一本Python入门书》是一本专为编程初学者量身打造的教材,尤其适合那些完全没有编程背景的读者。本书旨在引领初学者跨入编程世界的大门,特别是学习Python这种近年来非常热门的编程语言。下面将对...
编程小白的第一本Python入门书.pdf
Python全栈9期(第一部分):基础+模块+面向对象+网络编程 Python全栈9期(第五部分):django高级 Python全栈9期(第四部分):django进阶 Python全栈9期(第十一部分):django rest framework + vue Python...
1. Python全栈开发:本文件提及的是一本关于Python全栈开发的指南书。全栈开发指的是能够进行前端和后端开发的程序员,能够处理一个网站或应用程序的全部技术层面的任务。Python作为一门被广泛使用的编程语言,以其...
这个项目旨在提供一个全面的解决方案,涵盖了从后端数据处理到前端用户交互的全过程,为学习者提供了一个宝贵的实战案例。 首先,让我们来了解一下Python和Django。Python是一种高级编程语言,以其清晰的语法和强大...
《编程小白第一本Python入门书》便是这样一本书籍,它专门针对没有任何编程背景的初学者。作者在编写此书时,亲身体验了编程初学者的困惑和挑战,深知市场上充斥着大量对于编程新手来说晦涩难懂的教程。因此,作者...
书中内容和知识点从基础到进阶,覆盖了Python编程的核心概念和实践应用,是编程新手不可多得的入门指南。通过系统地学习和实践,编程小白能够逐步建立起坚实的编程基础,为未来深入学习和专业领域的拓展打下坚实的...
全栈工程师能够处理从用户界面到数据库的所有层面,确保软件项目的高效开发和协调。在现代快速变化的技术环境中,全栈技能变得越来越重要,因为这使得他们能够独立完成项目,同时也能更好地理解和优化整个系统的性能...