資料庫原理視頻教程
❶ 如何學習資料庫知識
好像武俠小說里邊說的:「你的招式忘了沒有?」,回答:「差不多忘了」,「忘了就好」。
這與資料庫編程有什麼關系?關系可大了。同志們學過Pascal、BASIC、C(C++)沒有?如果沒有,FOXBASE、FOXPRO應該學過吧?按以上這些語言編程,都是過程化的,說白一點就是一個數據一個數據、一條記錄一條記錄去處理(FOXBASE、FOXPRO不完全這樣,但書上也經常是這樣介紹的),當初我接觸ACCESS
97時,一下子沒有了IF、FOR這些語句(指數據處理),都用SQL語句,真是找不到北了,好在我學SQL語言時,也盡量忘掉這個IF、FOR,到我忘得差不多時,功夫也進了一大步,原來要編一大段程序,現在一兩條SQL語句搞定,就算用多幾條SQL語句,由於是在圖形界面下做,可視化操作,拉拉扯扯,再修改一下生成的SQL語句,也就省事多了。
由於ACCESS具備完整的SQL語言(FOXBASE沒有、FOXPRO不完整),我從ACCESS
97開始用ACCESS編程,到現在為止,DAO、ADO很少用,加上最近從愛賽思上接觸的一些技術,基本上不用DAO、ADO都可以了,可以從我的「未完工的庫存管理」中看出,只是在特殊情況下才偶爾用一下。(少用,但不是不用,還得學,不要誤解)
如何學好資料庫編程?下面介紹一下本人的一些經驗,僅供參考:
1.首先要把原來一個數據一個數據、一條記錄一條記錄的數據處理方式忘掉,越徹底越好。
現在用成批處理了。少用記錄集一條記錄一條記錄地處理,盡量用SQL語句。
2.學好關系資料庫的理論,尤其是規范化理論,表的設計一定要規范化,最起碼要規范化到第三範式。集合運算(並、交、差)。關系運算(選擇、投影、連接)。其中連接與規范化是緊密結合的。
3.運用面向對象的技術:面向對象的分析OOA、面向對象的設計OOD、面向對象的編程OOP,根據表的關系,用窗體和子窗體、報表和子報表,模擬面向對象,這樣可以增加程序的可讀性和可維護性。(這是高級技術,同志們不要輕視,做大項目你就知道有用了)
4.用查詢時,通常一步做不出來,可以分幾步做,本人通常是這么做的,從我給網友回復的例子中也可以看得出。為什麼要這樣做?(1)有些是SQL語言的限制,沒辦法一步做出來,逼的;(2)可以檢查每一步查詢的結果,容易調試;(3)增加可讀性,便於日後維護。
5.查詢的結果用窗體顯示或用報表列印,兩者的技術差不多。通常改變打開窗體或報表的條件就可控制顯示或列印的記錄范圍。另外用查詢做數據源時,動態改變查詢中的SQL語句,比在查詢中引用窗體的控制項要方便,因為SQL語句生成是在VBA中,可以先存放在字元變數中,然後再更新查詢的SQL語句,這樣就可以用斷點來檢查變數值對不對,如果在查詢中引用窗體的控制項,尤其是包含IIF()函數時,調試是很困難的。
6.開發一個系統,首先要解決技術問題,即演算法,用簡單例子,把演算法弄懂了,再詳細設計,這一點從網友的提問中可以看出,有很多人問題表達不清楚,有的人其中夾了很多與演算法無關的東西,尤其是很專業的東西,別人不容易看得明白,由於演算法沒搞清楚,程序就無法編了。
7.不要使用過多的工具特性,使用過多的工具特性會使可讀性降低,可維護性差,要別人幫忙時難以得到幫助,更要命的是可移植性差,從MDB到ADP就可以體會到了,所以在編程時可讀性很重要,可移植性更重要,你甘心自己的程序就固定在一個環境下運行嗎?你甘心永遠用一個工具搞開發嗎?為了你的「錢途」,不要玩弄太多的技巧,當然技術研究是另外一碼事。
❷ 有什麼嵌入式視頻教程適合自學的
原文鏈接:網頁鏈接
我是1999年上的大學,物理專業。在大一時,我們班裡普遍彌漫著對未來的不安,不知道學習了物理後出去能做什麼。你當下的經歷、當下的學習,在未來的一天肯定會影響到你。畢業後我們也各自找到了自己的職業:出國深造轉行做金融、留校任教做科研、設計晶元、寫程序、創辦公司等等,這一切都離不開在校時學到的基礎技能(數學、IT、電子電路)、受過煅煉的自學能力。
所以,各位正在迷茫的在校生,各位正在嘗試轉行的程序員,未來一定有你的位置,是好是壞取決於你當下的努力與積累。
我不能預言幾年後什麼行業會熱門,也不能保證你照著本文學習可以發財。我只是一個有十幾年經驗的程序員,給對編程有興趣的你,提供一些建議。
1.程序員的三大方向
程序員的方向,一般可以分為3類:專業領域、業務領域、操作系統領域。你了解它們後,按興趣選擇吧。
對於專業領域,我提供不了建議。
業務,也就是應用程序,它跟操作系統並不是截然分開的:
①開發實體產品時,應用程序寫得好的人,有時候需要操作系統的知識,比如調度優先順序的設置、知道某些函數可能會令進程休眠。
②寫應用程序的人進階為系統工程師時,他需要從上到下都了解,這時候就需要有操作系統領域的知識了,否則,你怎麼設計整個系統的方案呢?
③做應用程序的人,需要了解行業的需求,理解業務的邏輯。所以,當領導的人,多是做應用的。一旦鑽入了某個行業,很難換行業。
④而操作系統領域,做好了這是通殺各行業:他只負責底層系統,在上面開發什麼業務跟他沒關系。這行很多是技術宅,行業專家。
⑤操作系統和業務之間並沒有一個界線。有操作系統經驗,再去做應用,你會對系統知根知底,碰到問題時都有解決思路。有了業務經驗,你再了解一下操作系統,很快就可以組成一個團隊自立門戶,至少做個CTO沒問題。
1.1 專業領域
它又可以分為下面2類。
1.1.1 學術研究
比如語音、圖像處理、人工智慧,這類工作需要你有比較強的理論知識,我傾向於認為這類人是「科學家」,他們鑽研多年,很多時候是在做學術研究。
在嵌入式領域,需要把他們的成果用某種演算法表達出來,針對某種晶元進行優化,這部分工作也許有專人來做。
1.1.2 工程實現
也有這樣一類人,他們懂得這些專業領域的概念,但是沒有深入鑽研。可以使用各類開源資料實現某個目標,做出產品。比如圖像處理,他懂得用opencv里幾百個復雜函數來實現頭像識別。有時候還可以根據具體晶元來優化這些函數。
「專業領域」不是我的菜,如果你要做這一塊,我想最好的入門方法是在學校學習研究生、博士課程。
1.2 業務領域
換句話說,就是應用程序,這又可以分為下面2類。
1.2.1 界面顯示
做產品當然需要好的界面,但是,不是說它不重要,是沒什麼發展後勁。
現在的熱門詞是Android APP和IOS APP開發。你不要被Android、IOS兩個詞騙了,它們跟以前的VC、VB是同一路貨色,只是、僅僅是一套GUI控制項的實現。
希望沒有冒犯到你,我有理由。
一個程序需要有GUI界面,但是程序的內在邏輯才是核心。Android、IOS的開發工具給我們簡化了GUI的開發,並提供了這些控制項的交互機制,封裝並提供了一些服務(比如網路傳輸)。但是程序內部的業務邏輯、對視頻圖像聲音的處理等等,這才是核心。另外別忘了伺服器那邊的後台程序:怎樣更安全地保存數據、保護客戶的隱私,怎樣處理成千上萬上百萬的並發訪問,等等,這也是核心。
但是,從Android、IOS APP入門入行,這很快!如果你是大四,急於找到一份工作,那麼花上1、2個月去學習Android或IOS,應該容易找到工作,畢竟APP的需求永遠是最大的,現在這兩門技術還算熱門。在2011、2012年左右,Android程序員的起薪挺高,然後開始下滑。Android APP的入門基本只要1個月,所以懂的人也越來越多。2013、2014年,IOS開發的工資明顯比Android高了,於是各類IOS培訓也火曝起來。中華大地向來不缺速成人才,估計再過一陣子IOS工程師也是白菜價了。
會Android、IOS只是基本要求,不信去51job搜搜Android或IOS,職位要求里肯定其他要求。
1.2.2 業務邏輯
舉個簡單例子,做一個打卡軟體,你需要考慮這些東西:
①正常流程是上班下班時都要打卡
②有人忘記了怎麼辦?作為異常記錄在案,推送給管理員
③請假時怎麼處理?
④加班怎麼處理?
對於更復雜的例子,視頻會議系統里,各個模塊怎麼對接,各類協議怎麼兼容,你不深入這個行業,你根本搞不清楚。
應用開發的職位永遠是最多的,入門門檻也低。基本上只要你會C語言,面試時表現比較得體,一般公司都會給你機會。因為:
①你進公司後,還需要重新培訓你:熟悉它們的業務邏輯。
②你要做的,基本也就是一個個模塊,框架都有人給你定好了,你去填代碼就可以了。
說點讓你高興的事:軟體公司里,做領導的基本都是寫應用程序的(當然還有做市場的)。寫應用程序的人,對外可以研究市場接待客戶,對內可以管理程序員完成開發,不讓他做領導讓誰做?
如果你的志向是寫應用程序,那麼我建議你先練好基本功:數據結構、演算法是必備,然後憑興趣選擇資料庫、網路編程等等進行深入鑽研。
最後,選擇你看好的、感興趣的行業深耕個10年吧。做應用開發的人選擇了某個行業,後面是很難換行業的,選行很重要!
1.3 操作系統領域
UCOS太簡單,VxWorks太貴太專業,Windows不玩嵌入式了,IOS不開源,所以對於操作系統領域我們也只能玩linux了。
在嵌入式領域Linux一家獨大!
Android呢?Android跟QT一樣,都是一套GUI系統。只是Google的實力太強了,現在Android無處不在,所以很多時候Linux+Android成了標配。注意,在這里我們關心的是Android的整個系統、裡面的機制,而不是學習幾個API然後開發界面程序。操作系統領域所包含的內容,簡單地說,就是製作出一台裝好系統的專用「電腦」,可以分為:
①為產品規劃硬體:
按需求、性能、成本選擇主晶元,搭配周邊外設,交由硬體開發人員設計。
②給單板製作、安裝操作系統、編寫驅動
③定製維護、升級等系統方案
④還可能要配置、安裝Android等GUI系統:
⑤為應用開發人員配置開發環境
⑥從系統角度解決疑難問題
這個領域,通常被稱為「底層系統」或是「驅動開發」。
先解決2個常見誤區:
①這份工作是寫驅動程序嗎?
看看上面羅列的6點,應該說,它包含驅動開發,但遠遠不只有驅動開發。
②我們還需要寫驅動嗎?不是有原廠嗎?或者只需要改改就可以?
經常有人說,晶元原廠都做好驅動了,拿過來改改就可以了。如果,你的硬體跟原廠的公板完全一樣,原廠源碼毫無BUG,不想優化性能、削減成本,不想做一些有特色的產品,那這話是正確的。
但是在這個不創新就是找死的年代,可能嗎?!原因有二:
①即使只是修改代碼,能修改的前提是能理解;能理解的最好煅煉方法是從零寫出若干驅動程序。
②很多時候,需要你深度定製系統。
以前做聯發科手機只需要改改界面就可以出貨了,現在山寨廠一批批倒下。大家都使用原廠的方案而不加修改時,最後只能拼成本。
舉個例子,深圳有2家做交通攝像頭、監控攝像頭的廠家,他們曾經找我做過4個項目:
①改進廠家給的SD卡驅動性能,使用DMA。
②換了Flash型號後,系統經常出問題,需要修改驅動BUG。
③觸摸屏點擊不準,找原因,後來發現是旁路電容導致的。
④裁減成本,把4片DDR換為2片DDR,需要改bootloader對DDR的初始化。
這些項目都很急,搞不定就無法出貨,這時候找原廠?除非你是中興華為等大客戶,否則誰理你?
我在中興公司上班時,寫驅動的時間其實是很少的,大部分時間是調試:系統調優,上幫APP工程師、下幫硬體工程師查找問題。我們從廠家、網上得到的源碼,很多都是標準的,當然可以直接用。但是在你的產品上也許優化一下更好。比如我們可以把攝像頭驅動和DMA驅動揉合起來,讓攝像頭的數據直接通過DMA發到DSP去。我們可以在軟體和硬體之間起橋梁作用,對於實體產品,有可能是軟體出問題也可能是硬體出問題,一般是底層系統工程師比較容易找出問題。
當硬體、軟體應用出現問題,他們解決不了時,從底層軟體角度給他們出主意,給他們提供工具。再比如方案選擇:晶元性能能否達標、可用的BSP是否完善等等,這只能由負責整個方案的人來考慮,他必須懂底層。
在操作系統領域,對知識的要求很多:
①懂硬體知識才能看懂電路圖
②英文好會看晶元手冊
③有編寫、移植驅動程序的能力
④對操作系統本身有一定的理解,才能解決各類疑難問題
⑤理解Android內部機制
⑥懂匯編、C語言、C++、java
它絕對是一個大坑,沒有興趣、沒有毅力的人慎選。
①這行的入門,絕對需要半年以上,即使全天學習也要半年。
②它的職位,絕對比APP的職位少
③並且你沒有1、2年經驗,招你到公司後一開始你做的還是APP。
優點就是:
①學好後,行業通殺,想換行就換行;想自己做產品就自己做產品。
②相比做應用程序的人,不會被經常變動的需求搞得天天加班。
③門檻高,當然薪水相對就高。
操作系統領域,我認為適合於這些人:
①硬體工程師想轉軟體工程師,從底層軟體入門會比較好
②單片機工程師,想升級一下。會Linux底層的人肯定會單片機,會單片機的人不一定會Linux。
③時間充足的學生:如果你正讀大二大三,那麼花上半年學習嵌入式Linux底層多有益處。
④想掌握整個系統的人,比如你正在公司里寫APP,但是想升為系統工程師,那麼底層不得不學。
⑤想自己創業做實體產品的工程師,你有錢的話什麼技術都不用學,但是如果沒錢又想做產品,那麼Linux底層不得不學。
⑥做Linux APP的人,沒錯,他們也要學習。
這部分人不需要深入,了解個大概就可以:bootloader是用來啟動內核,Linux的文件系統(第1個程序是什麼、做什麼、各目錄幹嘛用)、APP跟驅動程序的調用關系、工具鏈,有這些概念就可以了
本文中,就把操作系統默認為Linux,講講怎麼學習嵌入式Linux+Android系統。
1.4 嵌入式Linux+Android系統包含哪些內容
嵌入式Linux系統包含哪些東西?不要急,舉一個例子你就知道了。
①電腦一開機,那些界面是誰顯示的?
是BIOS,它做什麼?一些自檢,然後從硬碟上讀入windows,並啟動它。
類似的,這個BIOS對應於嵌入式Linux里的bootloader。這個bootloader要去Flash上讀入Linux內核,並啟動它。
②啟動windows的目的是什麼?
當然運行應用程序以便上網、聊天什麼的了。
這些上網程序、聊天程序在哪?
在C盤、D盤上。
所以,windows要先識別出C盤、D盤。在Linux下我們稱之為根文件系統。
③windows能識別出C盤、D盤,那麼肯定有讀寫硬碟的能力。
這個能力我們稱之為驅動程序。當然不僅僅是操作硬碟,還有網卡、USB等等其他硬體。嵌入式Linux能從Flash上讀出並執行應用程序,肯定也得有Flash的驅動程序啊,當然也不僅僅是Flash。
簡單地說,嵌入式LINUX系統里含有bootloader、內核、驅動程序、根文件系統、應用程序這5大塊。而應用程序,我們又可以分為:C/C++、Android。
所以,嵌入式Linux+Android系統包含以下6部分內容:
①bootloader
②Linux內核
③驅動程序
④使用C/C++編寫的應用程序
⑤Android系統本身
⑥Android應用程序
Android跟Linux的聯系實在太大了,它的應用是如此廣泛,學習了Linux之後沒有理由停下來不學習Android。在大多數智能設備中,運行的是Linux操作系統;它上面要麼安裝有Android,要麼可以跟Android手機互聯。現在,Linux+Android已成標配。
2. 怎麼學習嵌入式Linux操作系統
本文假設您是零基礎,以實用為主,用最快的時間讓你入門;後面也會附上想深入學習時可以參考的資料。
在實際工作中,我們從事的是「操作系統」周邊的開發,並不會太深入學習、修改操作系統本身。
①操作系統具有進程管理、存儲管理、文件管理和設備管理等功能,這些核心功能非常穩定可靠,基本上不需要我們修改代碼。我們只需要針對自己的硬體完善驅動程序
②學習驅動時必定會涉及其他知識,比如存儲管理、進程調度。當你深入理解了驅動程序後,也會加深對操作系統其他部分的理解
③Linux內核中大部分代碼都是設備驅動程序,可以認為Linux內核由各類驅動構成
但是,要成為該領域的高手,一定要深入理解Linux操作系統本身,要去研讀它的源代碼。
在忙完工作,閑暇之餘,可以看看這些書:
①趙炯的《linux內核完全注釋》,這本比較薄,推薦這本。他後來又出了《Linux 內核完全剖析》,太厚了,搞不好看了後面就忘記前面了。
②毛德操、胡希明的《LINUX核心源代碼情景分析》,此書分上下冊,巨厚無比。當作字典看即可:想深入理解某方面的知識,就去看某章節。
③其他好書還有很多,我沒怎麼看,沒有更多建議
基於快速入門,上手工作的目的,您先不用看上面的書,先按本文學習。
2.1 入門路線圖
假設您是零基礎,我們規劃了如下入門路線圖。前面的知識,是後面知識的基礎,建議按順序學習。每一部分,不一定需要學得很深入透徹,下面分章節描述。
2.2 學習驅動程序之前的基礎知識
2.2.1 C語言
只要是理工科專業的,似乎都會教C語言。我見過很多C語言考試90、100分的,一上機就傻了,我懷疑他們都沒在電腦上寫過程序。
理論再好,沒有實踐不能幹活的話,公司招你去幹嘛?
反過來,實踐出真知,學習C語言,必須練練練、寫寫寫!
當你掌握基本語法後,就可以在電腦上練習一些C語言習題了;
當你寫過幾個C程序後,就可以進入下一階段的裸機開發了。
①不需要太深入
作為快速入門,只要你會編寫「Hello, world!」,會寫冒泡排序,會一些基礎的語法操作,暫時就夠了。
指針操作是重點,多練習;
不需要去學習過多的數據結構知識,只需要掌握鏈表操作,其他不用學習,比如:隊列、二叉樹等等都不用學;不需要去學習任何的函數使用,比如文件操作、多線程編程、網路編程等等;這些知識,在編寫Linux應用程序時會用,但是在操作系統特別是驅動學習時,用不著!
永往直前吧,以後碰到不懂的C語言問題,我們再回過頭來學習。
在後續的「裸機開發」中,會讓你繼續練習C語言,那會更實戰化。
C語言是在寫代碼中精進的。
②可以在Visual Studio下學習,也可以在Linux下學習,後者需要掌握一些編譯命令,我們暫時沒有提供C語言的教程,找一本C語言書,網上找找免費的C語言視頻(主要看怎麼搭建環境),就可以自學了。
2.2.2 PC Linux基本操作:
對於PC Linux,我們推薦使用Ubuntu,在它上面安裝軟體非常簡便。
我們的工作模式通常是這樣:在Windows下閱讀、編寫代碼,然後把代碼上傳到PC Linux去編譯。實際上,Ubuntu的桌面系統已經很好用了,我們拿到各種智能機可以很快上手,相信Ubuntu的桌面系統也可以讓你很快上手。為了提高工作效率,我們通常使用命令行來操作Ubuntu。
不用擔心,你前期只需要掌握這幾條命令就可以了,它們是如此簡單,我乾脆列出它們:
①cd : Change Directory(改變目錄)
cd 目錄名 // 進入某個目錄cd .. // cd 「兩個點」:返回上一級目錄cd - // cd 「短橫」:返回上一次所在目錄
②pwd : Print Work Directory(列印當前目錄 顯示出當前工作目錄的絕對路徑)
③mkdir : Make Directory(創建目錄)
mkdir abc // 創建文件夾abc
mkdir -p a/b/c // 創建文件夾a,再a下創建文件夾b,再在b下創建文件夾c
④rm : Remove(刪除目錄或文件)
rm file // 刪除名為file的文件
rm -rf dir // 刪除名為dir的目錄
⑤ls : List(列出目錄內容)
⑥mount : 掛載
mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mnt
mount -t yaffs /dev/mtdblock3 /mnt
⑦chown : Change owner(改變文件的屬主,即擁有者)
chown book:book /work -R //對/work目錄及其下所有內容,屬主改為book用戶,組改為book
⑧chmod : Change mode(改變許可權),下面的例子很簡單粗暴
chmod 777 /work -R // 對/work目錄及其下所有內容,許可權改為可讀、可寫、可執行
⑨vi : Linux下最常用的編輯命令,使用稍微復雜,請自己搜索用法。
要練習這些命令,你可以進入Ubuntu桌面系統後,打開終端輸入那些命令;或是用SecureCRT、putty等工具遠程登錄Ubuntu後練習。
2.2.3 硬體知識
我們學習硬體知識的目的在於能看懂原理圖,看懂通信協議,看懂晶元手冊;不求能設計原理圖,更不求能設計電路板。
對於正統的方法,你應該這樣學習:
①學習《微機原理》,理解一個計算機的組成及各個部件的交互原理。
②學習《數字電路》,理解各種門電路的原理及使用,還可以掌握一些邏輯運算(與、或等)。
③《模擬電路》?好吧,這個不用學,至少我在工作中基本用不到它,現在全忘光了。
就我個人經驗來說,這些課程是有用的,但是:
①原理有用,實戰性不強。
比如《微機原理》是基於x86系統,跟ARM板子有很大差別,當然原理相通。
我是在接觸嵌入式編程後,才理解了這些課程。
②每本書都那麼厚,內容都很多,學習時間過長,自學有難度。
針對這些校園教材的不足,並結合實際開發過程中要用到的知識點,我們推出了《學前班_怎麼看原理圖》的系列視頻:
學前班第1課第1節___怎麼看原理圖之GPIO和門電路.wmv
學前班第1課第2.1節_怎麼看原理圖之協議類介面之UART.wmv
學前班第1課第2.2節_怎麼看原理圖之協議類介面之I2C.wmv
學前班第1課第2.3節_怎麼看原理圖之協議類介面之SPI.wmv
學前班第1課第2.4節_怎麼看原理圖之協議類介面之NAND Flash.wmv
學前班第1課第2.5節_怎麼看原理圖之協議類介面之LCD.wmv
學前班第1課第3節___怎麼看原理圖之內存類介面.wmv
學前班第1課第4.1節_怎麼看原理圖之分析S3C2410開發板.wmv
學前班第1課第4.2節_怎麼看原理圖之分析S3C2440開發板.wmv
學前班第1課第4.3節_怎麼看原理圖之分析S3C6410開發板.wmv
即使你只具備初中物理課的電路知識,我也希望能通過這些視頻,讓你可以看懂原理圖,理解一些常見的通信協議;如果你想掌握更多的硬體知識,這些視頻也可以起個索引作用,讓你知道缺乏什麼知識。
這些視頻所講到的硬體知識,將在《裸板開發》系列視頻中用到,到時可以相互對照著看,加深理解。
2.2.4 要不要專門學習Windows下的單片機開發
很多學校都開通了單片機的課程,很多人都是從51單片機、AVR單片機,現在比較新的STM32單片機開始接觸嵌入式領域,並且使用Windows下的開發軟體,比如keil、MDK等。
問題來了,要不要專門學習Windows下的單片機開發?
①如果這是你們專業的必修課,那就學吧
②如果你的專業跟單片機密切相關,比如機械控制等,那就學吧
③如果你只是想從單片機入門,然後學習更廣闊的嵌入式Linux,那麼放棄在Windows下學習單片機吧!
理由如下:
①Windows下的單片機學習,深度不夠
Windows下有很好的圖形界面單片機開發軟體,比如keil、MDK等。
它們封裝了很多技術細節,比如:
你只會從main函數開始編寫代碼,卻不知道上電後第1條代碼是怎麼執行的;
你可以編寫中斷處理函數,但是卻不知道它是怎麼被調用的;
你不知道程序怎麼從Flash上被讀入內存;
也不知道內存是怎麼劃分使用的,不知道棧在哪、堆在哪;
當你想裁剪程序降低對Flash、內存的使用時,你無從下手;
當你新建一個文件時,它被自動加入到工程里,但是其中的機理你完全不懂;
等等等。
②基於ARM+Linux裸機學習,可以學得更深,並且更貼合後續的Linux學習。實際上它就是Linux下的單片機學習,只是一切更加原始:所有的代碼需要你自己來編寫;哪些文件加入工程,需要你自己來管理。
在工作中,我們當然傾向於使用Windows下更便利的工具,但是在學習階段,我們更想學習到程序的本質。
一切從零編寫代碼、管理代碼,可以讓我們學習到更多知識:
你需要了解晶元的上電啟動過程,知道第1條代碼如何運行;
你需要掌握怎麼把程序從Flash上讀入內存;
需要理解內存怎麼規劃使用,比如棧在哪,堆在哪;
需要理解代碼重定位;
需要知道中斷發生後,軟硬體怎麼保護現場、跳到中斷入口、調用中斷程序、恢復現場;
你會知道,main函數不是我們編寫的第1個函數;
你會知道,晶元從上電開始,程序是怎麼被搬運執行的;
你會知道,函數調用過程中,參數是如何傳遞的;
你會知道,中斷發生時,每一個寄存器的值都要小心對待;
等等等。
你掌握了ARM+Linux的裸機開發,再回去看Windows下的單片機開發,會驚呼:怎麼那麼簡單!並且你會完全明白這些工具沒有向你展示的技術細節。
驅動程序=Linux驅動程序軟體框架+ARM開發板硬體操作,我們可以從簡單的裸機開發入手,先掌握硬體操作,並且還可以:
①掌握如何在PC Linux下編譯程序、把程序燒錄到板子上並運行它
②為學習bootloader打基礎:掌握了各種硬體操作後,後面一組合就是一個bootloader
2.2.5 為什麼選擇ARM9 S3C2440開發板,而不是其他性能更好的?
有一個錯誤的概念:S3C2440過時了、ARM9過時了。
這是不對的,如果你是軟體工程師,無論是ARM9、ARM11、A8還是A9,對我們來說是沒有差別的。
一款晶元,上面有CPU,還有眾多的片上設備(比如UART、USB、LCD控制器)。我們寫程序時,並不涉及CPU,只是去操作那些片上設備。
所以:差別在於片上設備,不在於CPU核;差別在於寄存器操作不一樣。
因為我們寫驅動並不涉及CPU的核心,只是操作CPU之外的設備,只是讀寫這些設備的寄存器。
之所以推薦S3C2440,是因為它的Linux學習資料最豐富,並有配套的第1、2期視頻。
2.2.6 怎麼學習ARM+Linux的裸機開發
學習裸機開發的目的有兩個:
①掌握裸機程序的結構,為後續的u-boot作準備
②練習硬體知識,即:怎麼看原理圖、晶元手冊,怎麼寫代碼來操作硬體
後面的u-boot可以認為是裸機程序的集合,我們在裸機開發中逐個掌握各個部件,再集合起來就可以得到一個u-boot了。
後續的驅動開發,也涉及硬體操作,你可以在裸機開發中學習硬體知識。
注意:如果你並不關心裸機的程序結構,不關心bootloader的實現,這部分是可以先略過的。在後面的驅動視頻中,我們也會重新講解所涉及的硬體知識。
推薦兩本書:杜春蕾的《ARM體系結構與編程》,韋東山的《嵌入式Linux應用開發完全手冊》。後者也許是國內第1本涉及在PC Linux環境下開發的ARM裸機程序的書,如果我說錯了,請原諒我書讀得少。
對於裸機開發,我們提供有2部分視頻:
①環境搭建
第0課第1節_剛接觸開發板之介面接線.wmv
第0課第2節_剛接觸開發板之燒寫裸板程序.wmv
第0課第3節_剛接觸開發板之重燒整個系統.wmv
第0課第4節_剛接觸開發板之使用vmwae和預先做好的ubuntu.wmv
第0課第5節_剛接觸開發板之u-boot打補丁編譯使用及建sourceinsight工程.wmv
第0課第6節_剛接觸開發板之內核u-boot打補丁編譯使用及建sourceinsight工程.wmv
第0課第7節_剛接觸開發板之製作根文件系統及初試驅動.wmv
第0課第8節_在TQ2440,MINI2440上搭建視頻所用系統.wmv
第0課第9節_win7下不能使用dnw燒寫的替代方法.wmv
.................
原文鏈接:網頁鏈接
❸ 求資料庫原理及應用視頻教程
上海交通大學資料庫系統及應用
全27講
鏈接:https://pan..com/s/155pxn4yyteJ70egCyq8zZg
提取碼:5r1g
上海交通大學資料庫系統及應用 全27講網路網盤
❹ 誰的Java教學視頻比較好
很多想學JAVA的小夥伴的一個問題就是我該如何入門?是啊,面對這樣的問題我們該如何去做呢,這是擺在很多小夥伴面前的問題。我根據自己多年的編程經驗為大家分享自己的看法。
1.看到過好多個這樣的提問,其實我一般真的不那麼容易分享自己的這點心得的,這是第一次回答這樣的「推薦書籍」方面的問題。
我買編程方面的書籍,有一個非常清晰、堅決的原則——電子工業出版社的!
對於JAVA,建議你看如下的書:
首先,《21天學通JAVA》;
然後,《30天學通JAVA項目案例開發》(這本書的內容都是實例的,非常棒的實例!適合初學者的同時,又有實際應用性!)
以上的書籍,是基於你只想學J2SE的。
我還建議你主要攻J2EE方面的知識(在中國,J2SE要高手才能找到工作,而J2SE,只是菜鳥都很可能找到工作),至於J2EE方面的書籍:
首先,《21天學通JAVAWEB開發》
然後,《30天學通JAVAWEB項目開發》
以上都是本人確切的經驗來的,絕對沒有介紹錯
2.我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群里聽就行,開頭的的第一部分是:四二六.,位於中間的第二部分是:396,處於最後一部分的是:284。 這里有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。 不是想要學習的就不要加了。
3、動手去寫去練
當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。
送給那些懦弱的人們
A : 我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。
我: 我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我 算數、識字這些基本的的能力),我特么是神嗎?
A : 人人都跟你一樣?不是誰都能用很短的時間學很多的東西。
我 :我大概是神吧!你能少看一點 《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?
A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。
我:書到了,學習 吧,一個月後我要看你的成績。我來考考你
A:好難啊,我好睏,我要看一會兒電視.....(然而沒然後了....)
其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到
B:大神,我要學node了,推薦一下node的書籍唄
我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。
B:大神,除了那本書,還有別的書嗎?
我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?
B:我感覺很難做,node好難。
我:做做項目,搜搜Google、看看github。
而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題
其實,我們的潛力很大,我們能學的更好。我們能掌握的更多,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。
後記:
人,應該要明確自己的目標,擁有理想。
人,重要的不是你站在哪裡,而是你往哪個方向前進。
無論何時,不管你已經得到了多少,擁有了多少。都不是墮落的理由。
對於不肯上進,沒意志力的人來說,等於是,你想死,任何人都救不了你!
感謝自己,感謝自己沒有繼續讀大學。感謝自己在讀書時代已經養成了獨立思考,喜歡折騰的習慣。
❺ Java的自學過程中怎麼能有個清晰的學習路線
1、自學Java知識學習步驟:
①java基礎(基礎語法)
②java面向對象
③數組、集合、常用類
④IO流
⑤多線路SOCKET編程
⑥資料庫、網路傳輸、數據解析。
2、根據上面六項串起來做實例,
3、優化代碼:編寫代碼規范,通用邏輯或處理共同話,性能優化等等
4、改善代碼和功能完善等等。
上面的基礎學會了,開始試著開發項目,或都看別人已經開發好的項目自己拿來練習,鞏固知識點。
進公司能上手,對技術也扎實,工資絕對比你期望的要高!
自學的話時間比較長,但是一定不要太過多依賴於視頻,視頻的目的是理解裡面的技術。
Java程序員基本上都是高薪待遇的,
而通過Java培訓課程的學習,是相對而言比較便捷的成為Java程序員的方法,
通過Java培訓班四個半月的課程學習,掌握Java編程技術,
將所學與項目結合,邁出程序員職業道路的第一步,隨著工作經驗的積累,薪資只會增長。
❻ 適合初學者的Java教程
很多的培訓機構都會錄制比較完整的入門級視頻教程提供下載的,單是想要入門的話下載看這些就夠了兄弟連Java戰狼班,如果要深入的學習可以參考他們列出來的教學提綱去網路搜索
兄弟連JavaEE戰狼班:
第一階段:Java語言基礎
★ Java語言基礎
1、面向對象思維JAVASE
2、(類載入機制與反射,annotation,泛型,網路編程,多線程,IO,異常處理,常用API,面向對象,JAVA編程基礎)
3、Java8新特性
第二階段:資料庫
★ 資料庫
1、Oracle(SQL語句、SQL語句原理、SQL語句優化、表、視圖
2、序列、索引、Oracle數據字典、Oracle 資料庫PL/SQL開發
3、資料庫設計原則、 MySQL 、 JDBC
第三階段:Web基礎
★ Web基礎
1、HTML5(H5)基本文檔結構、鏈接、列表、表格、表單;
2、CSS 基礎語法、盒子模型、浮動布局、定位;
3、JavaScript語言基礎、DOM 編程、事件模型等),JQuery,AJAX框架,XML,BootStrap組件
第四階段:Java Web技術和主流框架
★ Java Web技術和主流框架
1、JSP&Servlet、struts2,hibernate4,spring4,JPA,maven
2、SpringData,SpringMVC,MyBatis,SpringSecurity,shiro,Nginx
第五階段:Linux
★ Linux
1、Linux安裝、熟悉Linux的基礎命令、vi編輯器的使用、awk和sed命令使用、用戶和組
2、文件及目錄許可權管理、使用ACL進行高級訪問控制、網路配置和軟體包安裝、啟動流程和服務管理
3、系統監控和日誌管理、進程管理和計劃任務、ssh遠程登錄、shell基礎和shell腳本。
第六階段:大數據技術(Hadoop和Spark)
★ 大數據技術(Hadoop和Spark)
1、Hadoop (Hadoop基礎和環境搭建,HDFS體系結構,MapRece;Hadoop的集群模式、HDFS聯盟,利用ZooKeeper來實現Hadoop集群的HA(高可用性)功能
2、Yarn的任務調度機制,Apache Hive,Pig數據處理,集成Hadoop和Sqoop
3、Flume以及Apache Kafka來實現數據的交換,安裝部署HBase,Storm)
4、Scala 語言(Scala環境搭建、Scala基礎語法、模式匹配、重載與構造器、Map與rece、元組、繼承、StringContext,Option Some None,Tuple;集合方法和運算,future 對象同步處理和非同步處理返回結果)
5、Spark(Spark搭建,Spark-shell 的使用,Spark-submit 提交應用, Spark的內核設計和實現,並對內核中的實現架構、運行原理進行詳細的講解;Spark生態體系中的各個組件,包括:Spark Core,Shark,Spark SQL和Spark Streaming等等)
第七階段:項目
★ 項目
1、China-UCSP 項目 SSM(Spring+SpringMVC+MyBatis)
2、用戶關系管理系統 S2SH+Maven+Nodejs+MySQL技術實戰開發
3、電子商務交易平台 S2SH+Maven+Shiro+Oracle
❼ 平面設計教案
主要內容:Photoshop 菜單的的 View、Windows、Help菜單;Photoshop的工具欄的部分內容,一些操作技巧。
教學時間:3小時
教學要求:對Photoshop 的菜單有全面的了解,知道 View、Windows、Help 三個菜單中的每一個選項的含義,對比較重要的的標尺、導向線、網格等能做到熟練使用。學會使用工具欄中的大部分工具,來對圖片進行需要的調整,如選擇、填色、部分修改調整等,為熟練地進行各種應用打下基礎。
第一節:View菜單
1.New View:新開啟一個視圖,和原來操作的那一個一模一樣。
2.Proof setup:驗證設置。
3.Proof Colors: 驗證色彩。相當於過去的CMYK Preview(CMYK模式的預視)這個命令是在不改變模式的情況下,將顯示方式按CMYK等其它色彩模式預視。
4.Gamut Warning快捷鍵:Shift+Ctrl+Y:色域警告,這個命令將把圖像中CMYK模式所不能表達的顏色,作警告色表示,這個命令並不改變圖形中的真實數據,只是顯示中改變了。關於警告色的選擇與設置,我們在第一次課時已經給大家介紹了。
5.Zoom in快捷鍵:Ctrl++:放大視圖
6.Zoom out快捷鍵:Ctrl+-:縮小視圖
7.Fit on Screen快捷鍵:Ctrl+0:在不與其它任何圖標重疊的情況下,將圖像盡可能的顯示得大一些(滿屏),我們常用這個快捷鍵來使圖象恢復到適合的顯示大小。
8.Actual Pixels快捷鍵:Alt+Ctrl+0:按真實大小顯示,也就是圖像的真實尺寸,即圖像中的每一像素,對應屏幕的每一像素。
9.Print Size:列印尺寸顯示,就是你選定的用厘米等單位表示的尺寸,但這不準確。
10.Hide(Show) Extra:快捷鍵:Ctrl+H:隱藏(顯示)選擇邊界,選中隱藏時,選擇的螞蟻線消失,但這時只是看不見螞蟻線而已,選擇其實仍然存在。
11.Hide(show):下面還有許多選項,如圖:
意為隱藏和顯示選擇一些東西,有如下:
Selection Edges: 隱藏和顯示選擇邊
Target Path:快捷鍵:Shift+Ctrl+H:隱藏(顯示)路徑
Grid 快捷鍵:Ctrl+』:隱藏(顯示)網格
Guides快捷鍵:Ctrl+;:隱藏(顯示)輔助線
還有其它的一些選項,包括全部顯示和全部隱藏等。
12. Hide(Show) Rulers:隱藏(顯示)標尺
13.Snap :吸引捕捉。
14.Snap to :吸引和捕捉到
下面有一些選項,包括:
Guides :快捷鍵:Shift+Ctrl+;:對齊輔助線,也稱輔助線自動捕捉,這時輔助線象有磁力一樣,會吸住你正在操作的對象。
Grid :快捷鍵:Shift+Ctrl+」:對齊網格,也稱網格自動捕捉,這時網格會象有吸引力一樣,吸住附近你正在操作的對象
Slices:捕捉到切片
還有別的,就不一一介紹了。
15.Lock Guides快捷鍵:Alt+Ctrl+;:鎖定輔助線
16.Clear Guides:清除輔助線
17.New Guides: 建立新的輔助線
18.Lock Slice: 鎖定切片
19.Clear Slice:清除切片
第二節 Windows菜單
1.Cascade:重新排列文件窗口。將屏幕上所有打開的文件按順序整齊排列。
2.Tile:在不與其它內容重疊的情況下盡量將窗口(即文件的框)滿屏。
3.Arrange Icons:排列圖標
4.Close all:關閉所有的視窗(所有的打開文件)
5. Hide(Show) tools:隱藏(顯示)工具欄
6. Hide(Show) Options:隱藏(顯示)不同工具的狀態欄
7. Hide(Show) Navigator:隱藏(顯示)縮放調色板
8. Hide(Show) Info:隱藏(顯示)信息調色板
9. Hide(Show) Color:隱藏(顯示)顏色調色板
10. Hide(Show) Swatches:隱藏(顯示)色樣調色板
11. Hide(Show) styles:隱藏(顯示)效果調色板
12.Hide(Show) history:隱藏(顯示)歷史調色板
13. Hide(Show) Actions:隱藏(顯示)程序調色板
14. Hide(Show) Layers:隱藏(顯示)層調色板
15.Hide(Show) Channels:隱藏(顯示)通道調色板
16. Hide(Show) Paths:隱藏(顯示)路徑調色板
17.Hide(Show) Character: 隱藏(顯示)文字屬性欄
18.Hide(Show) paragraph:隱藏(顯示)文欄位落屬性欄
16. Hide(Show) StatasBar :隱藏(顯示)信息條
17.這一欄是所操作的文件的信息。只有在有文件被操作時,這一欄才出現。
第三節 Help幫助菜單
1.Contents F1:幫助,非常詳盡,可惜是E文的。
2.About Photoshop:Photoshop的版權說明
3.About Plug-in:關於外掛模塊的版權說明,在Photoshop中使用了一些不是由Photoshop自己開發出來的技術模塊,這一項是用來說明專利所有者的。
4.Top Issues:認證
5.Downloadables:下載
6. Adobe Corporate News:合作
7. Register: 注冊。
8.Adobe Online:訪問Photoshop在網路中的主頁,當然前提是你得上網。
9.Export Transparent Image: 輸出透明的圖像
10.Resize Image:重置圖像尺寸
第四節 工具欄工具詳解(上)
工具欄是photoshop中最常用到的部分,工具具有易用性和直觀性,都是在圖像中按下滑鼠直接作用的,就象我們手中的筆、像皮一樣,當然,功能更為齊全,更為強大。這些工具有些是單一工具欄,有的後面還隱藏有工具,所以總的工具數量驚人,一共有50個。要用後面的工具有兩種方式,一種是按住不放,略等以後,隱藏的工具將出現,或是按住Alt用滑鼠進行選擇,每按動一次工具變一次。在幾乎所有工具中,只要按住空格不放,工具就會變成一隻手,用來移動視圖(不改變任何信息),方便我們的觀看。另外,幾乎所有時候,你按下Ctrl不放,都會變成移動方式。
在講以下內容之前,我有必要先講一下前景色與背景色的概念。
概念
前景色:是指目前我們在一般情況下(沒有其它選擇的情況下),系統的默認顏色,是我們用色類工具時,將用於填充的顏色。這個顏色被顯示在工具欄中,處於左上方。
背景色:是系統的第二默認色,在一些擦除工具中,圖像信息會被擦成這種顏色。
在初始情況下,前景色為黑色,背景色為白色,就象白紙和黑字。快捷鍵按D回到初始默認狀態,按X可以使前景色與背景色轉換。在顏色顯示塊上單擊滑鼠,會出現ColorPriker,在中間你可以選擇需要的顏色。另外,在一些畫筆工具中,按下Alt,吸管也會出現,這很重要,因為你可以隨時吸取圖中的顏色,使我們提高效率。
幾乎每一個工具都有它相應的options,就是屬性欄,位於菜單的下方,用來設置有關這個工具的一些參數,使工具符合你使用的要求。這個屬性欄如果已經打開,會隨著你選擇工具的變化而相應變化,與正選中的工具相響應,但如果option屬性欄這時沒有打開,你雙擊該工具也會出現相應的options屬性欄。
另外,點擊屬性欄中的那個工具圖標,都會出現以下兩項:
Reset tool:將該工具的設置回復到系統默認值(初始)
Reset all tools :將所有工具的設置都回到系統默認值(初始)
這些工具與功能鍵Ctrl、Shift、Alt以及空格相配合會有特殊的效果。
這是所有工具的圖示(見左圖):
下面是工具詳解:
1、選擇工具
選擇工具是一組形狀不同的工具組成,一共有四個,分別如下:
(方形)快捷鍵M;
這個工具用來進行選擇,在選取了選擇工具後,可以按下滑鼠左鍵在圖像上拉出一個方形放手後形成一個選擇,在選擇區出現以後,將游標放入選擇區內,再按下滑鼠左鍵拖動游標即可移動選擇區。它的Option屬性欄上有以下選擇項:
第一部分圖標是選擇選擇方式,是建立新選擇還是與原來的選擇交、並、補。
Feather:羽化值,這概念在上節課中講到過。
Anti-abased:是否反距齒,光滑邊緣
Style:模式,有三種,第一種Normal,這種方式是自由選擇,第二種Constrained Aspect Ration按一定方式強制選擇,按下面輸入的高寬比例選擇,如高寬比輸入的為1:1時,就能選擇出一個正方形。第三種Fixed Size固定選擇,第一種是根據選擇時拉動的大小,第二種和第三種都根據輸入的Width(寬度)和Hight(高度)值。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能
在沒有選擇的情況下,按住Shift選擇,可以出現一個正方形選擇。當已經有選擇時,按Shift可以增加選擇區,即與原選擇合為並集。
按住Alt選擇,可以以開始處為中心
當圖中已經有一些選擇時,按住Shift+Alt再選擇,可以出現一個與原選擇的交集。
按Ctrl+alt再拖動選擇區,可以將選擇區拷貝後移動,如果在移動選擇區時按住Shift,選擇區將在一定范圍內垂直或左右移動。這一個操作很有作用,如果你要對一幅表格狀的圖像進行修復,你可以只修復一部分,再把這一部分變成選擇區,三健同時按住,可以在垂直和水平方向復制,然後修復完全部圖像(比如條型碼)。
在選擇區存在時,按下Ctrl將使工具變成移動工具。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
(圓形),快捷鍵M;
這個工具除了選擇以圓形出現以外,一切和上一工具一樣
(行選擇),快捷鍵M;
用於在圖形中選擇出一個像素寬的行范圍。它的選擇項與前兩項差不多。
(列選擇),快捷鍵M;
用於在圖形中選擇出一個像素寬的列范圍。它的選擇項與前兩項差不多。
2、移動工具 快捷鍵V;
這個工具用來進行移動圖像,沒有選擇時,按下滑鼠拖動將移動全部圖像,這個移動不同於視窗移動。這個移動改變了圖像在畫布上的位置。如果在移動時有了選擇,那麼移動的將是選擇部分的內容。點擊後將會出現Option屬性欄。有以下選擇項:
Auto Select Layer:自動選擇層。這個選項如果選中,可以比較自由的切換層,但是,出錯也就容易了。
Show Bounding Box:顯示變形的方框,可以自由變形。
後面那個象串燒的東西是對齊、間距之類的。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能:
在沒有選擇的情況下,按住Shift移動,可以使目標強制方向(按45度倍角)移動。
按住Alt後移動,會先拷貝一塊,再移動
按住Alt後點輔助線,會使垂直線與水平線互換
按住Shift後移動輔助線,會使輔助線自動對齊標尺
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
3、套索工具,快捷鍵L
其中含有三個子工具:
自由套索工具,快捷鍵L
這個工具用來進行選擇,在選取了套索選擇工具後,可以按下滑鼠在圖像上隨意拉出一些線或者不規則形狀放手後形成一個選擇,在選擇區出現以後,將游標放入選擇區內,再拖動游標即可移動選擇區。點擊該工具後會出現Option屬性欄。有以下選擇項:
大部分選項與第一個工具選擇工具一樣。
Feather:羽化值
Anti-abased:是否按光滑邊緣選擇。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能
按住Shift,可以增加選擇范圍。
按住Alt再選,會從選擇中去掉新選擇的內容
在有選擇的情況下,按住Shift移動,可以使目標按45度角移動。
按住Alt後移動,會先拷貝一塊,再移動
按住Alt後移動輔助線,會使垂直線與水平線互換
按住Shift後移動輔助線,會使輔助線自動對齊標尺
按住Shift+Ctrl再移動選擇區,可以將選擇區拷貝後移動到另一個視圖的新層中,並處於中心位置。
在選擇區存在時,按下Ctrl將使工具變成移動工具。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
多邊形套索工具 快捷鍵L
這個工具用於選擇極不規則的形狀。在選定該工具後,按住滑鼠點,每點一下都與前一個點連成線,最後在點上雙擊就能自動與起始點閉合形成一個選擇區。它的其它內容與套索工具一樣。
磁性套索工具 快捷鍵L
這個工具是photoshop5新增加的工具,它利用色彩亮度等的差異,自動地對不規則的表面進行選擇,在被選對象與其它部分反差較大的時候,這個工具用起來就很有效。
點擊該工具後會出現Option屬性欄。除了與套索工具一樣的前半部分以外,後面還有以下選擇項:
選擇項有兩項比較特殊的:
Lasso Width:套索的作用范圍,范圍越大,就越有磁性,比較遠的地方都會被吸引過去。但太大的范圍也不好控制。
Edge contrast:可以不加區分的對比程度,這個對比程度越高,就表示區分越不明顯,對比程度越低,就表示區分得越細,一般來說,比較低的對比程度會較精確。
Frequency:頻率。
4、魔棒工具 快捷鍵W
這個工具和菜單中的命令Color range差不多一樣,都是通過顏色,亮度等參數的相近性來選擇。這個工具被選定後,在圖像上所要選擇的位置擊一下滑鼠就可以實現自動選擇,需要注意的是魔棒工具只對部分色彩模式有效。對黑白等模式無效。點擊後,在上方的屬性欄中有以下選擇項:
Tolerance:容差范圍,這個值設定顏色的入選范圍,值越大,表示與滑鼠點擊的像素點差距更大的像素也能被選中,這樣選的范圍越大。
Anti-abased:是否按光滑邊緣。
Contiguous:是否相鄰,默認狀態這個選項被選中,這將把選取限制在相鄰的像素上,如果不選這個選項,則選取整個圖像上的同一個范圍的所有像素。
Use All Layers:多層同選。這個選項將使所有可見層的內容參與選擇
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能
在有選擇的情況下,按住Shift+Ctrl移動選擇區,可以使目標按強制方式(45度角倍數方向)移動。
按住Shift再選,可以在原選擇中增加選擇范圍。
按住Alt再選,會從選擇中去掉新選擇的內容
按住Alt+Ctrl後移動輔助線,會使垂直線與水平線互換
按住Shift+Ctrl後移動輔助線,會使輔助線自動對齊標尺
在選擇區存在時,按下Ctrl將使工具變成移動工具。
按住Shift+Ctrl再移動選擇區,可以將選擇區拷貝後移動到另一個視圖的新層中,並處於中心位置。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
5、裁剪工具 快捷鍵C;
這個工具與菜單中的Crop命令是大體一樣的,在選擇了這個工具後,你按下滑鼠在圖像中拖動,就會出現一個框,框的邊上有8個處理點,可以通過拖動處理點來改變尺寸等參數,或者旋轉。在確定了雙擊變化區域中間的空白區域即可,也可以直接回車。
如果不滿意變化,可以按下Esc取消。
選定該工具,在上方該工具的Option屬性欄在沒有開始裁剪的時候,有如下選項:
你可以設置要裁剪的圖片的Width和Height,使裁剪按你定下的Width和Hight中數值來裁剪。還可以設定輸出的結果Resolution,即解析度,單位還是每英寸多少像素。
最後兩個按鈕Front Image,是將未裁剪的圖形的以上參數列出,即初始數據。
Clear 是清除。
在圖形中按下滑鼠拉動,已經建立了裁剪框後,Option變成了下面這個樣子:
Shield Cropped area Color:是指的用來在圖中標示要剪要的區域的顏色,你可以要,也可以不要,也可以設定一種你喜歡的顏色。後面Opacity是該顏色的透明度。
Perspective:透視裁剪,可以使裁剪框按透視方式變化。
後面還有兩個選擇,由於是預設定,所有是灰的。
屬性條的末端,有這么個選擇 ,其中,勾表示裁剪,叉表示取消這個操作。
在裁剪的時候,按下Shift 表示等比例變化,按下Ctrl表示按透視方式變化,按下Atl表示一邊同向變化。
6.切片工具,快捷鍵K;
這個工具下面還有一選擇切片工具,如下:
切片工具用來把大圖片切成小圖片,這可以加快網路的下載速度,一般來說,在網頁上都需要把大圖片剪成小圖片,不然打開太慢。當然,切片工作我強烈建議你在Imageready中去完成,因為那是專門為網頁設計而准備的。
切的方法很簡單,你只要隨便下刀就行了,剩下的工作都由photoshop去做。
在切的時候,同樣的,上方會有一個屬性欄:
Style中有三個選擇,分別是普通模式,等比例模式(默認值為1:1),固定大小方式,等比例方式,可以輸入長寬比,而固定大小方式,可以輸出你預設的切片大小,後面還有兩項,分別是顯示切片數量和線的顏色設定。
你在完成切片後,可以把切好的圖形存成html格式,在Save to Web這個命令中,可以對存入的方式進行選擇,你可以為這個貯存指定一個鏈接,也就是URL,在存好之後,你在需要調用這幅圖的地方輸入這個鏈接就可以了。
存的時候,如下圖所示:
可以輸入一個文件名,另外,要記得將選擇為All Slices。你所存的地方,會出現一個html,你可以調用它。
按下Ctrl將使切片工具與選擇切片工具互換。
選擇切片工具
這個工具是和上面那個工具配合使用的,可以用來調整你切下的圖片,使你建立的切片更合理,它的屬性欄中有如下的選擇項
其中,前面那四個圖標是布置切片的排列順序,分別是到最前,向前一層,向後一層和到最後一層,可以調整切片的順序。
Promote to user Slice:轉成用戶切片,你在建立一個切片之後,其它空間會自動出現一個預切片,你可以用這個命令將其轉換成你建立的切片。
第三部分是Slice Option,是一些有關於切片的操作,在點下後會出現以下這個對話框:
裡面可以設定你的文件名,地址什麼的,不過這個命令用處不大,你不改也沒有什麼,主要的設置還是在save to web裡面,那裡面也有個選擇切片工具,只有用那個工具,才能真正選中你在存下來的切片。
7、噴筆工具 快捷鍵A
這個工具被選定後,在圖像上所要噴色的位置擊一下滑鼠就可,不斷按動滑鼠或按住滑鼠不放可以進行多處噴繪。筆尖的大小和形狀可以在屬性欄中Brush選項中進行調節。
點擊後,在上方的屬性欄中有以下選擇項:
Brush:選筆尖的大小。
Pressure:壓力范圍,這個值設定噴槍的壓力,值越大,色彩越濃。
屬性欄的最後面還有一個選項:
這是一個按鈕,點擊後會出現這個對話框:
這是選擇淡出值,裡面的選項都有個Foad。如果選了Foad,並設定了步數,會按照你的設定,筆尖由粗到細,壓力由大到小(由有色變為透明),顏色也可以由前景色變為背景色。
Foad:淡出,後面的值越小,由濃到淡的速度越快。
Step:步數。
效果如下:
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能:
按住Shift再噴,可以使噴筆按直線噴。當你滑鼠移動與垂直的角度小於45度時,沿垂直線噴。當角度大於45時,沿水平噴。
按住Alt再選,噴筆變成吸管工具,幾乎所有的筆類工具在按下此鍵後都變成吸管工具。
按下Ctrl將使工具變成移動工具。
按住Shift+Ctrl再移動選擇區,可以將選擇區拷貝後移動,如果是移到另一個視圖的新層中,將處於中心位置。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
直接鍵入數字,可以改變壓力大小(0代表100%。)
8、畫筆工具 快捷鍵B
毛筆工具與鉛筆工具是在一起的,鉛筆工具位於其下方:
這個工具被選定後,在圖像上所要著色的位置按下滑鼠就可,不斷按動滑鼠或按住滑鼠不放可以進行在多處畫出毛筆狀的效果。筆尖的大上和形狀可以在屬性欄的Brush選項中進行調節。點擊後,在上方的屬性欄中有以下選擇項:
Brush:選筆尖的大小。
Mode:填充模式選擇,這裡面的選擇和fill里的選擇是一樣的。
Opacity:不透明度,這個值設定畫筆的著色的透明度,值越大,色彩越濃。
Wet Edges:選定這個選項將產生一種用水將線條打散的效果
在屬性欄的最後位置,仍然有這個按扭:
點擊後同樣會出現與噴槍差不多的對話框:
唯一不同的是壓力換成了Opacity(不透明度)。效果和剛才那個噴筆差不多,就不再例舉了。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能
按住Shift再噴,可以使噴筆按直線噴。當你滑鼠移動與垂直的角度小於45度時,沿垂直線噴。當角度大於45時,沿水平噴。
按住Alt再選,噴筆變成吸管工具。
按下Ctrl將使工具變成移動工具。
按住Shift+Ctrl再移動選擇區,可以將選擇區拷貝後移動,如果移到另一個視圖的新層中,將處於中心位置。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
直接鍵入數字,可以改變不透明度大小(0代表100%。)
9、鉛筆工具 快捷鍵Y
這個工具在畫筆工具下面,工具被選定後,在圖像上所要著色的位置按下滑鼠就可,不斷按動滑鼠或按住滑鼠不放可以進行在多處畫出鉛筆狀的效果。筆尖的大小和形狀可以在屬性欄中Brush選項進行調節。選擇該工具後,在上方的屬性欄中有以下選擇項:
Brush:筆尖選擇。
Mode:填充模式選擇,這裡面的選擇和fill里的選擇是一樣的。
Opacity:不透明度,這個值設定鉛筆的著色的透明度,值越大,色彩越濃。
Auto Erase:這個選項自動選擇顏色,當第一點的顏色為背景色,則畫出來的是前景色,相反,如果第一點所在位置為前景色,則畫出來是背景色。比如如下效果
前面那兩筆黑色的就是從白色區域開始畫的,而後面則是從黑色區域開始。
後面同樣有這樣一個按鈕:
也表示淡出功能,選擇項與毛筆一樣的。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能
按住Shift再畫,可以使畫筆按直線畫。當你滑鼠移動與垂直的角度小於45度時,沿垂直線畫。當角度大於45時,沿水平畫,按住shift不放時,每點一下滑鼠都會自動與前一點連結成線。
按住Alt再選,鉛筆變成吸管工具,幾乎所有的筆類工具在按下此鍵後都變成吸管工具。
按下Ctrl將使工具變成移動工具。
按住Shift+Ctrl再移動選擇區,可以將選擇區拷貝後移動,如果是移到另一個視圖的新層中,將處於中心位置。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
直接鍵入數字,可以改變不透明度大小(0代表100%。)
10、橡皮圖章 快捷鍵S
這個工具是一個應用非常廣泛的工具,這個工具經常被用來對圖像進行修復和拼接,這個工具可以根據你的設定,在圖像上任意地方選取一部分復制到需要的地方去。
下面還有另一個工具,樣本方式的橡皮圖章工具,如下圖:
這個工具在被選定後,如果是從圖像中某處位置復制,先在圖像上所要選取的位置按下Alt+滑鼠,相當於印章醮上顏色,再在指定位置不斷按動滑鼠或按住滑鼠不放拖動就可以進行對選定位置的復制。橡皮的大小和形狀可以在屬性欄的Brush框中進行調節。點擊後,在上方的屬性欄中有以下選擇項:
Brush:筆尖的樣式和大小選擇。
Mode:填充模式選擇,這裡面的選擇和fill里的選擇是一樣的。
Opacity:不透明度,這個值設定復制的著色的透明度,值越大,越不透明
Aligned:是否按排列和伴隨方式復制,如果選中,是在復制時選定取樣位置後,十字星與游標的位置相對固定。這時復制的內容相對固定。若不選中,就按非伴隨方式復制,這時的十字星位置與游標的位置不固定。所復制的內容顯得隨機一些。
Use All Layers:對所有的層發生作用,這個選項如果選中,不管有多少層,都按所見的樣子進行復制,就當是一層一樣。不選中就只對當前層發成作用。
同樣,在屬性欄的最後也有這個按鈕:
但後面的對話框與前面的那幾種筆類工具不太一樣:
主要是沒有了color這個選項,因為印章工具復制的是圖像的內容,而不是顏色。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能
按下Shift可以使復制的內容強制,即沿直線方式復制。
按下Ctrl將使工具變成移動工具。
按住Shift+Ctrl再移動選擇區,可以將選擇區拷貝後移動到另一個視圖的新層中,並處於中心位置。
游標鍵可以移動選擇區,每次一個像素,游標鍵+Shift可以每次移動10個像素。
直接鍵入數字,可以改變不透明度大小(0代表100%。)
11、樣本方式的橡皮圖章 快捷鍵S
這個工具是上一個工具的特殊應用方式,這個工具經常被用來對圖像進行新的創作,這個工具可以根據你的設定,在圖像上任意地方選取一部分作為樣本,復制到需要的地方去。
這個工具在被選定後,要有樣本pattern才有意義,否則會出現出錯的提示。有樣本時就會自動的將樣本填充到你點下滑鼠的位置。關於樣本的設定請參看和第二次課的內容,Edit菜單。
這個工具的屬性欄與上一個工具的非常相象,但多了一個樣本框,主要有以下選擇項:
第一個選項還是Brush,即筆尖類型。
Mode:填充模式選擇,這裡面的選擇和fill里的選擇是一樣的。
Opacity:不透明度,這個值設定復制的著色的透明度,值越大,越不透明。
Pattern:樣本,裡面的選擇項見第二節課樣本部分。
Aligned:選中表示從樣本中按伴隨方式復制,這種方式復制的樣本填充得規范,排列得整齊,不選中表示從樣本中按非伴隨方式復制,這種方式復制的樣本隨機排列,不規范。
同樣,在屬性欄的最後也有這個按鈕:
後面的對話框:
主要是沒有了color這個選項,因為印章工具復制的是圖像的內容,而不是顏色。
在不改變設定的情況下,下面的一些按鍵的加入可以增加功能。
按下Ctrl將使工具變成移動工具。
按下Shift可以使復制的內容強制,即沿直線方式復制。
按住Shift+Ctrl再