撩课-Python-天天5道面试题-第1天

一. 尽量详细的描述出一个应用软件, 好比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 0000000000000001git

汇编语言
- 使用了一些助记符来代替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程序执行过程
相关文章
相关标签/搜索