本文目的
- 對參加的2025年上半年系統架構設計師考試進行總結
- 提供一些備考思路給未來參加系統架構設計師的同學
個人背景
工作背景
本科計算機與技術(學過一些計算機基礎課程),15年畢業后從事過b端(人群畫像、營銷、用戶增長、硬件Iot等)、c端系統(旅游招聘領域)的開發與架構(有項目經驗),帶過研發、產品、運維、測試團隊(項目開展流程、需求與項目管理等有了解),目前從事大數據計算、隱私計算等相關開發與管理工作。
軟考經歷
18年,19年做過三四年開發的時候報考過中級,裸考,一次早上綜合知識科目44分,下午案例與編程60多分,另一次早上綜合知識50多分,下午案例與編程43分均未過關。且后來覺得軟考與實際工作無關,也就沒有繼續參加考試了。
本次成績
本次是首次參加系統架構設計師的,大約備考了三周,每天2小時左右。綜合知識符合預期,案例分析高于預期,論文低于預期。
軟考的意義
之前我認為軟考與開發工作本身關系不大,后來慢慢有所改觀,除去地方政策所帶來的一些福利外,本身軟考還有一些其他的意義。
- 地方政策福利: 通過軟考高級,以考代評,一般具備副高職稱。在杭州,通過軟考高級+成果(軟著或專利)可以申請杭州E類人才,享受一些補貼(租房、生活)與子女上學(用處不大)的政策。
- 個人綜合素質體現: 作為面試官,候選人工作背景、薪資要求、面試表現的能力差不多的時候,就會更側重一些綜合素質,如是否有或參與一些開源項目(體現空余時間是否有學習、參與一些項目開發,有自己的見解與產品能力),是否有blog(體現是否有學習和總結,以及一些深層次的思考),是否有一些算法比賽經歷(體現大學期間的經歷,思維與算法能力)。而軟考證書和人才證書也是加分項,不但體現候選人在工作后有進行學習,而且也體現了學習或掌握了一些項目管理、需求管理、軟件構建與迭代等系統架構師考試內容的方法論。
- 擴充知識體系: 開發不僅僅是CRUD,Call Api,在生成式AI能力越來越強的背景下,對開發同學的要求也會越來越高。只會對普通系統的功能需求進行研發,注重研發邊界,沒有更高的產品意識和行業視野的同學面臨的挑戰會越來越大。系統架構師中對開發同學有提升的內容,比如計算機軟件基礎知識中的操作系統、軟件工程、UML建模與設計模式、計算機網絡與安全(在目前的工作中,容器化、云原生、數據保護,網絡與安全方面的內容對我來說就比較重要)等,還有軟件架構風格、特定領域的軟件架構、軟件架構評估(??特別重要,我們在架構一個軟件時,應該設定什么標準、關注什么質量屬性)。這些知識無疑是過去幾十年來,領域專家或相關學者給出來較好的實踐經驗,可以作為一個理論基礎,結合我們的實際工作過程與情況,調整優化。當然也有很多個人覺得過時的知識,比如J2EE、SOA架構,并沒有特別花時間,主打就是考就看運氣拿分。
總結與反思
首先,是通過了,后續就不需要花時間再去準備考試了。其實,雖然是通過了,但是也沒達到原來預期的目標(玩笑:作為一個資深的開發人員,至少每門都是50+分數)。準備過程與考試過程有做的好的,也有不足的地方:
- [好]在準備階段前期(大概是250415,距離考試一個月左右),就網上先看了下前輩的一些經驗,結合自己的背景情況(每個人的情況都不一樣,有的是應屆生,沒什么項目經驗,有的甚至不是研發的同學),規劃好了學習計劃、學習資料,后續也是嚴格按照計劃執行,在考試前也是達到了預期的狀態。
- [好]不只是為了考試,同時在學習過程中也關注對自己工作有提升的內容,比如需求管理的一些活動,對比工作我是否有做到,哪些是我能采用的。再比如軟件成熟度模型,我們現有的產品做到了哪一層,做到“優化級”成熟度我們還需要做到哪些點,如何做到這些點(雖然綜合知識只考到了一道選擇題,成熟度分為幾層,秒選5)。再比如我們的項目迭代開展過程,和敏捷Scrum有什么優缺點,是否可以結合Scrum的一些機制和流程來優化我們的價值觀和流程。
- [好]積極的做筆記與回顧,做了多年的真題(總結出可能哪些是考試的重點),論文針對過年五年的題目,預測過(個人預測的是安全架構,如何實現一個安全的軟件,但是沒考到)并提前寫過并進行針對性修改和優化。
- [壞]第一次參加高級,對于時間的把控不是特別好,早上考兩門綜合知識與案例分析,沒有仔細看過什么時候可以考案例分析,綜合知識選擇題基本是可以提前完成的,提前交卷之后我就趴在那里休息了。后來看到其他同學都寫完案例分析的第一道題了,我才發現原來能考了,本次的案例個人覺得有點偏(和以前四年的試卷相比),頓時慌了,也就造成了此次案例分析分數較低(個人覺得是過不了的,估計大家都低,被撈上來的)。
備考方案
結合我自己本次的備考經驗,主要從備考思路、時間安排、個人認為的考試重點、備考資料
備考思路
- 不要裸考,不要裸考,不要裸考,裸考能過就是平時的積累夠多+運氣,軟考一部分知識是偏理論的,工作過程中我覺得沒有學習過相關的,我覺得是很難一次性考試通過的。高級的報名費從200出頭漲到300塊,個人覺得稍微花點時間,通過的幾率增加,并且能在過程中有所收獲,才不會浪費考試費用。
- 只是45分就過關,不要想著所有的知識都要會,一定要關注哪些是重點,大概率會出現,自己能拿分。比如計算機的一些內存管理計算、數學題(比如24年上的第9題,線性規劃最優解)、項目規劃最短時間、網絡(如信號頻率)等,我就戰略性放棄了,在這些可能只會在綜合知識出現一道題的內容,考到看運氣,否則需要花費大量的時間,還不一定能做對。
- 綜合知識: 考的知識點基本每年都差不多,比如基本都會考英語題(大多數是軟件與架構或者數據存儲相關的)、都會考軟件著作權和商標相關的知識保護,大概率會考DSSA、構建、軟件架構復用、架構風格、設計模式、耦合與內聚(本次25年上就考到了)、UML2.0消息等,寫一遍歷年真題,對高頻出現的內容進行學習。
- 不要特意為案例分析和論文花特別多的時間,案例分析和論文不像綜合知識,考點都是固定的。案例分析中第一題比較固定,質量屬性填寫或選擇、場景適合的架構風格優缺點,基本有一道是嵌入式或硬件相關的,也有出現web系統、大數據、數據庫和Redis等相關的題真題寫一遍,剩下就看緣分了。25年上考到了知識圖譜的實體關系、采用的存儲以及爬蟲架構,redis的主從流程。
- 論文: 論文可以形成自己的一個框架,摘要怎么寫,正文開頭如何介紹背景、項目功能,如何解答論文題目中的問題,在實際中的項目中如何運用,如何寫結尾,對項目成功進行總結,以及還有哪些未完善的,未來如何改善。題目的話,可以準備一些熱門的內容,如云計算、負載均衡、安全架構、微服務、可靠性設計、高維護性設計、軟件系統測試等。25年上考到的是負載均衡(什么是動態負載、靜態負載、場景負載)、AI結合測試(我選的是它)、事件驅動架構、多模態數據庫及應用。考試前一定要自己練習過,可以讓ai或者對比范圍修改,不要第一次寫論文出現在考場上。
- 案例和論文都需要背誦一些專業的解釋,比如問xx在軟件需求分析和設計階段的作用或xx在架構上的作用,做好能回答出來什么是需求分析、設計階段的目標、架構是什么,不僅顯得回答更專業,也可以湊點字數。
考試重點
個人見解,僅供參考,就沒分類了。
- RUP統一過程模型
- 數據庫范式
- ABSD模型:基于架構的軟件開發模型
- ATAM: 架構權衡分析方法
- UML建模
- CMMI軟件成熟度模型
- Mysql與Redis
- 面向對象建模、編程: 用例之間的關系、類之間的關系
- DSSA 特定領域軟件架構
- 耦合與內聚
- 設計模式
- 軟件建模
- 軟件設計
- 軟件架構
- 軟件架構風格
- 敏捷開發與scrum
- 質量屬性
時間安排
需要結合自己的情況,
-
備考規劃(1-3天): 考慮好自己可以花多少時間投入,決心,備考策略,形成備考方案和計劃、,如可以投入很多時間、開發經驗較少的同學,買課,看視頻慢慢學習可能是不錯的方式。但是對于有開發經驗的同學,更推薦看書,寫真題,額外準備論文的擴展知識內容。
-
綜合知識學習(1-2周): 先學習一遍綜合知識的內容。
-
真題(1周): 學習過綜合知識后,可以寫一遍20年-25年的真題,對認為重要的,但是還薄弱的點進行強化學習。做完真題,其實已經過了一遍綜合知識、案例分析、論文了。
-
論文準備(1周):
- 對歷年真題,自己構思答題思路,不需要都寫論文,看看思路和范文是否對應(沒完全對應也沒關系,答題點是對的,都能得分)。完成在這個階段,應當具備看到題目,能快速形成思路和回答大綱的能力。
- 在小紅書或者相關論壇上看看對論文的題目預測,看看是否自己是否能寫。最后挑選幾篇,實戰寫下論文,并進行修改,在這個階段最重要的是形成自己框架和套路,能保持論文整體的連貫,節約體系構思的時間來更好得回答問題。實際了解到很多同學考試的時候,都沒辦法做好論文的連貫性和條理,臨時在那邊湊字數,本次雖然分數不高,但是在1個小時20分鐘內完成(不記得是2500還是更多的字了)。
備考資料
- 書: 《系統架構設計師備考一本通(第二版)》、《軟考論文高分特訓與范文10篇-系統架構設計師》、《系統架構設計師真題精析羽模擬試卷》,大概100塊錢
- 希賽題庫-每日一練 免費
- github高start:system-architect,要錢 18塊左右,來源不詳,但是我沒看過視頻,只看過一些備考心得