先整理一下?個人層面的軟體設計考量
讓程式碼重獲新生 一大堆凌亂的程式碼,我應該要直接修改,還是《先整理一下?》...... 凌亂的程式碼是每位開發者的挑戰與痛苦根源,新手與資深工程師都曾在複雜結構面前無從下手。而程式碼的清晰與結構優雅,卻是軟體可維護性與可擴展性的關鍵。 有了這本書,你將不再懼怕那些讓人抓狂的程式碼,學會如何以安全又有效的方式處理它們,同時改變你看待軟體設計的方式。 程式設計大師 Kent Beck 將其深厚的開發經驗,梳理成簡單明瞭的範例,讓我們在不改變系統功能的前提下,逐步學會清理程式碼、優化結構,進而提升整體設計水準。 這本書,不只是為了「整理」,更是為了讓每位開發者重新找回創作的信心與樂趣。 -------------------------------------- 「設計就是我們用程式碼所繪製出來的形狀,Kent則幫助我們繪製出更好的形狀。 這是一本談論重要主題的重要書籍。」 ——Dave Farley / Continuous Delivery有限公司創辦人兼董事 「本書針對各種不同程度的開發人員,提供了許多實用的技巧,可協助大家改進手邊正在處理的各種程式碼。」 ——Sam Newman / 獨立顧問、技術專家,同時也是《建構微服務》和《單體式系統到微服務》這兩本書的作者 「《先整理一下?》這本書裡的想法其實都很簡單,但當你讀到這些想法時,心裡一定很想知道,為什麼這麼多想法自己從來都沒想過。 我要推薦這本書,給所有在意程式碼乾不乾淨、可讀性好不好的人。」 ——Gergely Orosz / The Pragmatic公司的工程師 亂七八糟的程式碼,處理起來最麻煩了。為了讓程式碼更容易讀懂,「整理」程式碼時經常要把程式碼切成好幾塊。在這本實務指南中,身為極限程式設計創造者與軟體模式先驅者的作者Kent Beck 建議我們,可以在何時何地去整理程式碼,以提高程式碼的品質,同時兼顧系統的整體結構。 本書並不會一下子就要你掌握所有的整理技巧,而是讓你先去嘗試一些對你的問題很有意義的範例。 如果你有一個很大的函式,其中包含許多行的程式碼,你要先學會如何把它合理切分成許多比較小的程式碼片段。在閱讀本書的過程中,你就能學會軟體設計背後的理論:耦合、內聚、現金流的折現效應以及選擇性等概念。 本書將會協助你: .瞭解軟體設計的基本原理,以及各種會影響軟體設計的力量。 .針對系統在行為上與架構上的改變,探索這兩者之間的差異。 .改善你的程式設計體驗:有時可以先做整理,有時可以後做整理。 .學會如何把一些比較大的改變,拆解成比較小、比較安全的好幾個步驟。 .把軟體設計當成人類關係的一種課題。
世界第一簡單的演算法:圖解 ✕ 程式 ✕ 刷題機器人
★★★★★Amazon.com 年度暢銷書、五星推薦 ★★★★★★★★★★授權多國版權,最受好評的演算法書籍★★★★★★★★★★580 餘張插圖解說,複雜原理一看就懂★★★★★★★★★★客製化刷題機器人,工作面試自信滿滿★★★★★【專家好評推薦】◆Daniel Zingaro | 多倫多大學數學與資訊科學系 副教授◆高孟駿 | 陽明交通大學資工系 副教授◆韓永楷 | 清華大學資工系 教授 (以上依照姓名筆劃順序排列)▼特別收錄▼————————————————————————▍實用的 AI 輔助: ⦿ 用 AI 輔助寫程式 ⦿ 用 ChatGPT 改寫成不同程式語言的程式碼▍Coding Interview 要點: ⦿ 使用遞迴的面試考題 ⦿ 利用雜湊表解 Two Sum 問題 ⦿ 用 BFS 演算法解 Word Ladder 題目 ⦿ 最長重複子陣列 ⦿ 尋找座標上最接近原點的某幾個點▍客製化刷題機器人 – 驗證你的演算法學習成效————————————————————————傳統的演算法書籍太過枯燥無聊,裡面全是些看再多遍也看不懂的複雜理論、數學公式還有程式,光是翻幾頁就讓人哈欠連連,這對初學者而言就像在看外星文,而且有些程式概念很抽象,更是無法透過文字敘述就能理解。本書透過生活化的舉例做引導,並避免無聊又複雜的敘述,目的就是希望讓讀者能像閱讀小說般地學會演算法概念。我相信最好的學習方式就是能回想起我們熟悉的事物,以範例來說明會讓你更容易回想。例如,當你忘記【陣列】與【鏈結串列】的差異時 (本書第 2 章的主題),只要回想到在電影院找座位就可以了。本書內容精心挑選過,而且用生動有趣的手繪圖來輔助理解,所介紹的演算法都非常實用,希望能幫讀者奠定良好的基礎,以便將來學習更進階的演算法。【本書含括】二元搜尋法/Big O notation/遞迴/戴克斯特拉演算法/選擇排序法/貪婪演算法/樹狀圖/平衡樹/動態規劃演算法/快速排序法/雜湊表/K 最近鄰演算法/廣度優先搜尋法/反向索引/傅立葉轉換/平行演算法/分散式演算法/迪菲赫爾曼金鑰交換/線性規劃/NP-complete、……等。本書特色: ✔ 培養程式設計的邏輯思考能力✔ 內容淺顯易懂,沒有長篇難懂的理論✔ 透過生活化的範例,學會拆解複雜問題的方法✔ 比較演算法的效能,幫助您挑選最適用的演算法來解決問題✔ 一本書就能學到最經典的演算法,沒有理工背景的人也能看懂✔ 提供網路下載 Python、C、C++、Java、……等多種語言的程式碼✔ 採用 580 餘張插圖,讓生硬的演算法變有趣,複雜的原理一看就懂本書適合:⦿ 想自學演算法的人⦿ 想重溫演算法的程式設計師、工程師⦿ 對閱讀理論及數學公式有莫名恐懼,習慣圖像式思考的人
演算法導論(第四版)
暢銷經典,全球銷售超過百萬本 Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest和Clifford Stein所著的《演算法導論》受到世界各地許多著名大學廣泛採用,作為演算法課程的主要教科書。 本書即是大家耳熟能詳的CLRS。歷經數個版次,同時受到廣泛選用所造就的不可替代性,在該領域的社群和學術界,常以作者姓氏的首個英文字母「CLRS」,作為這本經典著作的代稱。 這本書因幾個關鍵特點而備受讚譽: ‧內容全面:本書涵蓋了從基本到進階的演算法主題,適合各個程度的讀者,無論是大學生、研究生或業界人士,都能從中受益。 ‧清晰的講解:書中以清晰詳細的方式解釋各種演算法,並搭配虛擬碼,幫助讀者理解演算法的實作過程。 ‧嚴謹的數學分析:本書提供了演算法的數學分析,幫助讀者深入理解演算法的效率和複雜度,對於希望深入研究演算法理論的讀者很有幫助。 ‧豐富的練習題:每章結尾都有大量的練習題,這些題目設計巧妙,有助於對學習內容的強化和加深理解。 ‧現實應用:書中展示了多演算法在實際問題中的應用,增加了學習的趣味性和實用性。 這些特點使得《演算法導論》成為計算機科學領域的經典教材,廣受學術界和業界人士的推崇。 有些演算法書籍雖然嚴謹卻不夠完整,有些則包羅萬象卻嚴謹不足,獨樹一幟的《演算法導論》既嚴謹且全面,不僅深入探討廣泛的演算法,也透過自成一體的章節及演算法虛擬碼,讓各種程度的讀者皆能理解演算法的設計和分析。 《演算法導論》自第一版問世以來,已成為全球大學的主要演算法教材,以及專業人士的標準參考書。 本書的第四版做了全面的更新,採用更清晰的文筆、更個人化且性別中立的表達方式,並透過顏色來增進視覺表現。我們根據讀者的回饋改進問題,讓注釋和參考文獻反映這個領域的最新發展,並且在本書的網站提供新的補充教材。 第四版的新內容 ‧關於二部圖、線上演算法與機器學習的新章節 ‧探討遞迴方程、雜湊表、勢能函數及後綴陣列等主題的新內容 ‧新增140道新習題和22道新問題 本書提供超過900道習題與162個問題,讀者可以在本書網站上找到大部分的解答。適合大學或研究所的演算法或資料結構課程使用;此外,由於本書探討演算法設計的工程問題和數學層面,所以也適合專業技術人員用來自學。
Unity 遊戲設計:程式基礎、操作祕訣、製作流程、關卡設計全攻略
★ 日本 Amazon 最暢銷、最簡單好學的 Unity 系列書 ★ Unity 是最廣為人知的遊戲開發工具, 幾乎不需要寫程式就能做出精緻的遊戲。但是全英文的操作介面, 加上複雜的各種選項、按鈕, 實在是不容易上手。 本書從基本的 C# 語法和 Unity 操作開始, 帶領讀者親手製作 6 個小遊戲, 由淺入深學會 UI、音效、碰撞偵測、Physics、Prefab、Terrain 等等遊戲製作技巧。 除此之外, 書中還針對遊戲的製作流程, 設計了簡要的 5 步驟, 只要依照這個流程, 就可以按部就班完成整個遊戲製作。其中作者也以自身經驗, 分享初學者學習歷程與心態。 本書經由台灣 indie 遊戲開發者審稿, 全書以淺顯的文字與圖片前後對照, 讓讀者清楚了解遊戲開發的過程, 切合遊戲製作的實務需求。只要重複累積這些經驗, 一定可以製作出屬於自己的有趣遊戲! 本書特色 ★ 初學者也可以製作遊戲! 從安裝開始逐步講解, 遊戲製作細節一絲不漏。 ★ 沒學過程式也沒關係! 包含 C# 的基本語法講解, 沒有基礎也能得心應手。 ★ 跨平台開發、跨平台執行! 提供 Windows / macOS 的開發環境, 製作 Android / iOS / PC 各平台遊戲。 ★ 學會獨立製作的技巧, 不只是照著寫程式! 學習規劃遊戲製作流程, 實際示範如何修正錯誤, 培養實戰力。 ★ 不只「做好」遊戲, 更要做「好遊戲」! 從製作前的題材發想心法, 到完成後的難易度調整, 讓遊戲好玩又耐玩的祕訣分享。
演算法圖鑑【全新增訂版】:33種演算法 + 7種資料結構,人工智慧、數據分析、邏輯思考的原理和應用step by step全圖解
★超人氣暢銷演算法學習書全新增訂版!新增7種演算法詳細圖解+「資料壓縮」,內容增補修訂!★全球超過250萬人使用,「Apple年度最佳APP」書籍化!★隨書附贈獨家贈品「七大主題演算法圖解記憶表」★★ 讀再多文字解說都看不懂?沒關係,全部畫給你看,一次弄懂演算法到底是什麼!★★●直觀理解,從基礎開始學習,一用就上手的演算法專書!●全圖像化step by step,完整拆解制霸AI時代的演算法精髓!●詳解演算法的奧妙、執行效率、優缺點,活化思維,做出最佳決斷!【專業審訂】國立成功大學資訊工程系講座教授兼成大研究發展基金會執行長 謝孫源【專家學者好評推薦】李忠謀 國立臺灣師範大學副校長/資訊工程學系教授趙坤茂 國立臺灣大學資訊工程學系教授鄭國威 泛科知識公司知識長【高中資訊社團好評推薦】北一女中資訊研習社台南女中資訊研究社成功高中電子計算機研習社高雄女中資訊社新竹高中軟體研究社CSDC█ 演算法時代來了!現今我們的世界已離不開演算法,從線上搜尋、社群交友、法院判案、醫學診斷、金融運作、大腦決策到人工智慧的未來,越了解演算法,越可能掌控權力,成為時代的贏家。有些演算法對我們有益、有些有用,有些則可能使我們陷入大麻煩,但我們對這些演算法所知極少。不管用哪種程式語言編寫程式,演算法都是不可或缺的,不過如果認為只有學電腦的人才要了解演算法,那就太可惜了。演算法其實是一連串解決問題的邏輯步驟,只要熟悉這些步驟和運用方式,每個人都能設計自己的演算法並應用於各種不同領域。學習演算法正是建構嚴謹思維和幫助做出最佳判斷的訓練。█ 演算法的第一本書,從基礎開始學習!演算法是用以執行計算或完成作業的程序,可以想像成料理食譜,如果做出某種料理的步驟是食譜,那麼用電腦解出特定問題的步驟就是演算法了。然而,食譜與演算法的決定性差異,在於演算法非常嚴謹。相較於食譜有很多概略的描述,演算法的所有步驟都用數學方式表現,沒有模糊地帶。本書蒐羅介紹33種基本的演算法和7種資料結構,貨真價實完全圖解。每一個步驟都以圖片和文字詳細說明,拆解具體演算過程,逐步建立邏輯概念,輕鬆進入演算法的世界。書中解說的演算法範疇包括「排序」、「陣列搜尋」、「圖形搜尋」、「安全性演算法」、「分群」,以及「網頁排名」等各種廣泛使用的基礎演算法。不用艱澀的專有名詞,步步口語分解,完全沒有概念的人也能漸進學習。&
全集中軟體測試:ISTQB CTFL 學習手冊
本書的核心目的是系統性地傳授軟體測試的基礎理論與實務知識,幫助讀者全面掌握軟體測試技術,並有效準備ISTQB基礎級認證(CTFL)考試。 面對 ISTQB CTFL 國際認證,你是否曾翻開 Syllabus 卻一頭霧水、不知從何下手?你需要的,不是死板直譯的 Syllabus 中文本,而是一本用本地熟悉的語言,深入淺出講解 CTFL 核心觀念的學習指南。本書由在台灣教授 ISTQB 認證課程多年的資深講師親自撰寫,聚焦 ISTQB CTFL 4.0.1 最新大綱,協助你:* 建立測試基本功,打穩職場根基* 掌握術語重點,強化解題思維* 熟悉出題邏輯,提升考試應對力本書完整涵蓋 CTFL 4.0.1 全部學習目標(K1~K3),並包含練習試題與解析,讓你考前不慌、考後有感。適合讀者:◆ 軟體測試領域新手或欲轉職者◆ 正在準備 ISTQB CTFL 國際認證考試者◆ 檢視自身職場實務是否貼近 CTFL 的從業者
軟體測試修練指南:我獨自升級的實戰心法(iThome鐵人賽系列書)
測試工作這件事,沒有人能置身事外!軟體開發要速度更要品質!本書涵蓋四大收獲,培養獨自升級的內功心法扎實的基礎介紹測試定義和階段測試種類圖像化建立全局觀包含所需活動和挑戰與敏捷/DevOps/AI搭配測試方法介紹黑箱測試的做法和比較白箱測試與迷思務實的測試管理測試規劃和缺陷管理度量分析和報告測試工作人人都說簡單,卻不太了解怎麼做建立基礎並搭配AI,讓軟體開發更得心應手!本書內容改編自第16屆iThome鐵人賽IT管理組的冠軍系列文章《葬送的軟體測試──不懂不想做是會出事》。在台灣大多數有關軟體測試的書籍,都是偏向測試自動化,像是單元測試、或是前端測試要如何進行。但是在實務上,能有空進行測試自動化的人並不多,即使有比例也不高。此外對於測試活動要如何規劃,有哪些測試需要進行,或者Bug如何追蹤和分析,並沒有任何著墨。因為軟體測試在學校沒教,在工作上也不太有人會跟你說。如果要開立測試個案,也擔心會有所遺漏,不知道有什麼比較系統化的方式去建立。本書會介紹各種開立測試個案的系統性做法,附上各種範例和經驗法則,並且比較這些方法的適用時機,幫助你可以涵蓋較多的場景。測試並不是只有單元測試,也不是只需要執行功能測試而已。從測試活動要如何規劃、測試的種類和方式、測試自動化的策略,到測試人員的管理和培育等等,本書會以全局觀來看待整個測試流程,以及一些測試經驗分享。目標讀者• 想了解測試基本知識的人• 專案 / 產品主管 / 品保主管• 一條龍的開發人員• 想知道生成式人工智慧如何影響測試的人本書重點當品質成為競爭利器,測試卻越來越被壓縮與忽略;尤其 GenAI 帶來加速,也暗藏無形風險:不知如何生成覆蓋狀況、不知在測試流程中如何配合使用。本書集結二十年測試實戰與團隊管理經驗,以最清晰易懂的語言,帶你:• 釐清痛點:解構測試思維矛盾與隱性成本,直擊台灣軟體業最急迫的品質挑戰。• 掌握技術全景:靜態審查、黑箱/白箱、多種測試策略一網打盡,範例詳實、步驟分明。• 流程最佳化:瀑布、敏捷、DevOps 下的關鍵檢查點與協作要訣,讓品質成為流程加分項。• 系統化測試管理:從策略與計劃、執行追蹤到缺陷管理,建立完整的品質監控框架。• 打造高效團隊:從角色定位、技能培育到招募策略,一書掌握測試團隊成長方程式。無論你是剛跨入測試領域的工程師,或是負責品質保證的團隊領導,《軟體測試修練指南》都將成為你最完善的「品質聖經」,引領你在 GenAI 時代,既能高效加速,又能精準把關,化解每一次看似不可能的測試難題。專業推薦你也是一位正打算加強軟體測試能力的工程師嗎?又或者,你是一位希望幫助團隊更落實軟體測試的倡議者?那麼,一起來閱讀本書吧!透過敏捷三叔公的視角,幫助你理解軟體測試在實踐中可能遇到的挑戰與應對之道,讓這本書為你的軟體測試學習之路,增添一份助力!Taiwan Community 志工 & DevOpsDays Taipei Co-organizer陳正瑋(艦長)敏捷三叔公(David Ko)是我多年好友,他的這本書,是台灣市場極為少見、專注探討軟體測試全貌的中文書籍。 測試領域廣泛而複雜,而這本書不僅深入淺出地梳理出各種測試方法與流程,更難能可貴地從開發者、測試者、管理者等不同視角出發,幫助團隊建立起對測試工作的整體視野與實作策略。董大偉Microsoft MVP|Microsoft Regional Director這本書不僅有理論,更有許多來自業界的實戰經驗分享和案例,例如測試計畫、測試案例設計、缺陷管理 等等,都是非常寶貴的內容。作者以輕鬆幽默的筆觸,將看似複雜的軟體測試概念解釋得條理分明,有種當年看the phoenix project的感覺,一章一章的接著讀下去。無論你是剛入門的新手,還是經驗豐富的開發者或管理者,都能從中獲益良多。特別是在「沒有角色別,只有事情別」 的當代軟體開發環境中,這本書更是不可多得的指南。強烈推薦給所有關心軟體品質的讀者!閻兆磊 聯發科技/技術副處長在本書中,你不只會讀到各式測試方法與工具的實務介紹,更會看見如何透過測試推動團隊學習、文化演進與品質成長。願這本書能陪伴你在測試的路上更有力量。不論你是剛入門的學習者,還是帶領團隊的實踐者,都能在書中找到共鳴的語言、對話的契機,以及持續前行的信念。李境展 Tomas Li新加坡商鈦坦科技 總經理主編出版《鯨游藍海 – 鈦坦科技的敏捷之旅》曾經取得CSM, CSPO, LeSS, CSP, Scrum@Scale, PMP 等的認證收據
程式設計原來不只有寫 CODE!銜接學校與職場的五堂軟體開發實習課=Beyond Just Coding:Five Essential Lessons from Classroom to Career
成為優秀的程式設計師可以從基本的資工素養開始培養起一個資工系所畢業的學生該具備什麼技能?一個半路出家的工程師需要具備什麼能力?除了基礎程式設計與專業科目知識之外,本書透過情境式的故事帶領讀者了解成為優秀程式設計師所必備的技能與素養,原來程式設計不只有寫 CODE!【專業推薦】「對於想要進入軟體開發領域的學習者來說,無論是否是本科出身,這本書都將是一個彌足珍貴的指南。 」游逸平 | 國立陽明交通大學 副教授「本書十分清楚地說明了寫程式不只是寫程式,還要掌握眾多的基本技能才能讓你成為一位稱職的軟體工程師。 」陳永昱 | 新思科技 首席工程師【內容簡介】就讀大學的小悅進入微中子科技公司實習,她將跟著導師齊哥學習各種程式開發的知識與技能,逐步探索軟體工程師的真實世界。從寫程式碼到解決實際問題,小悅將面臨程式設計、除錯、測試、團隊合作以及專案管理等各種挑戰,學會如何成為一位獨當一面的程式設計師。在這五堂課中,小悅將不斷精進技術,並且培養出職場必備的專業素養與實戰經驗,而讀者將跟著小悅的腳步一同學習。這本書不僅適合資訊、理工相關科系的學生,也為所有即將踏入職場或剛進入職場的程式開發者提供了一條充滿啟發的修煉之旅。【書本特色】✦ 身歷其境的軟體實習旅程:本書帶領讀者進入程式設計的真實職場世界,從實習生小悅的視角出發,透過與導師齊哥的互動,模擬在軟體公司的實習過程中會遇到的各種學習與挑戰。✦ 扎實的技能訓練:從開發環境的搭建到高效率系統操作、程式碼閱讀與除錯,再到團隊協作和專案品質管理,書中涵蓋了成為一位全方位工程師所需的五大核心能力,幫助讀者紮實地掌握業界必備技能。✦ 注重實戰與實用工具:透過範例與實作教學,讀者將學會使用各種重要的開發工具,如 Git、Vim、 SSH、GDB 等,並掌握軟體開發中除錯丶分析、版本控制丶自動化測試、Cl/CD 等專業技能。✦ 專業知識延伸與解惑:針對電腦系統、程式效能分析、網路配置等專業知識,本書以簡潔易懂的方式帶領讀者逐步進入核心技術領域,提供在學校課堂中難以學到的實用知識。✦ 專為實習生與初階工程師設計:不僅是一本技術書,更是一本指導實習生、初階工程師如何在真實環境中成長的指南。除了專業技術,書中也融入了職場溝通、團隊合作、學習心法等實務技巧。【適合對象】✔ 正在尋找程式開發實習機會的各科類學生✔ 即將步入職場成為軟體工程師的準畢業生✔ 從其他領域轉行至軟體開發的工程師✔ 資訊、理工等相關科系的學生✔ 對程式設計充滿興趣,想提升自我的讀者
產品領導人之道|培育卓越產品經理的全方位指南
👑 各領域專家好評推薦 KKTV總經理 Vince Huang 「本書能成為你在產品開發道路上的指南,帶領你的產品團隊創造出真正有價值的產品。」 Hahow好學校產品總監 高玉璁(Samuel) 「本書帶你快速掌握「產品領導者」的角色和價值。詳盡的實際場景與應對策略,打造出更加理想且有韌性的產品團隊。」 XING產品管理副總裁 Arne Kittler 「本書是所有產品經理的管理者必讀之書。成功培育每個產品經理,將會幫助你創造出影響組織的最大槓桿效應。」 Mind the Product幕僚長 Emily Tate 「無論你正處於產品領導歷程的哪個階段,本書都是一份不可或缺的指南。幫我建議所有的產品領導人都要閱讀這本書。」 👑 若身為產品領導人的你有以下疑問,本書正是為你而寫! 如何讓團隊裡的每個產品經理發揮潛能? 怎麼確保他們工作稱職、獲得充分賦能並常保熱忱? 想要了解在他們的職涯發展歷程中該提供什麼協助? 本書是成功培育產品經理的實用指南,提供個人發展、教練指導、績效提升和團隊管理的實務建議,助你打造優秀、高效產品團隊。 讀完本書後,你會學到: ‧為什麼要把焦點放在產品經理的個人發展,並且把團隊視為一個整體,才能充分發揮他們的潛力。 ‧為什麼教練式指導是你職責裡相當重要的一部分,該如何有效地做到這件事。 ‧如何定義優秀的產品經理需具備什麼條件。 ‧如何準確評估產品經理的程度,並藉由提供有價值、可行動且有幫助的回饋,幫助他們提昇績效。 ‧為了幫助產品經理有效增進人際技能,你可以使用哪些方法和框架。 你也能夠反思自己的教練特質,定義自身需要發展的領域;以及有效運用教練工具裡最重要的一對一會談方法。
軟體工程師求職策略大全:透過外商面試題目演練、手把手履歷教學,跟招募員過招、白板解題、薪資談判到入職準備,帶讀者用最有效的方式找工作
一本從求職準備到職涯發展的全周期指南,助你在軟體工程師的職涯路上持續成長如果你在軟體工程師的求職路上遇到挫折,投了數百封履歷卻沒收到任何回音,或是好不容易拿到面試,卻在面完後收到感謝信;在決定放棄前,請多堅持一下,因為有方法能夠讓你脫離這個負向漩渦中。過去幾年來,ExplainThis 專注在軟體工程、生成式 AI、科技業職涯等面向,《ChatGPT 指令大全》網站內容累積超過五百萬瀏覽;同時,ExplainThis 透過 E+ 成長計畫,已協助數百位軟體工程師在職涯中持續成長,社群中有多位工程師,成功進入外商科技大廠、海外新創。過去在協助讀者求職時,我們發現許多讀者有相似的問題。從找職缺、投履歷、面試準備,再到談薪水,找工作的每一階段都不容易,但都有具體的策略與方法,能讓成功率大幅提高。《軟體工程師求職策略大全》集結過去我們協助讀者時的精華內容,不論你想申請 FAANG 軟體大廠,或者是想要加入高速成長的軟體新創,這本書將協助你,用更有效的方式,讓求職這條路走得更順利。♚更多資源除了這本書,我們也誠摯地邀請讀者們加入 E+ 成長計畫,一同透過友善包容的社群、深度且系統性的內容,在軟體工程師的職涯路上持續成長,逐步發展出自己理想的樣貌。E+ 成長計畫的詳細介紹,詳見網址:https://www.explainthis.io/zh-hant/e-plus
Redmine 專案管理無痛攻略:70個問題集 x 專屬教學影片,從入門到精通一本全搞定!(iThome鐵人賽系列書)
精通 Redmine 的使用技巧,助你輕鬆應對各種專案挑戰!專屬影片讓你精通 Redmine!從基礎到進階,全面提升專案效率!快速上手新手友好的操作步驟,讓你馬上成為專家自由訂製根據需求自定義欄位,專案管理更具彈性案例學習透過實戰案例的展示,掌握每個關鍵技能高效應用個人專案或團隊協作,管理都能得心應手全面管理/高效協作/靈活應用讓專案管理更簡單,掌控每一個細節!本書改編自第 15 屆 iThome 鐵人賽 IT 管理組優選系列文章《從零到專家:專案管理工具 Redmine 實戰指南》,結合筆者過去使用 Redmine 的實戰經驗,將 Redmine 核心技巧、功能操作等,集結濃縮成一本常見問題集,同時搭配專屬教學影片,讓你從基礎設置到進階應用,都能輕鬆掌握。從安裝、用戶管理、議題追蹤到時間管理和自訂流程等等,本書都能一步步引導你探索 Redmine 的強大功能。不僅如此,書中還包含了真實實作案例,幫助你在日常專案管理中靈活應用。不論是個人專案還是團隊合作,相信都可以透過 Redmine 助你提高效率,讓專案流程更加順暢。相信透過《Redmine 專案管理無痛攻略》,你將會由裡到外徹底認識 Redmine 這項工具,並且把它運用在你的工作、生活中!❖目標讀者專案管理新手:如果你剛接觸 Redmine,這本書將提供從安裝到基礎操作的詳細指導,幫助你快速上手,輕鬆掌握專案管理的基本技能。尋求提升效率的專案經理:學習如何利用 Redmine 的進階功能,如議題管理、時間追蹤和自訂流程,來提升專案進度控制和團隊協作效率。專案管理工具愛好者:希望深入了解並充分掌握 Redmine 的各項功能,透過本書的實作教學與專屬教學影片,讓你快速熟悉、掌握 Redmine。❖專業推薦全書以 70 個問題及實戰案例為主軸,無論您是初學者還是專家,都能逐步掌握 Redmine。讓這本書帶您進入高效且協作的專案管理世界,並充分發揮 Redmine 的全部潛力。Jean-Philippe LangRedmine 創始開發者作者在書中融入了自己豐富的經驗,並以圖文並茂的方式呈現,使內容更加易於理解。我相信,即使是對 Redmine 完全陌生的讀者,也能透過這些圖文說明迅速掌握這套系統的功能及其應用場景。這對於評估一款軟體是否適合團隊來說,提供了極為重要的資訊。陳泰銘 (Taiming)《哎呀!不小心刻了一套 React UI 元件庫》作者本書涵蓋了從安裝到專案執行的所有階段,透過豐富的案例解析,讓讀者迅速掌握 Redmine 的核心邏輯,擺脫新手階段的困惑。無論你是 Redmine 的初學者,還是經驗豐富的使用者,都能從中找到應對不同專案需求的靈活策略,輕鬆運用 Redmine,讓專案管理更高效且簡單。林鼎淵全端工程師、暢銷書作家、AI 科普講師全台第一本 ChatGPT 應用專書作者
LangChain 奇幻旅程:OpenAI x Gemini x 多模態應用開發指南
【專業推薦】這本書結合了 OpenAI 與 Gemini 兩項主流的語言模型技術,並讓讀者能夠透過開發指南開發不同的應用。這本書不僅讓讀者能夠深入了解語言模型的運作原理,更能夠透過實作的方式,將理論知識轉換為實際應用。對於想要進入 AI 領域的開發者來說,絕對不能錯過這本書。Jimmy Liao, 廖聖傑(Certification) Google Developer Expert, Generative AIAppier, Senior Software Engineer, Full Stack, Copilot/Assistant Squadex-Microsoft Azure Data/AI Cloud Solution Architectex-IBM Staff Software Engineer, Mobile Architect本書凝聚了他們這兩年對生成式 AI 的研究,展示了他們對 AI 應用的深刻理解。無論你是 AI 技術的愛好者,還是專注於生成式 AI 開發的專業人士,本書都將為你提供有價值的洞見與實用技巧。AI 的未來充滿機遇,而 LangChain 正是其中的重要工具。希望本書能幫助你在開發過程中取得突破,並推動技術的持續進步。Kui-Ming ChenMicrosoft AI MVP這本書以 LangChain 框架為基礎,構建了一套完整的大型語言模型學習地圖,讓你能深入理解語言模型的運作原理,並透過實際操作的方式將這些技術應用於真實專案中。無論你對 AI 是初學者還是有經驗的開發者,這本書將成為你邁向 LLM 開發之路的重要指南,幫助你在 AI 領域快速取得突破。張維元 / 資料科學家的工作日常【本書特色】1.全書深入探討如何使用 LangChain 結合 Azure OpenAI、Gemini 以及地端開源模型的部署,並提供多種應用示範。讀者可以透過本書,從開發到部署全方位掌握 AI 技術的應用。2.RAG(檢索增強生成)架構是目前企業打造知識庫型 LLM 應用的首選架構。本書除詳盡講解 RAG 架構之外,更是第一本詳解 Qdrant 向量資料庫的書籍。3.生成式 AI 的應用從單一工具擴展至最新的 AI Agent 前沿技術。本書專章探討 AI Agent 的概念與應用,協助開發者開發更具前瞻性的 AI 思維的應用。4.本書適合的「讀者族群」 i.想瞭解如何使用 LangChain 的開發者 ii.想瞭解向量資料庫與 RAG 架構的開發者 iii.想瞭解 AI Agent 的概念與應用的開發者 iv.想瞭解在企業面如何整合不同 LLM 模型導入應用的技術主管
這樣寫code好不好?辨識、分析、改善,寫出易讀易維護的程式碼
程式要寫得好,不只是執行結果正確就好。這些情況是否似曾相識?.過個週末就看不懂自己寫了什麼 code.修好一邊的 bug,另一邊就出新 bug.稍微調整功能,就必須地毯式檢查整個專案【寫程式別再靠直覺和乖乖!】只要建立優良的程式結構,就算交給其他人接手,也可以快速地理解、維護、修改原始碼。本書所傳授的,就是寫出「好程式」的「設計技巧」。◆辨識- 資深軟體架構師的職場實際負面案例,親眼見證業界 bad code- 低內聚、密耦合、半熟物件、退化註解……認識壞結構就能一眼看破◆分析- 防衛不足、功能分散、職責不清……分析主要弊病,對症下藥- YAGNI、Tell, Don,t Ask、單一責任、最小驚訝……認識設計原則,檢討程式碼◆改善- 防衛子句、值物件、工廠類別、策略模式……各種技巧範例實際解決問題- 學習地圖、職場心法無私分享,軟體設計不再是紙上談兵程式人人都能寫,好程式卻是寥若晨星;掌握軟體設計力,才能創造工程師的專業價值 & 不可取代性!本書特色: ◆293 個精心準備的程式範例以電商系統與電玩遊戲為例,挑選主流語言共通語法,逐步示範將粗劣程式碼縫補、修整的過程。◆詳細列舉優質、劣質程式碼的特徵與影響基於資深職業經驗,具體說明,在現實程式碼也能活用書中技巧。◆觀念基礎扎實,說明清晰易懂以多種比喻、聯想來說明,而非通篇艱澀道理,可與生活經驗融會貫通。◆旁徵博引,融合歷來軟體經典概念引述軟體設計各大經典書籍,一本集結知識精華,也是銜接經典的橋樑。
從零搞懂演算法:12種演算法 + 6種資料結構,超圖解入門
「演算法」與「資料結構」到底是什麼?「演算法」其實是一套「使用資料的策略」,而「資料結構」則是將資料整理成特定格式,讓你擁有更多使用資料的策略。掌握演算法是成為軟體工程師的必經之路,不僅在工作上能提升開發系統的效能,更是面試時必備的技能之一,可以說學習演算法的 CP 值實在高到不行!▌本書特色◉ 初學者友善,從0到1,無痛入門◉ 提供完成程式碼,輕鬆接觸演算法◉ LeetCode實戰教學,工作面試超加分◉ 分享「演算法」於職場上的價值與意義▌你將能了解到♦ 海外大廠面試白板題解析♦ 海外求職經驗分享♦ 五大演算法策略:貪婪法、枚舉法、回溯法、分支界限法、分治法♦ 三大排序演算法:氣泡排序、插入排序、選擇排序♦ 資料結構:Stack Queue♦ 資料結構:Array Linked List♦ 演算法策略:深度優先(DFS) vs 廣度優先(BFS)♦ 演算法效能:時間複雜度(Big O)♦ 演算法實作:迴圈(Loop) vs 遞迴(Recursion)
可觀測性入門指南:Logs、Metrics、Traces三大實戰應用,用24個Lab鞏固你的SRE技能樹(iThome鐵人賽系列書)
全面介紹 Grafana、Prometheus、Loki、OpenTelemetry 等核心工具!實現全面的系統監控和分析!從零開始,構建強大的可觀測性架構概念導覽深入淺出解析可觀測性概念完整範例使用 Docker Compose 展示多種實戰範例多處適用Kubernetes 與傳統服務皆適用資訊整合結合 Metrics、Logs 和 Traces 全面洞察---提升穩定/增加效率/結合應用無論前後端,全面掌握系統運行!本書改編自第15屆 iThome 鐵人賽 Cloud Native 組冠軍系列文章《時光之鏡:透視過去、現在與未來的 Observability》,提供完整且易於理解的可觀測性學習路徑,涵蓋核心概念和實踐方法。詳細介紹 Grafana、Prometheus、Loki、OpenTelemetry 等工具,並透過多個實戰範例,展示如何實現系統的可觀測性。不僅如此,本書還特別強調了如何結合應用各種可觀測性資訊,讓脈絡更加豐富,有別於傳統的監控方法。新增的 Grafana Faro 章節讓前端服務也能配有可觀測性,並與後端的可觀測性結合,實現全面的監控和分析。可觀測性不僅是技術的提升,更是對系統運行的全面掌握。透過《可觀測性入門指南》,你將學會如何利用主流工具和方法,提升系統穩定性和運行效率。本書將成為你在可觀測性領域的得力助手,幫助你在工作中如虎添翼。期待與你一同探索可觀測性的無窮樂趣!❖目標讀者●追蹤 Bug 感到頭痛的 Dev:學習高效定位和解決問題的方法與工具。●定位線上問題疲於奔命的 Ops:提升問題排查效率,減少故障排除時間。●希望了解和導入可觀測性的工程師:從基礎到實踐,全方位學習快速上手。❖專業推薦本書除了分解架構之外,還分享並解釋了這些架構背後的思路,值得所有 IT 從業者參考與學習。對於每個專案,不應盲目使用,而應以自己的方式進行分類,並將這種方法應用於其他相似的專案中。透過這種方式,可以加深對專案的理解,提升對整體架構的掌握。希望讀者能透過本書,不僅提升技術能力,還能在實踐中探索出屬於自己的學習方法,應對日益複雜的系統挑戰,成為引領技術發展的先鋒。邱宏瑋(hwchiu)本書的內容涵蓋廣泛,從三大基本的遙測信號──Metrics、Logs 和 Traces──出發,深入探討各種信號的使用場景與工具選擇。每個章節不僅介紹了理論知識,還搭配了實際操作的 Lab,使讀者能夠親自動手,迅速掌握各種工具的使用方法。這種理論與實踐相結合的方式,能幫助讀者在理解可觀測性核心概念的同時,熟練掌握操作技能。無論是初學者還是有一定經驗的技術人員,都能從中獲益匪淺。在閱讀這本書的過程中,我們不僅能掌握遙測信號的理論基礎與實際操作,還能體會到可觀測性在系統維運中的重要性與實用性。可觀測性工程戰友 雷N
「演算法×數學」圖解學習全指南:從基礎開始,一次學會24種必懂演算法與背後的數學原理及應用
2018、2019、2020連續三年國際資訊奧林匹亞競賽(IOI)金牌得主日本天才年輕程式設計師米田優峻為所有程式設計者而寫的演算法×數學學習全指南從入門者、進階程式設計師到競賽選手都該具備一口氣學會「必學經典演算法」+「支撐演算法的必要數學知識」獲得能真正徹底活用演算法的扎實程式設計力!「要理解程式設計中演算法與基礎數學之間的密切關係,這本書應該是最適合的了。」──日本國立資訊學研究所副所長 河原林健一 專業推薦|要真正理解、活用演算法,就得同步從數學下手——|第一本同時講解「演算法×數學×競賽題型」的程式必備基礎學習書,讓你事半功倍,一步到位!現代社會中,從電腦、智慧型手機,再到最前端的AI人工智慧等,無一沒有程式語言的參與。而在電腦強大的功能與計算能力背後,為了以最有效率的方式運算、解決問題,「演算法」扮演了關鍵角色,讓我們得以用更少的計算資源來解決各種問題。因此不論資歷深淺,演算法是所有程式設計者必得萬分熟悉的工具與知識。而要掌握演算法,背後的數學知識更是關鍵,但坊間的演算法學習資源時常忽略了學習者對於相關數學的掌握。觀察到此點的本書作者米田優峻,因而撰寫了本書,從演算法和數學同步下手,讓我們能夠真正掌握演算法的精髓。出生於2002年、現就讀東京大學四年級的米田優峻,在中學一年級時迷上程式設計,於2018、2019、2020連續三年奪得國際資訊奧林匹亞競賽(IOI)金牌,創下驚人紀錄。2023年,他再度於國際大學生程式設計競賽(ICPC)獲得全球第九名佳績。透過本書,他將深入淺出為讀者介紹各種經典演算法,並同時介紹必要的數學知識,幫助讀者扎實理解演算法的原理與提升應用能力。本書共有三大特色:1.&& &使用簡單易懂的圖解和方法,讓初學者也能輕鬆掌握。2.&& &提供了200道例題和演練題,幫助讀者鞏固所學知識。3.&& &從中學到大學程度的數學知識,僅選取與演算法相關的重要部分進行講解。不論你是剛接觸演算法學習的程式設計入門者,或者希望在已有的數學與演算法知識基礎上更深入理解,抑或者希望為程式設計競賽做準備,本書提供具體實用的知識和技巧,為你帶來莫大幫助,在閱讀過程中帶給你無窮樂趣。
遞迴演算法大師親授面試心法:Python 與 JavaScript 解題全攻略
「無論你想在程式設計面試中獲得優勢, 想創造美麗的數學藝術, 還是頑固地非得理解這個概念的有趣特性, 這本書都將成為你深入遞迴這個兔子洞的指南(兔子洞裡還有兔子洞)。」 遞迴程式設計技術可以產生優雅的程式解決方案,然而更常見的是,它讓程式設計師感到困惑。這並不代表程式設計師可以(或應該)忽略遞迴;儘管遞迴以具有挑戰性而聞名,但它是一個重要的電腦科學主題,並且可以對程式設計本身產生敏銳的洞察力。至少,了解遞迴可以幫助你順利通過程式設計工作面試。 如果你是對電腦科學感興趣的學生,遞迴是你要理解許多流行演算法所必須克服的必要障礙。如果你是程式設計訓練營的畢業生或自學而成的程式設計師,並且順利跳過了更具理論性的電腦科學主題,但在「白板程式設計面試」中肯定還是會遇到遞迴問題。如果你是一位經驗豐富的軟體工程師,以前從未接觸過遞迴演算法,你可能會發現遞迴是你知識中一塊尷尬的缺口。 ❑ 本書目標讀者 本書適合那些對遞迴演算法感到恐懼或感興趣的人。對於新手程式設計師或電腦科學系的大一新生來說,遞迴主題就像難以理解的黑魔法一樣。大多數遞迴課程都很難理解,使得這個主題不但讓人覺得挫敗,甚至令人心生恐懼。對於這些讀者來說,這本書的直接解釋和充足的例子應該能幫助他們最終理解這個主題。 閱讀本書的唯一先決條件是具備 Python 或 JavaScript 程式語言的基本程式設計經驗,因為各章的程式碼範例使用了這兩種語言。本書的程式已被精簡到核心的基本結構; 如果你知道如何呼叫和建立函數,以及理解全域變數和局部變數之間的區別,那麼你就足以應付這些程式設計範例了。 本書使用 Python 和 JavaScript 範例來教授遞迴的基礎知識,揭示了遞迴的教學方法,並闡明了所有遞迴演算法的基本原理。你將學習何時使用遞迴函數(最重要的是,何時不使用它們),如何實現工作面試中經常提到的經典遞迴演算法,以及遞迴技術如何幫助解決有關樹走訪、組合學等等許許多多的問題,以及其他棘手的話題。 這個以專案為主的指南包含了完整的、可運行的程式,將能幫助你學習: ☑︎ 遞迴函數如何使用呼叫堆疊,這是一種在遞迴課程中幾乎從未討論過的關鍵資料結構 ☑︎ 「頭尾」與「信仰飛躍」技巧如何簡化遞迴函數的編寫 ☑︎ 如何使用遞迴為你的檔案系統編寫自訂搜尋腳本、繪製碎形藝術、生成迷宮等 ☑︎ 優化和記憶如何使遞迴演算法更有效率 &
駕馭組織DevOps六面向:變革、改善與規模化的全局策略
20年資深軟體業、企業營運顧問專家傳授實戰策略 解決DevOps經常遇到的難題,靈活應對多種情境 ★ POWERS 模型 + 5 變革方法 + 1 工作法 ★ 讓 DevOps 靈活運作,帶領團隊交付成功的產品! 業界採用 DevOps 已有多年,但大多數的討論往往只侷限在工具與技術層面,然而以價值流為基礎的 DevOps 對組織的影響,更多時候是在日常流程、跨部門的合作模式。這些沒有被妥善考量的要素才是真正掌控企業運用 DevOps 產生效益的關鍵。 因此,本書提供具體的思考框架,引導 DevOps 實踐者站在全局的視角綜觀整個 DevOps 導入流程,循序漸進地找出問題,建立策略性思考,提出改善與變革方法,讓組織有效地擁抱 DevOps。 ▍四大重點 1 ▶ 建立全局思維腦 以情境故事帶入理論,從全局視角看懂成功導入 DevOps 的關鍵 2 ▶ 導入 POWERS 模型 活用 POWERS 模型引導策略規劃,找出有效的 DevOps 運用方式 3 ▶ DevOps 規模化 掌握 DevOps 規模化的關鍵要點,成功將導入策略擴展至組織 4 ▶ 有效運用管理技巧 提供團隊引導及溝通的管理策略,減少阻礙、達成目標 本書將協助你 ──── ✔ 真正理解 DevOps 的全貌,以及導入 DevOps 的成功要素 ✔ 站在全局的視角,從情境故事中找出解決問題的方法 ✔ 理解並運用模型與變革方法:POWERS 模型、三步工作法、庫伯勒-羅絲變革曲線 ✔ 持續導入 POWERS 模型,並將 DevOps 規模化至組織 ▍適合讀者 • 正在或計畫推動 DevOps,但想知道如何規劃有效做法的領導者 • 想知道 DevOps 會帶來哪些影響的企業治理政策發展者 • 想要擴展 DevOps 成功經驗的推動者 • 參與 DevOps 導入的團隊成員 • 正苦於改變卡點的所有人 本書讚譽 「這本書不僅是一本工程與技術的指南,同時也融合了故事性與可實踐性,堪為入門的全面手冊;無論是 DevOps 新手還是有經驗的從業者都能從中獲得啟發,並實際應用於工作中。我相信正在思考如何有效推動 DevOps 變革和實現組織的數位化轉型的企業高管們,對這本書是能心領神會並且獲益匪淺的。」──── 井琪 │ 遠傳電信 總經理 「作者將自己融會貫通後的 DevOps 六個面向以 POWERS 思維方式務實地呈現了出來,彌補了許多支持 DevOps 的人士空喊口號而忽略了實做方法的缺憾。這一點讓人驚豔,這是一種將結構化思維導入組織變革過程然後再形成決策的思維方法,它紮實地提供了實踐 DevOps 時的決策依據,實在難能可貴。」──── 李智樺 │ Ruddy 老師 「這本書是Augustin累積多年技術管理實務心得的精彩總結,我推薦給所有的中高階經理人,包括非科技產業和職務的朋友。這是一本組織變革的工具書,可以細細品味。」──── 李境展 Tomas Li │ 新加坡商鈦坦科技 總經理 / 出版《鯨游藍海 – 鈦坦科技的敏捷之旅》 「期盼多年,終於看見來自台灣、以 DevOps 為名的『組織變革』好書。如果你喜歡《鳳凰專案》與《獨角獸專案》,你也會喜歡盧建成的這本《駕馭組織 DevOps 六面向》。本書以故事為引子,搭配作者充沛的經驗與知識,幫助讀者建立 DevOps 的正確認知;DevOps 不只是工具,而是一趟企業變革與轉型之旅。本書值得每一位 DevOps 實踐者細細品讀!」──── 陳正瑋 │ DevOps Taiwan Community 志工 / 前組織者 (依姓氏筆畫排序) &
Clean Code錦囊妙計
提升程式設計與品質的訣竅 推薦給堅持寫出優質軟體的你 無論技術如何發展,程式碼的簡潔仍然至關重要。 程式碼的簡潔度和明確度,不僅是程式設計師的責任,也影響資源分配、開發策略、專案管理等面向,甚至關乎整個軟體產業的發展。 雖然 AI 可以自動生成程式碼,但目前仍存在基本錯誤、理解問題和維護困難等缺陷。現階段,人機合作還是主流,程式設計師需要監督、修正和改善 AI 生成的程式碼。 因此無論技術如何演進,程式碼的可讀性和維護性仍然十分重要。 「這是一本資訊豐富的著作,它用深入的理論和豐富的實例來說明如何寫出clean code。強烈推薦給堅持寫出優質軟體的你。」 —Daniel Moka 軟體工匠,Moka IT 「Maxi是位應用科學家,本書充分展示出他在軟體開發領域深厚的專業知識。」 —Alex Bunardzic 軟體開發者和教育者 負責龐大且複雜的code base軟體工程師和架構師必須高效擴展和維護程式碼。在本書中,Maximiliano Contieri將以clean code(簡潔程式碼)的理念為基礎,帶你瞭解如何快速辨識改善的機會,並評估它們對產品程式碼的影響。這些技術為系統的可靠性和演進帶來的好處會隨著時間推移而逐漸實現。 本書使用JavaScript、PHP、Python、Java等程式語言的實際範例來提供經過驗證的祕訣,幫助你擴展和維護大型系統。本書的每一個章節皆涵蓋許多基本概念,包括易讀性、耦合、易測試性、安全性和易擴展性,還有程式碼異味及其處理方法。 隨著本書的進展,重構的祕訣和它們想解決的問題將變得更加複雜。您將從中: ‧瞭解clean code的好處,學會辨識改善的機會 ‧逐步學習重構技巧 ‧瞭解clean code背後的理論 ‧從多種現代程式語言的實際案例中學習 ‧全面瞭解各種程式碼異味、它們的影響和可能的解決方案 ‧寫出直接、易讀和易學的程式碼
資料結構初學指引:入門精要版(第四版)
■考試得高分:提供考試偷撇步,教你如何快速寫出前序、中序、後序走訪。考試不必陷入遞迴的追蹤。 ■學習超簡單:提供學習資料結構的利器——動態影片,透過動畫幫助你理解演算過程的變化。 ■漸進式學習:慢慢地逐步加入C語言進階技術講解,從頭學起。 ■焦點最集中:挑選資訊領域必備的,基礎資料結構做為主要內容。 ■觀念最新穎:以新的抽象化概念,來看待資料結構與程式的關係。從多面向來說明什麼是資料結構,為何要學習資料結構。 動畫展示——學習資料結構與演算法的不二法門 一、動態的表達 資料結構最適合的學習方式應該是動態的,由於平面書籍的限制,因此,常常造成讀者的學習困難,本書提供動態影片來解說各種資料結構的運算與排序搜尋演算法,使讀者能夠先理解,然後自然地產生興趣。 作者特將動態影片轉為長達至少38分鐘的影片檔,並將部分預覽放置於youtube 請上youtube搜尋「資料結構 初學指引 陳錦輝」關鍵字; 相對於網路上本書的免費影片,由本書官網下載的動態影片,還可自由暫停與調整播放速度,學習更方便。 二、循序漸進的學習 初學者在學習資料結構的初期,最大的困難在於看不懂C程式,本書提供虛擬碼及C函式雙格式的演算法,幫助讀者理解,並且搭配「老師的叮嚀」、「小試身手」等階段式的步驟,循序漸進地讓讀者複習C語言,並在程式碼旁增加大量說明框,讀者能夠快速理解程式碼與圖形的對應,不但能學會資料結構,更能在程式中活用。 三、基本觀念的建立 許多人常常認為堆疊是堆疊、樹是樹、陣列是陣列、鏈結是鏈結,之間並無關係,問他什麼是二元樹時,只會畫出二元樹的抽象圖,但不能理解其底層的實作。或許能用筆寫出二元樹走訪結果,但無法以程式來實作。本書在第一章就先闡明資料結構的層次,讓讀者在學習整套課程之前,先有心理準備,避免片段式學習。 四、多元學習 本書包含抽象化觀念的建立、考試偷撇步、Coding偷撇步、學生與老師的QA、延伸學習等,滿足各方面的學習需求。 &
圖說演算法:使用Python(第二版)【好評回饋版】
☝ 博碩嚴選!☝ 零負擔理解演算法設計技巧 零程式基礎也能快速上手 採高CP值Python語言實作程式 ☝ 佳評如潮,好評再上市!☝ 一本輕量級演算法, 是您獲得程式設計新技能, 提升自我價值的最好投資 當寫程式成為越來越普及的課程,讓人人擁有程式設計實作能力,已是各學校資訊教育的首要重點。演算法一直是電腦科學領域非常重要的基礎課程,從程式語言實作的角度,確實是有志從事資訊工作的專業人員,不得不重視的一門基礎理論。 為了讓讀者能以容易理解的方式吸收演算法與基礎資料結構的相關知識,全書使用簡明的圖例介紹最常用演算法的概念,包括:分治法、遞迴法、貪心法、動態規劃法、疊代法、枚舉法、回溯法…等,並應用不同演算法延伸出重要資料結構,例如:陣列、鏈結串列、堆疊、佇列、樹狀結構、圖形、排序、搜尋、雜湊…等。而本次改版亦補強地加入了運算思維的重要觀念與實例演練,並將實戰安全性演算法與人工智慧相關演算法納入,同時搭配Python程式語言舉例實作,是您入門演算法的最佳首選。 本書特色 ✔強化程式設計邏輯:豐富圖例闡述基礎,將演算法做最簡明的詮釋及舉例 ✔演算法最佳首選:配合實作程式碼,將各種演算法應用在程式設計的領域 ✔完善科學領域重點:加入實戰安全性演算法與人工智慧的相關演算法 ✔驗收學習成果:設計難易適中的習題,參閱國家考試題型,提供進一步演練 &
優羽和程式設計魔法筆記本
忘東忘西該怎麼辦?有沒有人可以主動提醒我? 不如設計程式來幫忙解決吧! 程式設計可以讓你與電腦相處愉快,讓生活更便利,就像神奇的魔法一樣。 但是…… 該怎麼開始? 為什麼我必須這樣寫? 我寫的程式為什麼無法讓電腦理解我想要它做的事? 嗚…程式設計怎麼這麼難…… 這是一本適合所有想了解程式設計的人(不僅只是兒童)的入門書籍。 作者鳥井雪女士本身是程式設計師,也是育有兩寶的媽媽。 鳥井女士規劃過許多程式設計的課程,特別是為女性及初學者打造的課程,擁有相當豐富的經驗。 她以過往規劃和教授課程的經歷來打造本書,在初學者容易碰到的思維門檻上,精心打造了能以生活經驗幫助思維遷移的方式,希望讓所有初學者能安心踏入程式設計的世界。 ---------------------------------------------- 不久的將來,人手一台小型電腦、與電腦一起生活的日子將成為常態。 優羽十歲生日時,得到了一台小型電腦「minio」,可是她一直無法讓minio搞懂她想做的事。 此時,隔壁的姊姊送她一本「魔法筆記本」。 當優羽拿起這本筆記本時,筆記本開始自動翻頁,原本一個字都沒有的頁面,逐漸浮現出文字…… 「接下來,我將幫助你和你的電腦變成好朋友。」 藉由魔法筆記本的引導,優羽逐步解決了很多生活中「有點麻煩」的事,減少了不少困擾! 不用再擔心搞錯上學該準備的用品 可以弄清楚媽媽也記不住的獎勵點數 也不再錯過和朋友一起活動的時光 …… 這些好的轉變,讓優羽再遇到「有點麻煩」、「想偷懶」的時候,會開始思考能讓事情變得更順利、更方便的方法,也讓優羽逐漸對自己充滿自信! ----------------------------------------------- 「程式設計」就是把想法和問題轉換成可執行的程式碼的方法。 學會如何設計程式之後,就可以把電腦的能力變成自己的力量。 本書可以讓你模擬程式設計的過程。 不論是可以按照預期順利執行,或無法成功執行而煩惱地嘗試各種方法,都能從設計程式的過程中,透過與電腦互動,整理問題,一點一滴累積解決方法的能力,發現真正的樂趣。 就從動腦解決生活中的大小麻煩事開始吧! 本書的特色 ‧著迷於故事情節的同時,瞭解程式設計的思考方法 ‧包含程式設計的基本元素(變數、條件分歧、重複、陣列、函數) ‧可以了解程式設計與現實生活中發生的事情的關聯性 本書從人物設計、世界觀、對話和情節設計,乃至於詳細又容易理解的文字表達,鳥井女士都以獨有的視角,做了完整且細膩的安排。 故事從再平凡不過的日常場景為開端,對話和事件都能在你我的日常生活中找到相似的一幕,尤其是那些曾在腦海中閃過「好麻煩,真希望有人可以幫我……」的念頭,讓人立刻就和主角產生共鳴,想繼續看下去主角要如何解決這些「小麻煩」。 鳥井女士在角色的設定用了許多小細節去破除性別印象,處處顯示著她為全齡讀者設想的溫柔。讀者可以很容易將自己或身邊的任何一個孩子帶入主角視角,這些不時就能與自身經驗重疊的安心感,正是讓人欲罷不能地讀完一本程式設計書的關鍵。 而本書繪者鶴谷香央理女士,也以慵懶恬靜的畫風來呼應這份溫柔。將抽象的設定忠實地化為具體的圖像,呈現給每位讀者。兩人的合作可說是一時之選。一起來發現作者與繪者的各種巧思安排吧! 為計算機科技領域的讀者提供優質叢書,一直以來都是歐萊禮圖書的理念,近年也逐步為年輕讀者打造接軌科技脈動的讀物。日本歐萊禮與作者鳥井女士以這個想法為匯聚點,量身訂做了這本適合初學者的入門書,希望不論是誰都能順利接軌光速變化的資訊時代。
寫程式前的必學工具:命令列、編輯器、Git/GitHub,軟體開發三本柱一次搞定
★ IT 領域最佳入門磚,新手也可以好犀利! ★對於有志於從事 IT 工作的人來說,一定要會用的三套工具就是:命令列 (文字模式)、編輯器和 Git 版本控制。雖然會有替代方案,不一定非要用它們不可,但如果要真正融入 IT 領域,建議還是先學會比較好,不然以後一定會覺得跟別人格格不入。但我們並沒有打算把你培養成絕世高手,大部分的 IT 老手多半只會自己需要的技能 (不夠再學就好),因此本書將只聚焦於最重要的面向,你不需掌握所有細節,只要剛好夠用就很犀利了。★ 現代軟體開發三本柱:命令列、文字編輯器、Git 版本控制 ★即使沒聽過「命令列 (Command Line)」,應該也看過黑底白字的文字模式。在 IT 領域中,以文字模式運作的系統無所不在,我們要讓你可以在這個看起來很厲害的環境下做各種操作,這樣算是打開了軟體開發的大門。文字編輯器用於建立純文字檔案,包含所有網頁檔案和程式語言。因此,在學會寫程式之前,其實更應該熟悉文字編輯器的使用。我們會以 Atom 作示範,介紹編輯器基本的核心功能,同時會帶到 Sublime Text、VS Code、Cloud9 等其他工具。特別會介紹功能強大 的 Vim,就算只學會 Vim 皮毛,也足夠讓 IT 老手對你刮目相看。Git 版本控制系統可以讓你追蹤檔案間的差異,對於現在的軟體開發而言,已經是不可或缺。我們會用簡單的範例帶你快速入門,並結合 GitHub 進行線上同步,方便你未來可銜接團隊協同開發,也會大致學到如何解決無可避免的檔案衝突問題。除了教你各種工具的使用、厚實你的硬實力之外,作者也在書中致力於培養你解決 IT 技術問題的能力、和工作上跟他人協同開發的眉角,不只如此,也細心到會補充一些 IT 專有名詞、業內行話/黑話,甚至連命令、符號的念法也都會說分明,這些可以視為 IT 人的軟實力。學會上述這些技能,可以幫助 IT 新鮮人早日脫離新手村,或者是未來想跳槽、轉換跑道,也都會很有幫助。本書特色:手把手教學、解鎖 IT 人日常使用的開發工具,無痛展開你的工程師職涯◎完全新手的命令列基礎實戰,不是無用的命令字典,而是紮實從檔案操作、路徑切換、顯示內容、重複命令…等,提供最易理解的入門方式。◎文字編輯器的必學技巧,包括:尋找、取代、快速鍵、換行、語法突顯…等技巧,從 Atom 到 Sublime Text、VS Code、Cloud9 都可以輕鬆上手。◎特別收錄骨灰級 Vim 編輯器,帶你快速搞懂獨特的模式切換,讓人對你另眼相看。◎講解 IT 人工作上不可或缺的版本控制和 GitHub 使用方式。◎內文穿插補充IT 人的黑話、技術文章中常出現的奇怪詞語,以及許多常用命令或符號的慣用唸法。◎macOS、Linux、Windows 和雲端的多種系統開發環境建置。◎本書由【施威銘研究室】編譯,針對原書進行實測與在地化,並適當添加補充說明,幫助讀者更加理解內容!◎搭配 VIP Bonus:實際操作的教學示範影片。
程式設計守則|如何寫出更好的程式碼
「《程式設計守則》結合了各種對於初學者絕佳的引導,還有許多精妙的內容,甚至連專家都能受用。Zimmerman讓本書一直維持很好玩的感覺。他用事實證明,想保持有趣又兼具教育性,確實是做得到的。」 —Mark Cerny PlayStation 4/5首席系統架構師 「《程式設計守則》針對初出茅廬以及有點經驗的程式設計者,提供了許多深刻的見解。Zimmerman的個人風格確實讓本書成為一本很有趣的讀物;在各種技術逐漸滲透到商業與社會各個層面的這個時代,該如何做出更好的軟體,本書的21條守則確實做出了很重要的貢獻。」 —Paul Daugherty Accenture集團首席技術執行兼首席技術長 這本關於程式設計哲學的指南,對於如何思考「程式設計」這件事,提出了獨特而有趣的觀點。本書集合了21個實用的守則,每個守則都用一個獨立的章節來呈現,道出每位程式設計菜鳥一定要瞭解的重要智慧,同時也為一些經驗豐富的程式設計者提供了發人深省的見解。 作者Chris Zimmerman是電玩工作室Sucker Punch Productions的聯合創始人,他透過一些令人難忘的格言,還有一些從真實程式碼裡提取出來的範例,教導大家程式設計的基本真理。這本實用指南也可以協助管理者,找出一些訓練團隊新成員的方法。 本書所列出的守則包括: ‧越簡單越好、但也不能太過於簡單 ‧讓程式碼自己講故事 ‧把複雜性局限在局部範圍內 ‧先找出三個例子,才能改用通用的做法 ‧要從結果往回推,別從程式碼往後推 ‧最佳化的第一課:別去做最佳化 ‧取個好名字的本身就是最好的說明 ‧Bug是會傳染的 ‧消除掉各種會出問題的狀況 ‧沒在執行的程式碼,就是會出問題 ‧有時你就是得去做一些打釘子的工作
最貼近現實生活:演算法筆記強人輕鬆練成
★LeetCode刷題最重要題目精解 ★資料結構程式語言紮實基礎 ★演算法完整實作 ★陣列、鏈結串列、樹、搜尋、佇列、圖演算法 ★LRU、LFU快取 ★費氏數列、N皇后問題、背包問題 ★Union-Find ★Kruskal演算法 & 本書專攻演算法刷題,訓練演算法思維,應對演算法筆試,注重用策略和框架思維解決問題,以不變應萬變。 & 第1章列舉了幾個最常見的演算法類型及對應的解題框架思路,包括雙指標、滑動視窗等演算法技巧,並把動態規劃、回溯演算法、廣度優先搜索等技巧的核心抽象為二元樹的兩種問題形式。第2章介紹了基礎資料結構相關的演算法,包括陣列鏈結串列的常見技巧整理和資料結構設計的經典例題。第3章從二元樹的幾種解題思路開始,嘗試從二元樹的角度理解快速排序和歸併排序,進一步講解回溯、DFS、BFS等暴力搜索演算法。第4章具體介紹了動態規劃相關的技巧,例如如何確定base case,如何寫狀態轉移方程式,如何進行狀態壓縮等技巧,並用動態規劃的通用思路框架解決了十幾道經典的動態規劃問題。第5章講解了一些高頻面試/筆試題目,每道題目可能會結合之前章節講過的多種演算法思路,也可能有多種解法。 &
Clean Architecture實作篇:在整潔的架構上弄髒你的手(第二版)
[名家名著] 29 Clean Architecture實作篇:在整潔的架構上弄髒你的手(第二版) Get Your Hands Dirty on Clean Architecture - Second Edition 『針對Clean Architecture 的實作方式,這是Teddy 讀過解釋得最清楚的單一本書,推薦給有志讓軟體變軟的鄉民們。』-「搞笑談軟工」板主Teddy Chen 二版推薦序專文推薦 『Teddy 建議搭配Uncle Bob 的《Clean Architecture》,一本學理論,另一本學實作,兩本一起服用學習效果更佳。』-「搞笑談軟工」板主Teddy Chen 一版推薦序專文推薦 『只有誠實地面對專案需求與團隊情況,根據當下條件選擇合適的架構與方法論,並在開發與維護過程中保持敏捷的彈性,隨時回頭審視、做出調整,以便因應業務領域在未來的任何變化,才能逐步邁向業務目標。這就是軟體開發上的「風險管理」。』-錢亞宏 譯者審校序專文推薦 軟體設計的可維護性(maintainability)是降低開發成本的關鍵,也是提升開發人員滿意度的基石。第二版以第一版的骨架為基礎,主要新增三個章節,分別延伸探討可維護性、Bounded Context、以元件為基礎的架構等第一版沒有深入探索的主題,為各位讀者補強「打造可維護軟體」所需的知識和技巧。 我們首先從傳統的階層式架構設計入手,針對此架構的優缺點開始討論。接著,我們也會討論由Robert C. Martin(Uncle Bob)所提出的「整潔的架構」(Clean Architecture)以及由Alistair Cockburn所提出的「六角形架構」(Hexagonal Architecture),探討這類以業務領域為主的架構設計有什麼好處。隨後,本書會用實際的Java和Kotlin程式碼,帶領各位讀者親自動手做一遍六角形架構的實作流程。你將學習如何在六角形架構的架構層之間選擇並實作對應策略,以及如何將架構中的各種元素組裝為應用程式。然後,我們也會說明如何強化架構中的邊界,並以理性的態度探討偷吃步的做法會造成什麼樣的技術債影響,以及在什麼樣的情況下,我們會願意承擔這類技術債。 讀完這本書,讀者將學會使用六角形架構的設計風格,建立整潔、可維護又經得起時間考驗的網頁應用程式。 學習目標: ・採用階層式架構會有什麼潛在問題 ・如何強化架構中的邊界 ・偷吃步做法會為軟體架構帶來什麼潛在影響 ・應該在何時採用何種架構設計風格 ・根據架構設計來安排程式檔案結構 ・針對架構中不同的元素安排不同的測試策略 &
刷題實戰筆記:演算法工程師求職加分的祕笈(暢銷回饋版)
快速掌握演算法思維 應對求職時IT公司的各種演算法面試題 用範本和框架思維解決問題,以不變應萬變 本書的最大功效 逐步指導讀者大量演練演算法題目,以及各種演算法題型的樣式和框架,快速掌握演算法思維,以應對求職時IT公司的各種演算法面試題,或是增進讀者編寫程式的技巧。 本書並不適合純新手來閱讀 如果你對基本的資料結構還一竅不通,那麼你需要先花幾天的時間看一本介紹基礎的資料結構書,去瞭解諸如佇列、堆疊、陣列、鏈結串列等基本資料結構。不需要非常精通,只需大致瞭解它們的特點和用法即可。我想大學時期學過資料結構課程的讀者,閱讀本書應該不會有什麼問題。 如果你學過資料結構 由於種種現實原因開始在刷題平台上演練,卻又覺得無所適從、心亂如麻,那麼本書可以解決你的燃眉之急。當然,如果你只是單純的演算法愛好者,以刷題為樂,本書也會給你不少啟發,讓你的演算法功力更上一層樓。 本書有許多題目都參考自LeetCode這個題目平台 題目解法的程式碼形式遵循該平台的標準。因此如果你習慣在LeetCode平台上演練演算法題目,那麼閱讀本書會更加遊刃有餘。當然,即使你沒有這個習慣也無妨,因為演算法的解題技巧都是通用的。 本書混用Python、C++和Java三種程式語言 筆者認為演算法題目的重點是在養成一種思維模式,不應該局限於具體的程式語言。不必擔心有的語言你不熟悉,演算法根本用不到程式語言層面的技巧,本書也會有意避開所有語言特性,而且後面會統一介紹三種語言的基本操作。 &
程式設計實習滿分總複習-113年版
本書根據108年實施之十二年國民基本教育「電機電子群程式設計實習課程綱要」,並融合歷年統一入學測驗、四技二專、保送甄試等與數位科技概論相關試題編寫而成。本書的內容完全在技專校院入學測驗中心公佈的統測考試範圍之內,可作為高一、高二課餘複習與高三升學應試使用。
個人敏捷性:解鎖目標、調適和轉型
為個人和企業轉型提供簡單框架的同時,使業務更加人性化 關於本書 由於全世界變化迅速,科技進步顛覆了整個產業,幾十年前的許多品牌甚至產業早已不復存在。以指數型速度成長的產品及效能進展融合新的科技,在在意味著商業必須比以往任何時候更加創新。許多企業領導者也轉而透過敏捷來幫助他們面對這些嚴峻挑戰。但無論你是經驗豐富的商業敏捷性老手,或者對這些概念全然不熟悉,這本書都可以為你奠定基礎,透過讓工作方式更具彈性和適應性來應對那些變化和干擾。 如果說 20 世紀的領導力是關於管理機器以穩定地產生利潤,那麼 21 世紀就是面對複雜性和不確定性時的創新力。領導者需要新的技能來開啟他們的勞動力智慧,並促進組織內部甚至外部的跨界合作。現代領導力既是關於目標也關於文化的一種新式概念。文化與人們及他們之間的互動有關,而挑戰則始於每個人的想法和感受。個人敏捷系統(PAS)提供了一種可擴展的領導方法,可以使組織、部門、團隊,甚至夫妻和個人,都能夠將他們的行為與真正重要的事情保持一致。 個人敏捷性(Personal Agility)能夠為你的團隊和部門提供需要的工具和視角,使客戶需求和組織目標一致。員工可以更有效率跨部門甚至跨組織合作,滿足你的客戶,創造新的市場需求,然後再滿足新進的客戶。 這本書透過一個簡單的框架觸及到人性化商業的核心,來幫助個人和商業轉型。它解釋了如何在任何情境中應用敏捷性,並記錄了可以實現的積極轉型;再透過實際案例研究分享人們和組織應用PAS所取得的成果。 你將學到 讓「行動」與「優先事項順序」保持一致 如何運用個人敏捷性的四大核心工具 透過理解自我、調整想法、進而展開行動 應用敏捷教練方法在日常生活與工作中 產官學界人士強力推薦 吳璨因 (Wu Tsan Yin) 璨因教練學院 創辦人 / 中華國際 NLP 教練研究發展教育協會 創會理事長 宋文法(Alfa Song) 金門縣金寧中小學 校長 李純櫻 (Sophia Lee) 宏昇營造 副總經理 周純如 (Celina Chou) 中華民國專業秘書行政協會理事長 林昭陽 (Ivan Lin) 中華電信總公司 總經理 邱奕霖 (Yilin Chiu) 圖像力學院 負責人 施志賢 (Chih-Hsien Shih) 協磁公司 董事長 梅家仁 (Joyce Mei) 達真國際教練學校 校長與創辦人 / 台灣首位 ICF 認證 MCC 大師教練 陳威良(William) 孟華科技總經理/PMITW 前理事長 陳建宏(Roger Chen) ABC 牙醫聯盟 營運長 陳家聲 ( Chen Chia Shen) 台灣大學商學所 首席顧問 教授 陳麗琇 (Elly Chen) 台灣最大敏捷線上讀書會 台灣敏捷部落(TAT) 社長 游文人(Donald Yu) 巨大集團 集團策略長 黃敬強 (John Huang) 瑞嘉科技 總經理 黎振宜 (Chyi Li) 可果美(中國上海)總經理 魏碧芬(Vicky Wei) 欣亞數位股份有限公司 董事長 國際專業人士強力推薦 「我強烈推薦組織中的領導者閱讀這本關於個人敏捷性的書籍。我已經使用個人敏捷系統三年了,它在我生活、工作和領導中都是一項強大的工具。對於高級主管來說,個人敏捷性創造了絕佳的機會,無論是對他們的個人生活還是在領導管理組織上都有好處。透過個人敏捷性,領導者展示了如何實踐這套系統,以確保組織能夠成功應用強大的敏捷方法。」—Lyssa Adkins,敏捷暨領導教練 以及《教練敏捷團隊》(Coaching Agile Teams)的作者 「這是一本寫得很好的書,充滿了美妙且實用的建議。我看見他們有些客戶對於獲得的結果感到極度興奮。當我讀這本書時,我看到了很棒的自我教練式問題、提示和技巧,並且在一個有助於提高個人效能的框架中變得更有效。」—Alistair Cockburn,管理顧問及「敏捷宣言」的共同作者 &
AI時代必讀!一看就懂的程式語言思維課:機器人陪你養成演算腦,在遊戲中建立核心數位素養!
程式設計納入108課綱,學習任何程式語言都要需要的運算思維! 寫程式就像寫作文,學會單字語法不代表就能寫出好文章。 但如果能先了解程式設計背後的思維與邏輯, 不管以後使用哪種程式語言,都能運用自如,順利完成任務,一生受用。 對目前及未來的世代而言,學習如何寫程式已經是跟語文、數學、藝術一樣的基礎能力。在生活中,電腦可以幫忙掃地、洗衣、煮飯;在工作上,除了工商業界,電腦應用還擴及到設計、傳播、藝術等領域,與每個人緊密連結,因此不論處於什麼年齡,我們都應該及早擁有操作電腦的工具及知識,並建立起跟電腦一起工作的自信。 你是不是想學程式語言卻不知從何開始?別擔心,你不需要急著弄懂Java、Python、Ruby這些程式語言到底有什麼不同,即使不熟悉電腦的操作也沒關係。這本書將一步一步拆解程式設計師的思考模式,帶領你從故事及遊戲中尋找規則,學會以同樣的方式解決問題。對於不懂電腦的人來說,看到「迴圈」、「條件陳述式」、「運算子」、「變數」這些令人摸不著頭緒的專用術語就夠令人害怕的了,不過這些概念其實透過骰子或撲克牌遊戲就可以輕鬆學會並理解。 當你擁有如程式設計師一般的腦袋,就等於破解了電腦的魔法,也開啟了神奇的程式世界。只要多加練習,這些數字、符號、程式碼,都將成為解決問題的好幫手,並且讓你能更有創意地展現出自己的想法。 培養創客教育,最根本的邏輯思考及問題解決能力,為學習程式語言打好基礎! ★突破108課綱!程式設計初學者,一本就懂! ★對於未來的世代,學習如何寫程式已經是跟語文、數學、藝術一樣的基礎能力! ★不論處於什麼年齡,及早擁有操作電腦的工具及知識,建立起跟電腦一起工作的自信! ★如果能先了解程式設計背後的思維,不管以後使用哪種程式語言,都能運用自如,一生受用! ACTC亞洲兒童程式教育協會祕書長 吳郁芬教授 泛科知識公司知識長 鄭國威 臺師大電機工程學系助理教授/數感實驗室共同創辦人 賴以威教授 《偷插電的資訊科學》作者 謝宗翔老師 收到積木文化新書「輕鬆打造程式腦」,我相當興奮,台灣終於有針對程式教育養成的專書出版了,我迫不及待地仔細閱讀。 作者先以不同情境引發讀者思考電腦在生活中的重要性,進而以淺顯易懂的範例及活動來說明電腦運作概念,讓我越讀越有趣,因其理念與我們極力推廣的「不插電遊戲玩程式邏輯」有異曲同工之妙。 本書的重點不是在於寫程式,而在於先增進孩子運算思維的能力,未來不管孩子是否會成為程式設計師,都對其邏輯思考能力有所助益,家長也可以運用本書的內容,與孩子進行腦力激盪,看看誰才具有程式腦喔!——吳郁芬教授,ACTC亞洲兒童程式教育協會祕書長 人機合一的時代全面來臨,別再讓自己當程式盲,透過這本圖文並茂的好書,讓自己往一級玩家的目標邁進吧。 ——鄭國威,泛科知識公司知識長 電腦是邏輯的組成,編寫程式是以有邏輯的方法跟電腦溝通。而在那之前,我們應該先形塑自己的思維,讓你的思考方式更有邏輯。 ——賴以威教授,臺師大電機工程學系助理教授/數感實驗室共同創辦人 學資訊就只是寫程式嗎?不要害怕,其實資訊科學是可以很有趣的,擁有一個會思考、不怕難題的資訊腦也能這麼簡單! ——謝宗翔老師,《偷插電的資訊科學》作者 &
Pragmatic TDD:以DDD寫出鬆散耦合、文件化和高品質的程式碼
Pragmatic TDD:以DDD寫出鬆散耦合、文件化和高品質的程式碼 Pragmatic Test-Driven Development in C# and .NET & 使用C#和.NET的工具與函式庫 & 測試驅動開發(TDD)是一種宣言(manifesto),強調在逐步為產品增加功能時,你應該先從單元測試(unit test)開始。現今的專案範本(project template)預設都含有單元測試,而單元測試已成為預期會被實作的重要任務。因此,在許多職位需求中,你會毫不意外地看到TDD、單元測試等關鍵字,而TDD和單元測試亦成為面試、coding挑戰和程式競賽中的重要考題。採用TDD,不僅能強化良好的設計實踐,更能加速你提升技能,成為優秀程式設計架構師(coding architect)。 & 本書超越理論探討,專注於讓你透過實用的框架,如ASP.NET Core和Entity Framework,在實際環境中熟練應用TDD。從基礎知識開始,本書將指導你使用Visual Studio 2022建立一個服務預訂的網頁應用程式。為了更貼近真實的工作情境,你將使用EF、SQL Server和Cosmos,並運用各種設計模式,包括資源庫(repository)、服務(service)、建造者(builder)等。同時,本書也會介紹領域驅動設計(DDD),以及其他軟體設計最佳實踐,如SOLID和FIRSTHAND等。 & 讀完本書,你將建立足夠的信心來主導TDD的實作。此外,你也將掌握有力的商業和技術案例,可在向管理階層或同事展示單元測試或推動TDD時使用。藉由本書的指引,你將更有把握成為引領TDD實踐的領航者,並在軟體設計領域中脫穎而出。 & 目標讀者 本書適合那些希望借助TDD的力量,來開發高品質軟體的中高階.NET開發者。假設你已經掌握OOP(物件導向程式設計)及C#程式設計概念的基礎知識,可是你對TDD或單元測試並不了解,本書將深入介紹並探討所有TDD與單元測試的觀念。對於想要從頭開始建置以TDD為基礎的應用程式,或計畫要在自己的組織內部引入單元測試的開發者來說,本書會是非常實用的指南。 & 【下載範例程式檔案】 你可以從GitHub下載本書的範例程式碼,如果程式碼有更新,作者也會直接更新在儲存庫上: github.com/PacktPublishing/Pragmatic-Test-Driven-Development-in-C-Sharp-and-.NET & 【下載本書的彩色圖片】 本書使用的彩色截圖和圖表,可以在此下載PDF檔案: packt.link/OzRlM & 本書特色 & ★使用xUnit編寫單元測試,並掌握相依注入的技巧 ★使用NSubstitute實作測試替身,並進行mocking(模擬化) ★結合DDD與最佳實踐,以TDD的風格撰寫單元測試 ★將TDD與ASP.NET API、Entity Framework和資料庫結合使用 ★透過探索GitHub的持續整合更上一層樓 ★探索更進階的mocking使用情境 ★在你的公司和團隊中積極推動TDD和單元測試 &
STM32韌體開發實戰(標準庫)
‧標準庫的開發環境建置 ‧開發板與最小系統板的製作教學 ‧微控制器外設功能介紹與標準庫範例程式 ‧介紹I2C時序與撰寫相關IC的功能函式 ‧學會查看IC資料手冊 本書使用STM32F0標準庫開發韌體,透過範例以圖文方式逐步說明,幫助初步接觸STM32嵌入式開發的讀者學習何為韌體開發。本書將帶領有電子電路和C語言基礎,但沒接觸過嵌入式開發的讀者,掌握韌體開發的流程。 為讓各位讀者更容易理解,本書將依各單元說明韌體開發的步驟: 1.【STM32開發板製作教學】在進入嵌入開發的第一步就是了解製作開發板的原理、規劃和了解具備哪些零件開發板才能夠使用。 2.【暫存器開發】介紹GPIO這個功能、韌體開發暫存器的概念、使用Keil 5來創建開發環境並接著使用暫存器來控制MCU的GPIO功能程式介紹。 3.【標準庫開發】介紹STM32的標準庫、開發環境創建,GPIO口輸入和輸出範例,接著會開發幾個STM32常用的外設功能如:EXTI外部中斷、SysTick內核功能定時器做出較精準的Delay函式、UART、I2C,以上都會有範例程式搭配做介紹。 4.【I2C實例解析】介紹EEPROM(電子抹除式可複寫唯讀記憶體)、ADXL345(三軸感測器)和SI7021(溫濕度感測器),以上三種IC是使用I2C與MCU傳輸資料的,這章會介紹個別IC的Datasheet的重點查找、範例程式與時序講解。 5.【小型韌體開發實例】具備上述章節的基本能力後,讓讀者吸收一個小型韌體開發的系統,此章節會簡述韌體需求,功能規劃、最小系統板規劃、開發簡介。 以上學習的方法也適用於不同型號的微控制器,真正弄懂一顆MCU後在換其它顆型號的MCU也不會有太多的阻礙,雖然STM32近幾年都在主推使用STM32CubeMX所產生的HAL庫來幫助使用者能在最短的時內完成開發驗證,但學習本書的標準庫會對HAL庫的函式使用有所助益。 此書將能帶給想接觸STM32嵌入式開發又不知從何下手的讀者有個良好的指引,讓讀者藉由此本書有更多的開發的想發可延伸,爾後自學本書上面沒有教學的項目也能快速找到學習方向。 &
全棧測試|交付高品質軟體的實務指南
「Gayathri的書能為團隊帶來測試的全面性觀點。」 -Neal Ford Thoughtworks總監/架構師/Meme Wrangler,《軟體架構:困難部分》作者 「Gayathri的書應該出現在所有寫軟體(以及測軟體)的人桌上。」 -Saleem Siddiqui 《Test-Driven Development學習手冊》作者 對任何想產出高品質軟體的組織而言,測試都是不可迴避的課題,本書中,我們提供了10種不同類型的測試工具,為軟體開發與品質工程師帶來一站式的測試指南,您將會了解到測試的策略、概念、實踐等知識,並將這些知識使用在網頁或手機應用的開發與測試階段。 作者Gayathri Mohan為讀者準備了40種以上可以立即上手的測試工具,不論是測試新手或老手,都可以將這些技巧應用在測試工作上,藉此增進軟體的性能、安全性、與可用性(accessibility)。本書涵蓋的測試手法包括探索性測試、自動化測試、跨功能測試(cross-functional testing)、資料測試、手機端測試等,此外讀者還可以認識到該如何將這些測試整合進CI(continuous integration)流程中。透過本書,您將能以品質為中心去處理軟體開發過程中的各種挑戰。 您可以透過本書獲得下列知識: ‧學習如何部署各種測試方案,讓手上的專案獲得高品質的產出 ‧透過書中介紹的策略與概念探索出新的測試方法 ‧從範例學習到該如何將測試工具應用到實際的工作中 ‧藉由廣泛的最佳測試實踐來增進自身的測試技巧能並推動職涯發展
圖解演算法原理
解析演算法結構 實際操作 加深學習 精選課堂練習 資料結構、排序、搜尋etc… 從基礎到應用準則完全圖解 ‧詳細講解各種演算法的特色 ・學會如何選擇適當的演算法 ・跨頁閱讀適合初學者或複習自學 ・涵蓋機器學習結構到活用範例 堅實的基礎知識「實用」的工具書 需要懂得因應場景選擇適當的演算法,才能夠建立有效率的程式。即便獲得的成果相同,但使用的演算法會讓處理效率大不相同。不過對演算法抱持著「看不出有什麼差異」「好複雜好像很難」排斥心態的學習者想必是大有人在。因此,本書中的每個主題皆是以跨頁,並搭配圖解的講解方式幫助讀者從零開始學習演算法的基礎知識。 推薦給符合以下條件的讀者 ‧想學習演算法的基礎知識 ‧想拓展知識領域更上一層樓 ‧想成為懂得如何選擇演算法的人 ‧想成為能快速又正確建立程式的人
精通無瑕程式碼:工程師也能斷捨離!消除複雜度、提升效率的 17 個關鍵技法
少一點程式碼,多一點專注力,寫出更好理解、更好維護的程式! 「真希望在我第一次寫程式碼的時候就擁有這本書。」 —Adam Schroeder,Plotly社群經理 比爾蓋茲和巴菲特兩位商業傳奇人物的成功祕訣是什麼?為什麼作者會提到他們?他們的成功祕訣跟本書主題又有什麼關係? Apple 產品、Google 搜尋引擎主頁跟編寫程式之間有什麼共通點? 大多數軟體開發人員浪費上千個小時處理過於複雜的程式碼。《精通無瑕程式碼》中的九項核心原則將教你如何在不影響功能的情況下編寫清晰、可維護的程式碼。本書的指導原則是「簡單」:減少與簡化,然後將精力重新投入到重要的部分,進而為你節省無數時間,並減輕繁重的程式碼維護任務。 暢銷書作家 Christian Mayer 在這本新書中運用了他的經驗幫助成千上萬人完善程式碼編寫技巧。透過專家建議和真實範例,他將向讀者展示下列方法: ❏ 遵循八二法則,專注於重要的事情上——專注在最重要的 20% 程式碼 ❏ 避免孤立編寫程式:建立最小可行產品以獲得早期回饋 ❏ 簡潔明瞭地編寫程式碼,消除雜亂 ❏ 避免過早優化導致程式碼過於複雜 ❏ 平衡你的目標、能力和回饋,以達到高效的心流狀態 ❏ 應用「做好一件事」的理念大幅改善功能 ❏ 以「少即是多」的原則設計高效能的使用者介面 ❏ 將你的新技能整合成一個原則:專注 這本基於 Python 的指南適合所有程度的程式設計師,作者想法的呈現方式與程式語言無關。掌握了本書內容,你很快就能用更少的資源創造出更多的價值,不論是工作價值或是個人價值。 &
ChatGPT 來襲,未來人人都需具備的運算思維!應用詠唱工程來釋放程式生產力—程式學習/開發篇
▶▶▶ 人人都會用程式的時代來臨了… 未來人人都必須具備有「運算思維」,才能駕馭AI,而不是反過來被會用AI的人淘汰,但「運算思維」該如何獲得呢?運算思維其實就是一種思考方式,可以藉由學習程式設計、解決問題、模擬現實情境來練習和培養。在掌握運算思維後,本書進一步介紹了當前熱門的ChatGPT詠唱工程,教你如何用正確的提示命令,來達到人機協作的高效率,並運用其便利性,來輔助程式學習的內容,從基礎的語法練習開始,到函式方法與物件、決策與迴圈、非同步語法與 API 呼叫、web 應用程式,最後還有實際的專案實作演練,讓你善用AI,不再擔心被淘汰! 【本書適用讀者】 1.對於程式開發用於工作有興趣,但一直苦於程式入手門檻較高。 2.非主修程式的學生。 名人推薦 這本書將幫助讀者充分利用ChatGPT的潛力,並達到更好的結果。它是一本深入但易於理解的指南,無論您是初學者還是有經驗的使用者,都會受益於其中的實用建議和洞察力。---東吳大學資管系特聘教授&& 郭育政 典型的AI人機協作(AI-Human Collaboration)過程,剛好就呼應到本書的3個重點:運算思維、詠唱工程、程式學習。也是我覺得這本書跟目前市面上其他著作的最大差異,透過詠唱,讓ChatGPT成為學習運算思維和程式設計的伴讀小童!---奇步應用有限公司 執行長& 陳佳新 ChatGPT 大浪來襲,與其害怕,不如跟著建宏兄一起衝浪吧!---國立雲林科技大學 研發處就業暨校友服務中心主任& 黃建盛 本書所介紹的運算思維和ChatGPT整合的教學模式,正是我們現代社會所需的核心能力,書中提供了全面而深入的指南,涵蓋了從運算思維的基礎概念到ChatGPT的應用技巧,尤其是以ChatGPT來引導學生設計Prompt,為讀者提供了實踐和應用這些知識的寶貴指引。---國立聯合大學文化創意與數位行銷學系教授、國立聯合大學共同教育委員會主任委員、教育部人工智慧技術及應用領域系列課程計畫《機器人服務設計》主持人 張陳基 &
軟體架構指標|改善架構品質的案例研究
軟體架構指標在保持軟體專案的可維護性和確保高品質架構的關鍵,以及警告架構和技術債務的危險積累方面扮演著關鍵角色。在這本實用的書中,領先的實踐型軟體架構師Christian Ciceri、Dave Farley、Neal Ford、Andrew Harmel-Law、Michael Keeling、Carola Lilienthal、João Rosa、Alexander von Zitzewitz、Rene Weiss和Eoin Woods用案例研究分享的方式,介紹每個軟體架構師都應該知道的指標。 這不是一本關於理論的書,它是基於現實世界的經驗並為軟體架構師和開發人員編寫的書,包含了更多關於實踐和實施的內容。本書分享了關鍵軟體架構指標,以幫助您設定正確的KPI並衡量結果。您在有關決策和測量有效性方面會學到更多。 您將學習如何: ‧衡量你的軟體架構在實現目標上有多好 ‧選擇要追蹤的正確指標(並略過不需要的指標) ‧改善可觀察性、可測試性和可部署性 ‧確定軟體架構專案的優先順序 ‧建構有洞察力而且相關的資訊看板
會動的演算法:61 個演算法動畫+全圖解逐步拆解,人工智慧、資料分析必備
★★★用手機掃描書中 QR Code 立即觀看演算法動畫!★★★ ⦿ 一圖一步驟,帶你打開演算法的黑箱! ⦿ 全彩超圖解,將抽象的演算法視覺化! ⦿ 內容淺顯易懂,沒有長篇難懂的理論! 「演算法」給人的第一印象就是好難學、理論好多,即使讀完千字文還是看不懂!o(〒﹏〒)o 沒錯!小編非常有同感,第一次接觸演算法時,就被「時間複雜度」弄得暈頭轉向,我一點也不想知道這些數學式是怎麼推導的啊,只要知道哪個演算法比較快、比較好用就可以了!還有,常遇到同一個詞有不同說法,在 Google 搜尋時就會搞不清楚是不是指同一件事,例如 Binary Tree Traversal,就有「二元樹追蹤、二元樹訪問、二元樹走訪、二元樹遍歷……」,這麼多種稱呼,實在讓人困惑! 透過本書一圖一步驟地拆解演算法的背後原理,我終於弄懂演算法的運作了,其實演算法沒有想像中那樣神秘、可怕,而是有規則可循的。看懂其運作原理後,由衷佩服這些設計演算法的人,原來他們是這樣思考與拆解問題的啊,我怎麼都沒想到呢!舉個簡單的例子,要找出陣列中的最小值,只要準備一個陣列,跟一個用來儲存最小值的變數,並將此變數一開始先設成「無限大」,接著再跟陣列中的數值一一比對,就可以找出陣列中的最小值了 (原來關鍵在設成「無限大」,我壓根兒沒想過可以這樣設定)!看到這裡,或許你也開始放空了,沒關係!只要翻開本書跟著圖解一步步思考,並搭配動畫的展示,就可以理解演算法的運作了! 本書收錄許多知名的演算法與資料結構,其中有些演算法已經被主流的程式語言編寫成方便使用的「函式庫」。不過「函式庫」是一種將工作原理藏在內部的「黑箱」,因此大多數人在使用時不見得對演算法有充分的理解。想要寫出執行效能佳的程式,得確實理解演算法的工作原理才行。 本書介紹的資料結構與演算法 ✪陣列的查詢: 互換元素/尋找最大值/互換排序/合計/最小元素值/最小元素位置/線性搜尋法/二元搜尋法 ✪排序: 反轉/插入/合併/分割/氣泡排序法/選擇排序法/插入排序法/合併排序法/快速排序法/堆積排序法/計數排序法/希爾排序法 ✪與整數相關的演算法: 埃拉托斯特尼篩法/輾轉相除法 ✪資料結構: 堆疊/佇列/雙向鏈結串列/雜湊表 ✪陣列的計算: 累積和/一維累積和的應用/二維累積和的應用 ✪堆積: Up Heap/Down Heap/建立堆積/優先佇列 ✪二元樹的走訪: 前序走訪/後序走訪/中序走訪/層序走訪 ✪其他: 廣度優先搜尋/卡恩演算法/深度優先搜尋/Tarjan 演算法/Union By Rank/Union-Find Tree/普林演算法/克魯斯克爾演算法/戴克斯特拉演算法/貝爾曼 - 福特演算法/弗洛伊德演算法/包裹法/葛立恆掃描法/安德魯演算法/線段樹:RMQ/線段樹:RSQ/二元搜尋樹/旋轉/樹堆…… 本書特色 ★ 觀看【演算法動畫】同時搭配書中的原理說明,讓學習效果翻倍! ★ 收錄【61 個經典的演算法+資料結構】,讓你活化思維並提升邏輯思考力! ★ 【豐富的圖解及圖示設計】將抽象的演算法視覺化,易讀易學好吸收! ★ 逐步拆解演算法的運作原理、解析執行效率及優缺點,突破盲點、顛覆思考。 ★ 沒有難懂的數學推導及長篇理論說明,降低學習門檻! &
軟體架構師全方位提升指南|數位轉型企業中架構師角色的新定義
「涵蓋融合技術面與非技術面的主題,對所有想提升自我層次的軟體架構師而言,本書是一本必讀的書籍。強力推薦。」 Simon Brown 《Software Architecture for Developers》作者 隨著數位經濟改變了企業的遊戲規則的同時,軟體與IT架構師的角色也隨著轉變。架構師與資深技術師不能只著重於技術性決策,更需要整合組織性與技術性的知識,以調整公司的結構與流程。為了達到這個目標,他們需要將IT引擎室連結到企業中決定營運策略的層峰上。 本指引中,作者Gregor Hohpe分享了IT轉型方面的務實建議與寶貴的經驗。他的故事能幫助架構師、資深開發者與其他IT專業人士轉型成為企業中更複雜但卻更具價值的角色。 本書適合: ‧正協助組織轉型或尋求形塑公司技術方向的軟體架構師與資深開發者 ‧正尋求如何處理技術性與組織性問題之實用建議的企業架構師與資深技術人員 ‧正在制定會影響到組織運作方式之IT策略的CTO與資深技術架構師 ‧想要瞭解在大規模轉型過程中有效與無效之作為的IT經理
複雜架構極簡化:領域驅動設計(DDD)10倍程式開發速度
現在是你最需要了解DDD的時刻了! 當你要把一個問題拆解處理時,DDD將會是你最大的幫手。 本書最大的特色就是將整個DDD分成3大類。 第一大類為業務服務。 業務服務是全域分析的基本業務單元,在統一語言的指導下完成對業務需求的抽象,既可幫助我們辨識界限上下文,又可幫助開發團隊開展領域分析建模、領域設計建模和領域實現建模。業務服務的粒度也是服務契約的粒度,由此拉近了需求分析與軟體設計的距離,甚至可以說跨越了需求分析與軟體設計的鴻溝。 第二大類為菱形對稱架構。 雖然菱形對稱架構脫胎於六邊形架構與整潔架構,但它更為簡潔,與界限上下文的搭配可謂珠聯璧合,既保證了界限上下文作為基本架構單元的自治性,又融入了上下文映射的通訊模式,極大地豐富了設計要素的角色構造型。 第三大類為服務驅動設計。 服務驅動設計採用程序式的設計思維,卻又遵循物件導向的職責分配,能在提高設計品質的同時降低開發團隊的設計門檻,完成從領域分析模型到領域實現模型的無縫轉換,並可作為測試驅動開發的前奏,讓領域邏輯的實現變得更加穩健而高效。 本書特色 ●將整個DDD分成3大類 〇破解軟體複雜度的新觀念,讓你不被程式碼糾纏人生 ●了解問題空間和解答空間的觀念 〇用5個W來探索問題空間,先分析業務流程再開始設計 ●充分了解Entity、Value Object、Service、Module、Factory、Repository、Aggregate和Domain Event 〇動手實作領域設計的建模、領域實現建模 ●融合現在的設計團隊,建立領域驅動模型的戰略
秒懂設計模式
什麼是設計模式?設計模式並不局限於某種特定的程式語言,它是一套基於前人經驗總結出的軟體設計指導原則,所以很多初學者覺得設計模式晦澀難懂,無從下手。本書秉承簡約與現實的風格,幫助讀者理解設計模式的概念。 輕鬆、幽默,閱讀無負擔本書以輕鬆、幽默、淺顯易懂的方式,從物件導向程式設計、物件導向三大特性的理論基礎做開場,然詳細地講解了23種設計模式的概念及結構機理,最後以六大設計原則收尾,全面地解析歸納了軟體設計準則,參透設計模式的本質。 貼近生活,淺顯易懂每章都有貼近生活的真實範例,搭配生動活潑的插圖,再結合相關範例程式實戰演練,循序漸進、深入淺出,引導讀者領略設計模式的精髓。
跟著 Docker 隊長,修練 22 天就精通:搭配20小時作者線上教學,無縫接軌 Microservices、Cloud-native、Serverless、DevOps 開發架構
容器化虛擬技術早已成為工程師必備的技能,無論專案開發的規模大小、採用哪個作業系統、整合了多少技術,清一色都會採用Docker作為開發工具,不管是開發人員、維運人員,Docker都是業界必備的謀生工具。雖然 Docker 的常用命令不到 20 個(全部也不過50幾個),小編知道很多前輩會說網路上的參考手冊和範例看一看就夠了,只是單純要把應用程式打包成容器或許如此(本書前四章就講完了),不過Docker早已發展成完整的生態系統,只懂得命令絕對不夠(後面還有十八章)。 作者 Elton Stoneman 是經驗豐富的 Docker Captain(Docker 隊長,全球僅 50 多位的官方種子講師),堪稱是最知名的容器化技術傳教士之一。本書不是坊間常見的命令參考手冊,而是作者在工作上應用容器技術的經驗大全,從最基本 Linux、Windows、Mac 等不同平台的操作差異,到實務上如何融入 Misroservice、Serverless 等開發架構,如何搭配 CI/CD pipeline 滿足 DevOps,或是多容器的管理和負載平衡、應用程式的監控與指標、不停機更新…等,這些工作上一定會遇到的情境,一般課程、教材都不會提,網路資訊也很零碎,只有跟著 Docker 隊長的腳步,精通容器部署、管理與維運,才能無縫接軌手上任何開發專案。 業界工程師一定要會! 容器部署、管理與維運工具完全整合,包括 Swarm、Kubernetes、Jenkins、Gogs、GitHub、Prometheus、Grafana、ElasticSearch、Fluentd、Kibana、Anchore、Redis、Nginx、Traefik…。 下班、午休偷偷學,22 天讓你實力開外掛 本書適用於任何背景的讀者,不管是開發人員、維運人員,或是您習慣 Mac、Linux和Windows系統,都可以輕鬆學習。各章設計了豐富範例和課後練習題增加實務經驗,每一章節主題明確,並會相互參照、補充,值得您每天犧牲1~2小時的午休或下班時間,只要 22 天就可以精通 Docker。 搭配專屬線上學習資源 本書包含了許多Dockerfile和應用程式範例,可以從作者GitHub和旗標網站上下載取得完整範例檔案和程式碼。作者也特地為本書錄製長達 20 小時的線上教學影片,強烈建議您搭配本書進行學習,相輔相成、效果加倍。reurl.cc/7rOZNd 本書特色 ● 建構Docker映像檔和容器管理 ● data volumes、虛擬網路、安全性配置 ● 使用Docker Compose 串聯、配置多容器應用程式 ● 使用 Docker Swarm調度、管理、部署分散式應用程式 ● 建構CI/CD的工作流程 ● 優化Docker image的大小、速度和安全性 ● 啟用狀態檢查、相依性檢查讓應用程式自我修復錯誤 ● 整合 Prometheus、Grafana,打造容器監控指標儀表板 ● 協同Jenkins 打造自動化CI/CD Pipeline ● 自動發佈更新、降版還原、自動化修復,打造不停機運作 ● 透過反向代理、訊息佇列來達成非同步溝通 ● 整合Elasticsearch、Fluentd、Kibana建構應用程式的日誌模型 ● 使用線上 Play with Docker 環境模擬多容器的叢集架構 ● 本書由施威銘研究室監修,書中針對原書進行大量補充,並適當添加註解,幫助讀者更加理解內容。 ● 搭配豐富學習資源: →實務案例從做中學,GitHub 範例檔案同步更新 →各章節設計有【課後練習】,有效累積實務經驗 →搭配20小時專屬線上教學,效果加倍:reurl.cc/7rOZNd →範例 + 旗標 Bonus:www.flag.com.tw/bk/st/F1126
改變世界的九大演算法:讓今日電腦無所不能的最強概念(暢銷經典版)
榮獲美國出版人協會(Association of American Publishers)電腦資訊科學最佳書籍獎 & 電腦網路技術無所不在:每天,我們從海量的資訊中搜尋到所要的資訊、我們上傳照片到臉書上、我們運用公鑰加密來傳送私人資訊例如信用卡號碼等等、我們使用數位簽章來確認所造訪的網站的真偽…… & 這本書介紹了讓電腦網路世界得以運作,塑造今日人類生活的九種最重要的演算法(algorithm)。作者挑選這九大演算法的標準是: & 1.每天會被一般電腦使用者用到的演算法。 2.必須能解決現實世界的具體問題。 3.主要是與資訊科學理論有關的演算法。 4. 美、簡潔、優雅。 & 本書所介紹的九大演算法是:搜尋引擎的索引(search engine indexing)、網頁排序(page rank)、公鑰加密(public-key cryptography)、錯誤更正碼(error-correcting codes)、模式辨識(pattern recognition,如手寫辨識、聲音辨識、人臉辨識等等)、資料壓縮(data compression)、資料庫(databases)、數位簽章(digital signature),以及一種如果存在的話將會很了不起的偉大演算法,並探討電腦能力的極限。 & 作者將我們日常生活會用到的電腦功能背後的道理,以淺顯易懂的方式介紹,不具備資訊科學的背景也可以了解。而且令人驚喜的是,每一種演算法,都是一個解決問題的創意與線索,也讓我們得以一窺近代數學家、資訊科學家的努力探索成果。面對越來越科技化的現代生活與職場挑戰,這些基本原理和概念值得我們去了解、吸收,為未來世界做好準備。
深入淺出設計模式 第二版
建構可擴展、易維護的物件導向軟體 「從昨天翻開這本書的第一頁開始,我就停不下來了!這本書超酷的,它不僅有趣、涵蓋許多層面,也切中要點,實在令人印象深刻。」 —Erich Gamma —IBM傑出工程師、《Design Patterns》作者之一 「彷彿從我的腦海中卸下一千磅重的書。」 —Ward Cunningham 維基百科的發明者,Hillside Group創始人 「《深入淺出設計模式》結合有趣、令人捧腹大笑的元素、深刻的見解和技術,以及實用建議,是一本有趣且引人深思的讀物。」 —Richard Helm 《Design Patterns》作者之一 你將從本書學到什麼? 因為你不想重新發明輪子,所以尋求設計模式的協助。設計模式是曾經遇到同樣設計問題的人學到的經驗。掌握設計模式,你就可以利用他人的經驗和最佳做法,把寶貴的時間用在更有挑戰性、更有趣的事情上。本書將告訴你重要的模式有哪些、使用它們的時機和理由、如何在自己的設計裡面運用,以及它們根據哪些物件導向設計原則。《深入淺出設計模式》已經協助數以萬計的開發者提升物件導向設計技術了,快點加入我們吧! 這本書為何如此與眾不同? 如果你曾經閱讀任何一本《深入淺出》系列,你應該可以預期你會看到什麼內容—為大腦量身打造的豐富視覺效果。用《深入淺出設計模式 第二版》來學習設計模式可以讓你遠離瞌睡蟲的干擾,讓你更擅長解決軟體設計問題,以及使用設計模式術語和同事們溝通。
Mike Cohn的使用者故事:敏捷軟體開發應用之道
最原創、最大咖的名著 學習敏捷的人都讀過至少一本由Addison-Wesley規劃的Mike Cohn Signature Series(簽章推薦系列)綠皮書。 名列全球最有影響力敏捷人士第一名,Mike Cohn大師的地位無庸置疑。要學使用者故事,就要讀最原創的Bible級書籍,也就是這本由Mike Cohn親自撰寫的《Mike Cohn的使用者故事》。 《Mike Cohn的使用者故事》由敏捷社群成員全面檢閱後,在各界引頸期盼下出版發行,本書提供了一個需求處理流程,可省下寶貴時間、減少重工,直接打造更出色的軟體。 要打造出符合使用者需求的軟體,最好的方式是從「使用者故事」開始:針對真正使用者有價值的功能,提供簡單明瞭的說明。在《Mike Cohn的使用者故事》中,Mike Cohn提供了一個前後貫穿的藍圖以撰寫使用者故事,並將這些步驟融入開發週期中。你會知道好的使用者故事的要素,也會了解故事成效不彰的原因。你會發現蒐集使用者故事的實用方法,就算你無法與使用者親自溝通也很適用。接著,將使用者故事彙整完畢後,Cohn將展示如何統整、安排優先等級,以及如何運用故事進行規劃、管理與測試。 你將從本書學會: • 使用者角色建模:了解使用者之間的共同點以及不同之處 • 蒐集故事:使用者訪談、問卷調查、觀察,以及故事撰寫工作坊 • 與管理層、培訓人員、銷售人員,以及其他使用者代理人合作 • 為使用者故事撰寫驗收測試 • 為故事安排優先等級、制定時程及估算發布成本 • 各個章節結尾的問題與練習 無論軟體開發人員、測試人員、分析師,以及管理人員是使用何種敏捷方法:極限程式設計、Scrum…或者甚至是你自行開發的手法,都能從《Mike Cohn的使用者故事》中獲得無比珍貴的知識見解。
圖解程式設計的技術與知識
用圖文並茂的方式讓你了解程式設計是什麼 這不是一本教你如何寫程式的書籍,而是幫助你了解程式設計師如何進行開發,以及開發時需要了解哪些事情的書籍,藉由本書,你可以了解: .不同程式語言的特色、演算法,以及Web相關知識! .圖解說明程式設計的專業用語! .清楚易懂,初學者進階者都適用! .瞭解機制後,開發就能有所進展! 來自讀者的讚譽 「這不是一本告訴你如何寫程式的書,而是告訴你如何用程式設計的觀念去思考,推薦給想要學習程式設計觀念的人」 「可以幫助你聽懂開發人員常用的術語,掌握原本陌生的知識」 「可以讓你了解程式設計師的工作到底在做哪些事情」
大規模重構|奪回源碼庫的控制權
「在一個龐大且不斷發展的源碼庫之中保持生產力似乎是一項薛西弗斯(Sisyphean)任務。本書將此過程分解成你可以立即應用的逐步指南。」 —Cal Henderson Slack首席技術長 「我很喜歡這本書中的案例研討。多麼希望能把這本書送給過去的自己,幫助她規劃大型遷移工作。其中探討的經驗教訓,有很多是我過去不得不硬著頭皮學會的。」 —Julia Evans Wizard Zines作者 對複雜的大型源碼庫進行重大變更是一項艱鉅的任務,除非你有合適的團隊、工具和心態,否則幾乎不可能成功完成。如果你的應用程式需要大幅改造,而你又不確定如何以可持續的方式實作這些變更,那麼本書就是為你準備的。 軟體工程師Maude Lemaire將引導你從頭到尾完成整個重構過程。你將從她在Slack關鍵成長期推動效能改善和重構工作的經驗中學習,包括兩個案例研討,闡明這些技巧在現實世界可以產生怎樣的影響。本書將幫助你獲得一種新的能力,幫助你在源碼庫中有效引入重要的變革。 ‧瞭解程式碼是如何劣化的,以及為什麼有些劣化情形是無可避免的 ‧在重構之前,對你源碼庫的狀態進行定量和定性分析 ‧起草一份範疇明確的執行計畫,設下策略性的里程碑 ‧贏得工程管理階層的支持 ‧建立並協調出最適合該專案的團隊 ‧在團隊內部和外部進行有效溝通 ‧採用最佳實務做法,成功執行重構
猜心競賽:從實作了解推薦系統演算法
推薦系統從20世紀90年代開始出現,逐漸成為一種獨立的學科,並且在學術界和工業界應用中都獲得了諸多成果。本書主要說明目前學術界和工業界的一些主流、常用的推薦方法和工具。用最大眾化的Tensorflow/Sklearn及Spark來實作商業巨頭的推薦系統,在Zepplin Notebook和Jupyter Notebook兩個最通用的平台上來完成實作,並且詳細介紹召回演算法、排序演算法、線性模型、樹模型、深度學習模型等等。