首頁>科技>

前言

本篇緊承《互聯的圍城,已春暖花開,我卻心向羅盤荒野》,是為讀者奉上內功秘籍的開篇誠意之作,為非IT人士踏上IT之路提供務實的指引,適合學生、職員、更適合半途步入程式設計路的學習者,MyPlace安全生產框架的二次開發者,IT投資規劃人員,以及其他感興趣的人員。

內容概要:非IT人士是否需要掌握程式設計技能,掌握到何種程度,入門原則,挑選入門工具,開啟編碼武德之旅。

第1章 非IT需要掌握程式設計技能嗎?

當今已是被雲計算、大資料和AI包裹的高科技時代,生活、工作學習中處處都在與程式碼打交道。比如快遞、點餐、雲音樂、移動支付,社交動態等。只不過普通使用者是透過圖形介面與程式碼進行互動,只關心輸入和反饋的結果,並不需要關心複雜的程式碼執行機制。那還需要程式設計嗎?如果將自己定位為普通使用者,自然無需花費心力去了解複雜的機器世界,瞭解淺層的使用常識即可。如果您是職場人士,又亟待提升職場核心競爭力,那就有必要了。

不進則退,是今後時代的主節奏若是一無所知,實為退,必然導致兩個極端:要麼迷信科技,要麼逃避科技對科技缺乏足夠客觀的信任,是危險的。

1、適當掌握程式碼原理,有助於走出舒適圈,更全面地瞭解科技的內涵。

60年代這輩人是80後的父母輩,他們對家電的進化或多或少感到不適。以前是半自動化,機械式操作面,參與程度高,確定性對他們而言更好。但現在幾乎是全自動化,智慧化,觸控面板+更復雜的單雙擊和拖動。本可更少人工參與,進一步解放人的時間,卻因缺少智慧操作知識(無法區分單雙擊拖動)而無法保證他們想要的確定性,反而回歸原始的手洗操作。低操作的家電尚且如此,更別說智慧手機和上面的五花八門的APP了。

想象一下,如今已是無現鈔交易,無紙化交易的時代,這輩人中已有相當一部分無法適應這些科技的變化,只能在兒孫輩的眼前孤獨老去。倘若現今職場的年輕人,對科技不投入足夠的關注,那麼未來對科技的適應也會像他們一樣:充滿牴觸,孤獨,無助。

2、適當掌握程式碼能力,有助於建立客觀的科技價值觀,讓自己更易明辨眼前的世界。

和老一輩相比,80以後的年輕輩對科技的適應能力則更強。股票、期貨早已見怪不怪,甚至對比特幣這樣的虛無的資產也能玩得嗨。1朋友對比特幣的稀缺性和安全性堅信不疑,對其增值性更是極少質疑,最近幣市的瘋狂更是助長了其堅定性,到處不計代價買買買。殊不知,高科技騙子正是打著科學的旗號到處招搖撞騙。

凡是貼上科學標籤,就給予無條件信任,這跟封建迷信有何異?還有國內一眾企業大打國產、民族、自主牌,推出1個又1個圈錢的專案,作為投資人士,要上車嗎?筆者就曾遭遇雲計算騙局,三五個在計算機底層能力、數學能力,產品產出能力並不出眾,在借用開源專案卻無任何貢獻的情況下,號稱研發出未開源的專有技術,解決了原本專案中的種種不好。要是沒點行業基本知識,光憑那些亮瞎眼的專業術語和牛逼哄哄的人事關係,這坑估摸就進去了。

還有現在很多廣告,如果不知道流量與廣告的關係,那跟拍腦門有啥區別?類似的還很多,就不一而足了。

3、掌握程式碼能力,不僅能提供與眾不同的思考視角,也能極大提升工作成效。

紙上得來終覺淺,程式碼訓練的不僅是規劃籌謀,考驗的更是落地生花的務實。職場上處處都是PPT,要麼說明工作有遺漏,需要亡羊補牢,要麼就是難落地,需要反覆斟酌。程式碼無法落地就是Bug,它跑不起來。程式碼沒有效率,就是沒反應的假死。程式碼中蘊含的工程思維,兼顧落地與效率,值得工作借鑑。

財經類職業要處理大量的資料,法律類職業需要精細解讀法條和案例,創意類職業需要到處蒐集靈感素材等。隨著分工越來越精細,如何消除重複,壓縮效費比低的工序,就成了職場人士的競賽專案。現在小學生都開始搗騰Python了,職場人士難道還要像在王者榮耀中那樣被小學生虐嗎?

上世紀90年代前後,辦公還是“筆+紙”的模式,隨著計算機的引入,很快就被“磁碟+鍵盤”給替代。在這期間,政府機關、事業單位、社會團體、國企,甚至私企,都曾廣泛配置過打字員,用以解決輸入問題。現今,早已沒有打字員職業,這不是說輸入變得不重要,而是打字輸入進化成了職業人士的必備基礎技能。未來是智慧化的時代,現在程式設計師職業,會不會像當初的打字員一樣,將程式設計技能再次進化成必備基礎技能呢?

因此,對程式碼這事,我認為至少得有些概念,有些還必須得入門,才能跟上未來的世界。

第二章 非IT程式設計需要掌握到哪種程度?

非IT並不一定需要懂程式設計,這不是一個必選項,而是一個進化的可選項。熟悉成品軟體的使用方法,一樣可以高效作業。既然是非IT,那寫程式碼就不是吃飯的事,而是加菜的事。所以非IT對自己的IT追求要定位清晰,那就是"錦上添花",最終達到"無心插柳柳成蔭"

若要跟科班拼個你死我活,那就是拿自己的非專業與別個的專進行競爭,這叫揚短避長,能有什麼好處呢?所以心態上要樹立"我是非專業的"虛心態度,不爭無謂的強,不好無意的勝。寫程式碼處理問題,那是加分項,重心還是在原來的專業上。

所以,這個程式碼能力,能提供1個觀察或操作的視窗即可。不要一來就上什麼計算機導論,資料結構,C/C++,JAVA等這些專業人士的東東(非IT轉業入IT,那得老老實實走專業化的路,任何走捷徑的行為都會付出代價)。非專業的,咱就按半道出貨的規矩,緊緊圍繞如何解決手頭問題,來思考掌握程度。如果錄製宏就可解決重複問題,那去管COM的實現原理幹啥(自討沒趣),有那時間還不如多去琢磨業務。讓業務問題來驅動IT學習,讓業務需求來決定IT技能的涉入深度,是經驗證非常有效的。

如果你是IT領域的投資分析員,透過自己的程式碼能力能夠洞察技術的變化,幫助甄別那些只Talk,不ShowMeTheCode的欺詐專案。如果你是財經審計的表哥表姐,藉助程式碼能力高效處理表格資料。若你是PPT編輯,藉助程式碼能力展示、傳遞更形象生動的訊號。如果你是投資估值或預算管理員,藉助程式碼能力,能夠更動態地知曉各因素對結果的影響。有的,僅需點選按鈕簡單錄製宏即可,而有的不僅需要了解計算機技術的發展歷史,更需要對當前技術流派,實際商用前景作出詳細的瞭解。甚至,需要對具體的演算法原理進行剖析。

非IT掌握程式設計這事,本是可選,到哪種程度更是因人因事而異。現今社會早已流行“吃肉不必養豬”、"讓專業的人做專業的事",但也正是因為這種過細的分工,導致跨工種溝通異常低效,複合型人才的價值才顯現出來。非IT掌握程式設計與否,以及到哪種程度,要不要將自己打造成複合型人才,就要看自己的進取決心在哪裡了。總之,搭上車,從裡面看外面,那將是別人看不到的風景。

第三章 非IT程式設計上車原則

程式設計寫程式碼,虛構投射現實世界,可謂博大精深。專業戶苦攻十年尚且不能成精,更何況非IT人士。若按專業學習的路數,時間、精力和專注力維持度,專業英語等,樣樣都是攔路虎。倘若處處碰壁,滋生挫敗感,誰還乾的了啊!程式碼的自我教育,也要注重循序善誘,時不時用小小的成就感獎勵自己。所以,要搭的這個車得選好。下面是筆者數十年來血淚的總結,望讀者們能少走彎路。

1、門檻低,易上手

對非IT人士而言,這是最重要的。不需要IT4年本科那樣的精心準備,在肉眼可見的常識上即可使用。不需要一來就必須熟悉微機原理(知道怎麼開機、使用任務管理器,曉得沒有電池時拔插頭的作用就行了),位運算(我管他咋處理的,要結果就行了),資料結構(有啥用啥唄),演算法(我的想法就是演算法)...點一點,拖一拖,就能成事,是最好不過的啦。

2、容錯高,說人話

學習嘛,試錯在所難免,不要動不動就彈個窗,一把“X”+錯誤號,解釋也是一串英文,想起都頭大,誰還學!你閃下嘛,我哪裡錯了,為啥子錯了,你停到等我改了,你再看下嘛。背後要這樣心胸寬廣的老師,手把手地教,那還怕啥子?生牛都調教會了。這就需要一套極為安全的容錯機制,能兜得住生手的錯,又跟系統交的了差。不要動不動就崩潰呀,藍色畫面啊,成果都沒機會儲存。對生手友好是王道

3、豬隊友,一起坑。

程式碼的自我修養,得有氛圍,菜的多臉才厚,方能不恥下問。因為人的成長量變因子,總來自相似等級的環境中,感知的可達性是最高的,更高環境中的營養不一定能夠得著。所以,有眾多豬隊友一起哈戳戳的分享、討論,一起在坑裡爬摸,是校驗試錯的有效手段。自己的困惑可能就在已知列表裡,快速定位解決之道,是成長蛻變的催化劑。

4、有生態,可伸縮。

IT技術近些年來不斷推陳出新,動不動就被淹沒在歷史大潮中。作為技術的學習者,自然希望所學能經久不衰,經得住沉澱,耐得住深入。對於非IT人士而言,"無心插柳柳成蔭"才有可能。所以,站隊技術陣營,其實是選擇生態的問題。非IT只有依靠已有的生態大樹(不必重複造輪子),方能有小小天地(使用者習慣,市場)。

就技術陣營而言,對非IT其實沒有更多的選擇。你見過用過的系統,對IT的概念從何而來等常識,就可以得出結論。反倒是實現途徑上,上百種開發工具,眾說紛紜。無論哪款,只要是圖靈完備的,可達核心的,那就是可伸縮的。可伸縮意味著,既可小白用,也可大師用,所謂雅俗共賞。待到大師歸來,任督二脈已通,門派之爭無謂。

第四章 非IT如何上程式設計的車?

比較優劣向來富有爭議,以下僅是筆者的建議,一面之詞,請各讀者謹慎採納。更深入的內容請繼續關注後續文章。

首先,按前篇所述,得選技術陣營。

從承載硬體來看,無非服務端和客戶端。服務端不是非IT要玩的,不討論。客戶端則無非移動端和PC端,移動端重在消費而非生產,所以不符合非IT把玩原則(要緊扣業務生產嘛)。非IT上程式設計這趟車,最重要的目的是參與業務生產。將其定位為生產力,這是非IT的初心

當今主流陣營所營造的生態中,Windows無疑是生產力的中流砥柱。儘管蘋果MacOS也有不俗的生產力生態,但畢竟市場狹窄,尤其在國內,蘋果的硬體+微軟的系統比比皆是。很多人的計算機啟蒙都是基於微軟,工作學習中更是全程。因此微軟的Windows是非IT人士當仁不讓的站隊陣營。

其次,就是開發工具的選擇。在這之前,先來弄明白幾個道理。

1、從圖靈完備性上講,當今主流開發工具幾乎都是圖靈完備的,也就是說任何可計算問題都可解決。各大開發工具從底層來看,其實並無多大差異。那麼網路和市場上為何有不同的表現呢?這其實,是針對開發效率,所作最佳化的側重點不同而已,另外專利和市場營銷也是導致差異的重要原因。所以,聽信孰優孰劣,實在無聊,搞清楚各自擅長的場景,幫助選擇更合理的技術路線才是王道

2、對非IT人士而言,桌面應用才是其不二選擇。桌面應用在移動網際網路的衝擊下,一度被市場標榜的很蕭條,孰不知桌面應用正是生產力的中流砥柱。我們每天在電腦上使用的各種軟體都屬於桌面應用。既可寄生,也可獨立。既可單機,也可聯網。既可娛樂,也可嚴肅。能解決實際問題,有用性,具有使用價值才是可信的風向標。

3、微軟Windows強大的後向相容性,從某種程度上保證了沒有所謂過時的技術,也非市場傳言那樣會被拖死。如今已是Win10和64位處理器的天下,但仍然可執行幾十年前16位處理器的程式碼。64位版本對Win32的高度相容機制,更是對Win32開發的有力支援。這些相容是基於市場的,即便是有屠龍一般先進的其他方案,你奪不來市場,那終究是屠龍術而已,更何況微軟也並非止步不前。只要功夫深,擔心被拋棄、被過時,實在是沒必要。

我們再結合前篇的原則,來逐一分析Windows下的開發工具。

1、門檻低,易上手

通觀彙編、C、C++,這些都不是好惹的主,它們為專業人員而生,需要擁有系統的計算機知識,方可駕馭。對非IT來說,門檻太高,不易上手。要說起易用性,不得不提微軟發展歷史上的功臣,VB系列開發工具(VB,VBA,VBS),正是它們才讓程式設計這事得以普及(非理工科職員、學生),也是確定視覺化程式設計標準的先鋒

由於其設計時就旨在降低使用門檻,在行業內常被戲稱為小學生的玩具,其易用性可見一斑。在Office套件中,隨手一點,就可錄製宏程式碼,可以說這算是最早的機器寫程式碼的案例了。對技術細節的封裝,讓入門使用者無需瞭解原理,即可在較高語義層面實現開發。這種成功的容易性,將有助於激發繼續前行的動力。無論從便捷性,還是易用性,VB系列都是非IT步入IT世界的不二之選。

2、容錯高,說人話。

VB的IDE解釋編譯模式,為其提供了強大的語法檢查和錯誤除錯能力。不僅自動高亮顯示,並定位錯誤發生的程式碼塊,而且中文版的出錯、幫助資訊非常易於閱讀。其一邊寫、一邊調、一邊改的能力,所提供的沉浸式開發體驗,更是讓其他開發語言望塵莫及。其執行庫對底層細節進行了層層安全封裝,使得VB異常皮實,任由生手撒歡,而不至於崩潰、藍色畫面。這樣相當於配備了一位心胸寬廣,手把手教的老師,學生可放手探索而不必畏首畏腳。這顯然是其他開發語言所不允許的。

3、豬隊友,一起坑。

VB讓玩家從專業戶普及到了尋常百姓家,也正如坊間傳聞的那樣,大部分VB玩家也都按其設計,停留在了安全使用階段。因此,同質程式碼的案例相當豐富,這給初學者提供了大量的學習素材。可以說,VB很容易達到平均水平。而這個平均水平,可能不足以明白指標、調約、執行緒、訊息等細節,但用以解決業務個案問題已是綽綽有餘。不明覺厲,這是VB的特點

4、有生態,可伸縮

VB作為微軟打天下的先鋒功臣,與系統的關係已屬於血脈級。儘管1998年後,未再提供官方更新支援,但其內在的技術標準仍然在.Net體系下得以繼承。歷代系統版本更是提供原生支援,即便現今已是64位Win10的天下,VB依然健在,堪稱打不死的小強。這源於VB構造的上億的應用生態,他們活躍在生產的田間地頭。然而VB的所有優點,同時也是其缺點。在安全階段,處處優越,也處處受限。

正如某網友所說,VB執行庫,這位媽媽考慮的太多,做了太多,以至於程式碼總是在其掌控下,難以越界。撥開其層層封裝,我們才能看見C中的指標、多執行緒、內聯彙編等特性。然而,這已非入門級所能企及的了。VB是COM的天下,而COM又是系統的基石。深入COM,深入系統,深入硬體,洞察秋毫也!所謂門派,那是弟子們的事嘍。VB的伸縮性,在於提供了這樣的視窗,所謂沉默的學習,其實是不存在的(C/C++,彙編自然都會了),只要深入,專業戶非你莫屬。

總之,非IT人士,選擇微軟嫡系的VB家族,是上車的不二之選。等你上來,就會發現,這是老司機啊,值得擁有哦!

4
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 孩子沉溺遊戲而耽誤學習,誰之過?