入行三年,有啲CLI命令我到而家仲要先諗一諗先打得啱。而且唔係咩冷門命令,係最基本嗰啲:cd、sudo、帶各種參數嘅ls同ll、nano、cat、grep。反而composer、npx、npm、node、php呢啲我學得好輕鬆,因為呢啲係程式員「應該識」嘅嘢。冇人指望我識終端機本身。
喺自行託管呢方面我係自學嘅,而呢個短板就暴露咗出嚟。Cordova Public College教嘅基礎係npm、node同php,對於培養能夠交付代碼嘅開發者嚟講呢個好合理。但佢漏咗底下嗰一層:你實際用嚟打呢啲命令嘅shell本身。SSH就係最明顯嘅例子。我大多數同事除非係系統管理員,否則都唔多掂佢。佢被當成一種專業技能嚟對待,而唔係每個後端開發者都應該刻入肌肉記憶入面嘅嘢。
我一直喺反覆諗緊,呢個到底係AI造成嘅問題,定係本來就一直存在、只係AI令佢更顯眼咗。我估多數係後者。訓練營同電腦科學課程都喺為「最快搵到工作」呢個目標優化工具選擇,而shell命令提示符唔會出現喺作品集網站上。早喺AI可以幫你自動補全繞過佢之前,佢已經係一個門檻。而家只係變得更容易被徹底跳過而已,因為你可以直接問,而唔使學。
呢個星期,一個我真係從來冇用過嘅git命令,令呢個諗法變得更具體:git restore --source= 。
交付代碼三年落嚟,「restore」對我嚟講一直只有兩種意思:撤銷工作目錄入面嘅所有改動,或者回退成個提交。將單單一個檔案拉返去較早版本、而其他一切都唔動——呢個作為一種工作流,我甚至從來冇諗過。我唔知道呢個係因為冇人教過,定係因為我從來冇遇過啱啱逼住我去學佢嘅情況,大概兩者都有。
真正重要嘅部分,亦係我差啲搞錯嘅部分,係提交雜湊後面嗰個~1或~10嘅後綴。如果你指向嗰個提交本身已經包含咗檔案嘅改動,咁樣恢復去嗰個提交本身,攞返嚟嘅仲係你正想逃離嗰個損壞狀態。你要再向前退一步,退到嗰個改動發生之前嗰個提交,而呢個正正係<commit-hash>~1做嘅事。漏咗呢個細節,命令照樣可以順利執行,但咩有用嘅事都冇做,然後你就會帶住「git restore根本唔似大家講嘅咁好用」嘅諗法行開。
呢類基礎知識,過去往往係靠年復一年咁卡住、再自己爬出嚟呢個過程,唔知唔覺中吸收入嚟嘅。AI正以比我哋大多數人意識到嘅更快嘅速度,閂埋呢條「意外習得」嘅路徑。如果下一代開發者可以揀問而唔係學,而且大多數時候真係咁揀,嗰種只有喺卡住、又冇人可問嘅時候先會長出嚟嘅肌肉記憶,又會變成點呢?我哋係咪冇得救喇?
