搜尋
首頁後端開發php教程程式設計師,為未來準備好了嗎?

也許一直在一線的程式設計師們對這個標題呲之以鼻,特別是全端工程師們。這篇文章主要是拋磚引玉,預測一下以後的技術方向。另外,文中可能也有表達不對的地方,歡迎指正。如果只想看未來的部分,可從中間開始看。
電腦產生以後,這個產業的發展日新月異,不停地產生新的技術來解決新的問題。這裡不把電腦語言的更新換代看作技術的變化。電腦程式語言應該算做是規範,除了解決新問題外,有些語言的產生和流行也是有歷史原因的。
從電腦剛產生時,解決的是計算問題。其將許多人花費好幾個月的計算在幾天之內完成。這一代的工程師們更多的在解決硬體問題。程式設計師(或叫做軟體工程師)是將問題翻譯成電腦語言(其實程式設計師做的一直是這個),也就是卡片紙。程式設計師在當時的電腦系統中,應該不算一個核心角色。因為大部分問題和挑戰都在硬體系統、演算法上。
隨著電腦成本的降低,世界大戰後戰爭需求減少,開始大力發展經濟。硬體解決方案的成本問題開始凸顯,於是開始產生了通用計算機。通用電腦逐漸統一了硬體標準,把更多的彈性放到了軟體上。基本模式就是:巨無霸的硬體廠商負責提供運算資源,程式設計師負責解決問題。這時候,程式設計師的春天來了。同時,軟體開發的理論也在不停地發展。隨著各種語言的層出不窮,基本上大家都認可了指令、數據,程式基本流程、函式庫函數等各種計算機的概念。
再往後,隨著電腦的應用的範圍越來越大,挑戰也越來越多了。由於系統複雜性的增加,許多系統已經不是幾位,甚至是數十位程式設計師就能完成的了。 (現今的作業系統、搜尋引擎都是數千甚至數萬人幾十年辛苦工作的結晶)。新的挑戰也來了——軟體工程,如何更有效率、可預期地開發、維護複雜系統。這裡的挑戰包括:如何將傳統的專案管理經驗放到軟體專案管理中;如何讓程式設計師採用各種標準化的程式設計風格;如何建構合適的團隊結構等。這時候,程式設計師的重要性就凸顯出來了,產業鏈中的地位也變高了。縱觀歷史,數萬人以前集中在一起都是進行體力勞動或戰爭。人類從來沒有這麼大規模的將智力集中在一起解決問題。
同時,解決的問題規模和類型也進一步增加。其中,人機互動是一個熱門且有挑戰的方向。輸入上,除了從打字機來的鍵盤外,又發明了滑鼠,顯示,揚聲器等各種人機互動的裝置。程式設計師除了要實現底層的驅動程式碼,在人機互動層面也要實現方便易用的互動體驗。這時候除了演算法和設計等挑戰,還有人體工學、文化上的挑戰。例如,中國人花了很多年,也沒製造出廣泛應用的中文鍵盤和流行的輸入方式,最後還是英文鍵盤 拼音成了最主流的輸入方式。這是漢字本身的特徵造成的,而廣大程式設計師花了大量的人力物力才認識到了這些文化上的規律。另外,網路也是另一個熱門。程式設計師們在底層將電腦連接在了一起,並依靠強大的網路能力實現了人們的遠端溝通。
到了近幾年,又出現了大數據、物聯網等熱門的方向。程式設計師從底層實現大數據的批次、傳輸、存儲,解決了效能、可靠性等各種問題。由於大數據的精確性和完備性通常達不到100%,所以大數據也讓許多程式設計師開始去解決不確定的問題。
別人家的程式設計師一直在解決不同領域、類型的問題。程式設計師的角色開始了分化(同時也有很多角色從程式設計師中分化出來了),從開發、測試,到架構設計、體驗最佳化、前端開發、後端開發、驅動開發、資料庫開發、IT等等數不勝數。縱觀不太長的程式設計師職業史,這些角色也在不停的產生和消失中。這代表著一代一代的程式設計師不是不停的學習,就是從這個產業離開(也沒什麼不好的,好多富翁都是程式設計師變的)。從歷史來看,程式設計師解決的問題,所使用的元件和思考模式都在不停地改變。但也有一些不變的東西,像是程式基本流程、設計模式、軟體工程。所以很多程式設計師在不停的學習新東西,以便能夠解決新問題。
那麼,現在正在、未來會發生什麼變化呢?這裡只想討論一個:人機互動的革命,包括人機互動方式,和人機互動層次兩方面的革命。 (說人話!)好吧,就是Kinect, HoloLens、Cortana帶來的新情況。這類新產品集中在一起,將對現有的人機互動產生顛覆性的革命。一句話概括:未來人們應該花更少的時間學習如何使用科技,程式設計師要花更多時間讓科技適應人,而不是人去適應科技。例如,單輪摩托車不需要學習怎麼在一個輪子上保持平衡,四軸飛行器不需要學習怎麼轉彎、穩定,這都是很好的例子。
1、人機互動方式。人是生活在三維空間裡的,程式設計師們也不停地在各種輸入輸出方式模擬三維空間。首先,顯示器是一個二維的輸出,因此滑鼠和各種觸控方式也設計成了二維的。這裡的二維性除了它們是平面輸入輸出外,它還真的只是個物理的平面…顯示器放在哪裡就在哪裡,觸控要在顯示器上完成,滑鼠也需要在一個平面上完成移動。鍵盤呢?可以說其維度都沒到一維。
什麼是未來的輸入設備呢?它包括全像輸入輸出設備和解放雙手的輸入方式。
(1)、全像輸入裝置。 Kinect這樣的體感、手勢輸入裝置屬於全像輸入裝置。 Kinect很酷,但不得不說這只是全息輸入裝置的雛形。這不僅是因為其不溫不火的狀態,也是本身還有很大的提升空間。一方面,設備本身精確度不夠、使用的範圍不是360度無死角;另一方面後面沒有強大的人工智慧來支援(人工智慧放到互動層次部分講,這裡只講全像輸入裝置)。未來的輸入設備應該是覆蓋整個空間,精確檢測到人的微動作和微表情,甚至能夠檢測到人的健康狀態(安全和隱私是需要考慮的方面)。從單一技術上來說,應該沒有突破不了的難題了,但整合起來製造出完美的設備仍然需要巨大的投入。
(2)、全像輸出設備。全息顯示技術在許多科幻電影裡都示範過了。 HoloLens這樣的擴增實境裝置和各種虛擬實境裝置都屬於全像顯示裝置。這些設備還處於非常初級的階段,但已經帶來了極大的震撼。在物理技術沒有突破之前,這種穿戴式的裝置是全像技術的主要載體。除此之外,還會出現各種味覺、觸覺的設備,這些全部加起來,覆蓋了人的所有感覺器官,就可以稱作全息輸出設備了。
(3)、Cortana一類的語音助理。其最具革命性的一點是進一步解放了雙手(聽起來怎麼這麼耳熟?)。這和人類直立行走的解放雙手當然不能相提並論,但其革命性也是可圈可點的。還是那句話,這類語音助理還在雛形階段,它們的主要挑戰除了語音辨識外,主要是在後文要講的互動層次。 Cortana不像滑鼠鍵盤,一方面需要學習如何使用,一方面還需要到固定的位置或某個固定的姿勢才能使用。現在Cortana雖然要將手機拿起來才能使用,但透過物聯網的進一步發展,是可以進一步發展的。
對程式設計師的挑戰就來了:
(1)、製造、整合出這些設備,甚至發明出新的設備。這些設備需要提供完美的體驗,和人的運動、感官無縫結合,讓人感到自然。
(2)、在較高層次,如何收集模糊、大量的輸入,並轉換成電腦能夠處理的確定指令。和傳統的輸入方式相比,除了空間變成了三維,資訊量也有數量級的增加。
(3)、如何提高輸入的效率、降低學習成本?程式設計師需要考慮的是如何顛覆性的提高輸入效率。這裡不僅是滑鼠和螢幕的座標從二維變成了三維的。想想鋼鐵人是怎麼輸入的?
(4)、如何讓設備輸出最自然的體驗?特別是全息顯示設備,要解決頭暈等問題需要大量的調試和研究的。
(5)、最重要的是:如何用這些裝置建構全新的體驗模式。例如,不同種類的應用應該放在什麼位置,什麼呈現方式?什麼樣的動作操作才是最有效率、最自然的?這些需要一代一代的產品不斷的迭代,才能加深對新體驗的認識,並發揮新一代全像裝置的能力。
2、人機互動層次。目前的人機互動方式上,雖然許多產品號稱體驗非常好,但仍然需要人去適應設備。不僅是輸入輸出的方式,也是思維的方式,目前的人機互動的體驗都有很大的提升空間。
例如,想出去旅遊時,要先研究到底去哪裡,要嘛上網,要嘛聽人說,要嘛去旅行社直接預約。去旅行社當然最省事,但聽不到第一手的體驗,成本也會比較高。如果要自己研究,選地方,確定日期,買機票、飯店,找攻略,過程中要用到很多次搜尋引擎,各種預訂網站,發郵件等。從開始想到基本確定至少要好幾天,中間也好幾個小時使用各種工具。而富豪們呢?也許只花5分鐘就完成了整個過程:告訴助手:想出去玩。助手可能就問問想去什麼樣的地方(也許不是某個特定的地方)?玩幾天?大概什麼時候去?然後基本確定後再回報安排就可以了。這兩個過程之間的核心差異就在於互動的層次。一般人是依賴電腦進行任務層次的交互,而富豪是意圖層次的交互。這就是互動層次的不同對效率的影響。
Cortana這樣的語音助理除了解放了雙手,它也是一個非常自然的輸入方式。這讓程式設計師和科學家開始更多的研究人們語言後面的意圖,從而提高電腦和人的互動層次。
Project Oxford和Azure Machine Learning這樣的開放的人工智慧組件真正把多年實驗室裡的玩具帶給了全世界。這就像當年Siri的發布一樣,雖然它不是最好的,但沒有它,就不會有google now和Cortana的迅速推出。好吧,再來一次:雖然Project Oxford只是個雛形,但是Project Oxford的推出給業界定義了人工智慧組件更高層的介面標準,降低了人工智慧的學習、應用門檻。特別是其中的語言模型。除了人工智慧組件的開放,可以預見由各大公司基於大數據的各種數據模型也會很快共享。基於它們,人工智慧的應用很快就會遍地開花,所有程式設計師都能創造出更聰明的應用,讓每個人都可以有自己的個人助理。如果無法腦補個人助理的價值,請觀看電影《她》(《Her》),看看人工智慧是怎麼幫忙處理電話和郵件的。
另一方面,在這一輪人工智慧的熱潮下,硬體公司也開始製造採用人工智慧演算法的處理器,這也代表著新一代的程式語言和理念的開始流行了。
互動層次方面對程式設計師有更大的挑戰了:
(1)、最大的挑戰就是學習和適應新的程式設計理念。以前的程式都是if..else while這樣的確定性的結構化程序,程式設計師要開始學習如何寫元程式。寫出的程序是可以自己適應個體使用者需求的,而不是寫一段能夠適應所有使用者的程序。程式設計師的程式碼將是方向性的,統籌性的,而不再是細節的堆疊。
(2)、大開腦洞,如何結合全像互動和物聯網等技術提升人機互動層次。幫助人們做事情10步並5步,5步並1步。例如,什麼情況下抬手錶示要喝水,抬頭表示想開燈,甚至無需特定動作;真正幫助人們管理時間,協調日程,而不僅僅是一個日程表。
總而言之,這裡描述的未來可能需要10年、20年或更長。也許我們這代程式設計師已經退出江湖了。熱點將不再是發明各種語言、發現各種工程管理方式和軟體設計模式了,而是科技如何進一步的以人為本,促進生產力發展。對程式設計師的挑戰除了要學習和探索新的輸入輸出方式,還要學會像人工智慧這樣的完全不同的程式設計理念。
免費領取LAMP兄弟連原創PHP影片教學光碟/《細說PHP》精要版,詳情諮詢官網客服:
http://www.lampbrother. net



陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP的當前狀態:查看網絡開發趨勢PHP的當前狀態:查看網絡開發趨勢Apr 13, 2025 am 12:20 AM

PHP在現代Web開發中仍然重要,尤其在內容管理和電子商務平台。 1)PHP擁有豐富的生態系統和強大框架支持,如Laravel和Symfony。 2)性能優化可通過OPcache和Nginx實現。 3)PHP8.0引入JIT編譯器,提升性能。 4)雲原生應用通過Docker和Kubernetes部署,提高靈活性和可擴展性。

PHP與其他語言:比較PHP與其他語言:比較Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP與Python:核心功能PHP與Python:核心功能Apr 13, 2025 am 12:16 AM

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP:網絡開發的關鍵語言PHP:網絡開發的關鍵語言Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP:許多網站的基礎PHP:許多網站的基礎Apr 13, 2025 am 12:07 AM

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

超越炒作:評估當今PHP的角色超越炒作:評估當今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

PHP中的弱參考是什麼?什麼時候有用?PHP中的弱參考是什麼?什麼時候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

解釋PHP中的__ Invoke Magic方法。解釋PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。