撩課-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程序執行過程
相關文章
相關標籤/搜索