IT之路的總結
2014年12月份一次偶然的機會,我接觸了IT行業,我才認識到有C語言,微控制器這個東西。是是我大學第一次進入實驗室,也是我人生中的一次蛻變。經過半個月的學習,51微控制器基本能夠玩轉,C語言瞭解了一點皮毛,計算機二級也輕鬆拿下91分。
2015年2月開始接觸STM32,至今我還清晰得記得原子哥的視訊。經過一個月的學習,開發板的基本屬性和配置有了充分的瞭解。
2015年4月開始接觸ARM9,到目前為止我是我們學校第一個在實驗室接觸ARM9開發板的人,(當時我聽到別人說的是ARM非常的難學,這是典型的道聽途說,三人成虎。別人都能夠製造我們為什麼不能學,別人都能夠寫Linux作業系統,為什麼我們去使用還那麼費勁,我總結的是一個心靈上的恐懼。一句很經典的話是:“難者不會,會者不難”,到現在我得體會也是這樣,很多事情即使很困難,什麼都不懂;但是你依然去做,你就會尋找各種辦法去理解它,掌握它,然後不知不覺就懂了。)我去借開發板的時候,老師對我說:“那個太難了,不適合你學習”,還有一個老師對我說:“學習Linux是需要天賦的”,這些話真的很傷自尊的,(現在想起來全是瞎扯淡)我鼓起勇氣還是把開發板借下來了。
經過自己的不懈努力,移植好BootLoader,作業系統,根檔案系統。這裡我得申明一下:這個是一個漫長的過程,千萬不要心急,不要只充當了一個“別人的搬運工”,如果這一步你能夠理解到位(拿到一塊新的板子或這晶片能夠移植或者適當修改,或者裁剪核心),你絕稱得上半個高手了。接著就是寫驅動程式和應用程式了,反正學的東西是很多,具體細節我博文有講解。到此自己也算是進入IT行業這個門檻了,
上面談到的知識主要用到C,ASM程式語言,Linux作業系統相關的知識,學會看英文晶片手冊(必須要看英文的,很多新型的sensor都是英文的datasheet,不會的可以慢慢學)。
相信大家也會遇到同樣的一個問題,同學或者朋友經常會問你:
1.C++比C高階;2.你還在學C別人都搞JAVA,C# ;
3.你是程式設計師,幫我修下電腦 ;
4.你是程式設計師,來幫我給電腦裝下系統 ;
曾經別人問我這些問題,我會這樣回答:
1~2.
Microsoft 的windos系統大部分是C寫的;
google的android系統是C寫的 ;
apple的ios系統是C寫的 ;
3~4.
我是寫程式碼的。這些事情修電腦幹的事情;即使你幫他裝好了系統,他用幾天就會說,怎麼還是這麼卡,你裝的是沒得別人修電腦的裝的好,早知道我就去修電腦那兒裝了;個別人還嚷嚷你裝的不是正版系統,我是想說一句你給我講講正版的盜版區別。
現在我的回答是:
1~2.
對啊,C++比C都多了兩個+號能不高階嗎?C#都把C++後面的+號重疊在一起那就更厲害了,做JAVA,C++,C#的人確實厲害,C#,JAVA都有物件,但是經常找不到物件。
3~4.
完全不懂,萬一把那兒弄壞了更麻煩。
學習構建自己的網站我花了半個月的時間,也是零基礎開始一步一步學,HTML5+CSS+JS能夠搭建WEB前端,這個真心不難,大家空餘時間可以自行嘗試,儲存一個別人部落格的模板,一行一行程式碼去分析,相信你很快就會成為
這方面的大牛,這個WEB前端是我見過最簡單的程式語言,沒有之一。
python語言跟js其實是差不多的,都是指令碼解釋性語言,不需要編譯,並且簡單實用。python學習比較有意思,有C基礎的朋友上手就非常快,不超過一週時間,這裡可以給大家分享python爬蟲的應用。
第一、有些網站的資料,圖片,一些資訊都可以用python來爬取;
第二、個別部落格訪問量是重新整理一次就加一,這個python輕鬆取代人工;
第三、有些做的好點的網站,第二種機制是不能夠實現,那麼久可以採取構造一個header不停的發出request和open來達到目的;
第四、在做的好一點的網站就需要構造ip和cookies資訊;
第五、做的再好一點的網站,我們可以採取抓包來分析
學會上面五條,可以實現各大部落格通刷訪問量,空間點贊,網頁連結投票(微信這個沒有測試成功)。
我拿CSDN來舉例吧,有可能部分已經修復了。
CSDN漏洞分析:
1.模擬瀏覽器訪問;(這個不強求,沒有幾個網站能夠做到)
2.通過模擬點贊按鈕,構造header;(以修復)
3.通過request,open來開啟blog;(部分修復,還是有BUG)
4.通過代理IP實現以上操作;(CSDN採取封殺IP,這個沒有實際用處,隨便爬取一個代理IP網站,每天更新速度很快,爬取出IP和port放在陣列中,這個請求不成功直接換另外一個IP)
5.CSDN漏洞時間差,利用時間間隔來控制惡意訪問;(未修復)
一些常用的攻擊手段:
1.採用dos攻擊;(屢試不爽)
2.植入指令碼;(這個前提你必須獲得對方的管理員許可權,有點難度。)
3.抓包分析;(區域網一臺電腦想伺服器請求資料,服務端返回資料給這個電腦,是要經過閘道器的,可以以阻塞的方式監聽所以經過這個閘道器的所有資料包,分析包資料量大)
上面在windos下抓包
Linux下介紹一些簡單的知識點。寫個指令碼來ping 某個網段,查找出那些電腦是alive,然後可以根據arp找出mac地址,最後就用tcpdump和netsata配合來找出埠,並且分析路由表,最後就是抓包了。抓包的思想是這樣的:你向伺服器請求一個數據,伺服器經過多條路由到達伺服器,伺服器經過對資料的處理然後返回資料,經過多條路由然後到達你的閘道器和IP,這裡我其實應該明白閘道器內所有alive的電腦都可以接受這個資料,只是資料中加了一些判斷指定了ip地址,我們可以設計程式採用阻塞的方式接受經過這個閘道器的所有資料,然後來分析。
需要的基礎知識:理解http,ip,tcp/udp協議 request/respone; 瞭解伺服器架構和介面; 理解ip,mac,dns,port,閘道器和路由的含義。 Linux相關的知識必須得熟悉,拿到一個Log要學會分析 包括cookies header host等
前面我提到我在大學期間去過三家公司分別為A,B,C,都是以實習生的身份進去的。C公司給我留下了深刻的影響,也是決定我進修的原因。
面試注意一些技巧:
1. 氣質拿出來,千萬別虛面試人員;
2.當問到你專業問題回答不上時,千萬別說不知道。你可以跟面試官講類似或者有一點關聯的知識,面試官有可能也不太懂;3.忽悠歸忽悠,自身還是得有一定的實力,我們需要的是把自身的優點快速暴露給面試官,;
4.面試的開始,說幾句英文來介紹一下,(要短,說話非常流利,目的只是震對方,不需要面試者聽懂,這個僅僅是個人的想法)然後在使用中文介紹;
在C公司面試我的首先是人事部的老李,這個只是瞭解基本的情況;接著是技術總監黃工,聊得非常好,因為都是做技術的嘛,最後面試的是boss,老總就得了解你的性格(華為是有性格測試的),然後給你講解公司的情況,吹噓公司的各種好。技術總監下面就是專案負責人了 ,有底層軟體研發,應用層軟體研發,硬體等。
黃工的死對頭是底層軟體的負責人老謝,兩個人私下較勁。這些情況我是不不知道的,我們技術總監黃工安把我安排在老謝手底下做事(用心很良苦,聽我慢慢到來)。老謝是做軟體的(其實多數是做硬體的),還有兩個人是做軟體的,我也是做軟體的,並且只會做軟體。
我到公司待了接近一週的時間,老謝都沒有給我安排事情做,我和一個同事吃飯的時候他給說:他來的時候被老謝晾晒了一個月,這讓我很納悶。後來瞭解到:一個團隊的負責人手上必須掌握一些資源,是別人不能替代的,就拿我們這個專案的軟體來說,如果老謝把這個專案軟體程式碼教給我們來做,久而久之他這個專案負責人也就到頭了,因為他顯得不是那麼重要了。技術總監最看不慣老謝也就是這些地方了,所以黃工安排人員都把做軟體的往這個部分插,就是為了激起內部矛盾。私下吃飯的時候同事再三叮囑我千萬不要站錯了隊。
又經過了一週,前兩週都是安排的是你給熟悉熟悉這個晶片手冊,這就是領導對下屬常用的套路,就是模糊概念,讓你熟悉而又不給你安排事情。我就想了一個辦法:”反正我是實習,你不是我給我寫程式碼的機會嗎?我就利用上班時間學習自己的東西,該幾點下班我就幾點下班,這樣下去黃工肯定不幹啊。果不其然,過了幾天黃工把老謝找去談話,內容就是說你怎麼讓你手底下的人在上班時間幹別的事情呢?。老謝回來也就找我談話了:說我被黃工批評了,你上班時間不能做其他的。我問他,一直看晶片手冊能夠看出一個專案,你讓我除錯然後又不給我除錯工具,電路圖和資料。
下來後老謝給了我部分資料,涉及到核心知識的資料還是沒有給我,像內部協議之類的等。我就一邊瞎折騰一邊做自己的,有時候老謝也來給我講講一些東西。也時不時的來催一下進度。第二天老謝又來催進度,同樣給我講解一些知識點,講完我就冒火了。和昨天說的恰恰相反,這也就意味著我一天的功夫是白費。我就和老謝吵了一架老謝也不能開除我,我是站在黃工這一對的。吃過午飯過後,老謝就真的來給我講解用法和一些協議之類的。後來我的專案也就輕鬆完成。
我敢和老謝吵架是有原因的:第一、手低做軟體的人都不服他,第二、他都成家立業了,他玩不起,而我只是出來實習,第三、這件事情本身就是他的錯,我也有錯,就是不應該頂撞領導,第四、我是站在技術總監黃工這一隊的。
大學期間申請過一個發明創造性的專利,是基於電路的設計,具體細節在博文中有講解。其中充滿了很多曲折故事,申請專的時候老師講的非常的明白,專利是你的,老師會給你獎金,學校還會給你獎勵4000元,然後老師們,領導們就開始掛名字了。後來專利申請下來了,也授權了。才發現一切都是套路,專利是屬於學校的,指導老師也獲得了相應的利潤,我去找學校問這個錢的事情,學校也不給我錢,我把學生手冊上訂的規定拿去給領導看,反正領導各種忽悠就是沒得錢,最後年級大會上發了個表彰證書並給予300元就此了事。最後明白一個道理:“你給領導講規章制度,他會給講實際情況;你給領導講實際情況,他會拿規章制度說事”,很多事情薑還是老的辣。
現在來談談CSDN吧,這個平臺目前在天朝是我見過做的最好的IT社交平臺,各個部門的負責人也挺負責的。下面談談CSDN有哪些優點:
第一、介面做的非常的好,使用簡單方便,給IT圈提供了一個很好的社交平臺;
第二、下載資源很方便,對資源的管理也也非常明確,不像其他平臺全是廣告,虛假下載連結;
第三、部落格和極客頭條非常方便各位網友們分享自己的技術和心得,同時也網友們查詢資料的最佳場所;
缺點:
第一、推送到首頁的部分文章寫得確實不咋地,深度、質量、排版都不是很好,對文章的質量沒有嚴格的把控;(個人覺得深度不是必然,能夠把簡答的事情講清楚就好)
第二、在技術回答上經常會被管理員刪除,說你回答的話題與此無關,我只想問一句你到底懂技術不;(弄得現在很少人去上面回答問題了)
第三、申請什麼的是非常困難的,說什麼文章沒有深度,訪問量不夠等;(管理員心中的深度就是讓別人看不懂,讓自己都看不懂那就特深了 )
建議:開放一個意見提出埠,對文章的質量有嚴格的把控,希望CSDN越做越好。以上問題只是個人一些粗陋看法,希望大家在評論區指正。
我喜歡程式設計師,他們單純、固執、容易體會到成就感;面對壓力,能夠挑燈夜戰不眠不休;面對困難,能夠迎難而上挑戰自我。他們也會感到困惑與傍徨,但每個程式設計師的心中都有一個比爾蓋茨或是喬布斯的夢想“用智慧開創屬於自己的事業”。我也迷茫過,技術牛逼能夠走到最前端嗎?除非那種牛上天的。
彈指之間,大學生活以過多半。剩下的大四生活我想好好珍惜,準備考個駕照;泡一泡圖書館(還沒有去過圖書館,本人學渣一枚);然後就是準備參加校招應聘了。孟子曰:天降大任於斯人也,必先苦其心志,勞其筋骨,餓其體膚,空乏其身,行指亂其所為,所以動心忍性,曾益其所不能。希望各位朋友能夠在自己的事業道路上一帆風順,在人生道路上像潮水一般波濤洶湧。