像程序員一樣思考(修訂版) 像程序员一样思考(修订版)(异步图书)

V.Anton Spraul

已絕版

買這商品的人也買了...

相關主題

商品描述

 

<內容簡介>

編程的真正挑戰不是學習一種語言的語法,而是學習創造性地解決問鯉.從而構建美妙的應用。本書分析了程序員解決問題的方法,並且教授你其他圖書所忽略的一種能力,即如何像程序一樣思考。  全書分為8章。第1章通對幾個經典的演算法問題切入,概括了問題解決的基本技巧和步驟。第2章通過實際編寫C++代碼來解決幾個簡單的問題,從而讓讀者進一步體會到問題解決的思路和應用。第3到7章是本書的主體部分,分別探討了用數組、指針和動態內存,類、遞歸和代碼復用來解決問題的途徑和實際應用。最後,第8章從培養程序員思維的角度,進行了總結和概括,告訴讀者如何才能像程序員一樣思考。  斯保爾編著的《像程序員一樣思考(修訂版)》選取的話題切中程序員的痛點,針對他們最容易陷入掙扎的領域展開討論,引發思考。每章後面都給出一些編程習題,使得讀者能夠應用該章所討論的概念,訓練和提升問題解決的能力。  《像程序員一樣思考(修訂版)》適合初級到中級的程序員用來提升自己的問題解決能力和應用編程技能的能力,也適合電腦相關專業的學生作為參考書閱讀。

<章節目錄>

第1章 解決問題的策略
  1.1 經典難題
    1.1.1 狐狸、鵝和玉米
    1.1.2 瓷磚滑塊問題
    1.1.3 數獨
    1.1.4 Quarrasi鎖
  1.2 基本的問題解決技巧
    1.2.1 總是要制訂計劃
    1.2.2 重新陳述問題
    1.2.3 劃分問題
    1.2.4 從自己所知的開始
    1.2.5 削減問題
    1.2.6 尋找類比
    1.2.7 試驗
    1.2.8 避免陷入挫折感
  1.3 習題
第2章 純粹的難題
  2.1 本章所使用的C++簡述
  2.2 輸出圖案
  2.3 輸入處理
  2.4 追蹤狀態
  2.5 結論
  2.6 習題
第3章 用數組解決問題
  3.1 數組基礎知識概述
  3.2 用數組解決問題
  3.3 固定數據的數組
  3.4 非標量數組
  3.5 多維數組
  3.6 決定什麼時候使用數組
  3.7 習題
第4章 用指針和動態內存解決問題
  4.1 指針基礎知識回顧
  4.2 指針的優點
    4.2.1 運行時確定長度的數據結構
    4.2.2 可改變長度的數據結構
    4.2.3 內存共享
  4.3 什麼時候使用指針
  4.4 內存細節
    4.4.1 堆棧和堆
    4.4.2 內存的大小
    4.4.3 生命期
  4.5 解決指針問題
    4.5.1 可變長度的字符串
    4.5.2 鏈表
  4.6 結論和未來的步驟
  4.7 習題
第5章 用類解決問題
  5.1 類的基礎知識回顧
  5.2 使用類的目的

    5.2.1 封裝
    5.2.2 代碼的復用
    5.2.3 問題的細分
    5.2.4 信息隱藏
    5.2.5 可讀性
    5.2.6 表達能力
  5.3 創建一個簡單的類
    5.3.1 問題:班級花名冊
    5.3.2 基本的類框架
    5.3.3 支持方法
  5.4 具有動態數據的類
  5.5 需要避免的錯誤
    5.5.1 假類
    5.5.2 單功能
  5.6 習題
第6章 用遞歸解決問題
  6.1 遞歸基礎知識回顧
  6.2 頭遞歸和尾遞歸
  6.3 大遞歸思路
  6.4 常見的錯誤
    6.4.1 過多的參數
    6.4.2 全局變量
  6.5 把遞歸應用於動態數據結構
    6.5.1 遞歸和鏈表
    6.5.2 遞歸和二叉樹
  6.6 包裝器函數
  6.7 什麼時候選擇遞歸
  6.8 習題
第7章 通過代碼復用解決問題
  7.1 良好的復用和不良的復用
  7.2 組件基礎知識回顧
  7.3 創建組件的基礎知識
    7.3.1 探索式學習
    7.3.2 根據需要學習
  7.4 選擇組件類型
  7.5 習題
第8章 培養程序員的思維
  8.1 創建自己的總體計劃
    8.1.1 揚長避短
    8.1.2 制訂總體計劃
  8.2 處理任何問題
    8.2.1 問題:絞型者作弊程序
    8.2.2 尋找作弊方法
    8.2.3 絞型者作弊所需要的操作
    8.2.4 初始設計
    8.2.5 開始編寫化碼
    8.2.6 對初始結果的分析
    8.2.7 解決問題的藝術
  8.3 學習新的編程技能
    8.3.1 新語言

    8.3.2 已經熟悉的語言的新技巧
    8.3.3 新代碼庫
    8.3.4 上課
  8.4 結論
  8.5 習題