A. 程序管理員是干什麼的
程序員是從事程序開發、維護的專業人員。其工作很多,有erp、協同管理、數據報表、門戶網站、論壇社區、桌面軟體等等,可能還要負責需求設計,概要設計,資料庫設計等方面的設計。
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、高級程序員、系統分析員,系統架構師,測試工程師五大類。
軟考程序員考試屬於計算機軟體水平考試(簡稱軟考)中的一個初級計算機職稱考試。對於軟考程序員考試並無學歷及資歷條件限制,更無論年齡、專業與資歷。一年可報考軟考程序員考試兩次,但一次考試只能報考一種資格,因此報考了程序員考試則無法再報考軟考其他級別或科目的考試。同時軟考程序員考試採用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標准、統一證書的考試方式。
B. 程序員需要學什麼軟體
現在做為一名程序員,壓力越來越大,各種開發工具越來越龐大、不斷推陳出新,各種開發設計工程理念繽紛精彩、需要融入平常的開發當中,還有很多新的知識點在不斷開拓中,相比以前,做為一名程序員尤其是合格程序員的難度的確增加了不少。
那麼,做為一名程序員你應該學習掌握哪些軟體與技能呢?
1. 資料庫管理工具
MySQL,使用Navicat是針對資料庫而研發管理工具,Navicat擅長於對資料庫的管理,可以幫助程序員更好的管理資料庫,視覺化創建 SQL 語句,自動生成報表等,Navicat具備所有資料庫類型的絕大部分功能,包括存儲過程、事件、觸發器、函數、視圖等。
Mongodb,使用Robomongo,是一個基於 Shell 的跨平台開源 MongoDB 管理工具。嵌入了 javaScript 引擎和 MongoDB mogo。提供語法高亮、自動完成、差別視圖等。
Sublime,具有漂亮的用戶界面和強大的功能,可自定義鍵綁定菜單和工具欄。Sublime的主要功能包括拼寫檢查、書簽、完整的 python API,Goto 功能、即時項目切換、多選擇、多窗口等。
插件多,Markdown插件,各種語言插件
C. 一個程序員所要經歷的步驟
程序員應具備的12種能力
畢業四年來,感覺自己也是從一名不合格的程序員一步步走過來的。回頭反思一下,合格的程序員有很多標准和要求,下面是我總結的一個合格程序員應該具備的12種能力。中國軟體行業的崛起,靠的是合格的程序員。任何華麗的管理制度都不能保證軟體項目的成功交付,合格的程序員就是有力的保證,是項目成功的基礎。寫下這些,是為了給剛剛進入程序員這個職業的新同學們一點參考。我一直以為,當程序員是很辛苦的,如果不是真正的喜歡,很難堅持下去。如果真的不喜歡這個職業,也該尊重這個職業,尊重自己,趕緊改行。
1. 編程語言能力
不用多說,作為合格的程序員,精通一門語言是必須的。這種精通,不是說看了一本《24小時精通XXX》,抄了幾個程序就能說精通的,要靠長時間的積累和浸淫。
2.編碼能力
我曾經看多很多程序員寫的代碼,在同一個jsp或者java源文件里,出現了三種以上的對方法的命名方式,有下劃線間隔的,有全大寫的,有拼音首字母的。就像一個菜市場,雜亂無比,估計10天後,他自己都無法看的懂。遵守編碼規范,是一個程序員最基本的要求,可悲的是,很多程序員根本沒有意識到這個問題的嚴重性。隨意堆砌網上搜來的代碼,根本不管可讀性和可維護性,只要能實現功能就行了,心想做完這個項目,就拍拍屁股走人了,缺少最基本的職責素養。我經常把代碼必須成程序員的孩子,你就是是孩子他爹,孩子他媽,是有感情的。對你自己的孩子,你能不仔細呵護嗎?你是稱職的父母嗎?這是我編寫的一個Java編碼規范,供大家參考,這里可以下載http://gurudk.javaeye.com/blog/111734
另外一個就是注釋,要注意不是為了注釋而注釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對於大段大段的代碼,要分段,使用空行隔開,並使用行內注釋進行說明。
思維的條理性,寫代碼之前,先簡單計劃一下,用自然語言把流程寫下來,用於整理實現思路。不要看了需求或設計之後,馬上就敲代碼了,敲完代碼馬上就debug。花點時間思考,敲代碼只是最後一個很簡單的工作,不要把自己變成一個代碼打字員,編寫邊想,寫了刪,刪了寫。安安靜靜把實現過程想清楚,在腦子里先實現一遍。再去敲代碼,水到渠成。
3.面向對象思維能力
如今,多數編程語言都是面向對象的編程語言。而這些面向對象的編程語言的共同的精髓就是面向對象的思想。掌握這些比面向對象語言本身更重要,比如對繼承,多態,重載的理解。對面向對象基本原則的理解,比如開閉原則,介面隔離原則,單一職責原則等。在此基礎上,應該掌握常用的設計模式,比如工廠模式,策略模式,觀察者模式,模板方法模式,命令模式等等。我面試過很多程序員,沒有一個能說得上幾句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的傢伙,工作效率可以提升數倍。你編程序,有沒有選擇一個很好的IDE,以前聽說編程高手都用記事本寫程序,我覺得那是一種自虐。就像以前看到的一篇文章,說一幫戶外旅行愛好者,出去旅遊,背了重重的旅行包,裡面裝著什麼壓縮餅乾等快速食品。他們寧可就著礦泉水啃壓縮餅干,也不肯去1里路都不到的快餐店,農家菜館吃飯。工具是為目的服務的,好用,提高效率就行,形式無所謂。
另外一個常用的工具就是日記本,好聽點可以稱為知識管理工具,我用的是myBase,感覺非常好用,在之前,我的所有的片段內容都是記錄的單獨的文本文件里的,非常不好找,管理也很混亂。
經常上互聯網,看到好多好的資料想保存下來,作為日後查看之用.一開始,我用的是firefox自帶的書簽,但是自己分類太累,多了之後不便於查找,很麻煩。後來用了得樂書簽(del.icio.us)的firefox插件,非常方便,現在成為了我必備的一個工具。
還有一個最重要的工具就是搜索引擎了,我裝了google forfirefox插件,感覺不錯,還有英文翻譯功能。按照我同事的說法,內事用,外事用google。很多技術資料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等於打開了一扇通向知識寶庫的門,使用搜索引擎,關鍵字選擇很重要。
經常去瀏覽大牛的blog,逐個網站訪問很麻煩,去看了又可能沒有更新,可以藉助於RSS訂閱工具,我是用iGoogle桌面工具,每天早上花半個小時掃一下,大牛的最新文章盡收眼底了。
5. 英語能力
新的技術資料都是英文的,英語國家的IT技術走在我們前面至少10年(這是我自己估計的數字,可能正在縮小)。就連印度,一個連基礎設施建設都不太完善的國家,因為其英語基礎較好,其在軟體外包領域的發展也非常迅猛,遠遠超過了我們。學英語,首先是有信心,其次就是花時間。多閱讀英文資料,使用金山詞霸,google的firefox插件等工具配合,貴在堅持。
6.學習能力
在IT也混飯吃不容易,整個環境進化的太快,你不學習,就等於落後了。學習要有針對性,別今天學ruby,明天學python,後天php的。首先要認清自己的目標,自己短期目標是什麼,1年後,3年後,5年後的目標是什麼。結合這些目標,確定自己的學習計劃,人的精力畢竟是有限的。當然,多掌握幾門編程語言也是好的,可以擴充自己的知識面,重要的是為自己的目標服務。
要想系統的學習一門技術或工具,看書是最好的方法。看完後,然後上網找相關資料,進行深入學習。學習要抓緊一切可以利用的時間,比如電腦啟動要花1分多鍾,旁邊放一本書,可以看上幾頁了。公交車上,地鐵上也可以看。
當然,不能只學習技術,要經常聯系自己的軟技能,比如溝通能力,表達能力。你可以把自己學到的東西,解釋給自己的同事聽,既加深了理解,又增進了同事之間的交流。學習的最高境界就是你能夠把學到的東西解釋給別人聽,這才說明你理解了。在學習心理學上,稱之為構成主義。
我學一樣東西,總是先上網了解有沒有相關書籍,如果想學,就買一本或者去圖書館找相關的書來讀。我買的書,家裡快放不下了(到目前位置,我買了1萬多塊的書)。我多半是把目錄看完,了解這本書講解的主要內容,然後需要的時候,我就可以立即補充它進入到我的知識結構。每個人可能都有自己的學習方法,意識到學習的重要,並能夠根據需要補充自己的知識,這種能力更重要。
7.創造能力
普遍認為,東方人模仿能力很強,但創造能力差。我見過很多這樣的程序員,經常說,「這個只能這么解決了,我想不出有什麼別的方法。」可能他根本都沒想過別的方法,或者懶得去想。對任何一個問題,找出兩種以上的解決辦法都是非常容易的,簡單的google一下,可能就是數十種。悲哀的是,有些程序員經常止步於自己構建的狹小領地之內。對待客戶也是這種態度,不是積極的幫助客戶解決問題,而是推脫這只是唯一解決方案。
打破這一思維定勢的首先的一個辦法就是在面臨一個問題時,首先想到的是「沒有不可能」,或是「一切皆有可能」,前面那個是阿迪的廣告語,後面是李寧的。只有這樣去想,才能尋找解決問題的別的出路,即使最後我們試了很多種辦法,還是只有著一種解決方案,但我們在這種尋找解決方案的過程中,常常會產生很多好的想法,這樣才會使我們真正深刻思考一個問題。建議大家看一看《水平思考》這本書,他提供了一些進行創造性思考的方法和工具。
但我認為,堅持認為存在另一種解決方案的信念是第一位的,方法和工具都是其次。
8.文檔能力
也許有人會質疑,程序員跟寫文檔有什麼關系。大家開源軟體也用過不少,看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。其實寫代碼也相當於寫文檔,只不過用的是編程語言。同樣,寫文檔,用自然語言,也相當於寫程序,簡單明了,清晰易懂,這樣的「程序」誰看誰舒服。同樣,對於想進階到設計師或者需求分析員角色的程序員,文檔能力更是非常重要。
word是一個最實用的工具,很多程序員,多級編號都不會用,索引目錄也不知道如何生成,更別靈活應用樣式了。很多排版都是所謂的dirty work。垃圾樣式一大堆。其實,靜下心來,稍微學習一下,就能寫出一篇格式漂亮的文檔。
9.抽象能力
抽象能力是認識事物從現象到本質的能力。如果你只是停留在「見山是山,見水是水」的層次,客戶說什麼,你就做什麼,設計怎麼做,你就怎麼實現,從來不過問為什麼,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問題,可能會引起返工。認識到本質,才能讓你的程序具備更大的靈活性和可擴展性。在做企業應用軟體開發中,抽象能力體現為對問題域的理解能力,對領域模型的抽象。合理的抽象也是代碼重構的前提,每一次重構,都是向更好的抽象邁進了一步。
10.代碼評審能力
代碼評審和單元測試是保證代碼質量的兩種常用手段之一。代碼評審能力,說明了你的審美標准,知道什麼是好的,什麼是不好的,什麼是優雅的代碼,什麼是糟糕的代碼,你才能讓自己做的更好。
11.單元測試能力
沒有單元測試的代碼,只能說是半成品。因為沒有什麼能證明你的代碼是可以運行的。測試驅動開發是一個非常好的敏捷過程的最佳實踐。單元測試還可以作為回歸測試,在修改代碼時,起到警戒線標志的作用。是否具有單元測試的意識是區分程序員是否合格的重要標准。寫不寫單元測試是區分平庸程序員和優秀程序員的重要標桿。
12.DRY
DRY是一種原則,就是Don't RepeatYourself.出自《程序員修煉之道-從小工到專家》。這條原則可以用到很多地方,比如你經常要編譯,打包,部署應用程序,供集成測試用。每次你都在重復你自己,寫一個自動化腳本(比如用ant,批處理命令)來將這些工作自動化,以提高效率。
還有一個就是我們經常在不同的地方切換IP,如果每次手工做,也非常浪費時間,寫一個bat命令可以解決,找一個小工具也可以解決。
編碼時,對代碼的復用也是在重復你自己,雖然拷貝過程很爽,但是維護一致性就要付出巨大的工作量,特別是將來維護的人不是你的時候,使用代碼生成工具可以解決這個問題。類似的例子太多了,如果你發現你經常做一些重復的工作,就要警惕了,是否違背了這個原則,想一些辦法將他們自動化。
D. 程序員管理制度
會計電算化內部管理制度
第一章 總 則
一、
會計電算化管理是會計電算化工作的重要內容,為推動集團公司會計電算化工作的健康發展,保證會計信息處理和存儲的合法、安全、准確、可靠,根據>和財政部>、財政部>、財政部>以及廣州市財政局會計電算化的有關規定,特製定本管理辦法。
二、開展會計電算化工作,是促進會計基礎工作規范化和加強財務管理水平,高經濟效益的重要手段和有效措施。各單位要把會計電算化作為提高會計工作質量和建立現代企業制度的一項要工作來抓。
三、逐步提高會計人員的電算化操作水平,使一部分會計人員能夠負責會計軟體的維護,並培養部分會計人員逐步掌握會計電算化數據分析工作。
四、講求效益,處理好及時更新技術設備與勤儉節約的關系,既不盲目追求最新技術和先進設備,也不忽視技術的發展趨勢,造成設備過快陳舊過時。
五、統一應用財務管理軟體。為適應財務管理網路化,提高企業管理水平的要,我集團公司所屬單位統一採用「金蝶k3系統」作為財務管理軟體。並為以後與其他信息系統的聯網做好准備工作,逐步建立以會計電算化為核心的集團公司信息管理系統,做到單位內部信息資源共享,充分發揮會計電算化在經營管理中的作。
第二章 替代手工記賬驗收條件
一、
採用電子計算機替代手工記賬,是指應用會計軟體輸入會計數據,由電子計算機對會計數據進行處理,並列印輸出會計資料。替代手工記賬是會計電算化的基本目標。
二、集團公司獲得市財政局授權成立會計電算化驗收小組,自行驗收集團公司所屬單位的會計電算化工作並報市財局會計處批准。
三、替代手工記賬的單位,應具備以下條件;
1、 配備了「金蝶k3系統」財務軟體、相應的計算機硬體及機房空調設備;
2、
配備了相應的會計電算化工作人員。所有會計從業人員必須具備會計電算化初級培訓資格,使用網路財務軟體單位必須至少具備一名以上會計電算化中級維護員;
3、 執行集團公司內部管理制度;
4、
「金蝶k3系統」(下稱k3系統)與原總公司自行開發的會計核算軟體(以下稱舊軟體)或手工帳表(未電算化單位)並行3個月以上,且新舊核算軟體的結果數據相一致;如果新舊軟體核算結果不一致,並且不一致原因不屬人為錯誤,可由專人查明原因,並向驗收小組提供書面報告;
5、 新舊軟體並行期間,新舊軟體所有核算結果會計資料都必須裝訂成冊,作為會計檔案保存,並作為驗收的主要依據。
6、 記賬憑證類別使用統一記賬憑證,以適應會計電算化工作的需要;
7、 提前一周填寫廣州市財政局會計處規定的標准格式申請表向集團公司會計電算化驗收小組提出書面申請。
第三章 會計電算化崗位責任制
一、 建立會計電算化崗位責任制,要明確每個工作崗位的職責范圍,切實做到「事事有人管,人人有專責,辦事有要求,工作有檢查」。
二、會計電算化崗位可設電算主管、軟體操作員、審核員、電算維護員、電算審查員、數據分析員和出納崗位、檔案管理員。
1、 電算主管:全面負責集團公司會計電算化工作,制訂電算化發展規劃、總體方案及操作人員的許可權控制;
2、
軟體錄入員:編制記賬憑證,並負責記賬憑證和原始憑證等會計數據的輸入工作,輸出記賬憑證、會計賬簿、報表,進行部分會計數據處理工作,要求達到會計電算化初級知識培訓的水平;
3、
審核員:負責對輸入計算機的會計數據(記賬憑證和原始憑證等)進行審核,操作會計軟體登記機內賬簿,對列印輸出的賬簿、報表進行確認;
4、
電算維護員:負責保證計算機硬體、軟體的正常運行,管理機內會計數據;對軟體所需的維護和升級負責同軟體供應商進行聯絡;對財務部門無法解決的硬體問題負責同計算機中心聯系;
5、 電算審查員:負責監督計算機及財務軟體系統的運行,防止利用計算機進行舞弊,此崗位由計算機中心和審計室有關人員兼任;
6、 數據分析員:負責對計算機的會計數據進行分析,提供有關分析資料供領導決策參考。
7、 出納:只能使用「現金管理」模塊。
8、 檔案管理員:負責財務軟體和會計資料檔案的管理。
三、各單位可根據實際情況,在不違反內部牽制制度的前提下,交叉設置各崗位,但要保持相對穩定。出納只能使用「現金管理」模塊,錄入員和審核員必須分設。
第四章 會計電算化操作管理制度
一、 明確規定上機操作人員對財務軟體的操作工作內容和許可權,對操作密碼要嚴格管理,杜絕未經授權人員操作財務軟體;
二、操作人員離開機房前,應執行相應命令退出財務軟體;
三、凡需要修改財務軟體,必須書面提出修改理由、修改內容,報集團公司財務部,由財務部統一向金蝶公司協商;
四、一切修改操作必須在界面菜單下操作,嚴禁擅自打開資料庫強行修改。
五、審核通過或已登帳的機內憑證,系統不提供修改功能。發現已經錄入並審核通過或已登帳的記賬憑證有誤時,只能採用留有痕跡的修改。
第五章 計算機硬體管理制度
一、
計算機硬體及機房網路設備由具有電腦硬體基礎知識的程序員負責管理,集團公司電腦室設兼職計算機病毒監察員對整個集團公司的計算機病毒進行監測。
二、
計算機房工作時必須自覺保持清潔,不得將與工作無關的其他物品(尤其是對電腦正常工作有害的物品及易燃物品)帶入電腦機房。嚴禁在電腦機房內吸煙。嚴禁隨意拔插電腦機房的電源設備。
三、 電腦機房必須配備空調設備,保持適當的溫度、濕度環境。
四、
上機前應首先檢查電源和設備運行是否正常,如發現問題應及時報告,經過電算維護員檢查認可、才能使用。尤其是在計算機設備發生嚴重故障時,不得隨意自行檢修,應及時報告電腦室,等候檢修。
五、 限定伺服器操作權,不得隨意改變伺服器的設置。
六、 遇到突發性停電時,應立即退出系統、關機、關電源;
七、 下班前,必須檢查機器設備是否已關好,關切斷所有電源。
第六章 軟體和數據管理制度
一、會計核算軟體必須有獨立的硬碟或子目錄。不得與其他軟體混淆放置;
二、計算機硬體和軟體出現故障時,電算維護員在確認有關數據已作備份後,可進行排除障礙的有關措施;如無法解決,可根據情況通知計算機中心或金蝶公司有關人員,尋求解決辦法;
三、軟體操作員根據審核通過的原始憑證編制記賬憑證並及時列印,附上原始憑證並經審核員進行二次審核正確後存放保管,以備裝訂存檔;
四、每次輸入的會計憑證都必須備份存檔,月底結賬後即應把當月會計數據備份入磁碟或光碟中儲存管理;
五、科目匯總可以分期或按月進行,其中,八欄式本期科目匯總表可替代總賬賬簿使用;
六、現金、銀行存款日記賬按月列印;其他賬簿每年列印兩次:第一次在上半年結束後30天內列印;第二次在年度結束後45天內列印。根據實際情況,發生業務少的,可滿頁列印,但應保證每年至少列印一次。
七、會計報表的編制、列印輸出要根據財務制度的規定設置公式編制。各種報表需經軟體操作員、審核員、電算主管簽章確認後方為正式報表。報表必須通過設定取數公式編制,不得用非正常手段進行填制;報表的數據必須與結賬結果相符,表內表間數據的勾稽關系必須正確無誤,取數公式一經設定,必須保持不變,如需修改,需保存書面報告。
八、輸出數據未經本單位財務主管許可,嚴禁擅自攜帶外出和外借。
九、確保會計數據和會計軟體的安全保密,防止對數據和軟體的修改;對磁性介質存放的數據要保存雙備份:一份存放檔案室,一份存放財務部;
十、對正在使用的應用會計核算軟體進行修改、升級和計算機硬體設備進行更換等工作,必須保證實際會計數據的連續和安全;由電算維護員辦理審批手續,經過電算主管和計算機中心有關負責人同意後,由電算主管、電算維護員、計算機有關人員進行監督,並要求軟體供應商協同操作;
十一、為防止外來病毒感染,在未進行有效病毒檢測前,任何人不得使用外來磁碟在會計核算用電腦上進行任何操作。不得隨意將會計用磁碟在其他電腦上操作。
十二、會計檔案包括會計資料和會計軟體。存檔的會計檔案,要每年進行檢查、復制,防止由於磁性介質損壞而使會計檔案丟失;
第七章 附則
一、本「管理制度」適用於集團公司正式實行會計電算化的單位。由財務部負責解釋。
二、本制度在執行時如與上級有關財務制度和會計電算化規定有出入,則以上級規定為准。
三、本制度自通過驗收之日起執行。
E. 火狐瀏覽器怎麼設置類似遨遊的操作
火狐最強大的就是插件,可以根據自己的需要自己動手定製
樓主說的第一個叫滑鼠拖曳,火狐裝一個插件比如 Super DragAndGo就可以實現
第二個是滑鼠手勢,裝個插件比如Mouse Gestures就可以了
F. 程序員平時都怎麼管理自己的代碼庫,自己積累了不少代碼了,用U盤和一般的網盤管理太費勁。
推薦:http://qizl.cn/
代碼庫共享平台,針對個人代碼庫進行管理,採用一觸預覽的方式,管理、查看代碼很方便~
G. 哪類程序員的書簽最多。我都1k了。
全棧工程師。
H. 程序員,如何讓你的知識內化
一、前言
是否,你瀏覽過無數文章,但是轉眼就忘?
是否,你收藏過無數文章,但是很少再看?
是否,你感覺自己很努力學習了,但還是收獲甚微?
其實,這幾個問題也一直深深地困擾著我,一直渴望著提升,卻又摸不到方向,感覺一直在努力,然而貌似並沒什麼卵用。
直到,接觸到知識管理這個概念,才領悟到:學習是一個系統工程,每一次的閱讀、收藏、實踐,其實都是這個系統的自我更新。唯有運用工程思維,才能更好的解決這幾個問題!
關於知識管理,我視之為我人生中最重要的技能,我將不斷探索、不斷優化,以成就一個更完善的自己。
下面,將從一個程序員的視角來討論知識管理,主要包括以下幾個方面:
什麼是知識管理?
為什麼要管理知識?
如何管理知識?
二、什麼是知識管理?
個人知識管理(Personal Knowledge Management):一般指個人通過工具建立知識體系並不斷完善,進行知識的收集、消化吸收和創新的過程。
三、為什麼要管理知識?
核心目的:搭建自己的知識體系
計算機行業的一個特點是新技術更新特別快,意味著程序員需要不停學習,才能跟上行業的發展。所以,知識管理對程序員非常重要。有意識,成體系地管理知識能夠:
更快速的入門
如果我們已經建立好一個技術知識體系,新的技術也只是在其他技術上建立起來的,有了堅實基礎,學習新技術就會更有效,畢竟原理總是類似的。
更全面的掌握
看過那麼多的博客,如果沒有經過自己的整理,終究總是一塊塊記憶碎片,難成體系!使用合適的工具,正確的方法,才能更好地掌握知識,讓知識凝固在腦海,形成一個整體的脈絡。
更高效的檢索
程序員經常遇到同樣的問題,例如說部署開發環境的時候,如果有把解決方案記錄下來,就能省去重新解決問題的時間。畢竟重復的谷歌,也是耗時操作。
四、如何管理知識?
1.收集
確定主線,建立信源,鏈式反應,廣泛收藏
「生也有涯,知也無涯」,我們永遠不可能通曉所有的知識!
一開始我看到好的技術文章時,都是加書簽存起來。後面發現這樣不能離線訪問,而且鏈接可能會失效。
後來,接觸了印象筆記、為知筆記等雲筆記軟體,於是我可以把文章保存到筆記中,隨時可以翻出來看。這是我的知識管理之路的開始。
可以說,筆記軟體給知識積累帶來了極大方便,而且,還可以在自己的所有筆記中快速搜索某個關鍵詞。
有時候,我們明明記得自己以前看過某篇文章,但就是想不起來具體細節了,這個時候,只要我們之前保存過,一搜即可。這比再用搜索引擎去搜索,顯然更高效一些。
記得以前,我為解決某個問題,谷歌了很久終於找到一篇文章解決了問題。解決之後並沒有記錄下來,結果下一次遇到同樣問題,我又浪費了很多時間去再次搜索解決方案。重復多次之後,我意識到這是個嚴重的問題。所以逐漸養成了保存各種文章的習慣。這些網上積累下來的文章,成為了我構建知識體系的土壤。
不是收集好的知識,而是收集對自己有用的知識
你缺的不是知識,而是整合知識的能力
主題閱讀,不以讀完一書一文為目的,能提取到想要的知識即可
讀書為綱,上網為目。唯有綱舉,方可目張
設定一個自己的長期學習規劃
建立自己的常用信源清單
從一個關鍵詞的解釋中,提取到一堆關鍵詞,鏈式反應
印象剪藏時不必糾結分類,多用關鍵詞搜索
2.整理
合並同類,編織腦圖,定期整理,持續更新
「小馬過河,深淺自知」,別人的文章永遠是別人的知識!
上面收集的那些知識碎片是我們有初步印象的知識,只不過因為太過碎片,尚不能夠形成完整的知識體系。很多人以為把看到的文章保存到自己的筆記裡面,就有一種已經掌握它的錯覺,結果保存了成千上百的文章,卻一篇都沒回顧過。
別人的文章是他的知識沉澱,並不是自己的。定期回顧,並提取出文章中的精華,再經過自己的實踐、思考、整理,才能形成自己的知識體系。這是一個很漫長的積累過程,而我們能做的唯有:堅持到底!
分類自底而上,先有了大量碎片,而後才有細致分類。
多用思維導圖,整體把握脈絡
定時整理筆記,歸納相似主題
印象筆記做摘錄,為知筆記寫原創
書寫,不只是為了記錄,更是一種思考方式
原始積累,越快越好,先求量大,再求質優
使用工具,而不是被工具使用
構建知識體系,服從於個人職業發展
預判使用場景,布局技術未來
以寫論文的方式來整理
3.分享
尋找同好,討論反思,自我激勵,打造品牌
「常與同好爭高下,不共傻瓜論短長」,教是最好的學習方式!
一方面,自己以為理解了不是真理解,把別人講理解了才是真理解!如果能有讀者和自己互動,那肯定比自己一個人閉門造車,更有積極性一點,人畢竟是社會性的,我們也渴望著別人的認可。一個人默默寫筆記,可能能堅持寫個十幾篇,如果是公開寫博客,有讀者的反饋和認同,那可能更容易堅持下去一些。畢竟,寫作,是一段孤獨的旅程。
另一方面,在這個時代,對於生活中的絕大多數人來說,拓寬朋友圈子的途徑幾乎只有一個,通過網路,而如何在網路中尋找到氣味相投的朋友,如何判斷別人和自己是否有共同語言?顯然,通過天天在SNS上碎碎念的那些日誌是難以做到的。我很佩服那些長期用博客記錄想法的人,因此,即使和他們素未謀面,也算是神交已久。
打造個人品牌,增加自己的影響力
跨時空的交流方式
記錄自己的經歷和成長
鍛煉自己的表達能力
I. 程序員如何方便的管理自己以前寫的代碼
一、代碼的最大長度。
雖然在Java的編譯器中對於代碼的最大長度沒有硬性的規定。但是如果代碼的長度太長,超過了編譯器的最當行寬,顯然閱讀起來比較麻煩。為此根據筆者的經驗,通常情況下Java源代碼的行長度不應該大於80個字元。如果超過這個長度的話,在一些開發工具和編輯器上就無法很好的顯示。如需要通過滾動條來顯示後面部分的代碼。當其他項目成員閱讀這超長的代碼時,就會看得眼花繚亂。當人的溫飽問題解決了之後,就需要開始注意美觀方面的問題。所以程序開發人員在開發應用程序的時候,要盡量避免書寫長的代碼。如果代碼的每行長度確實需要超過80個字元的話(最好將每行代碼的長度控制在70個字元左右),那麼就需要對代碼進行分行。
二、在恰當的地方對代碼進行分行。
筆者建議將Java源代碼每行的長度控制在70個字元、最大不超過80個字元。當超過這個字元長度的時候,開發人員就需要考慮在恰當的地方對他們進行分行處理。不過這個分行也不是說開發人員想在哪裡進行分行就在哪裡進行分行。這個分行是有一定技巧的。雖然這些技巧大部分並不是強制性的規定,但是都是一些專家們的經驗總結,可以提高代碼的閱讀性。為此筆者希望各位程序開發能夠嚴格的遵守。
技巧一:高層折行優於低層折行。
這個技巧是說,在考慮對代碼進行折行處理的時候,需要注意代碼的層次性。如某段代碼涉及到混合四則運算,而四則運算又有明顯的運算順序,此時對代碼進行折行時就最好能夠在四則運算的關鍵順序上進行折行處理。如現在有如下的一段代碼:
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
如果要對這段代碼進行折行的話,該在哪個地方加入一個折行符號呢?如果是筆者處理的話,筆者會按如下的格式對代碼進行折行處理。
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
這主要是根據四則運算的運算層次來進行折行的。顯然,*符號的優先順序要比+符號要高。所以在+號前面對其進行折行處理,那麼就可以一目瞭然的反應出代碼的運算層次。可以大幅度的提高代碼的閱讀性。所以代碼折行的第一個技巧就是高層折行優於低層折行。如此的話,可以使得應用程序的結構代碼更加的清晰,更容易被團隊成員所理解。
技巧二:在運算符前面進行折行處理。
其實在如上的折行技巧中,還隱藏著一個規則,即在運算符之前進行折行。如上例所示,筆者就是在+號前面進行折行,而不是在+號後面進行折行處理。這主要也是考慮到代碼的可讀性。如上面這個例子中,如果在+號後面進行折行處理的話,則下一行就會給人一種憑空多出來的感覺,顯得代碼很不連貫。跟這個規則類似,如果在折行處理的時候遇到逗號時,那麼最好能夠在逗號後面進行折行。如在一個方法中,需要傳入5個參數。此時如果代碼行比較長,那麼就需要在幾個參數之間進行折行處理。此時最理想的折行位置,就是在某個參數的逗號後面。注意,使在逗號後面進行折行,而不是在逗號前面。因為一個參數一個逗號是匹對的。而如果一個逗號加一個參數,則讓人看起來很不舒服。
技巧三:這行代碼的對起方式。
當不得已對代碼進行折行處理時,下一行的代碼應該與其同等級的代碼行左對齊。如上例所示,在+號前面將某一段四則運算公式進行折行處理的時候,其+號符號已經採取縮進處理。其縮進後的效果就是要與其同等級的代碼行左對齊。如此的話,明眼人一看就知道這段代碼採取過折行處理;而且跟上一行代碼的層次關系。當一段代碼被分割成三行甚至跟更多行數的時候,這個規則會非常的有用。如果能夠嚴格遵守這個規則,即使將代碼分割成多行,看起來也不會覺得那麼混亂。反而給人一種比較有層次的感覺。
另外在採取縮進處理的時候,可以利用Tab鍵來提高縮進處理的效率。因為直接按空格的話,有可能空格字元數量不一致,會讓人覺得層次不起,產生比較大的混亂。一般情況下,當代碼行兩側距離頁邊的距離比較大,看其來不怎麼舒服時,可以在代碼行中通過插入TAB鍵(會在代碼行中連續插入8個字元)來提高代碼的閱讀性,讓代碼的縮進實現統一。
技巧四:為變數尋找一個合適的位置。
在編寫應用程序時,盡量將變數聲明放置在一個代碼塊的開始處,也就是說{}花括弧的開始位置。雖然說可以在需要使用變數的時候再對其進行聲明。但是筆者不同義如此操作。因為如果在的呢感到使用變數的時候再來聲明變數時,會降低代碼的可讀性。同理,也需要避免低層聲明與高層聲明重復,這樣會引起代碼混亂並可能引發程序功能性錯誤。而且這種錯誤在後續的排錯中很難被發現。為此要在應用程序開發的時候就要盡量避免這種錯誤。
在聲明變數的時候,有時候可能代碼很簡單,生命變數的行總共加起來也不會超過十個字元。此時能否把多個變數的聲明寫在同一行呢?從就技術上來說,這是可行的。也就是說,Java編譯器允許將多個變數定義在同一行上。但是從閱讀性上來說,這並不是很好的做法。筆者的建議是,即使變數定義再簡單,或者變數比較多,也最好分行進行變數的聲明。也就是說,一行聲明一個變數。這可以提高代碼的可閱讀性。而且有時候往往需要對變數加一個注釋說明變數的用途,如果以行定義一個變數,添加行注釋也相對簡單許多。
總之,以上的這些折行的規則基本上不會影響到代碼的運行。但是,對於代碼的維護與後續的排錯、升級、二次開發等等具有不可忽視的作用。而且現在基本上應用程序開發式團隊開發,故大家都遵守同樣的代碼編寫規范是非常重要的。筆者在開發一個應用程序的時候,事先都會花一定的時間,跟項目成員強調這些折行的規則。目的只有一個,就是提高代碼的可讀性,便於後續代碼的共享與維護。畢竟後續面對這些代碼的,並不是客戶,而是我們自己。我們程序員在編寫代碼的時候,不能夠搬起石頭砸自己的腳。筆者認為,現在一個合格的程序人員,不僅技術功底上要過得硬,而且還必須要遵守這些無形規則的約束。難怪現在這么多企業在挑選程序開發人員的時候,都會註明良好的編碼規范。現在對於這些無形中的條條框框,項目經理已經開始重視起來。
J. 如何管理你的程序員
簡言之,這些東西都是用來最有效的發掘你的員工的全部潛能的。你有了一個領導 基於此,我們通常會有一個重要人物,他可能是一個領導,一個經理或一個總監,等等。這就有了問題:這些人有什麼樣的特徵?一個管理者和一個程序員之間的不同之處在什麼地方?他們的角色可以互換嗎? 為了弄明白這個問題,我們需要從人的視角上去思考。換種方式來說,我需要用到人的因素這個詞。如果他錯了呢? 首先,要想管理人,你需要去理解他們。要做到這些,我們需要有情商。這並不僅僅指只針對我們這部分人。我們做的任何事情中都存在情感,你要從個人角度去體驗它,要熟練掌握,在我們的公司管理中的合作方式上不能忘記這一點。管理並不僅僅指控制和命令,它還包括聆聽,理解,溝通和對復雜的情緒上的問題給出有效的方案,這都是至關重要的。弄清他們的感受 很多人都忽略了管理工作中的這方面問題。有時候會很戲劇化,類似於這樣:「鮑勃,從明天開始你就是一名項目經理了,因為我們的程序員太多了,需要去管理,但不用擔心,你就要去上一個Scrum大師班了」。我們都知道這樣的認證證書是什麼樣的,有什麼價值。這跟那個10天的ICC培訓課程後成為一名教練的故事非常的相似——這行不通,你要銘記! 另一方面,Mark Foster在他的標題為《How to make your dreams come true(如何實現你的夢想)》一書中談到,實現目標有兩種方式:推(Push mode)和拉(Pull mode)。前者是使用一種工藝上的技術來完成一項任務,比如程序員編程,而後者依賴於經驗、直覺和情商,從而選擇最好的方式解決一個問題——這是管理者的視角。當使用這種管理模式時,管理者是不能和程序員進行角色互換的,反之亦然。一些大公司通常使用這種管理模式。而這種方式有時會損失一些員工的潛能,因為在多個級別的管理職位中產生的太復雜的層級關系。相互協作 為什麼?很多的小公司都使用敏捷方法論。這是一種基於合作的方法論。上面描述的模式並不能滿足他們的需求。在不同層級上的管理者和程序員之間始終存在著一個隔膜。人們會被分成「腦力勞動者」和「體力勞動者」。結果就是導致我們失去那些同樣有大腦卻從來未被使用的人。如今,所謂使用有效率的員工就意味著把所有人都當作腦力勞動者。 Evan Rose 說:命令/控制(Command-and-control)文化使人們把公司成員分成了腦力勞動者和非腦力勞動者。他們讓腦力勞動者去思考,讓其他人去執行命令。這種文化中,合作沒有基礎。更重要的,信息的流轉應該是多向性的,而不是瀑布式的從高層經過多個管理層流到一線員工。事實上,如今的每個人都有資格成為一個腦力勞動者 現在出現了一種稱作自我管理的形式,這種形式本是我們這個世界的基礎。如果我們本來是自我管理的,為什麼不更進一步呢?也許我們根本不需要管理者。37Signals 和 DHH都實現了這樣的思想,描述起來如下:我們同樣也讓我們的團隊管理自己。每周,一個員工會站出來當管理者,他制定簡單的日程計劃,審查其他人的工作,更新公司動態信息,他對於其他同事來說是一個關鍵人物。這種職務輪換每周一次。你知道我們發現了什麼嗎?當每個人都知道自己要當一周的國王時,神奇的事情發生了。對管理者強迫自己做某些事情的抱怨消失了,因為職務的輪換讓他們有機會同時清楚的了解了圍欄兩邊的景觀。如果你讓員工們這樣做,這給了他們提高和成長的機會。找到共識,一起努力 但不要想當然。這並不是適用於任何地方任何人。但就像David說的:這種方法可行性很大。如果你能理解這點,你可以在團隊或部門里試驗一下。通常在小公司里當某方面出現問題時你能相當很快的對其作出反應,這能讓你更容易的避免重大事故的發生。 簡言之,不管你的管理方式是什麼樣的,永遠要記住,在公司組織結構的深處有一種叫「人的因素」的東西,它在等待著你去照顧,它能摧毀你所有美麗的計劃。唯一你防止這種災難發生的辦法就是要認識到:你在跟人打交道,不是機器。