下面的一些概念是一個普通程序員常常會遇到的,但對於寫算法的程序員可能並不適用。javascript
1、計算機硬件css
一)我的電腦主要硬件html
CPU,中文名叫中央處理器,是一臺計算機的計算和控制中心。前端
RAM:隨機存取存儲器,俗稱「內存」vue
GPU,俗稱顯卡,是電腦進行數模信號轉換的設備,承擔輸出顯示圖形的任務。html5
硬盤,計算機存儲數據的部件。java
主板,是一個集成電路,用於存放各類電子部件,上面說的這些部件都插在主板上。react
二)手機的主要硬件,能夠說是一種特別的計算機。jquery
1 CPU:中央處理器git
2 RAM:隨機存取存儲器,俗稱「內存」
3 GPU,俗稱顯卡,是電腦進行數模信號轉換的設備,承擔輸出顯示圖形的任務。
4 ROM:全稱「只讀內存鏡像」,手機存儲數據的部件,至關於電腦中的硬盤。
2、操做系統:
承上啓下,操做系通通一管理計算機全部硬件資源,爲應用程序提供最底層的技術支持。
一) 電腦操做系統
主要有一下四種
Windows系列:微軟公司開發出來的。
Mac OS X: 蘋果公司開發的出來的。
Unix類:不屬於任何公司的技術大神開發出來的,徹底免費開源。 通常會存在一或多技術交流的社區網站。
Linux類:不屬於任何公司的技術大神開發出來的,徹底免費開源。通常會存在一或多技術交流的社區網站。
註釋:
1)開源的意思:
1開發源代碼,任何人均可以避免費下載大神寫的代碼,一樣任何人也能夠上傳本身基於這個操做系統開發的新功能。
2 提供詳細的技術說明文檔,文檔中有各類各樣的api使用方法的說明文字和案例,讓開發人一看就明白怎麼用這個api。
* Api ,中文名叫接口,是程序之間傳遞和處理信息的通道,不一樣的接口有不一樣的名稱,調用它可使用他人已經開發好的一個功能,而不用本身再去實現這個功能。
二) 手機兩大操做系統:
Android:谷歌創造出來的一種適合手機的操做系統
IOS:蘋果公司開發的一種適合手機的操做系統
3、應用程序
是指爲針對使用者的某種應用目的所撰寫的軟件。
按照手機和電腦可分爲:
web應用程序:Web應用程序是一種能夠經過Web訪問的應用程序,程序的最大好處是用戶很容易訪問應用程序,用戶只須要有瀏覽器便可,不須要再安裝其餘軟件。
App,手機應用程序,須要下載和安裝。
註釋:
*web(World Wide Web)即全球廣域網,也稱爲萬維網,它是一種基於超文本和HTTP的、全球性的、動態交互的、跨平臺的分佈式圖形信息系統。是創建在Internet上的一種網絡服務,爲瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易於訪問的直觀界面,其中的文檔及超級連接將Internet上的信息節點組織成一個互爲關聯的網狀結構。 [1]
*Internet,中文正式譯名爲因特網,又叫作國際互聯網。它是由那些使用公用語言互相通訊的計算機鏈接而成的全球網絡。一旦你鏈接到它的任何一個節點上,就意味着您的計算機已經連入Internet網上了。Internet目前的用戶已經遍佈全球,有超過幾億人在使用Internet,而且它的用戶數還在以等比級數上升。
4、兩種架構
CS架構:Client/Server, 客戶端/服務器架構。
BS架構:Browser/Server,瀏覽器/服務器架構。
對於非專業人員能夠這樣理解,只須要瀏覽器,不須要下載和安裝的就是bs架構。須要下載和安裝後才能使用的軟件就是cs架構。
五)編程語言
編程語言俗稱「計算機語言」,種類很是的多,總的來講能夠分紅機器語言、彙編語言、高級語言三大類。 程序員常說的語言,若是不作解釋,通常特指「高級語言」
高級語言按,先後端分類。
1)前端語言:前端編程語言主要就這三種。
1 Html:超級文本標記語言,是一種規範,一種標準,它經過標記符號來標記要顯示的網頁中的各個部分。網頁文件自己是一種文本文件,經過在文本文件中添加標記符,能夠告訴瀏覽器如何顯示其中的內容(如:文字如何處理,畫面如何安排,圖片如何顯示等)。瀏覽器按順序閱讀網頁文件,而後根據標記符解釋和顯示其標記的內容,對書寫出錯的標記將不指出其錯誤,且不中止其解釋執行過程,編制者只能經過顯示效果來分析出錯緣由和出錯部位。但須要注意的是,對於不一樣的瀏覽器,對同一標記符可能會有不徹底相同的解釋,於是可能會有不一樣的顯示效果。
程序員說的html5或H5,就是html開發標準的第五個修訂版。
2 CSS:層疊樣式表(英文全稱:Cascading Style Sheets)是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。CSS不只能夠靜態地修飾網頁,還能夠配合各類腳本語言動態地對網頁各元素進行格式化。
(就像word中樣式控制字體和顏色、大小同樣,css控制html網頁的樣式)
3 JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言,最先是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增長動態功能。
在1995年時,由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。由於Netscape與Sun合做,Netscape管理層但願它外觀看起來像Java,所以取名爲JavaScript。但實際上它的語法風格與Self及Scheme較爲接近。 [1]
爲了取得技術優點,微軟推出了JScript,CEnvi推出ScriptEase,與JavaScript一樣可在瀏覽器上運行。爲了統一規格,由於JavaScript兼容於ECMA標準,所以也稱爲ECMAScript。、
(簡單的說javascript控制網頁的行爲,好比點擊某個按鈕提交填入的東西)
2)後端語言:後端語言很是豐富,下面是用的比較多的:
Java
C#
C++
C
PHP
Python
Basic
3)數據庫操做語言
SQL
六)數據庫
比較流行的數據模型有三種,即按圖論理論創建的層次結構模型和網狀結構模型以及按關係理論創建的關係結構模型。但軟件開發用的最多的是關係型數據庫,主流關係型數據庫就三種: SqlServer、Oracle、MySql ,這些其實叫數據庫管理工具,是一個功能強大的軟件,爲了交流方便程序員通常會說「Oracle數據庫」或「Oracle」而省略掉「管理工具」。其完整意思是「咱們的數據庫是用Oracle開發的」。
比較流行非關係型數據庫有: MongoDB、Redis。
七)緩存系統
Memcached,一款開源分佈式緩存系統
八)多端,一個軟件可能有不一樣的客戶端。
web:咱們電腦和手機瀏覽器裏看到的網頁,咱們之因此能看到是由於瀏覽器將程序員編寫的html、CSS、javascript等代碼解釋成咱們能看到的圖形界面。然而瀏覽器種類很是多,這就致使一樣一份代碼在不一樣瀏覽器呈現出不一樣的樣子甚至出現錯誤。爲了解決各類瀏覽器不一致的問題,必須有一個標準,所以就出現了制定html css javascript標準的機構,Html5就是制定標準的機構發佈的html標準的第五個版本。同理還有CSS二、CSS三、ECMAScript5(或ES5)等版本。這些標準規定明確了瀏覽器必須怎麼解釋代碼,程序員必須怎麼書寫正確的代碼。
App:手機應用程序,必須下載並安裝才能使用,不須要瀏覽器就可使用。目前絕大多數app後端都是用java語言開發的。操做系統爲應用程序提供底層基礎的技術支撐,手機兩種主流操做系統:Android和IOS,因此app還須要兼容這兩個系統,若是沒法同時兼容兩種操做系統那麼必須開發兩個版本的app。一個是Android版,一個是IOS版。
微信小程序,微信裏面能運行的「小程序」。
微信公衆號,微信裏面能運行的「公衆號」,普通人能夠直接使用,能夠進行二次開發(其實是跳轉到本身開發的網站)。
九)框架、庫、UI組件
前端框架、庫、UI組件,本質是由html css javascript 三者組成。他們對程序員常常須要的東西進行了加工和整理,讓程序員可以簡單的調用api實現之前看了很是複雜的功能,大大提升開發效率。
1前端庫:最出名就是 jquery,是javascript語言編寫的一個代碼倉庫,它實現了程序員經常使用的多種功能,程序員只須要查看它的說明文檔,學會調用它提供的接口就能夠實現之前須要本身寫不少代碼才能實現的複雜功能。
後端庫: 通常叫後端類庫,使用某一種或多種後端語言編寫的一個代碼倉庫,它實現了程序員經常使用的多種功能,程序員只須要查看它的說明文檔,學會調用它提供的接口就能夠實現之前須要本身寫不少代碼才能實現的複雜功能。
2前端框架:框架是一套架構,會基於自身的特色向用戶提供一套至關於叫完整的解決方案,並且控制權的在框架自己,使用者要找框架所規定的某種規範進行開發。目前比較流行的有:
1)vue 官網 https://cn.vuejs.org/ 公司 第三方團隊
2)react 官網https://reactjs.org/ 中文社區http://react-china.org/ 公司Facebook
3)angular 官網https://angularjs.org/ 中文管網 https://www.angular.cn/ 公司google
以上三個既能夠用做web也能夠用做app的基礎。
3後端框架:目前主流是MVC架構,不過隨着webapi的崛起和前端愈來愈強大,將來先後端代碼將徹底分離。前端ajax請求,後端webapi回覆。
4前端UI組件:中文名前端界面組件。
1) web UI庫
a)基於vue:
iview 官網https://www.iviewui.com/ 公司:第三方團隊
elementUI 官網 http://element-cn.eleme.io/#/zh-CN 公司:餓了麼
b)基於 Rect、Angular
c)基於jquery , juqeryEasyUI,用jquery實現的一種前端UI組件,基本要淘汰了。
2)app UI庫
A)Framework7 官網http://www.framework7.cn/ (有iOS 和 Android 兩種樣式集)
基於jquery 不過已有Vue、React 版本的實現了
Framework7-Vue http://vue.framework7.cn/ 基於 vue.js
Framework7-React http://framework7.io/react/ 基於 React
B)SUI Mobile 官網 http://m.sui.taobao.org/ 基於Framework7 公司:淘寶
C)React Native 官網 https://reactnative.cn/ 或者
NativeScript,官網https://docs.nativescript.org/
基於 React,根據你所使用的操做系統、針對的目標平臺不一樣,具體步驟有所不一樣。若是想同時開發iOS和Android也沒問題,你只須要先選一個平臺開始,另外一個平臺的環境搭建只是稍有不一樣。
D)Ionic 官網https://ionicframework.com/ 基於angular 版本 angular2和Ionic2
E) FrozenUI 官網http://frozenui.github.io/
F) MUI 官網http://dev.dcloud.net.cn/mui/ http://dcloud.io/index.html https://segmentfault.com/a/1190000005173713?_ea=841544
3)微信 UI庫
WeUI https://weui.io/ 只是一個樣式集無js操做。 應用舉例 https://weui.io/weui.js/
vux https://vux.li/ 基於vue.js和WeUI
十)其它概念
Ajax: 一種異步想服務器請求數據的技術。
Json: 一種數據存儲格式。常在ajax請求時使用。
服務器:是一種計算機,它與普通計算機的優勢是:
1)工做很是穩定,超長時間運行,不會死機。
2)操做系統是服務器操做系統:Windows Server、Netware、Unix、Linux。
3)中央處理器、內存、硬盤都比普通計算機強不少倍,價格也是。
九)軟件開發流程和分工
1通常流程
2分工
1)小微企業:
需求分析人員:將用戶的需求梳理成爲一個個功能模塊
前端開發工程師:PhotoShop切圖、功能界面設計、代碼實現、測試
後端開發工程師:數據庫設計、負責後端代碼編寫、測試、項目實施
2)中大型企業
https://wenku.baidu.com/view/91f3c5acdd3383c4bb4cd296.html?rec_flag=default&sxts=1539063114996
項目經理
系統架構師
需求分析師
系統分析師
數據庫設計師
軟件設計師
軟件工程師
測試經理
測試工程師
實施經理
實施工程師
美術工程師
客戶經理
產品經理
運維經理:領導運維人員,負責公司硬件設備的正常運營和維護。
運維工程師:負責公司硬件設備的正常運營和維護。
3)超大企業:項BATJ這樣的企業,請百度。
十)算法
算法:https://baike.baidu.com/item/%E7%AE%97%E6%B3%95/209025?fr=aladdin
人工智能(Artificial Intelligence),英文縮寫爲AI。它是研究、開發用於模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。
人工智能是計算機科學的一個分支,它企圖瞭解智能的實質,並生產出一種新的能以人類智能類似的方式作出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、天然語言處理和專家系統等。
https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/9180?fr=aladdin
人工智能的本質是算法。根據領域分工不一樣,分爲:機器人算法工程師、 圖形識別算法工程師、天然語言算法工程師等。根據編程語言不一樣,又可分爲:NLP算法工程師、C++算法工程師等。下面是「前程無憂網」搜索「算法工程師」的結果:
https://search.51job.com/list/000000,000000,0000,00,9,99,%25E7%25AE%2597%25E6%25B3%2595%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,2,3.html?lang=c&stype=1&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=
機械學習:機械學習是解決某類問題的某一類算法,是算法的一個分支。
深度學習:機械學習的一個分支。
十一)舉例分析
機械學習算法工程師:
任職資格:
1.計算機或者圖像處理、模式識別、機器學習相關專業,本科以上學歷;
2.有RNN,CNN模型訓練和調參經驗,熟悉經常使用的深度學習工具(如TensorFlow,caffe等),本科要求有5年以上該領域工做經驗,碩士要求有3年以上該領域工做經驗;
3.在圖像識別、理解、分割領域有研究,有行人、車輛檢測、物體檢測等經驗優先;
4.熟悉C++,Python,Matlab等語言;
5.熟悉安霸芯片架構優先;
6.在相關領域的知名國際會議發表過論文者優先。
崗位職責:
1.領導算法團隊開展技術攻關、算法產品化工做,以及團隊成員培養;
2.負責計算機視覺、機器學習(深度學習)的前沿算法研究、開發和實現;
3.基於公司ADAS產品,負責算法選型、框架搭建、調優等,解決具體應用問題。
註釋:
1) RNN:循環神經網絡 。https://baike.baidu.com/item/RNN/5707183?fr=aladdin
2) CNN:卷積神經網絡 。
3) ADAS:高級駕駛輔助系統 。
https://baike.baidu.com/item/%E9%AB%98%E7%BA%A7%E9%A9%BE%E9%A9%B6%E8%BE%85%E5%8A%A9%E7%B3%BB%E7%BB%9F/16837281?fr=aladdin&fromid=11003651&fromtitle=ADAS
4)MATLAB:是美國MathWorks公司出品的商業數學軟件,用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。https://baike.baidu.com/item/MATLAB/263035?fr=aladdin
5)TensorFlow 是谷歌基於DistBelief進行研發的第二代人工智能學習系統。https://baike.baidu.com/item/TensorFlow/18828108?fr=aladdin
6)caffe 卷積神經網絡框架,是一種經常使用的深度學習框架,主要應用在視頻、圖像處理方面的應用上。 https://blog.csdn.net/qq_27923041/article/details/77431833
十二)介紹編程知識的網站
菜鳥教程:http://www.runoob.com/),你能夠用它瞭解一些編程概念。
至此,做爲一名菜鳥級別的程序員,本人也已經進入徹底陌生的領域,沒法在作更多的解釋。
解決問題步驟總結:
1) 百度一下;
2) 問前輩,問專業人員;
3) 自主思考和嘗試。
4) 向上級反映搞不定,讓上級以爲下一步怎麼作。
遇到問題,傷心難過都是沒用的,咱們要作的是千方百計的解決,這樣,若是咱們成功了,咱們會笑的更開心;若是咱們失敗了,也能不留遺憾的從新投入到另外一個本身喜歡的工做中。
寫完才發現對你的工做可能沒什麼幫助,由於你要招聘的算法工程師,而我並不瞭解算法工程師。可能更有效的是去「博客園」、「CSDN」這樣的知識分享網站註冊帳號聯繫他們是否有工做意向,或者去「前程無憂」這樣的招聘網站註冊一個企業帳號發招聘消息並想方法主動聯繫他們。