列個表格吧,看着也比較方便:php
時間css 事項html |
六月前端 |
七月node |
八月jquery |
九月linux |
工做任務nginx |
前端頁面程序員 |
服務端頁面正則表達式 地圖定位 |
服務器搭建 圖片上傳 |
視頻文件信息的獲取 |
關鍵詞 |
Css+div+js |
PHP,谷歌maps,jquery |
Centos,Nginx,圖片上傳 |
Ffmpeg,flv |
博客文章數量 |
11 |
14 |
42 |
15 |
經過上面的表格能夠大概知道本身工做內容和學習的東西
下面是我的三個月來的一點小總結:
① 作前端頁面:最重要的是瀏覽器兼容,以前沒有接觸過前端,致使作前端頁面的時候老是忘了測試瀏覽器的兼容問題,還有就是要站在用戶的角度去體驗,修改本身的佈局和js,給用戶一個很好的用戶體驗!這是一個細心活須要耐心!
② 學習新知識的最好方式就是看官方網站,如谷歌maps開發,谷歌api有很好實例供你使用和學習,也許官網是純英文網站,這個貌似英文閱讀能力也是程序員的一個瓶頸!
③ Php的最佳運行環境是liunx,經過配置centos下面的lamp環境,第一是學會熟悉liunx命令行操做模式,第二點就是熟悉lamp環境的具體配置,以前在xp上面都是使用集成開發環境包,對具體的配置文件還有這四則以前的關係,不慎瞭解,經過lamp分別安裝,對PHP的底層工做原理和lamp四者之間的關係瞭解更加深刻
④ Nginx服務主要存放靜態文件,如css 圖片,視頻文件,他的最大優點就是反向代理功能,在處理高併發的請求時性能聽說是apache的十倍,具體的我沒有測試,可是經過nginx服務器配置文件和apache的配置文件的對比,就能夠感受到nginx的配置文件至關簡潔清晰,相反apache配置加載的模塊就比較龐大,就像一個瘦子和胖子,在百米衝刺比賽上,很明顯瘦子很佔優點。通常的網站架構會兩個服務器都使用,各取所長,使用nginx負責靜態文件,apache負責php頁面。
⑤ 谷歌仍是百度? 關於搜索工具的選擇之爭不少,我這裏只是說一下我的使用他們解決工做問題的一點體會:假如你是搜索一個新的知識點,谷歌搜索的第一頁:通常是官網網站或者wiki百科,還有就是一些優秀的博客文章。百度搜索的第一頁:通常是百度知道或者百度百科,還有一些就是一些靠轉載爲主的網站,這些網站通常小廣告不少,文章轉載的不全或者代碼沒有什麼高亮,看起來的話有點費力。我的感受對於學習新知識的話:以官網或者優秀的博客學習爲最佳材料。
⑥ 寫代碼重要仍是流程重要?接到新的工做任務時通常都是上來就寫代碼,寫着寫着感受本身都不知道要解決什麼問題了,可能這個問題解決,可是相關的一些問題卻出現了,因而有趕忙解決其餘問題,老是感受寫程序像是在打補丁,不停的修改補充,這樣的代碼是不可取的,反思總結的結果就是;接到新任務以後必定要搞清問題的流程和步驟,還有一些相關問題如何解決,這些都是須要提交在流程圖體現出來,謀定然後動,這樣有計劃有流程的去作,能夠減小返工的概率和避免一些之外問題的發生!
⑦ Liunx和php結合的一個優點就是可使用php調用shell命令,有時候靠php自身很難實現某些功能,可是liunx能夠編譯某些組件,能夠經過shell得到,那麼在使用php調用shell命令,這樣處理問題真是太方便了!例如本人使用ffmpeg這個linux組件得到視頻文件的縮略圖,還有視頻文件的長度,格式,尺寸等等信息,若是純粹靠php這些問題恐怕是很難搞定的
⑧ 對liunx的學習還有一點就是對計算機工做原理有必定認識,例如你們常常說的是對於一個大網站來講數據庫一般是瓶頸,可是本身卻歷來沒有理解他,在看鳥哥的liunx的時候,裏面有關於計算機工做原理的簡介時:說緩存的主要做用就是緩衝高速的cpu和低速的i/o操做,而對數據庫的讀取就是屬於i/o操做,這也就解釋了爲何大網站須要對數據庫進行頻繁的讀取所形成的瓶頸了
⑨ 寫代碼必定要養成良好的註釋習慣和命名習慣還有文檔說明手冊,常常遇到命名很類似的方法沒有註釋說明,例如我要修改你一個返回url的一個方法,數據庫裏面只有一處存儲url的,我在類文件裏面看到一個getHistoryVideourl方法,前面註釋着得到視頻的url的功能,我修改本地測試ok,上傳到服務器就是沒有效果,後來老大直接在服務器測試url返回值,我發現他使用另一個方法getVideoUrl,我靠,這個沒有註釋,返回值也是url和getHistoryVideourl的返回值同樣,因而趕忙修改這個,最後仍是沒有效果,我鬱悶了一天,整個流程可能出現的問題,我排除了就是沒有效果,次日我意外的發現還有一個叫getVideoInfo的方法,一樣這個也沒有註釋,可是裏面的sql語句是slect * from table_video.....,也就是這個方法把video的相關信息所有返回,我試着在這個方法裏面修改url,靠,竟然是這個方法,整整浪費了我一天半的時間,真是坑爹啊。。。
⑩ 工具的選擇,良好的工具確實能夠幫助人高效的完成任務。寫php的話我通常使用eclipse,寫前端頁面的話使用dw,dw有時候很卡佔內存太大,可使用nodepad這小巧輕便的工具臨時調試php或者前端頁面!數據庫管理工具建議使用sqlyog,以前使用navicat和phpmyadmin,可是和sqlyog比起來,那些工具只是弱爆了,word的話我喜歡wps由於他能夠提供不少使用的插件,像截圖,表格染色等等,很實用也很高效。
下面是我的的不足和反思:
======================================================================
1:對應高性能開發缺乏認識和實踐機會,我知道你們都喜歡談高性能網站,可是我目前尚未接觸到這個大網站大流量的問題,只知道理論可是不知道怎麼操做
2:對性能沒有作過很深的思考,對於工做也是隻是完成,或者達到老大的要求,可是我感受當流量不少的時候,個人程序估計要從新,對於我目前作的這個小網站來講,寫代碼基本上考慮不到性能的影響,由於數據量小,之後的工做重點之一就是要增強對程序性能的思考,不能只是完成任務,還要深度思考程序性能。感受大公司就比較好點,每寫一個sql都要考慮性能,在大公司環境下很容易思考深度比咱們深!
3:關注新技術,可是不知道如何使用這些技術,如何把這些項目運用到本身的項目中去,以前學習mongodb還有nodejs,可是也是瞭解而已,感受這些東西若是不作到項目裏面,本身真的很難理解。。。實踐很重要
4:英文一個問題,由於不少就是都是英文官網,須要增強英文學習
5:對計算機組成原理和數據結構的學習,上大學的感受不重要,如今感受很多深度問題都是要回歸到計算機原理和數據結構上,書到用時方不多啊。。。
6:通常學習語言都是從基本語法學習,我感受要先搞清他的工做原理,再次帶着問題或者帶着解決工做上面的問題去學習語法,這樣可能更高效,基本工做原理有時候可讓你避免陷入語言的陷阱裏,讓你從更高的角度思考問題
咱們一直很努力,爲何卻感受到沒有什麼大的進步?不知道你們有沒有這樣的感覺,
這是一篇關於反思類的文章,做爲程序員咱們通常自學的方式有哪幾種,我的概括其餘大體三點:
第一種:看書,第二種:看視頻教程 ,第三種,看博客文章等
先說第一種,買書,做爲初學者常常作的事情就是買書,
什麼暢銷書排行版,什麼熱門圖書通通的都買,
我的認爲這種方式不推薦,書有不少種,我認爲對計算機類的圖能夠大體分爲兩種
①基礎類的圖書,這種圖書通常是對基本語法知識爲準的圖書,像什麼零基礎學XX系列的圖書,這樣的書咱們能夠買,能夠做爲語法手冊,入門級的圖書,你能夠熟悉這門語言的最基本內容,這個屬於基本功必須滴。固然如今網上有不少手冊找其餘也很方便
②應用類的圖書,本人曾買過一本XX語言應用詳解,剛買回來個人前輩翻了幾頁就說,裏面全是tmd代碼,一本書除了代碼和註釋,就沒有幾句話,若是這樣也能出書的話,那我均可以出幾本書了,話雖有點偏,可是事實就是這樣,在書上看代碼,非常吃力,第一你不能調試,第二你也不是他寫的代碼是否是有誤,第三:調用方法和類的時候,你要翻幾頁找這個方法,這種圖書若是不是連續看,很熟悉的看,坐在馬桶上都在看的。。。那真是坑你妹的圖書。。。。,由於過兩天你都不知道他要解決什麼問題了
第二種看視頻;不知道大家看過視頻教學沒有?基本上每個視頻大概四五十分鍾,不知道是否是當老師習慣了,連視頻教學都跟學校上課時間同樣,一個普通的安裝教程要四五十分鐘?我搜了一篇安裝教程的文章,整個步驟不到八步,從下載到安裝,整個過程不到二十分鐘,一切搞定,假如我看視頻學習的話,若是邊看邊安裝,最理想狀況下須要四五十分鐘,若是是看完後在安裝,安裝這個須要一個小時以上,原本二十分鐘的事情如今要搞到一個小時才搞定,這不是坑爹嗎。。。。咱們的時間就是這樣被一些無故的弱智的視頻給摧殘了。。。
第三種看博客,正如各位兄弟正在看我的博客一樣,大家都習慣的性的每天泡壇子看一些技術類的博客,
這些博客大概也能分兩種:
第①種就是說明類的文章,基本上就是說明闡述介紹的文章,本文就是屬於說明類文章,這樣的文章能夠博得你們哈哈一笑或大發感慨或者大罵一翻。或喜或悲或怒,它(文章)都在哪裏,過幾天你就會忘的,由於人的記憶有遺忘規律,你也不會之外,除非你不是。。
第②種:含有代碼類的技術文章,通常的人只喜歡看,不多動手真正的去實踐調試一份,可能你發現一篇很牛逼的文章,如獲至寶,可是真有那麼大的效果嗎?你們都學習過英語,經驗告訴咱們:每天看四六級詞彙的人,未必能寫的出四六級詞彙,每天學習英語的人,未必說的出流利的口語,緣由在於何處:缺少真正的實踐,僅此而已!
前幾天我在centos上安裝curl,谷歌了幾篇安裝教程,差很少都是複製轉載的,考慮到這麼多人轉載應該是沒有任何問題,安裝出錯的時候才發現,都少了一步,真坑爹,因此啊當年鄧爺爺他老人家總結:實踐出真知,此言不虛啊!
古人常常說的知行合一,就是強調學和用一樣重要,反觀各位都是以知爲主,而不是作到知行合一!
總結:
①讀書:個人認爲對代碼超多類的超級坑爹的圖書就算了,那是大牛的事不要挑戰自己的極限,基礎類的買幾本卻是無妨,偶爾看一些發現幾個新語法或者對某人基礎知識增強深入卻是不錯。
②看視頻:你們要有選擇的看,不要太讓視頻帶着咱們的思惟去走,而應該讓視頻爲我所用,讓視頻解決我如今困惑的問題,而不是我已經知道和無關的問題,這樣的人不多,由於這樣的是通常都是善於學習,選擇性學習的人,他知道有所學有所不學,這樣的人不是不少。
③看博客:對於代碼類的技術文章,建議你們動手去實踐,若是能把他融入本身的項目之中,效果更好!
****************************************************************************************************
說了上面那麼多:歸納起來就是:①基礎知識要扎實,要理解透徹②滿足第①條的程序員且準備升級學習的時候:勤動手,寫代碼.。其實知道的不少並不重要,實踐了不少這才牛逼!
③當你讀萬卷書行萬里路以後,再回來考慮思想上問題吧
本人小小看法,若有不一樣意見歡迎拍磚留言!
1.學習另外一門語言 其實你學的是哪一門語言並無關係,可是學習另外一門語言(無論你已經瞭解多少種語言)將把你打造爲更好的程序員。能學會一門與你平常使用的語言風格迥異的語言則更佳。打個比方,若是你是C#程序員,學習VB.NET或者Java對你的幫助就沒有學習Ruby或者Groovy大。我說「學另外一門語言」的意思是要真正學會它。學習一門語言包括三個領域的知識:語法、內置操做符和庫,以及「如何使用」。前面兩個簡單;我認爲一名有經驗的程序員,根據語言的不一樣,能在半小時到幾小時內掌握足以維護代碼的語法知識。操做符和庫只不過是知識逐步積累的過程,你何時想清楚要了解什麼了,再去查閱參考材料也不遲。只有第三項,「如何使用它」-要花上你幾個月的時間去跟這門語言打交道,真正的奇蹟就在此發生。我建議用這門語言的風格去作一個適合該語言的項目。真正學會了另外一門語言以後,我敢保證你的程序員水平必定會日新月異。
2.學習先進的搜索技術、手段和及策略 做爲一名好的程序員,不只僅是技能的問題了,而是你尋找信息的技巧,這個趨勢愈來愈明顯。對大部分人而言,僅僅輸入「現代語言及開發框架」,這都是泛泛之 談,記不住多少的。所以,你完成工做的能力一般取決於你的檢索能力。不幸的是,瞭解到如何找到準確而高質量的信息可不只僅是跑到TechRepublic來找答案,或者在你選好的搜索引擎上敲幾個字那麼簡單。 「技術(Techniques)」、「手段(tactics)」和「策略(strategies)」看起來是一回事,實際上並不是如此。你須要學會的技術是 掌握你喜好的搜索引擎的高級搜索系統;你須要瞭解諸如布爾操做符,如何過濾結果(像「非」關鍵字,域限制等等),關鍵字的詞序扮演什麼角色,等等。一句 話,RTFM(Read The Fucking Manual,讀那些他媽的手冊)吧。 你應該學會這些手段,諸如如何接近特定的搜索,以及瞭解本身實際上想查些什麼。查錯誤很容易—只需查出錯代碼便可—可是許多搜索的關鍵字選擇要困可貴多。 至於策略,你須要學會的東西,包括像應該使用哪一種搜索引擎(提示:普通的搜索引擎不必定就是最佳選擇),使用普通搜索引擎前應該訪問哪一個網站,甚至是應該 到哪一個論壇去尋求幫助,等等。
3.幫助別人 教別人始終是學習一切東西的最好方法之一。相對而言,因爲你在開發領域仍是個新手,認爲本身沒什麼可教給人家的,這能夠理解。但這毫無心義。記住,你所學 到的一切都是你從別人或別處學到的;所以請嘗試一下,成爲另一我的要請教的「別人」。天天儘可能花一點時間試着回答TechRepublic上的問題,其 他網站的亦可。讀讀其餘會員的回答,你也能夠學到不少東西。
4.有耐心,常練習 研究代表,要成爲一名「專家」,須要花費10年,或者10000到20000小時的刻意練習時間。真的好久。還有,成爲專家不盡然就是執行10年一樣的任 務;一般這意味着要在特定領域內執行普遍的任務。須要花費大量的時間和精力才能成爲「專家」;作幾年程序員是不夠的。想在30歲左右成爲一名高級軟件開發 工程師?要麼儘早接受教育/培訓,要麼你得願意在閒暇時間進行大量的工做、閱讀和練習。我從高中開始編程,還犧牲了許多休息時間去跟蹤行業發展、學習新技 能等等。結果,我得到中級和高級程序員的時間就比個人大部分同事都要早得多,隨着時間的推移,這些就轉化成爲不少的金錢。
5.對教條拒之門外 是時候開誠佈公了:也許初級程序員瞭解的東西還不足以說出作某件事情有一種最好的方式。尊重朋友或者權威的觀點是好的,但直到你更有經驗以前,不要把他們 的觀點說成是你本身的。很簡單,若是你所瞭解的不足以讓你獨立地找出這些東西來,你又怎麼會認爲你知道哪一位「專家」是對的呢?話是難聽了點,不過請相信 我;因爲受某些愚蠢建議的蠱惑,或者追隨某些根本不知道本身在說些什麼的所謂專家,白白把本身的職業生涯耽擱了幾年,這樣毛頭小夥程序員,我見過多了。這 一點有一個很好的例子,就是面向對象結構的濫用。好比說,許多初級者讀了一些有關面向對象的信息後,忽然間,他們那簡單的應用程序的類圖看起來就像埃菲爾 鐵塔同樣了。
6.深刻學習一點先進理念 成爲一名中級程序員,很大一部分是要在代碼裏面體現出一些所擅長的概念。就我而言,是多線程/並行性,是正則表達式,以及如何對動態語言進行變化(後兩個 在我離Perl漸行漸遠後開始退化)。這是如何發生的?多線程和並行處理是由於我讀了相關文章,以爲它看起來頗有趣,而後再本身把它弄清楚了;而後我就一 直使用這些技術來寫應用。我作過一件工做,是用Perl寫的,裏面運用了大量的正則表達式。我也用一個過程引擎模板和內置數據庫系統寫過我本身的電子商務 引擎;那時我幾乎花了2年時間在這上面。 找到真正令你着迷的東西。也許是圖像處理,也許是數據庫設計,等等。即使你是一個入門級的程序員,也要嘗試一下成爲某一本身所關注領域的專家。這會讓你相 當快速地進入到中級水平,一旦你到了那個水平,你的專家之路也走到一半了。
7.學習你的領域裏面的基本理論 寫出「Hello World」,跟理解那些字是如何顯示到屏幕上的是兩碼事。經過學習支撐你所從事的工做的「基礎/底層工做(groundwork)」,你會變得更加在 行。爲何?由於你會理解事物爲什麼會以這種方式運做,當東西壞了就能知道是哪裏的問題,等等。經過掌握工做的底層機制,你變會得更出色。 若是你是Web程序員,讀讀HTTP RFC和HTML規範。若是你使用代碼生成器,好好看看它生成的代碼;若是你使用數據庫工具,看看它生成的底層SQL語句,不一而足。
8.看看高級程序員的代碼 在工做中看看高級程序員寫的代碼,而後問一問事情是如何以某種特別的方式完成的,爲何?可能的話看看開源的項目。甚至即便其餘程序員沒有最好的編程習 慣,你也會學到許多編程經驗。固然,要當心別學到壞習慣。個人意思是說不要生搬硬套人家的東西;你要能領會到哪些是能行的通的,哪些是有道理的,而後再模 仿人家。
9.學習好的習慣 愚蠢的變量名,糟糕的縮進習慣以及其餘一些凌亂的跡象就是一個沒有經驗的程序員的最好標記。一個程序員在學會如何編程時,卻常常沒有被傳授到那些不那麼有 趣的細節,像代碼格式編排。甚至儘管學習這些東西並不會令你的代碼更好,也不會令你成爲更好的程序員,它也會確保你不被同事視爲入門級的程序員。甚至即便 某人是高級程序員,若是他的變量是以他那97只貓的名字來命名,或者其函數叫作「doSomething()」的,他們看起來也不像是知道本身在幹什麼的 人。並且會令其代碼在過程當中更難以維護。
10.要玩的開心 想要癡迷於單調乏味的工做?痛恨工做吧。要想升級爲中級程序員可不只僅是爲了拿到不斷增加的工資不達目的誓不罷休,而是要真正享受工做。若是你不喜歡本身 的工做,且仍是初級程序員,你怎麼會認爲成爲中級或高級程序員狀況就會有所好轉呢?換工做或改職業吧。反過來講,若是你喜好所從事的工做,那就好!只要你 堅持下去,我保證你能成爲一名更好的程序員。
想必你們都不是張無忌,人家三十年才能夠練成的乾坤大挪移,張無忌大俠兩個時辰就能夠搞定,做爲一個普通的程序員,常常遇到不少新技術和新知識,it界就是這樣,突飛猛進,
那麼咱們如何學習一門技術和新知識呢?下面是我粗淺的幾點建議
第一:精通一兩門語言
你們都據說過術業有專攻這個詞,做爲程序員必定要一個立身安命的技術,這個技術可讓你不失業,至少也能混口飯吃的就是須要精通一兩門語言,對於你選擇的這兩門語言是你之後長期飯碗的保障,俗話說:老婆孩子奶粉錢全期望它了,因此對於這個技術,你花再多的時間學習都不惋惜,這個知識必定要精通在精通。
第二:快速學習其餘新知識
如今談談你們比較關心如何學習新知識問題,我認爲若是不是長期要跟這門技術打交道,沒有必要對着門技術作太深的研究,技術那麼多,你根本沒有時間樣樣精通,這裏遵照的幾點原則:
1:二八原則:記得曾經有人說過:百分之八十的問題只須要百分之二十的知識就能夠解決,一樣對於一門新技術,可能你買一本厚厚的圖書,那麼你是否須要所有看完呢??假設你看完這本書,而後再去實踐,你會發現其實你只須要使用到了這本書的百分之二十,也就是說:你花了一百的精力學習,其實你只用到了百分之二十的知識。新知識是無窮的,而人的精力是有限的,有限的精力和無限的新知識也就決定你不可能所有去這樣作,你須要選擇性的去學習,選擇書中的百分之二十的知識去學習。
2:爲了工做去學習:聽到這個詞可能會有人懷疑,怎麼能抱着這樣的心態學習呢???
下面聽我解釋:咱們學習的目的是什麼??是爲了解決工做上遇到的問題仍是爲了之後?
若是爲了之後,請查看上面第一個:精通一兩門語言。若是是爲了解決工做問題的,那請繼續看下去:舉個例子:一樣看一本書,你是本身漫無目的的學習和看收穫的多?仍是你知道你須要瞭解學習什麼的而去看收穫的多?若是你不是張無忌也不是神童俠,那麼顯然帶着目的的學習效果高於眉毛鬍子一大把的學習,而什麼是你的學習目的呢?很顯然是爲了解決工做上面的問題,因此你須要針對性的學習,選擇性的學習。