软件科技创新创业基地暑期集训有感
迎著炎炎夏日,我來到了北京理工大學軟件科技創新創業基地進行暑期集訓。暑假是旅游放松的好時間,可又是提升自己的好時機。大家來自五湖四海,一同來到北理工進行集訓就是因為我們有共同的地方——有一顆磨練自己堅強的心。
從開營儀式時我們就被貫徹了“不怕苦,不怕累,團隊協作,創新求精,軟件報國”的“鍋爐房”科技創新精神。領導和老師讓同學們能夠專心、全面的投入到基地的學習、科創活動當中給我們創造了良好的實驗室條件和制定了嚴格的集訓守則,目的就是為了讓同學們學有所獲。當然這次集訓讓我無論從態度到學習方法上精進了不少,受益匪淺。
每天集訓從早上8:30開始至晚上22:30結束,除了午飯和晚飯的空余其他時間幾乎都是泡在實驗室,一星期只有周日下午半天提供休息。一天至少有10個小時的實訓時間,如此高強度高負荷的類軍事化管理在大多人眼里是吃不消的,然而當你真的融入那個一起奮斗;那種年輕人一起拼搏的環境當中,你會發現過度的那么自然,鉆研學習是一件很美妙的事情。
軟件科技創新創業基地暑期集訓項目共分為八個實驗室,(1)算法藝術學生創新實驗室(2)數字藝術實驗室(3)人機對弈及智能推演實驗室(4)數據智能實驗室(5)嵌入式應用創新實驗室(6)信息對抗及安全防護創新實驗室(7)移動政務學生創新實驗室(8)機器智能實驗室。學員可根據自己的專業方向和興趣愛好選擇加入到基地的8個學生創新實驗室中,與北京理工大學的學生一起,參與基地組織開展的各項相關專業培訓、創新項目實踐、科技競賽、集訓文體活動、集訓講座交流活動等。
剛開始各個實驗室負責人介紹實驗室的情況,然后就像報志愿一樣,根據自己的需求進行第一二三志愿的選擇。我專業的方向是移動應用,而我對前端也很感興趣,所以我選擇的移動政務實驗室。
第一次見面司空見慣的就是自我介紹。這里有北理工的土著,延安大學的學生還有通過集結的北京學院各路大學的學生們歡聚一堂。
July.11
一開始的方向是分組建立一個網站。雖然有過前端的一些基礎,但是從無到有,直接設計一個個人網站,這個經歷還是頭一次。任務是完成主題確定,設計logo和網站名,收集素材。從定位上講不容易,如何做到創作出個性鮮明主題統一的網站成了首要問題。
我們小組曾經考慮過做游戲、影視、博客、論壇……不停地推翻以前的意見重新討論,最終把網站的定位到美食上。因為兩個人都是吃貨,所以希望憑借自己對美食給大家展示出我們的風格。主題確定了,logo的意見又不統一了。
由此可見,從根本建立一個網站是需要多方磨合,建立網站需要小組的團結一致,分工明確,才能有效率的開工。由此可見良苦用心。這是推薦自學的網站在線邊學邊做就能直接顯示結果codecademy.com,學習技術重要的就是查找文檔,還可以在MDN上找各種語言語法用法的文檔。前端頁面一定要考慮兼容性問題,使用caniuse看不同瀏覽器的兼容情況。
July.12
首先進行了對HTML5與CSS3知識的梳理和復習1、 添加圖像 選擇正確格式、大小,用像素衡量
2、 JPEG適合多種不同顏色 GIF或PNG是顏色較少或者大面積顏色相同時
3、 Img的alt、src
4、 Figure、figcaption
5、 表格結構、跨行、跨列、長表格
6、 各種表單
7、 注釋、id、class
8、 Div、span
9、 Iframe內聯框架
10、轉義字符
11、加視頻音頻,由于帶寬和用戶體驗上,盡量不加入視頻和音頻等大文件
緊接著就又是一輪頭腦風暴,晚上進行靜態頁面的展示,沒有了樣式,每個組的展示效果都一般,但可以看得出大家都在認真,都在努著一把勁兒。
July.13
需要繪制網頁設計線框圖,描述靜態設計規格,以前從來沒有系統的設計一個網站,線框圖可以更直觀的把網站的結構抽象出來,所以好好自學了一下線框圖。
主題:美食天下
主頁
線框圖(Wireframe)是軟件或者網站設計過程中非常重要的一個環節。設計線框圖也需要考慮很多的原則,保證其美觀規范,能使項目運轉更為流暢。當我們逐漸清晰了產品的需求后,并梳理了產品的各個頻道及頁面,那么這一步就要開始驗證這些想法的具體界面表現和方案的可行性了。
原型設計是幫助我們更細致的思考,并做各項需求的評估,同時也是將自己腦海里的想法進行輸出的一種方式。通過原型設計后,我們就可以進行產品宣講了,相比較于抽象的文字描述,原型則更加直觀的展現產品的需求,設計和技術人員或者老板也能夠更加直觀的了解到產品意圖。當到了原型設計這一步時,已經不僅僅是構思了,我們需要更加深入的了解每個頁面上元素和這些元素的屬性。
July.14
CSS知識總結,層疊樣式表知識的梳理。1、 選擇
(1) 選擇器
通用選擇(*)、類型選擇、id選擇(#id)、Class選擇(.class)、子元素選擇
(2) 級聯原則
就近原則: 按照聲明順序,越靠后的優先級越高
具體性原則: 按照定位的具體程度,越具體的優先級越高。類型比通用具體,id、class、子元素比類型具體。
重要性原則: 使用!important標記的對同一元素優先級最高。
2、 字體
(1) Serif: 襯線字體。在字母筆畫末端有一定的修飾。適合長文本閱讀。
(2) sans-serif: 無襯線字體。沒有裝飾,顯示平滑,對小字號打印和顯示屏友好。
(3) 等寬字體。所有字母的寬度一致,對代碼顯示友好。
字體堆棧:font-family: font1, font2, …, general_font對于字體名稱超過一個單詞的,用雙引號修飾。同一個頁面不要超過三種字體。
字體大小font-size可以使用像素px、百分比和em(字母m的寬度)
100%=16px=12pt=1em
大小寫font-transform、uppercase, lowercase或者capitalize。
添加額外字體: @font-face
3、 文本
文本修飾text-decoration,none, underline下劃線, overline上劃線, line-through刪除線。
文本間距line-height行間距, letter-spacing字母間距, word-spacing字間距。
用em值確定。
文本對齊text-align,left, right, center, justify兩端對齊。
文本垂直對齊vertical-align,baseline, text-top, text-bottom或者em值。
文本縮進text-indent,用em值確定。
文字陰影text-shadow: 左右延伸+上下延伸+模糊程度(可選)+顏色
偽類設置
首行與首字母:first-letter
4、 盒子
盒子模型算是比較重要的問題了
邊框寬度border-width
一個像素值px,一個單詞(thin,medium,thick),四個邊的像素值(上+右+下+左),兩個像素值(上下+左右)。
邊框樣式border-style,solid實線,dotted方形點串,dashed虛線,double雙實線,groove刻入,ridge鏤出,inset嵌入,outset突出, hidden/none無邊框。四個邊可以單獨設置:border-top-style border-left-style border-right-style border-bottom-style。
邊框圓角border-radiu:一個像素值(半徑)或者兩個像素值(長短軸)。四條邊也可以單獨設置。
5、列表
6、圖像與背景
? 背景顏色background-color
? 背景圖像background-imag,參數為url圖像路徑。
? 背景圖像重復background-repeat,repeat上下左右重復,repeat-x橫向重復,repeat-y縱向重復,no-repeat不重復。
? 背景圖像滾動background-attachment,fixed固定不動,scroll跟隨滾動。
? 背景圖像定位background-positon九個位置,左中右*頂心底。
之后進行高級特性總結:
1、 塊級元素 換行顯示
2、 內聯元素 在周圍的文本之間流動
3、 包含元素 父元素
4、 定位機制 position 普通流 相對定位 絕對定位 固定定位 浮動元素
5、 普通流 static 塊級元素換行顯示(強制性)
6、 相對定位 relative 相對普通流的位置進行定位 不影響其他元素 使用位移屬性 top bottom left right
7、 絕對定位 absolute 相對于包含元素 脫離普通流 隨頁面滾動 使用位移屬性 瀏覽器默認在h1外面加一個外邊框,需要時設margin為0px
8、 固定定位 fixed 相對于瀏覽器窗口 不隨頁面滾動
9、 浮動元素 float 脫離普通流 定位到包含元素的最左或左右 同時應使用width限制寬度
10、 重疊元素控制 z-index 一個數字 值越大越靠前
11、 清除浮動 clear 在同一包含元素內,一個盒子的某個方向不允許浮動元素 left right both none
12、 固定寬度布局 使用像素確定寬度,精確定位,但是會受到分辨率影響
13、 流體布局 使用百分比(相對于瀏覽器窗口或者包含元素)窗口適應性高,但是會出現難以閱讀的文本
14、 多個樣式表 CSS中使用@important(父表優先級最高) html中只用標簽(越往后出現優先級越高)
15、 過渡動畫 transition 只能在有變化是產生效果 注意各瀏覽器兼容 數值為秒
功夫不負有心人,在我和我的組員不斷探討、磨合中,我們小組一總分第一名獲得移動政務實驗室中期的冠軍。
July.15
JavaScript
? Html和樣式已經不能滿足需求了,一些動畫和特效需要借助腳本語言
? Onblur事件會在對象失去焦點時發生
? Onfocus事件在對象獲得焦點時發生
以前學習JS的時候從來沒注意過JavaScript 變量提升。對于大多數程序員來說并不知道 JavaScript 變量提升。
如果程序員不能很好的理解變量提升,他們寫的程序就容易出現一些問題。為了避免這些問題,通常我們在每個作用域開始前聲明這些變量,這也是正常的 JavaScript 解析步驟,易于我們理解。
JavaScript 中,函數及變量的聲明都將被提升到函數的最頂部。變量可以在使用后聲明,也就是變量可以先使用再聲明。
在學習中發現其實有很多細節還是可以注意,讓我對JS有了新的認識。
July.18
Duang~加了CSS和JS的特技之后,靜態動態的網頁處理的也差不多了,然而這只是前端的內容,一個網站的搭建不僅需要前端界面的顯示,更加需要后端,下載wamp繼承開發環境,為后端學習做準備,了解前端、后端的區別,兩者之間數據的傳遞。
July.19
MySql
數據庫作為后端的重點之一是不可小覷的。SQL語句最常用的就是增刪改查。
一、 簡單的顯示函數
? Select version();
? Select database();(正在使用的數據庫)
? Select user();(取得當前登錄的用戶)
? Select curdate(), curtime();(返回時間的日期;返回時間)
? Select now();(返回當前的日期和時間)
二、 數據類型
1.自增類型:auto_increment
2.無符號類型:Unsigned
3.主鍵類型: primary key()
(主關鍵字(主鍵,primary key)是被挑選出來,作表的行的惟一標識的候選關鍵字。一個表只有一個主關鍵字。主鍵可以由一個字段,也可以由多個字段組成,分別成為單字段主鍵或多字段主鍵。)
4.枚舉類型:enum(enum1,enum2,…)
5.整型:tinyint, mediumint, smallint,int
6.精度類型:decimal(4,2);
7.固定字符串類型:char;
8.變長字符串類型:varchar(20)
9.變長文本類型:text
10.大文本類型:long text(存儲在0-4G)
11.日期類型:date
12.日期時間類型:datetime
通過學習也彌補了我之前學習的不足,以前Truncate掌握的并不很好,但是和delete對比就能更好地了解特點并記住了。
Truncate與delete的區別
Truncate table命令將快速刪除數據表中的所有記錄,但保留數據結構
1. DELETE
? DML語言
? 可以回退
? 可以有條件的刪除
2. TRUNCATE
? DDL語句
? 無法回退
? 默認所有的表內容都刪除
? 刪除速度快
學習了這些SQL語句為了服務前端,針對小組網頁設計的庫表。我們決定建立一個表保存用戶登錄、注冊的信息
July.20
單條數據在需求上肯定不能滿足所以學習多條數據的插入。
一、聚集函數
1、avg();求出各種記錄中的字段的平均值
2、max();
3、count(*);用于統計記錄數的數量的函數
4、min();
二、分組查詢
1、group by;
2、order by; 默認為升序(asc),降序為(desc)
3、having;分組之后的條件設置,專用于聚集函數
三、跨表查詢、連接查詢
主外鍵(注意引擎為innodb)
1、on update、on delete觸發事件;
2、cascade /set null / set default/ no action(默認);
3、有外鍵約束不能隨意刪表;
4、刪除有順序分別;
July.21
PHP
后端MySql+Php是黃金搭檔,對于運行在服務器端php腳本語言必不可少。
語法介紹
1.變量及常量
? 變量聲明以$開始,$后第一個字符必須是字母或下劃線_,且變量名對大小寫敏感
? 變量不需要聲明數據類型直接賦值使用
? PHP常量 define(“key”,”value”);
? 數組聲明$arr = array(…,…,…);
? 普通數組、關聯數組、多維數組
2.運算符
? 算術運算符 + - * / %
? 賦值運算符 = &(賦值時使用&則表示兩個變量指向相同的內存空間)
? 比較運算符 == ===(全等,兩個變量內容相等且類型相同)
? != <>(不等) !== 不全等 < > <= >=
? 三元運算符 example: $isPass = $score > 60 ? "及格" : "不及格";
? 邏輯運算符 and && or || xor !
? 字符串連接運算符 .
? 錯誤控制運算符。 @ 不能放在類和函數前面
July.22
PHP
PHP中預定義了幾個超級全局變量(superglobals) ,這意味著它們在一個腳本的全部作用域中都可用。 你不需要特別說明,就可以在函數及類中使用。
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_ENV
- $_COOKIE
- $_SESSION
用php連接數據庫與前端數據之間進行數據傳遞。
July.23
AJAX
AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。通過在后臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
通過學習AJAX,實現網站的登錄、注冊頁面的實時監測的驗證。
July.24
準備JDK的安裝和環境變量配置方法為學習Java編程語言和后來的Android做準備,繼續完善小組的網站。
July.25
Java
人手一本《Java編程思想》,讓學習面向對象變得簡單起來。給我留下深刻印象的是Java沒有sizeof——除boolean以外,任何一種基本類型都可以通過類型轉換變為其他基本類型。
RTTI(Run-Time Type Information)——通過運行類型信息程序能夠使用基類的引用來檢查這些引用所指的對象的實際派生類型。
July.26
Java
我們使用了Java實現了knn算法。
算法實現步驟:
(1)計算所有點距離未知點的歐式距離
(2)對所有點進行排序
(3)找到距離未知點最近的k個點
(4)計算這k個點所在分類出現的頻率
(5)選擇頻率最大的分類即為未知點的分類
July.27
Android
1. 使用Android Studio
創建第一個app
2. 活動(Activity)
3. 常用控件(Widget)
? TextView 字體大小,顏色,位置,內容(靜態,動態)
? Button(監聽方法 OnClickListener() )
? EditText(獲取輸入內容)
? ImagView
4. 基本布局(Layout)
5. 學會使用Intent
July.28
Android
1. ListView 的簡單用法。
getView()有convertView參數,用于將之前加載好的布局進行緩存,快速滾動提升性能
2. 定制 ListView 的界面。
3. ListView 的優化。
4. RecycleView 的基本用法。
5. 點擊事件。
6. 自定義按鈕及效果設計。
7. 文件存儲。
8. SharedPreferences 存儲。
從SharedPreferences 中讀取數據,SharedPreferences對象中提供了一系列的get方法,用于對存儲的數據進行讀取,每種get方法都對應了SharedPreferences。Editor中的一種put方法。
9. 計算時誤差處理。
10. 漢化方式。
July.29
Android
1. Litepal數據庫采取對象關系映射模式(ORM),是開源的Android框架
給我印象很深的是升級數據庫方便,不需要把之前的表drop掉,修改內容只需要版本號加1,數據不丟失
2. SQLite數據庫,目前最常用的數據庫類型,Android開發必需掌握的數據庫類型
SQLite數據庫可以直接調用SQLiteOpenHelper幫助類實現,有兩個實例方法getReadableDatabase();和getWritableDatabase();,最后使用query()方法用于對數據進行查詢。
July.30
經過了21天的集中訓練,從前端到后端基本技術都已經面面俱到了,把這些技術應用的我們的網站上,成為我們的作品進行展示。最終我們小組在移動政務實驗室獲取了第二名的好成績,我也獲得優秀學員圓滿完成了軟件學院的軟件科技創新創業基地暑期集訓。
總結
開源的社區是你最好的成長的地方。
Flex(Flexible Box),”彈性布局”用來為盒狀模型提供最大靈活性,容器默認存在“軸”,不需要浮動,生產環境常用。
HTML5,使用preload提速,canvas的性能會提升。
Ajax異步處理,jQuery瀏覽器上封裝。
querySelector()方法返回文檔中匹配制定CSS選擇器的一個元素。
native前端發展很快,瀏覽器原生API夠用,you don’t need jQuery。
由于React、Angular、Vue等框架流行,直接操作DOM不再是好的模式,JQuery使用場景大大減少。
React構建用戶界面view、UI、DOM取代,組件化。
組件間抽象,可以根據ECMAScript6入門。
Arrow Functions——箭頭函數。
Webpack是一個前端資源加載/打包工具。打包局語法。
Angular有一整套MVC,cors可以跨域。
Vue框架,model。node.js同樣如此。
KOA——基于Node.js平臺的下一代web開發框架。
JavaScript寫服務器端,根據運行環境調整。
時間猶如白駒過隙,在基地的學習生活結束了,但是基地的“鍋爐房”精神依然不斷影響著我。HTML5、CSS3、JavaScript、MySQL、Php、Java、Android等技術由前端貫穿到后端,各個方面都有了不同的提升。從基地感受到的學習氛圍是在學校不曾有的,這股學習勁頭我也會帶入以后的學習中,希望下次還有機會和基地的同學們一起coding!
總結
以上是生活随笔為你收集整理的软件科技创新创业基地暑期集训有感的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用移动硬盘安装linux系统教程,利用移
- 下一篇: diy高手在民间