什么是全棧工程師
全棧工程師簡單來說是全能型人才,能把服務器搭建完成恩脂、能夠把數(shù)據(jù)庫建好帽氓、能夠?qū)憌eb程序等
一個人獨立完成
棧 是堆棧的棧
棧的特點:先進后出,后進先出
- 全棧工程師的起點是安裝和部署環(huán)境
- 安裝數(shù)據(jù)庫
- 有一定的業(yè)務分析能力
- 針對業(yè)務進行建模俩块、建立數(shù)據(jù)庫表
- 寫web程序?qū)?shù)據(jù)庫進行操作
- 混合APP開發(fā)模式
webAPP是指單純把網(wǎng)頁封裝成一個APP黎休,不具備調(diào)用原生APP的能力
要學習的知識有:OC、JAVA要會一點玉凯, HTML5势腮、JS必須會, PHP/JAVA選擇一種
全棧工程師是通往架構(gòu)師的起點
編程語言
-
最原始的編程語言:機器語言
機器語言是用二進制代碼表示的計算機能直接識別和執(zhí)行的一種機器指令的集合
-
匯編語言
在20世紀50年代產(chǎn)生的一種用于電子計算機漫仆、微處理器捎拯、微控制器或其他可編程器件的低級語言,亦稱為符號語言
-
C語言
20世紀60年代末期C語言和UNIX操作系統(tǒng)一起誕生盲厌,C語言和匯編語言比起來是高級語言
- 因為C語言具有附庸性署照,寫好的語言在別的機器都可以編譯,一處編寫吗浩,到處編譯建芙;而匯編語言不可以
C語言有自己的函數(shù),可以保存在函數(shù)庫里懂扼,以后用直接調(diào)用禁荸;和匯編比起來算是高級語言
C語言又叫做結(jié)構(gòu)化的編程語言,因為C語言有了函數(shù)阀湿,函數(shù)可以調(diào)用函數(shù)屡限,函數(shù)之間可以傳參數(shù)、有返回值炕倘,這樣代碼看起來更清晰钧大、更有模塊化。
最重要的特點 “抽象”
-
c++語言
C++語言是一種優(yōu)秀的面向?qū)ο蟪绦蛟O計語言罩旋,它在C語言的基礎上發(fā)展而來啊央,但它比C語言更容易為人們學習和掌握眶诈。
C++以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用。
面向?qū)ο蟮脑O計思想是在原來結(jié)構(gòu)化程序設計方法基礎上的一個質(zhì)的飛躍瓜饥,C++完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性逝撬。- C語言只是把一個功能模塊封裝成一個函數(shù),只執(zhí)行一個特定的指令乓土,但是他解決不了日常生活中的問題宪潮。c++可以解決一些
比如開個商店
-
JAVA
Java是一種可以撰寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O計語言。Java 技術具有卓越的通用性趣苏、高效性狡相、平臺移植性和安全性,廣泛應用于PC食磕、數(shù)據(jù)中心尽棕、游戲控制臺、科學超級計算機彬伦、移動電話和互聯(lián)網(wǎng)滔悉,同時擁有全球最大的開發(fā)者專業(yè)社群。
- C和C++有一個弊端:有指針单绑,需要人為去管理內(nèi)存的內(nèi)存的分配和釋放回官,這樣很容易出bug,會造成嚴重的后果搂橙。
比如“銀行”歉提、“證券”等金融產(chǎn)業(yè)
C和C++所說的跨平臺并不是真正的跨平臺,只是把源代碼在不同的機器上進行編譯份氧。
而Java是可以在一臺機器上寫代碼,寫好之后打包弯屈,然后可以在任何一臺裝有Java的機器上進行使用蜗帜,實現(xiàn)了真正意義上的跨平臺。Java就是一個精簡版的C++资厉,不用再去管內(nèi)存和指針了厅缺,程序員犯錯的幾率就降低了,這也是Java打敗C++的原因宴偿。
-
PHP
PHP湘捎,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫窄刘。
PHP 是一種 HTML 內(nèi)嵌式的語言窥妇,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執(zhí)行的嵌入HTML文檔的腳本語言娩践,語言的風格有類似于C語言活翩,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運用烹骨。
PHP 獨特的語法混合了C、Java材泄、Perl 以及 PHP 自創(chuàng)新的語法沮焕。它可以比 CGI 或者 Perl 更快速的執(zhí)行動態(tài)網(wǎng)頁。
PHP最初是由勒多夫在1995年開始開發(fā)的拉宗;現(xiàn)在PHP的標準由the PHP Group維護峦树。PHP以PHP License作為許可協(xié)議,不過因為這個協(xié)議限制了PHP名稱的使用旦事,所以和開放源代碼許可協(xié)議GPL不兼容魁巩。-
Java被PHP打敗的原因
- 過度標準化
- 大量的預先設計
-
-
函數(shù)式編程 Ruby
Ruby,一種為簡單快捷的面向?qū)ο缶幊?面向?qū)ο蟪绦蛟O計)而創(chuàng)的腳本語言族檬,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā)歪赢,遵守GPL協(xié)議和Ruby License。它的靈感與特性來自于 Perl单料、Smalltalk埋凯、Eiffel、Ada以及 Lisp 語言扫尖。由 Ruby 語言本身還發(fā)展出了JRuby(Java平臺)白对、IronRuby(.NET平臺)等其他平臺的 Ruby 語言替代品。Ruby的作者于1993年2月24日開始編寫Ruby换怖,直至1995年12月才正式公開發(fā)布于fj(新聞組)甩恼。因為Perl發(fā)音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名沉颂。
-
特點:
- 使用更加方便
- 不要求提前設計好接口和類
- 減少勞動力条摸、
- 流式數(shù)據(jù)處理,通過編程環(huán)境來識別這句話的用意
- 針對人的思維模式的編程語言
- 電腦像人一樣思考
強類型經(jīng)常是靜態(tài)類型铸屉,動態(tài)類型不一定是弱類型钉蒲。
區(qū)分語言類型是強類型還是弱類型看他的 數(shù)字123 和 字符串“123” 參與運算的時候是否會有區(qū)別,
如果得到的是一個數(shù)字彻坛,需要數(shù)字轉(zhuǎn)型顷啼,那他就是強類型;
動態(tài)類型和靜態(tài)類型區(qū)別:動態(tài)類型 是聲明變量的時候不指定具體的類型昌屉;
靜態(tài)類型 在聲明變量的時候必須聲明變量的類型钙蒙。
鏈式語法 OC / jQuery $a().b().c().d();
傳統(tǒng)的編程語言都可以寫成鏈式語法,但是性能會特別差间驮。
Ruby是函數(shù)式編程語言躬厌,其他的指令式編程語言或命令式編程語言
個人總結(jié):上完這第一節(jié)課之后,發(fā)現(xiàn)自己知道了很多以前沒有聽過的東西竞帽,對于編程語言也有了更多的認知烤咧。發(fā)現(xiàn)自己要學的還有好多好多偏陪,還需要好好努力的學習才行。加油煮嫌!