一. 尽可能详细的描述出一个应用软件, 比如QQ, 在计算机中运行时涉及的软硬件, 以及说明我们编程的侧重点?

  1. 电脑开机, 从硬盘中(外部存储设备)加载操作系统(系统软件)到内存(内部存储设备), 并运行操作系统
  2. 下载QQ软件(网络请求)到本地电脑磁盘中(外部存储设备), 安装后, 双击运行(加载到内存, 并基于操作系统通过CPU执行程序内的指令)
  3. 通过QQ发送语音或视频: 使用麦克风采集音频或者连同摄像头采集视频(输入设备), 发送给对方(网络请求)
  4. 所以, 基于以上, 我们编程主要指的是根据需求, 使用某一种编程语言, 编写出不同的功能代码(网络请求, 数据处理, GUI界面展示等等), 最后结合各种文档素材(程序图标图片, 音频, 配置文件等等) 组成一个完整的"应用软件"; 打包好相关的执行环境, 供他人运行使用.

二. 尝试解释下, 我们作为开发人员, 在以后的公司实际开发中, 常打交道的部门, 以及打交道的经验?

首先搞清楚, 一个项目开发的部门组成, 大致如下:
(1) 产品经理
负责制定需求, 产品原型图的设计, 和程序员干架等
就是, 咱们做的到底都是啥玩意, 哪些功能要做, 哪些不要做, 比如, 让手机壳随着用户心情变色; 这都是极品产品经理;
还有一个可怕的就是, 像一些小公司, 啥都不懂的老板也会跟着提需求; 和老板合作的其他老板, 也会提一些神奇的建议(谁让别人是甲方呢); 此时, 有节操的产品经理还会反抗, 没节操的, 哎, 都转移给了开发人员... 去做吧, 老板说的, 一句话, 我们开发人员就想着法弄吧
(2) 项目经理(有的兼任开发人员);
根据原型图负责将需求转换成实施步骤, 搭建好基本的项目结构, 并配置好源代码环境; 分配给不同的小弟去做; 还会调度其他部门, 比如美工, 来提供相关素材; 而且, 项目经理会跟进项目开发进度, 就是看着你干活, 每天做的啥玩意; 有的技术难点小弟搞不定, 就得自己上;
(3) 各角色开发人员
职责就是根据分配的需求, 进行代码实现, 简称"码农", "码畜"...
通常除下编写代码外, 还需要背锅
开发大致分为前端和后端, 不管你处于哪一端, 都需要和另外一端人沟通; 比如后端, 需要提供接口, 编写好接口文档; 前端根据接口文档发送请求, 获取和上传数据;
两者之间, 相亲相爱, 一起调Bug, 一起和提出恶意需求的产品干架;
所以, 除下敲代码外, 锻炼好身体也很重要;
(4) 和队友打交道
一般我们开发, 很少一个人独立开发, 根据项目大小不同, 分配的人员也大概在3-5人最为常见; 与他们沟通是最常见的事;
而且一般项目任务划分, 是模块化, 组件化, 或者前后端分离等等方式, 尽可能保证大家都能同步开发, 而互相不干扰; 不然俩人做同一个功能, 那就乱套了;
此时, 最需要注意的问题, 其实是在于代码合并的问题; 也就是源代码管理工具(git/svn); 你可以这么理解, 我们大家写不同功能的代码, 最终肯定要合到一个地方组成一份完整的, 可执行的程序代码;
但因为一个项目代码, 不管怎么划分, 都肯定有一些公共部分代码, 那此时, 大家的对公共部分的代码修改就可能在提交时产生冲突;
此时, 要求我们以下几点:
(1) 修改公共代码时, 说一声;
(2) 每天开始编写代码前, 尽可能先从服务器下载最新代码;
(3) 别乱删别人东西, 也别改别人代码, 让别人自己改; 切记
(4) 没事多写点注释, 不然大家没法沟通, 特别是写SDK的; 不然很容易被打, 虽然每个程序员自己都不想写, 但都要求别人写的;
(5) 尽可能写完一部分代码就提交, 避免产生大量冲突; 而且要先提交, 一旦产生冲突留给队友解决; 你回家吃饭;
(6) 多做测试, 提交正确代码
(7) 测试时, 单独开一个分支(理解为单独一份代码); 别直接在正式项目那份代码中做
(8) 对新人好点好伐? 大家都是这么过来的

三. 作为码农必须了解编程语言的概念, 请阐述

机器语言
- 全部都是由0和1的二进制代码组成, 可以由计算机直接执行, 效率最高;
- 但因为人看不懂, 不好理解, 所以不适合编程使用;
例如
1+1 对应代码如下
0000000000000001 1101100100 0000000000000001

汇编语言
- 使用了一些助记符来代替0和1, 相对来说更好理解一些;
例如
1+1 对应代码如下
mov ax,1
add ax,ax
- 最终还是要转换为机器语言执行, 多了一层转换, 所以效率低于机器语言;
- 通用性依然不强,理解较差,学习曲线大, 编写大型程序繁杂;
- 但因为其效率高, 所以在某些特殊行业中,还是有不少使用;

高级语言
- 接近于人类自然语言的单词和符号来表述低级语言(机器和汇编);
例如
1+1 对应代码就是 1+1
- 可阅读性, 可移植性较高
- 缺点就是效率不如机器语言和汇编语言高;

四. Python语言的简介

  1. 定位
    一门解释型的高级编程语言
    也可以说先编译后解释
    因为没法严格的划定编译和解释的概念
  1. 作者
    Guido van Rossum(吉多·范罗苏姆), 人称“龟叔”
    荷兰人
    1991年初,Python发布了第一个公开发行版
  1. 特点
    简单
    语法简单
    丰富的库支撑
    优雅
    可移植性
    代码规范性
    胶水语言
  1. 应用领域
    Web全栈开发
    图形界面开发
    大数据
    人工智能
    爬虫
    系统网络运维
    云计算系统管理
    ...
  1. Python版本
    目前流行版本两个
    Python2.x
    Python3.x

五. Python程序的执行过程?

撩课-Python-每天5道面试题-第1天的更多相关文章

  1. 撩课-Java每天5道面试题第13天

    撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...

  2. 撩课-Java每天5道面试题第15天

    撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...

  3. 撩课-Java每天5道面试题第10天

    撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...

  4. 撩课-Java每天5道面试题第9天

    撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...

  5. 撩课-Java每天5道面试题第8天

    撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...

  6. 撩课-Java每天10道面试题第7天

    撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...

  7. 撩课-Java每天10道面试题第4天

    撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...

  8. 撩课-Python-每天5道面试题-第9天

    一. Python程序中, 文件的处理步骤是什么? 打开 open("文件","模式") 读写 2.1 读 f.read(字节数) 字节数默认是文件内容长度 下 ...

  9. 撩课-Python-每天5道面试题-第8天

    一. 解释下什么是闭包? 有怎样的场景作用? 概念 在函数嵌套的前提下 内层函数引用了外层函数的变量(包括参数) 外层函数, 又把 内层函数 当做返回值进行返回 这个内层函数+所引用的外层变量, 称为 ...

  10. 撩课-Python-每天5道面试题-第6天

    一. 函数的概念是什么? 在Python中如何定义?使用场景是什么? 概念 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就 ...

随机推荐

  1. httpclient org.apache.http.NoHttpResponseException: host:端口 failed to respond 错误原因和解决方法

    原因:httpclient 之前与服务端建立的链接已经失效(例如:tomcat 默认的keep-alive timeout :20s),再次从连接池拿该失效链接进行请求时,就会保存. 解决方法:官方链 ...

  2. docker设置引用国内镜像加速

    设置步骤: 1 先到daocloud.io网站注册一个账号 过程略,注册成功后,进入控制台 2 点击控制台上的加速器 拉到中间部分,有一个『主机监控程序』的文字链接,见下图: 然后选择主机类型,我用的 ...

  3. 磁盘IO的概念

    转载自:http://blog.csdn.net/letterwuyu/article/details/53542291 在数据库优化和存储规划过程中,总会提到IO的一些重要概念,在这里就详细记录一下 ...

  4. django入门-测试-part5

    尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6515996.html 完全翻译自官方文档 https://docs.djangoproje ...

  5. 网站架构:PHP针对并发访问如何优化?

    1.拆表:大表拆小表(垂直拆,水平拆:分表,分区partition,分片sharding),可以在应用层实现,也可以在数据库层面实现一部分:提高系统性能. 2.分库:把表放到不同的数据库,这也是分布式 ...

  6. [ActionScript 3.0] 记录几个ByteArray 十六进制 String等相互转换的方法

    /** * 通过hax数据返回ByteArray * @param hax 格式 "AA5A000100FF" */ private function getHax(hax:Str ...

  7. Ambiguous mapping found. Cannot map 'XXXController' bean method

    springMVC报错,原因方法之间@RequestMapping()到了同一个地址,导致springmvc无法定位

  8. springmvc常遇到的错误

    错误1: HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError ...

  9. springcloud应用思考

    1 springcloud注册中心eureka和zookeeper注册中心的区别: eureka注册中心,在服务选主的时候服务还是可以用的,zookeeper注册中心在选举的时候整个服务瘫痪了,是不可 ...

  10. JVM虚拟机指令

    参考及转载: (1)https://blog.csdn.net/qq_33301113/article/details/73717855 (2)https://blog.csdn.net/wangxf ...