軟體行業有哪些方向值得花一生的時間去鑽研?

非科班出身,靠著自己對寫代碼的一腔熱血碩士畢業5年到現在一直在從事軟體相關的工作。但是總覺得很心虛,感覺自己一直在很淺的一個層面原地踏步。感覺大多時候平時工作接觸的方向都比較窄。自己擠出來點業餘時間看點其他技術方面的書,又找不到實踐的機會,照著做點書上的例子覺得浪費時間。來做軟體有個很重要的原因是覺得自己更喜歡和計算機打交道而不是人,所以今後也不想做管理。所以想找個方向沉下心來鑽研一下,希望以後可以過得舒心也不至於餓肚子。煩請各位幫忙指點幾個方向,謝謝。


模式識別,進而提高 人工智慧,

超級大坑,足以改變世界。

如 @昭之提出的幾個方向,

1. 人工智慧範疇,還是基於模式識別的自然語言處理方向

2. 嚴重依賴於硬體設備,性能瓶頸解決掉的話,是顛覆計算機系統架構的方案,病不是軟體問題。

3. 智能模擬,趨勢預測,還是人工智慧

4. 還是人工智慧

其實都是一個方向


這真是一個讓人腦洞大開的問題。我也曾經多次想過,稍微幫題主拋個磚引點玉。

1.機載人格

人工智慧的最終形態。忽略硬體的話,可以先以「人機對話」為目標——不是指siri那種一問一答的假AI,而是一個能進行流暢的日常對話,並且還會主動找你聊天的bot程序。真正實現「這個群除了你以外都是我的馬甲——不對,是我寫的bot」。

另外,作為一個技術宅男,花一生的時間寫一個懂自己愛自己的女AI,那是一件多麼浪(kong)漫(xu)的事啊。

2.遊戲遠程渲染

有個很出名的項目名叫OnLive就是在做這個。簡單來說就是,遊戲不單是邏輯在服務端,連渲染都是在服務端完成的,客戶端只是將服務端發下來的「運行時畫面」播放出來,並且將操作發送給服務端。這種技術讓你換遊戲就像換電視節目那麼簡單。

3.使用進化演算法實現的城市規劃

給定一個城市的環境,演算它該怎麼發展。拿這個去真正地改變世界就不指望了,但可以做成遊戲,比《文明》系列好玩得多,喜歡《孢子》的玩家也會愛上的。

4.帶機器學習的電腦病毒

看過《三體2》的人應該記得,羅輯是怎麼差一點被殺死的:敵人散播出了一種傳染病,發病條件是DNA匹配,比較對象是羅輯的DNA。

這麼酷的事豈能不幻想一下!程序員做不出生物病毒,但能做出電腦病毒啊。

上面這個例子是「匹配目標特徵已知」的病毒,難度不是很大,但如果不知道怎麼匹配目標,就必須要讓病毒在傳播過程中自己學習了。

而且,帶機器學習的電腦病毒可不止是「目標定向」這種類型,還可以是「計算出最有影響力的時間發作」、「只向沒有殺毒軟體的電腦轉播」,甚至是「自我修改」……細思恐極。

必須提醒一下,做電腦病毒是犯法的哦,以上內容僅供個人學習參考使用。

—————————————————————————

先這些吧,有人贊再更新。

這是我在知乎的第一條回答,LZ的好問題將我炸出來了:)

——————獲得16個贊,更新於2014.12.12—————

5.攝影助手

按快門前會提醒你有哪些可以改進的地方,最基本的白平衡調整和過曝提示、將地平線調成水平、人的頭頂不能長樹或被橫線穿過,甚至可以通過網路查找該景點的最佳拍攝角度。

按快門後馬上提議你作一些優化,最基本的自動調色和風格化、對局部暗處調高亮度、自動去皺,當然也可以通過網路匹配出類似的照片,讓拍照者模仿知名照片進行後期處理。

【特別提示】

不少知友說我列的大多是人工智慧和模式識別……始終,計算機的出現就是為了幫助人類,而最容易想到的途徑就是讓計算機學人類做事,所以人工智慧和模式識別必然是最有發展潛力和最能改變人類生活的計算機技術之一,想避也避不開嘛T_T……以後我盡量不讓它們一起出現好了。

6.AR卡片

增強現實(簡稱AR)最不依賴硬體的應用方向之一。

可以是一個手機app,通過攝像頭掃描類似二維碼的預編碼圖形,獲得生成3D模型的參數,並讓3D模型固定在特定的地點(通常就在圖形上方),顯示到手機屏幕上。

如果只是上面這些功能,現在國內也有很多公司在做。他們用的是沒有獲得版權的動漫角色模型,除了觀賞沒有任何價值,將這種卡片賣給中小學生,並且模型動作按DLC收費。這種公司還活得不錯……

我覺得吧,來點技術含量的,可以通過用戶賬號從網路上獲得該卡片的人物屬性,讓她和站在對面的同樣AR系統的人物模型進行戰鬥,勝者可以升級,獲得各種獎勵或者升級進化blablabla……無論怎麼想都有趣多了吧。

現實是,SCE做了個叫《審判之眼》的遊戲就實現了類似的功能,但在商業上卻稱不上成功……只能說商業的世界不是靠技術說話的。

7.音樂生成遊戲關卡

現在有不少音樂遊戲支持自選歌麴生成譜面,那個並不難。

然而,要是讓你自選歌麴生成音樂遊戲以外的其他類型遊戲呢?

請來看個視頻:

視頻封面雷曼傳奇 音樂關卡賞視頻

雷曼本來是個平台動作遊戲,卻有不少這種音樂關卡,我非常喜歡這個遊戲系列。

剛才我說什麼來著?自選音樂生成非音樂類型的遊戲關卡……現在你明白我的意思了!

除了平台動作遊戲以外,格鬥遊戲可以通過音樂節奏提示目押、賽車遊戲讓玩家按照節奏滿舵或加速、即時戰略遊戲的敵人AI通過歌曲頻段決定發兵目標地點和兵力數目……

噢,太酷炫了!

—————————————————————————

多謝各位知友賞面,如有更多贊會繼續更新。

我的腦洞什麼時候是個頭,我也不知道:)


把夢想中的系統都去實現


轉一個 文章

IT方向其實很大,只要和科技有關的、利用到技術的行業,基本都IT沾邊。大類來分,有硬體和軟體。對於MIS來說,大家基本都在搞軟體,所以,即使是硬體裡面也涉及到演算法設計,驅動設計,通信協議,一般MIS的人是不玩的。而軟體方面,又有細分了。有消費級的和商用級。消費級主要是遊戲開發、一般的個人軟體(如App開發等)、還有互聯網,特點就是市場大,迭代快。商用級顧名思義就是面向商用的軟體,穩定、適合業務流程是它們的特點。

首先,談一下軟體業當中的一些業務。

消費級軟體一般都是極其產品嚮導的。所以,一般先有產品經理,再有項目,項目經理帶領項目團隊開發。比如,遊戲製作是遊戲策劃(產品經理)主導之後,通過項目進行遊戲製作(一般基於引擎開發)。之後,再有市場推廣及銷售等各環節。其中遊戲引擎一般是技術大牛開發的。

商用級軟體一般是根據客戶的業務需要進行開發、實施及維護的。特別對於成熟的商用軟體,開發是軟體供應商的業務,實施和維護則是IT諮詢的業務。比如SAP的產品是SAP開發,這個時候就類似於消費的開發嚮導了,之後會由第三方公司,諸如IBM,埃森哲來實施和維護。

於是,根據上面描述,我們可以看到軟體業基本有三個Career Path:

業務,對應產品經理

管理,對應項目經理

技術,對應技術大牛

有從開發做起的,有從測試做起的,也有直接做需求的。其實,軟體開發和建築業有很多相似之處,所以,IT工作者常常以民工自稱。軟體本身是由一行行代碼構成的,房子是由一塊塊磚砌成的。寫代碼就好比砌磚,不同程序語言,就是不同的磚頭材料。當然,造房子也有不同的需求和用途,比如商務地產,基本每個地產的建築都要重新設計;民房,可以有很多模板,框架可以選擇,建立一批商品房小區;廠房,廠房建設方便,但是,需要安裝各種生產流水線和設備,等等,各種需求就像軟體一樣。

對於以上三類職業路線,在「造房子」團隊中。業務人員相當於設計人員,根據房屋用途進行設計。比如,窗開在哪裡,門要設計多大。管理人員,手下帶領民工壘磚頭、控制進度、成本及範圍,屬於「包工頭」。技術人員,主要負責技術設計,包括選擇怎麼樣的施工技術,房子的框架怎麼選擇等。

簡單的說,業務是「做什麼」;技術是「怎麼做」;管理是帶著團隊來做的。當然,至於其他的5W+H (Who, What, When, Where, Why and How) 的「為什麼」,「什麼時候」之類的,不是IT人員設計的,而是由管理層或者Managing Consultant的人在決定。

而這些決定的基礎就是數據,也就是用數據說話 - 數據驅動。這個時候,就需要數據分析師或者數據科學家提煉和分析運營的數據,之後由業務分析人員或者產品經理提出改進流程的建議。在實際工作中,無論是對於外部客戶還是內部團隊,數據分析師都需要很好的溝通能力。能夠把自己的業務方案提供給客戶(內部或者外部的),並讓客戶滿意接受,讓技術團隊實現方案。如果是設計產品,就要設計出產品方案,讓開發或者管理層心悅誠服得採用,然後推向市場。

---------------------------------

作者:幾吉,上交小鮮肉與華大怪蜀黍結合體,混跡中美IT圈十年加,偶爾手抖寫寫文。


我導師說操作系統和編譯原理


計算機替代 人肉搜索, 八卦扒人不犯罪,賺錢調查還不累,呵呵


基礎的代碼錯誤掃描器(自動掃描代碼,指出bug,已經很多人在做了)

接下來,自動生成代碼、發明高抽象級別的語言。

最後,直接從想法到編碼一步到位(不過,很可能是想法即代碼)。


數據結構跟量子計算機,哪個進步一點你就是里程碑試的人物!


玩演算法!頂級演算法!!


可以嘗試嘗試在機器人的晶元中模擬大腦的控制過程。


推薦閱讀:

如何評價OceanBase近期強大的宣傳攻勢?
勞動經濟學領域有哪些比較好用的資料庫?
知乎上有哪些比較活躍的資料庫領域大牛?
如何擺脫現有關係資料庫的思想來設計 NoSQL 資料庫?
BigTable 有什麼值得稱道(牛)的地方?

TAG:互聯網 | 移動互聯網 | 資料庫 | 信息技術IT |