蠻有趣的詞:「低代碼」。
簡單的說,原本要完成一件事需要 programmer 寫的程式碼量,因為一些解決方案而有機會讓不太懂寫程式的人,透過設定或簡易一點的方式來完成一些代碼的設定,就能看到讓人「驚艷」的成果。
註:這個驚艷通常有一定的比例來自於「不懂寫程式的人」能做出「這樣的成果」
這一篇文章提到的低代碼是行業毒瘤,裡面一些論述點我蠻有共鳴的(有一些則是覺得並非該強調的重點),但這的確是個該留意的議題。
其實用 programmer 去寫程式完成某一項工作的成本是不低的。只是大家在這一行,身為這個角色,會覺得這不難,卻忽略了一樣的時間你可能可以創造更多其他的價值。(價值優先) 這也是類似 design thinking 中為何要用低成本先驗證可行性與價值的概念。
拉回來主軸,我自己過去對「低代碼」這類的擔憂,最常見的就是 Robot framework VS cucumber.
如果 enterprise application 產品夠大、夠複雜、夠重要,那其對應的自動化測試(尤其是 end-to-end)肯定也是同樣產品量級的測試系統。
與其總是想著讓一堆不會寫程式,尤其是「不願意學」寫程式的人,能用哪些方式少寫一些測試程式,最終付出的代價是,前期投入的成本都將毀於一旦。因為當產品越來越複雜時,測試程式也會越來越複雜。
甚至測試程式還會依賴許多 “DevOps” (developer + operation 的工作範圍)都得碰到的相關內容,例如用 docker 起一座 redis,例如怎麼清理與初始化測試資料。
越不想碰程式碼,最後就會一直繞路,或是把一些「限制」視為理所當然。那些事情對 developer 來說,可能就是平時的工作之一,但對不諳程式的測試人員來說就是天方夜譚。
越是這樣把職責角色分開的組織,他們的開發人員往往越是覺得測試是測試人員的工作,他們就是負責把關(甚至覺得他們是專門找碴的),我的工作是負責開發,不是測試。如果我去寫測試程式,那誰要開發?
所以退10步來看全貌,我們很常讓不會、不愛、不想寫程式的測試人員,試著去自動化測試。我們讓會寫程式的人員,覺得測試是測試人員的事,開發人員只要想辦法在時間內做完功能交付(往往品質低落)。
而我們真正希望的目標是產品交付能有比較好的品質,產品交付速度不會因為規模而導致交付時間冪次上升。
讓真正的「測試」人員(不是做那種已知的 check/validation)去做那些未知的、發散思維的探索,甚至讓他們結合 UX/UI 找到更好使用產品的動線與方式,讓他們產出並指導其他人來進行這些已知的 check 動作自動化(最好他們也願意參與、動手自動化的過程),讓開發人員有認知:產品就是我們的小孩,品質跟功能都是我們要 cover 的,開發跟測試是一體兩面的,我們對測試思路與角度的短板,團隊中能有專業的測試人員來互補。
我們能在開始動手開發功能之前,知道這樣的功能是為了給
1.「怎樣的使用者」
2.「解決怎樣的問題」
3.「帶來怎樣的好處」
而這樣的功能提供使用者「哪些使用的情境與方式」。
當我開發完功能之後,我至少能模擬出來各種使用者會碰到的使用場景,功能要如預期般運作。(白話一點,簡單一點,就是問後面把關的測試人員,如果這個功能做出來,你會測試那些東西、怎麼測,再把他講出來的內容,思考哪些動作跟環節可以自動化,這是一個合作的過程,往往因應搭配自動化,會需要微調他們的測試方式)
這中間當然就會應用到 #實例化需求,而這基本的概念才是 #測試左移 的原型。
議題跑得有點遠了,「低代碼」用對地方,就是事半功倍,用錯地方,就是在基礎建設埋了顆地雷,未來爆掉時付出的代價將相當艱鉅。
怎麼評估用對地方、用錯地方?
第一,核心的部分避免用低代碼思維去貪快走捷徑,總有一天要還的。
第二,讓懂得寫程式的人來決定哪些地方適合用低代碼,也讓他為未來衍生的代價負責。
第三,與商業價值的平衡。如果就是埋一顆地雷可以讓公司活下來,評估有著大量的商業價值值得冒險,那就找專業一點的人埋地雷,讓他評估未來抽換掉地雷時,不會導致整個大樓付之一炬。
—
另外一點就是關於招募的。
招了不想寫程式的人,再來想辦法改變他們,讓他們學寫程式,當然事倍功半。
因為他們不想寫程式,所以找一些低代碼的解決方案,可能是種飲鴆止渴。
就像找了一堆需要被管理的人進來,希望他們能自組織、自我管理,當然就擔心東擔心西。
然後再訂了一堆指標來衡量評估他們是否有認真工作,有產出對應得了薪水的價值。
再聘專門管理工作的管理者來管這些需要被管理的人。
如果源頭就是找到能自我管理的人,會不會省了很多「希望能改變他們」的動作呢?
找了一些不懂也不想,甚至也不會持續自我學習的人進來,然後希望弄點內訓、活動、team building, 讀書會,就希望他們具有團隊學習能力,甚至學習型組織,會不會太樂觀了一點?
學習管理系統具有哪些功能 在 台灣物聯網實驗室 IOT Labs Facebook 的精選貼文
2021年五大科技趨勢深度剖析
2021-01-18 09:09 聯合新聞網 / CTimes零組件
【作者: 編輯部】
2021年已經到來。在新冠疫情的陰霾中,半導體業繼續踩著既定的步伐往前邁進。在2021年,有哪些值得期待的半導體產業趨勢呢?CTIMES封面故事本月份的特別企劃,重點選擇了今年度值得關注的五大科技趨勢,這五大科技趨勢分別是:Open RAN、AI加速、工業數位轉型、第三代半導體,以及數位資訊醫療照護等。且聽本刊編輯部為各位讀者細說道來。
Open RAN
自從蜂窩式網路首次被數位化並展開2G通訊以來,其發展迅速,並且每一代技術的複雜性都在發生變化。近年來,行動網路的資料數據量不斷地增加,並大量支援各類新業務與應用場景,使得接下來的5G系統必須考慮更大的行動數據量與設備連接性。
無線接取網路(Radio Access Network;RAN)的設置,除了必須考量關鍵性能指標要求、網路商業營運能力,還有具備持續演進能力等三大因素之外,全球電信營運業者也希望有機會與第三方設備供應商合作,來推動介面的開放性並走向標準化的制訂,如此才有機會進一步降低設備成本。因此,5G無線接取網路的基礎架構必須走向開放化、虛擬化、靈活性以及與節能等趨勢。
在早期,電信營運商若有基地台建置需求,都必須向傳統電信設備商(例如Ericsson、Nokia、中興、華為等)購買基地台設備。這些營運商總是可以透過一個固定的電信設備供應商來提供其核心網路設備,儘管有效提升了整體的性能,但代價則是降低了來自不同供應商的RAN設備之間的互操作性。結果,使用這樣的解決方案很難將無線電和基頻元件供應商整合在一起。
到了接下來的第五代行動通訊系統(5G NR),將開始導入O-RAN(Open Radio Access Network)網路系統。透過O-RAN這樣的開放架構,未來營運商可跳過傳統電信設備商,直接向硬體設備業者(如廣達、中磊這類廠商)採購電信設備,除了有利於創建高靈活性的下一代無線網路,台灣資通訊廠商更有機會切入此傳統封閉的電信設備系統,建構出一套新的商業模式。
O-RAN架構以智能和開放的原則為基礎,是在具有嵌入式AI驅動的無線電控制的開放式硬體和雲端,構建虛擬化的RAN。O-RAN聯盟正在將無線電接取網路產業轉變成為開放、智能、虛擬化和完全可互操作的RAN架構。O-RAN標準透過更快的創新,可實現更具競爭力和靈活性的RAN供應商生態系統,而基於O-RAN的行動網路更能有效提高RAN部署和運營的效率。
AI加速
當前防疫所需的非接觸性應用、未來新常態的遠距應用,以及實現永續發展的自動化應用,成了數位轉型策略的重要引子—人工智慧(AI)技術則是主藥,從分析大數據的雲端平台,到即時決策的邊緣終端,凡是數據所在,都會看到AI更顯著地牽引著各大產業質變的動向。
國際數據資訊(IDC)2020年推出的報告預測,全球在AI系統上的支出將加速成長,2019~2024年間的年複合成長率(CAGR)可高達20.1%。因為對企業而言,要在數位轉型的過程中維持競爭力,人工智慧技術佔了部份。
疫情刺激市場快速轉型,AI猛地從產業部署的藍圖要塞上,躍然化為戰場主將,改善實際應用的效率,並推動新興的產業合作模式,將是後疫情時代的發展重點。2021年AI將會加速發展,但如何加速?答案或許可見於兩大面向。
其一,產業將會加速分工,鏈結從資料中心到裝置終端的開發資源。2020年NVIDIA與Arm的併購案就能當作這項趨勢的楔子。
累積多年的GPU研發與應用資源,NVIDA對雲端AI運算的核心技術可說是勢在必得,未來若成功將Arm在行動運算上的廣泛佈局納入麾下,就能在智慧應用普及化的龐大運算架構中,更快速地實現高度整合且易於彈性部署的AI解決方案。
雖說在商業上,這是在整併業務與開發資源,但就技術發展而言,卻是在深化集中式與分散式資料管理的分工模式。AI是改變未來科技開發與應用的首要關口,要加速AI落地,更細緻的產業分工,會是這條轉型之路起點上的一小步。
其二,AI應用將會加速,確切的說,產業將更積極建立AI應用的規則性,這不僅能確立問責AI的機制,實現負責任、可信、可靠的智慧運算(responsible AI),對加速技術普及來說,也至關重要。
AI應用涉及更複雜的軟硬體整合,從演算法的智財權界定、開發規則制定甚至是標準化,到通用或客製專用硬體的開發模式創新,最後是在大小規模裝置上,處理推論與做出決策時的資料可溯性與合法性問題,這些目前都還存在不少潛在疑慮。
2020年我們看到了由G7成員國提出的AI全球夥伴關係(Global Partnership on AI;GPAI)成立,業界亦有微軟、國際標準化組織(ISO)等跨域共組的AI Global非營利組織,還有前身為MLPerf的開放工程聯盟(MLCommons)集結了更多的產業要角,共同推動機器學習技術的開發與應用。
正是有了產業共識,才能延續並穩定這波AI成長的動能,而在2021年,這些針對AI應用的跨國跨界協商與規則訂立將會持續。
工業數位轉型
2020疫戰,不僅改變了人們的生活日常,更極速的驅動了數位轉型及發展。這場全球化的疫情已從根本改變了人們的生活方式,並史無前例的加速了數位生活轉型。從一般生活層面、企業端,到製造業,都正經歷著一波數位轉型的革命。事實上,數位轉型早在疫情之前,各企業早就已經開始陸續佈局,然而疫情的突然到來,讓各企業原本的數位轉型加速進行,一波快速數位轉型的革命,正如火如荼的開展。然而所有的企業都一樣,在數位轉型的路上,總是遇到重重的關卡與挑戰,需要進一步克服。
事實上,不管任何企業,數位轉型都是一段漫長的旅程,例如正在工業4.0的框架下,加速邁向智慧化的製造業也不例外。製造業涵蓋多項設備,正以智慧工廠為目標,並朝向「自主化」的趨勢發展。目前製造業轉型面臨的痛點,包含產線設備效能有限,無法因應新興的與複雜的工作負載;過去部署的設備與新購入的設備整合不易,缺乏即時反應;以及設備、系統的安全性等。
為了解決上述痛點,成功的智慧化解決方案可由四個面向切入,分別是:效能、即時處理能力、資安與功能性安全。這「四大要件」在IIoT的部署中,扮演重要角色,將直接影響各式工業的發展,從工廠自動化、現有工廠設備的整合,到作業負載的整合,以及機器人的應用等。在智能化工廠的自主化發展趨勢中,下列幾點需要特別注意:
●可擴展的計算能力,以省電的方式解決不同的工作負載;
●結合安全性與即時性,避免系統故障或網路受損的潛在風險;
●隨著系統複雜性增加,來自多個感測器(如:視覺、雷達及光達)的感測器融合(Sensor fusion)訊息必須結合機器學習,得出準確及可行的資訊;
●所有硬體皆須透過整體性的規模設計,以運行自主系統所需的複雜工作負載,並同時具備高效能以進行商業部署。
第三代半導體:SiC & GaN
第一代半導體是矽(Si),第二代是砷化鎵(GaAs),目前市場所談的第三代,則是碳化矽(SiC)和氮化鎵(GaN)。
第三代半導體有什麼不同?其最主要的特點,就是在「寬能隙(Wide Band Gap)」上。能隙是一個基礎的物理學原理,主要用來研究電子運動的現象,其所產生的效用就是導電性的差異。能隙越寬,電子越不容易越過,當然也就越能承受高電壓的系統應用。
所以跟傳統的矽材料相比,使用寬能隙材料的半導體產品,就展現出對於大功率系統和較高溫的環境有良好的適性,並實現了更好的能源轉換效率,以及更高的穩定度與可靠性。
而基於先天材料上的體質優勢,採用寬能隙材料的半導體元件,並不需要太多其他的輔助設計,例如散熱等,因此也有助於減少裝置的體積,達成輕量化的系統。
上述這些特色正好符合了當前產業趨勢的需要,例如電動車、再生能源、工業4.0、5G等,這些應用的最大特色就是採用高功率的電路設計,也因此使用寬能隙材料的元件就受到市場的青睞。
目前全球主要的電源元件供應商都已陸續布局了碳化矽和氮化鎵的方案與產能,尤其是這類元件的材料製作的成本較高,產能十分有限,現在幾乎已成了兵家必爭之物。一線的大廠更是透過策略聯盟,或者收購的方式,來確保自家的產能。
像是英飛凌(Infineon)除了與Cree達成SiC晶圓長期供貨戰略協定外,近期也與GT Advanced Technologies(GTAT)簽署碳化矽(SiC)晶棒供貨協議;意法半導體則收購了瑞典SiC晶圓製造商Norstel AB,不久前也與羅姆集團旗下的SiCrystal GmbH,簽署了長期供應SiC晶圓的協定。
台灣的晶圓供應商環球晶,日前則公告了將收購Siltronic AG,以強化在GaN和SiC的製造能量;世界先進經過了多年的研發後,目前已逐步量產了GaN的產品。
依據半導體市場研究機構Yole的分析報告,採用SiC電源元件的裝置,在2021年將有25%的年成長率;2023年則將達到44%;2025年則會進一步增加至50%的年成長。
數位資訊醫療照護
在2020年COVID-19疫情重創全球經濟態勢之際,防疫科技和醫療照護產業相關的人力、技術及產品的需求都很迫切,也讓個人智能健康照護與數位照護服務系統的成效倍受矚目,例如其中的醫用輔助軟體、生理偵測系統及遠距問診等設備促進個人健康品質及管理的產品,正促進數位資訊醫療發展。
資料來源:https://udn.com/news/story/6903/5177162
學習管理系統具有哪些功能 在 李開復 Kai-Fu Lee Facebook 的最讚貼文
分享好文,中學生要學電腦嗎?
作者:創新工場CTO、人工智慧工程院執行院長 王詠剛
文章来自半轻人微信公众号(ban-qing-ren)
………………………………
朋友的孩子高中剛畢業,已拿到美國頂尖大學(非電腦專業)的錄取通知。疫情影響,不知何時才能去學校報到。孩子想抓緊學習一下程式設計,為大學打好基礎。這孩子找我聊了一個多小時,從如何學程式設計,聊到非電腦專業和電腦專業的路徑差異,又聊到如何從不同角度認識電腦與程式設計。聊得比較寬泛,不知是否對這孩子有用。
回想我自己的高中時代:那時雖迷戀程式設計,卻完全沒有懂行的人指導。在我們那個四線城市的廠礦中學裡,開設電腦興趣課的老師知道的資訊還沒我多。我高一時跑到北京中關村逛街,卻完全沒意識到中國第一代頂尖程式師當時就在我身邊的低矮辦公樓裡寫代碼(這話說得並不準確,比如求伯君那年就主要是在珠海做開發),鼎鼎大名的UCDOS、WPS、CCED就出自他們之手……我在當時街邊的一家書店(位置似乎就在今天的鼎好大廈對面)買到了許多種印刷品質極低劣的電腦圖書。用今天的標準看,那就是一批盜版影印或未授權翻譯的國外圖書。可那批書竟成了我高中時代最寶貴的程式設計知識來源。
顯然,我在高中時根本就是野路子學電腦。現在後悔也沒用,當時我的眼界或能觸及的資源就那麼多。如果能穿越回30年前,我該對喜歡程式設計的自己說些什麼呢?這些年,我與世界上最好的一批程式師合作過,也參與過世界上最有價值的軟體系統研發——我所積累的一些粗淺經驗裡,有哪些可以分享給一個愛程式設計的中學生?
【問題1】中學生要不要學電腦?
當然要!
每個中學生都要學。只不過——建議大部分中學生使用“休閒模式”,小部分(不超過10%)中學生使用“探險模式”。
啊?兩個模式?那我該進入哪個模式?⟹請跳轉至【問題2】
【問題2】選哪個模式?
你癡迷電腦嗎?比如,你玩遊戲時會特別想知道這遊戲背後的代碼是如何編寫的嗎?再比如,就算老師家長不同意你學電腦,甚至當著你的面把電腦砸了,你也要堅持學電腦嗎?如果是,恭喜你進入“探險模式”⟹請跳轉至【問題200】
你對數學有興趣嗎?比如,你看到街邊建築的曲線,就會在腦子裡琢磨曲線對應的函數或方程嗎?每當手裡攥著幾粒骰子,你就會不由自主地計算概率嗎?如果是,歡迎進入“探險模式”⟹請跳轉至【問題200】;當然,如果有些猶豫,也可以先進入“休閒模式”⟹請跳轉至【問題100】
即便你對電腦和數學興趣不大,家長、老師還是強烈建議你學電腦嗎?就算你一百個沒時間一千個不願意,家長、老師還是會逼著你學電腦嗎?如果是,建議你主動進入“休閒模式”並向家長、老師彙報說“我已經按照前谷歌資深軟體工程師的專業建議在認真學程式設計了”⟹請跳轉至【問題100】
其他情況,一律進入“休閒模式”。⟹請跳轉至【問題100】
【問題100】休閒模式 | 主要學什麼?
“休閒模式”將電腦視為我們生活、工作中的必備工具,主要學習如何聰明、高效、優雅地使用計算設備。這裡說的計算設備,包括所有形式的電腦、手機、遊戲機、智慧家電以及未來一定會進入生活的自動駕駛汽車。
什麼什麼?你已經會用電腦、會玩手機、會打遊戲了?別著急,慢慢往下看。
【問題101】休閒模式 | 我會用搜尋引擎嗎?
我知道你會用百度搜習題答案。但,習題答案不是知識。你會用搜尋引擎來搜索和梳理知識嗎?請試著用電腦和你喜歡的搜尋引擎來解決如下兩個問題:
(1)圓周率𝜋的計算方法有多少種?每種不同的計算方法分別是由什麼人在什麼時代提出的?借助電腦,今天人們可以將圓周率𝜋計算到小數點後多少位?將圓周率𝜋計算到小數點這麼多位元,一次大概需要花掉多少度電?
(2)全球大約有多少個廁所?在發展程度不同的國家,分別有多少比例的人可以享用安裝了抽水馬桶的衛生廁所?為什麼比爾·蓋茨曾大力推動一個設計新型馬桶的研發專案?比爾·蓋茨的公益組織在這個專案上大約花費了多少資金,最終收到了多大的效果?
如果你沒法快速得到上述問題的全部答案,那就給自己設一個小目標:一個月內,學會用搜尋引擎系統地獲取、梳理一組知識點的全部技巧。
【問題102】休閒模式 | 接下來學什麼?
建議學好典型的工具軟體。比如,我知道你會用Office了,但用Office和用Office是很不一樣的。對生活、學習、工作來說,學好、學透一個工具軟體比鑽研程式設計技巧更實用。
你會用Excel來管理班級公益基金的預算和實際收支情況嗎?
你會用Excel做出過去20年裡全球大學排名的演變趨勢圖嗎?
你會用Word排版一篇中學生論文嗎?論文中的圖表和最後的參考文獻部分該如何排版?
你會用Word編排一份班級刊物,包含封面、扉頁、目錄、插圖頁、附錄、封底等部分,可以在列印後直接裝訂成冊嗎?
PowerPoint呢?你有沒有研究過蘋果公司發佈會上那些幻燈片的設計?當約伯斯(多年以前)或蒂姆·庫克站在幻燈片前的時候,他們的演講思路是如何與幻燈片完美結合的?
還有哦,別忘了學學如何為數碼照片做後期,如何用電腦或手機剪視頻,如何為剪輯好的視頻配字幕,如何將照片、音樂、視頻等素材結合起來,做出一段吸引人的快手/抖音短視頻。
最後,抽空玩玩那些設計精妙的遊戲吧,比如《紀念碑穀》、《塞爾達傳說:曠野之息》之類;同時,遠離那些滿屏廣告,或者一心騙你在遊戲裡充值花錢的垃圾。
【問題103】休閒模式 | 不學學知識嗎?
當然要學知識。下面每種實用的電腦知識都夠大家學一陣子了。
(1)色彩知識:你知道同一張數碼照片在不同品牌的手機螢幕上、不同的電腦螢幕上、不同的智慧電視上顯示時,為什麼經常有較大色差嗎?你知道有一些色彩只適合螢幕顯示,不適合列印輸出嗎?你知道軟體工具裡常用的RGB、HSL之類的色彩空間都是什麼意思嗎?如何在設計PowerPoint幻燈片時選擇一組和諧美觀的色彩?
(2)字體知識:你知道什麼是襯線字體,什麼是無襯線字體嗎?你知道網頁中常用的英文字體都有哪些嗎?你知道商務演講時最適用于幻燈片的英文字體有哪些嗎?你知道電腦和手機常用的黑體、宋體、仿宋體、楷體等中文字體分別適合哪些實際應用場合嗎?你會將不同字體混排成一個美觀的頁面嗎?
(3)網路知識:你知道5G是什麼嗎?你知道5G和4G在通信頻寬、通信距離上的具體區別嗎?你知道什麼是路由器,什麼是防火牆嗎?你知道如何配置路由器,如何配置防火牆嗎?微信或QQ聊天時,對方發的文字、語音或視頻是如何傳送到你的手機上的?
(4)應用知識:淘寶中搜索得到的商品資訊是從哪裡來的?商品是按什麼方式排序的?為什麼購物APP經常會推薦給你一些曾經買過、看過的商品?你知道如何為自己建立個人網站嗎?你知道如何管理微信公眾號嗎?
(5)安全知識:你知道網路上的釣魚攻擊是怎麼回事兒嗎?你知道什麼是電腦漏洞嗎?你知道駭客為什麼想把一大批受攻擊的電腦變成可以遠端操控的傀儡機嗎?你知道為什麼現在很多手機APP都要通過短信發送驗證碼嗎?如果驗證碼被壞人截獲,你會面臨哪些風險?
這裡只是舉例。實用的電腦知識還有很多。大家可以自己發掘。
【問題104】休閒模式 | 我需要學程式設計嗎?
可以學,但不是必須。即便學,也只需要根據自己的需要,學那些最能幫你解決現實問題的部分。
【問題105】休閒模式 | 我該學什麼程式設計語言?
在“休閒模式”裡,電腦就是工具,程式設計也是工具,夠用就好。學什麼程式設計語言,完全看你想要電腦幫你做什麼。
• 如果你想對資料處理有更多自主權,那不妨學學Python;
• 如果你想做簡單的交互演示程式,那就先把JavaScript學起來;
• 如果你想更好、更快地寫論文,那不妨學學LaTeX(什麼什麼,LaTeX不是程式設計語言?你太小看LaTeX了);
• 如果你想學做簡單的手機APP,那麼,Android手機就學Java,蘋果手機就學Swift好了;
• 如果你只想知道程式設計是怎麼回事,那……從Python或JavaScript開始就行。其實,跟五六歲的小朋友一起學學Scratch圖形程式設計也不錯。
【問題106】休閒模式 | 我需要學人工智慧嗎?
在“休閒模式”裡,最需要學的不是“人工智慧的實現原理”,而是“什麼是人工智慧”,以及“人工智慧能做什麼,不能做什麼”。
• 在手機上試一試,人工智慧做語音辨識時能做到什麼水準?哪些話容易識別,哪些話不容易識別?
• 打開機器翻譯軟體,試一試哪些資訊翻譯得好,哪些資訊翻譯得不好?
• 手機上的拍照軟體一般都有人臉識別功能。試一試人臉識別在什麼場景下做得好,什麼場景下做得不好?
• 找一部講人工智慧的科幻電影,用自己的判斷解讀一下,電影裡哪些技術有可能成為現實,哪些技術存在邏輯矛盾。
【問題107】休閒模式 | 推薦什麼參考書、參考文獻?
書不重要,豆瓣評分7分以上的電腦應用、程式設計甚至科普類圖書都可以拿來翻翻。
直接在知乎裡搜索你想瞭解或學習的知識點可能更有效率。
如果你意猶未盡,覺得自己剛活動開筋骨,還想挑戰更高層次,歡迎進入“探險模式”。⟹請跳轉至【問題200】
否則,“休閒模式”到此結束。⟹請離開此問答
【問題200】探險模式 | 主要學什麼?
“探險模式”需要有挑戰精神。電腦科學的世界技術演進快,脈絡複雜,要想在探索時不迷路,你得通過有順序、有系統地學習電腦知識,慢慢構建出一張可以在未來幫你走得更遠的思維地圖來。
在“探險模式”裡,電腦就不止是一件能快速計算的工具了。電腦更像是我們大腦的一種延伸。這既包括認知能力的延伸,也包括認知邏輯的延伸。隨著學習深入,大家會逐漸體會到電腦所具有的多維度能力:
電腦是一種可以表示不同類型資訊(數、符號、文字、語音、圖像、視頻、虛擬空間、抽象邏輯)的“資訊管理機”;
同時,電腦也是一種可以連續執行指令以完成特定的資訊處理任務的“指令處理機”;
同時,電腦還是一種可以在知識與邏輯層面完成特定推理任務的“知識推理機”;
同時,電腦也是一種可以從人類給定的資料或自我生成的資料中總結規律,建立模型,自主完成某些決策的“智慧學習機”。
“探險模式”的目標就是盡可能準確地認識電腦,掌握有關電腦運行的最基本規律。有了這些基礎。未來在大學期間或工作中,你就能更容易地設計電腦軟硬體系統,或是設計出碳基大腦(人類)與矽基大腦(機器智慧)之間的最佳協作方案。
【問題201】探險模式 | 我的英語水準足夠嗎?
蘋果每年秋季的新品發佈會,不加字幕的話,你能聽懂多少?
能聽懂大部分:建議在學習電腦的過程中,盡可能使用英文教材、英文文檔。
能聽懂小部分:建議將原來準備學電腦的時間,分出一部分來學英語。
只能聽懂“你好”“再見”之類:⟹請離開此問答。然後,把原來準備學電腦的時間用於學英語,六個月後再回來。
【問題202】探險模式 | 我的數學水準足夠嗎?
如果你是數學和數學應用小能手——較複雜的數學問題總能快速找到核心思路,或快速簡化為簡單問題;很容易就能將抽象概念映射到具體的數學圖形,或將數學問題與相應的現實問題關聯在一起:請繼續探險之旅。
如果你應付正常數學課程感到吃力:建議將原來準備學電腦的時間,分出一部分來學數學。
如果你還搞不清楚什麼是方程、函數、集合、概率……:⟹請離開此問答。然後,把原來準備學電腦的時間用於學數學,六個月後再回來。
【問題203】探險模式 | 為什麼強調英語和數學?
(1)統計上說,最好的電腦參考資料大都是英文寫的,最好的電腦課程大都是用英文講的,最新的電腦論文大都是用英文發表的。
(2)函數、方程、坐標系、標量、向量、排列組合、概率這些中學數學裡會初步學習到的數學知識,是電腦科學的基礎。
【問題204】探險模式 | 電腦知識那麼多,正確的學習順序是什麼?
最重要的順序有兩個。建議先從順序一開始,學有餘力時兼顧兩個順序。
順序一:自底向上,即,自底層原理向上層應用拓展的順序。
電腦原理的基礎知識:
為什麼每台電腦(包括手機)都有CPU、記憶體和外部設備?
(馮·諾依曼體系結構的)記憶體中為什麼既可以存儲資料,也可以存儲指令?
CPU是如何完成一次加法運算的?
程式設計語言的基礎知識:
資料類型,值,變數,作用域……
語句,流程控制語句……
過程、方法或函數,類,模組,程式,服務……
編譯系統的基本概念:
電腦程式是如何被解釋或編譯成目標代碼的?
演算法和資料結構的基礎知識:
陣列,向量,鏈表,堆,棧,二叉樹,樹和圖……
遞迴演算法,排序演算法,二叉樹搜索演算法,圖搜索演算法……
應用層的基礎知識:
為什麼電腦需要作業系統?設備驅動程式是做什麼的?
網路通信的基本原理是什麼?流覽器是怎麼找到並顯示一個網頁的?
資料庫是做什麼用的?
虛擬機器是怎麼回事?
人工智慧系統的基礎知識:
先熟悉些線性代數、概率和數學優化的基礎知識。
什麼是機器學習?從簡單的線性回歸中體會機器學習的基本概念、基本思路。
什麼是神經網路?什麼是深度神經網路?為什麼神經網路可以完成機器學習任務?
如何使用PyTorch或TensorFlow實現簡單的深度學習功能?
順序二:自頂向下,即,自頂層抽象邏輯向下層具體邏輯拓展的順序。
• 電腦的本質是什麼?
• 什麼是圖靈機?什麼是通用圖靈機?
• 什麼是讀取﹣求值﹣輸出迴圈(Read–eval–print Loop,REPL)?
如何用自頂向下的方式理解(解析、解釋、編譯)一段程式碼?
• 靜態語言和動態語言的區別?
如何理解變數與資料類型之間的綁定關係?
• 什麼是函數式程式設計?
程式設計語言中,函數的本質是什麼?
函數為什麼可以像一個值一樣被表示、存儲、傳遞和處理?
• 什麼是物件導向?
類的本質是什麼?
如何用物件導向的方式定義個功能介面?
如何依據介面實現具體功能?
• 什麼是事件驅動?
什麼是事件?事件如何分發到接收者?
如何在事件驅動的環境中理解代碼的狀態和執行順序?
【問題205】探險模式 | 如何提高程式設計水準?
在掌握基本知識體系的基礎上,學好程式設計只有一條路:多程式設計,多參加程式設計比賽,多做程式設計題,多做實驗項目,多找實習機會——其中,能參與真實專案是最有價值的。
【問題206】探險模式 | 該從哪一門程式設計語言學起?
我個人推薦的程式設計入門語言(可根據情況任選):
Python
Java
Swift
C#
JavaScript / TypeScript
Ruby
……
可能不適合入門,但適合後續深入學習的語言:
C
C++
Go
Objective-C
組合語言
機器語言(CPU指令集)
Shell Script
Lua
Haskell
OCaml
R
Julia
Erlang
MATLAB
……
【問題207】探險模式 | 如何選參考書和參考資料?
(1)強烈推薦的參考書和參考資料:
• MIT、Stanford、CMU、UC Berkeley這四所大學中任何一個電腦專業方向使用的教學參考書或參考資料。網上可以查到這些學校電腦專業方向的課程體系,有的學校甚至公開了課程視頻。其中往往會列舉參考書和參考資料連結。
• 維琪百科(英文)上的數學、電腦科學相關條目。
• Github上star數在1000以上的開原始程式碼和開來源文件。
(2)強烈推薦但須小心辨別的參考資料:
知乎上的數學、電腦科學相關條目。使用時需要格外注意三件事:
儘量只看高贊答案或高贊文章;
辨別並避開廣告軟文;
辨別並避開純抖機靈的故事或段子。
Stack Overflow上的程式設計問題解答:
自己動手實驗,辨別解答是否有效。
CSDN上的程式設計問題解答:
自己動手實驗,辨別解答是否有效。
(3)其他推薦的參考書和參考資料:
國內專業作者寫作的專業技術書籍(豆瓣評分7分以上的)。
大廠(Google、Facebook、Microsoft、Amazon、阿裡、騰訊、百度、頭條等)資深工程師的技術公號、專欄、博客等。
著名圖書系列:如O’Reilly的動物封面的系列圖書(請注意最新版本和時效性)。
國內翻譯的著名技術圖書(譯本在豆瓣評分7分以上的)。
(4)儘量避免的參考書和參考資料:
• 已經過時的圖書或參考資料。
• 作者或譯者人數比章節數還多的專業圖書。
• 百度百科上的數學或電腦科學相關資料。
什麼什麼?你這篇問答居然沒有推薦一本具體的圖書?是,沒錯。如果你覺得即便有了上面的線索,自己還是找不到好書好資料,那也許你還是適合“休閒模式”⟹請跳轉至【問題100】
學習管理系統具有哪些功能 在 開始使用Facebook 企業管理平台:免費指南。 的推薦與評價
這項工具有哪些功能? 集中建立並管理多項資產,例如Facebook ... 如果您不是粉絲專頁的管理員,系統會傳送通知給現任粉絲專頁管理員,請管理員批准您的認領申請。 ... <看更多>
學習管理系統具有哪些功能 在 簡介5個常用的學習管理系統(LMS)[VLE/Edmodo/Schoology ... 的推薦與評價
... <看更多>