Ⅰ java培訓哪個機構比較好
Java課程培訓哪家好?在這里不給你推薦任何一家培訓機構,提點意見:
1、如果選擇一個靠譜的Java培訓機構,你可以從培訓班的規模,課程、費用、就業、師資、口碑等多個方面去考慮,當然,如果能實際去試聽,那麼,實地考察是最重要的!這才是最能對比出哪家機構好!
2、如果你確定了要去培訓機構學習,那麼請做好准備,培訓機構學費還是需要兩三萬的,脫產學習,如果你沒有做好死命學,不學好不睡覺的准備,那麼,建議做好准備!畢竟錢花了還是要學到東西的!
3、如果在培訓機構學習,那麼預習復習很重要,不會的一定要問老師,如果你不問,可能隨時都跟不上,學習效果也不好,慢慢的學習就懈怠了!所以,一定要注意預習復習,不會的多問,如果你自己掌握了,也可以去寫寫博客,加深自己對知識的印象!
另外,我這里有一套Java的成長圖譜,你也可以跟著學習(從黑馬那邊課程上老師給的)
Ⅱ 城市中女性之間的關系是什麼關系
諾貝爾經濟學獎得主、美國經濟學家斯蒂格利茨曾稱,中國的城市化是21世紀對世界影響最重大的事件之一。中國城市化的進程,涉及社會的每一個層面,也必然對女性的教育、就業、家庭地位乃至精神氣質產生巨大影響。
城市在塑造女性的同時,女性也並非毫無作為,她們在不斷成長中,變得更加自信和獨立,用自己的力量改變著身處的城市。城市與女性互相成就,在時代的浪潮中攜手並進,書寫著屬於彼此的新篇章。
城市為何讓女性如此著迷
女性為什麼要進城?
其實大多數女性最初進入城市的目的很簡單,就是為了尋找更多的工作機會。鄉村能從事的工作以農業生產為主,城市能提供的工作則種類繁多,讓女性多了很多選擇。
老家在湖南湘西山區的丁萍(化名),如今在省城長沙一家老字型大小飯店當服務員。飯店生意一直不錯,她在這里工作快10年了。雖然有時候會很懷念故鄉的山水,但她並不打算回去,因為回去只能繼續種地,在山多地少的湘西,種地的收益沒法與在城市裡打工相比。就算縣城她也不想去,因為那裡的工作機會遠不如省城多。丁萍個子小,種地很吃力,而她在城裡的工作雖然也很辛苦,但畢竟對體力要求不高,收入卻好很多,她覺得自己可以堅持。進城後,她在這里成家置業,完成了人生中許多重要的事情。她說她喜歡城市,城市改變了她的命運。
其實,城市為女性提供的不僅是工作機會。「城市」是「城」與「市」的組合,最初的「城」是由城牆圍合而成的安全封閉空間,而「市」,則是指交易場所。「城」鋒襪為女性提供了更有保障更有安全感的生活工作環境,「市」則為女性提供了發展所需要的基本支持。
陳曉(化名)是一名「北漂」,她在北京上的大學,畢業後就留在了北京。雖然地鐵很擠,工作很辛苦,合租的房子也有點老舊,但是她卻很珍惜現在的生活。湖北老家的堂姐給她打電話,有時候會抱怨,從家裡走到幹活的地里要經過一段很僻靜的山路,讓她很害怕。陳曉安慰堂姐,鼓勵她也來城市找工作。
因為城市的先進性,「進城」在相當長的一段時間內,是一件令人羨慕的事情。現代化的時尚生活、「城裡人」的高端形象,往往成為鄉村人們的談資。能不此豎能留在城市,成為衡量一個女性個人能力的重要標志。而女性自身,也對城市文化充滿了渴望。
湖北襄樊的農村女孩賈玲,是很具典型意義的一個樣本。2000年,18歲的她為了改變命運,報考了中央戲劇學院和北京電影學院,最終落選。第二年,她再次努力,終於考上了中央戲劇學院。經歷了漫長的打拚,她終究得到了認可,成為家戶喻曉的喜劇明星,如今又成了著名的新晉女導演。如果賈玲一直留在農村,或許也有一定發展,但很難想像她能擁有現在這樣多彩的人生。城市的發展機會是多元化的,城市化程度越高,多元化越明顯。
此外,相比農村,城市更加開放,更加包容,能夠容納多種多樣的生活方式和人生追求。在城市,人與人的關系更多地建立在合作基礎上,而受血緣、家族、鄰里的束縛比較少。人們習慣了尊重彼森基大此的習慣和獨立,沒有太多人會過度干預他人的生活。一個人是單身還是已婚,是坐班還是做自由職業者,有沒有固定工作崗位,都屬於不宜過問的「個人問題」。城市裡的人,有著清晰的生活邊界線。
蘇北姑娘孫靜(化名)今年35歲,如今住在無錫的一個小公寓里,她自稱單身生活過得很開心,除了過年回家的那幾天。她是個不婚主義者,一個人在城市裡,雖然有時候會感到孤獨,但城市豐富的生活內容抵消了這種感覺。她努力工作,業余時間則去健身、學習或者旅行,日子過得很充實。而她幼年的夥伴李玉(化名)則早早地結了婚,雖然對象並不那麼理想,但也沒辦法。28歲那年的她並不想結婚,但是經不住父母催逼,還是選擇了順從。畢竟在農村,一個女生快30歲了還不結婚,是會被認為有問題的,甚至家裡人會因此覺得抬不起頭來。
城市讓人失去了傳統宗族社會的緊密感,從某個角度來說,人與人之間的關系也許會顯得有些「淡漠」,但同時它也給予人們更多的空間。對於女性來說,城市給予的自由度,會讓她們在日常生活里更輕松一些,也會讓她們在面對人生重大選擇的時候,更從容不迫一些。
城市始終是文明的先行者,在文化上對女性有著「天然的友好」。那些在城市接受高等教育的女性,對於這一點更是深有感觸,這也是為什麼畢業後的她們,會更多地選擇留在城市的原因。在城市,她們更能發揮自己的優勢,更容易實現自我價值。未來,也許鄉村會變得更好,但現階段,城市承載了女性更多的夢想。
女性在成長中影響著城市的發展
最初的城市,並不屬於女性,男性才是城市的主宰。即使在19世紀末的工業城市,女性外出還需要男性陪伴,她們去一趟鬧市中心新開張的百貨大樓,都像一場小小的冒險。舊時代的女性,很難自主選擇人生,「男主外,女主內」的傳統觀念,讓很多女性在家庭的小小圈子裡度過了一生,從未涉足外面的世界。別說施展抱負開創不平凡的事業了,她們就算養活自己、經濟獨立都是不能想像的。
只有在人類進入城市化後,女性的地位才日漸重要起來,女性的自我意識也開始慢慢覺醒。如今,女性邁著自信的步伐,在城市裡自如地穿梭,去上班,去購物,去娛樂,去相親,去做她們想做的一切。在城市裡,她們越來越知道自己想要什麼,能做什麼,她們如魚得水,游刃有餘。就像女作家王安憶在其小說《長恨歌》中所描寫的那樣,城市使女性再生,女性又對城市進行新的詮釋,城市與女性是水乳交融、合而為一的。
2019年底,中國常住人口城鎮化率達到了60.6%,城市常住人口達到了8.48億人。這樣快的發展速度,是勤奮的中國人多年努力的結果,而女性作為「半邊天」,在這個過程中同樣功不可沒。國際勞工組織數據顯示,2018年中國女性的勞動參與率為61.1%,遠超過47.4%的國際平均水平。中國女性的勤奮努力,對於國家經濟的發展是不可或缺的,結合我國城市化進程和具體國情,上述數據至少間接說明了中國女性對於城市發展的貢獻。
過去,城市在工業化的過程中,吸納了大量從事輕工業的女工。隨著現代化進程的深入,城市對知識女性和服務業女性的需求也在快速增長。現在,女性進入了城市裡幾乎所有的行業。女性越來越活躍在職場,在城市化伴隨的工業革命、信息革命、智能化革命中逐步擴大自己的領域和影響力。
陳鳴(化名)2007年大學畢業後留在北京工作,在一家互聯網公司做程序員。那時候公司大部分程序員都是男性,她是絕無僅有的一個女孩子,顯得格外引人注目。十年後,她已經跳槽過三家公司,每一次跳槽都漲一次工資,甚至還有了上升的機會。後來,她在一家主做移動閱讀的互聯網公司安穩地干到了中層。她發現,現在女性程序員越來越多,她再也不是唯一的那個了。陳鳴的經歷不是個案,數據顯示,程序員領域不再是男性的專屬領地了,2018年至2020年,女性程序員的增長率將近70%,漲幅顯著。2019年,在互聯網行業,女性程序員佔比高達17%,這意味著6個程序員中有一位是女性。而在餐飲、衛生、教育、金融等行業,女性從業人員數量已經超過了男性,她們利用自己特有的細膩、溫柔、善於溝通的優勢,在職場上開疆拓土。
女性不僅是城市的奉獻者,還是城市的保護者。2020年,廣大女性醫務人員、疾控人員、科技人員、社區工作者、志願者等不畏艱險、日夜奮戰,堅守在疫情防控第一線。女性再也不是弱者的代稱,她們用自己的勇氣和能力,書寫著保護生命、拯救生命的壯麗詩篇。在最危險的時刻,她們與城市同在。
女性的需求也改變著城市。傳統上,城市規劃是由男性主導和操作的,較少專門考慮女性的需求。但現在,越來越多城市開始注重女性的需求和感受。2021年1月,建設「女性友好型城市」,這一透著滿滿善意和尊重的「城市定位」,在長沙「兩會」審議通過的《長沙市國民經濟和社會發展第十四個五年規劃和2035年遠景目標綱要》(草案)首次提出。從公共廁所增加女廁位到鼓勵育兒假、從支持「她經濟」發展到湘江兩岸夜景體現女性審美……長沙市將性別意識納入城市規劃,並細致入微地進行布局,足以讓人看到這個城市對女性發自內心的關心和愛護。
事實上,城市化程度越高,女性的地位就越高。以中國城市化程度最高的上海為例。這座被稱作「女性天堂」的城市裡,上海市統計局社情民意調查中心2016年數據顯示,有64%的受訪者認為男女地位平等,22.1%的女性認為女人家庭地位高於男性,只有12.6%的人認為男性家庭地位高於女性。這一組有趣的數據與上海女性有著極強的經濟獨立性、對家庭的財務貢獻率極高是分不開的。強大的女性意識在上海這座中國近代興起的城市裡形成了尊重女性的良好文化氛圍。女性影響著這座城市的氣質,也讓上海成為中國一流的現代化都市。
女性如何與城市相處
任何事物都有兩面性,城市亦然。城市為女性提供了揮灑自我的空間,但這個空間同時也是殘酷的戰場。中國女性被認為是最累的群體,她們事業家庭兼顧,因此承擔了超乎歷史所有時期的競爭壓力。
在網劇《北京女子圖鑒》中,女主角陳可從四川來到繁華的都市北京,從小公司前台、外企小白領、商務代理再到自媒體從業者,職業生涯不斷上升,但感情生活卻異常曲折。城市給與了她太多,也讓她失去了太多。
陳可的失落感,正是當代許多城市女性心態的寫照。女性獨立,看起來很美好,但並不是一個隨便說說就可以實現的願景。它需要女性付出極大的個人努力,這對所有女性而言,都是重大的考驗。而生育問題,則讓這種考驗變得尤其嚴峻。對於大部分女性來說,生育都會對其事業產生重大影響。壓力之下,越來越多的城市女性抗拒婚姻和生育,這是中國結婚率和生育率下降的重要原因之一。
城市機會多,陷阱也多,城市裡蔓延的消費主義也在考驗著女性的獨立精神。當一個人不再自我奮斗,成為慾望的奴隸,喪失自我意識,就會被城市「吞噬」。更何況,城市不是萬能的,城市女性依然會被就業歧視、性騷擾、家庭暴力所困擾。女性與城市的和諧相處,是一個復雜而又亟待解決的課題。
從城市的角度來說,主動對女性釋放出更大的善意,能夠引領彼此關系的良性發展。從宏觀層面而言,地方政府在做城市規劃和決策過程中要考慮到女性問題和觀點;支持和鼓勵女性與男性平等地參與城市生活的所有領域;城市的所有居民,不分性別,都能平等地從城市的經濟、社會和政治機會中獲益。而從更具體的層面上,為女性提供基礎支持,讓她們能夠獲取高質量和全面的城市服務(如出行、購物和休閑);提供資源,讓女性獲得更好的醫療、教育和社會服務;創造更多就業機會,減少就業歧視;建立健全女性保護機制,讓女性在遭受暴力或其他不公待遇時,有獲取幫助的渠道。
當然女性也不能等待,不能等到環境變得完美了,才慢吞吞地成長。女性要學會積極主動地去改變自己的命運,克服困難,自我成長,抓住城市給與的機會,規避城市帶來的風險。即使是身處底層的普通女性,能夠自立自強,也便有了被尊重的資本。而那些更有能力的女性,也要有更多的社會責任感,更多地參與社會事務,推進城市發展和性別平等。
即使城市讓女性倍感壓力,女性依然嚮往城市,城市歷練了女性,讓她們尋找到了從未有過的自我存在感。女性與城市同呼吸,共命運。城市讓女性更優秀,女性讓城市更有生命溫情。女性走向城市的本質就是走向「現代性」,成為一個真正的現代人。重構自我,不迷失於慾望,用女性的特質來重構城市精神,城市才能真正成為「她們的城」。
Ⅲ 有人了解編程貓嗎
產品宣傳
看來是比較低調的一個團隊,網上的信息不多,主要集中在官微和知乎。整體感覺年輕活力,很有「編程」的極客范,比如下圖這樣的。
人人都是程序員:初識《編程貓》
萌死人不償命
官網
濃濃的卡通風,相信比較吸引主要受眾——小朋友。不過整體來說,畫面質感還有提升空間(可以考慮天天愛消除這種風格)。
人人都是程序員:初識《編程貓》
官網首頁
官網內容當然是以「編程教學」為核心,分為以下板塊:
首頁
創作:進入編程貓的代碼世界(需先登錄),這里是我最喜歡的一部分,下文再具體介紹。
代碼島:類似於「我的世界」的一個頁面,但是沒有任何介紹,目前沒去研究如何使用。
編程貓熱點:即最近的新聞。
公開課:編程貓系統使用的常規操作,也是我收獲最大的一部分,下文具體介紹。
精選作品、小說、部落、活動、最近作品:UGC內容的推薦。
人人都是程序員:初識《編程貓》
官網小說推薦.png
創作:同上
發現:主要是作品(用戶發布的編程作品)和部落(即編程社區)。
網路:問題討論、官方角色資料,還包括漫畫和小說。
素材:這里提供了一些可以用到編程中的素材,比如背景、角色、道具等。
學校:與學校合作的一些介紹與接入。
下載:相關APP以及chrome的下載(系統運行需要chrome內核)
個人中心:用戶的主頁與信息,還包括代碼、小說等作品的管理。
一個建議
編程貓官網應該歸類到內容(代碼/小說/漫畫)+學習社區,那麼主要用戶就是兩類:
創作者:主要需求是通過平台創造內容,提升自己、收獲粉絲。偶爾需要學習知識,以及收集素材。
消費者:主要需求是消費這些內容(小游戲/小說/漫畫)。偶爾需要泡社區、與創作者互動。
當然,對於真實用戶,是完全可以在兩種角色之間切換的。
基於以上兩點,再次整理如下:
「發現」中的「作品」是給消費者的(發現好作品),而「部落」又是給創作者的(發現好社區)。
「網路」中的「討論中心」是給創作者的(提問/答問),而「漫畫/圖書館」又是給消費者的(看漫畫/小說)。
「素材」是給創作者,「學校」是面向學校,這些都比較清晰。
所以不妨基於兩類用戶的特點,對板塊進行重新劃分。
面向消費者:主欄目是「發現作品」,下設子欄目:游戲、漫畫、小說,每個欄目可以加上「我要創作」,來引導其成為創作者。
面向創作者:主欄目是「源碼社區」,下設子欄目:熱門源碼、討論、部落、素材。
(PS:網路中的「資料圖鑒」目前還未了解,暫不討論。)
公開課
這部分是我「入門」編程貓的關鍵,17個短視頻,看完你也能輕松學會在編程貓「寫代碼」。
人人都是程序員:初識《編程貓》
編程主界面
每個視頻也是一個小故事,比如《編程貓初見阿短》,「編程貓」就告訴「阿短」如何在屏幕內移動(設置「碰到邊緣即反彈」)
下面貼出我印象比較深的幾點:
1、初見阿短
動作—移到滑鼠指針:角色跟隨滑鼠移動
動作—面向滑鼠:使角色面向滑鼠方向
動作—碰到邊緣就反彈:使角色不再會走到屏幕之外
2、重復執行
控制—重復執行:使角色不斷重復執行某個動作
3、坐標
動作—移動到(X,Y):可以改變角色的坐標
4、廣播
很有意思的功能,可以理解為傳參,或者全局變數,可以讓一個角色的動作對另一個角色造成影響。
比如示例中通過點擊「禮帽」觸發動作「廣播:1」。然後對「動物」設置動作當收到「廣播:1」時,將自己設為可見。實現的是玩家點擊禮帽「變」出動物的效果。
位置在:」事件—當收到廣播/收到廣播時「。
5、如果
這里演示了經典的if-else的寫法。整個函數在一個循環體「重復執行」中。
游戲很像前幾年流行的Flip Bird(哈哈當年我玩到過200多分),玩家按下滑鼠時,角色往上跳一下,然後慢慢下落。
那麼角色就包括3個動作,對應if的三個情況:
飛行/下落:滑鼠按下時移動12px,否則向下移動3px
碰到障礙物:游戲結束,停止腳本
碰到南瓜怪:闖關成功,退出循環
人人都是程序員:初識《編程貓》
經典的If-else
6、外觀
基本是結合之前幾課,實現了「人物進入飛船、飛船飛走」的動作。
拆解如下:燈光在1秒內亮起,並發送廣播」進艙「——人物接收到」進艙「,在1秒內隱藏,並發送廣播」出發「——飛碟收到廣播」出發「後閃燈、變小、改變坐標值
人人都是程序員:初識《編程貓》
Paste_Image.png
Tips:圖層順序是右側覆蓋左側
7、聲音
為角色添加造型與聲音(三頭龍的5個造型對應著5種不同的血量)
添加聲音很簡單,這里一個新方法是:兩個角色之間的信息交互是用另一個的造型編號觸發,而沒有用「廣播」。
人人都是程序員:初識《編程貓》
三頭龍與勝利動畫
人人都是程序員:初識《編程貓》
利用角色編號來傳遞信息
8、畫筆
這里提供了一個簡單的畫筆工具,可以直接將屏幕變為一個畫板。
代碼不復雜,重點是起筆/落筆的設置,如下
人人都是程序員:初識《編程貓》
畫筆設置
9、變數
本章稍微復雜,需要實現的效果是:鯉魚在河道不斷左右運動,玩家點擊後消失,並計分+1。
鯉魚的運動,可以這樣寫(注意碰到邊緣反彈,是可以設置旋轉模式的):
人人都是程序員:初識《編程貓》
呆鯉魚的運動
得分的計算,可以這樣寫(初始設置為0,每次點中呆鯉魚+1):
人人都是程序員:初識《編程貓》
得分計算
最後這里有一個鏈表。它設定了游戲時間只有6秒鍾,根據玩家得分數來返回一個「擊敗80%玩家」的信息。當然也是用於結束游戲(腳本)的計時器。
人人都是程序員:初識《編程貓》
結束腳本與返回結果
10、克隆
這一part,需要的效果是:在一個固定高度,每秒在水平任意位置出現一個飛鏢,並依此落下。使用的方法是「克隆」,代碼的解析如下。
設置角色「飛鏢」,將其隱藏,
每秒創建一個自己的克隆體,克隆體移動到Y=500,X=隨機的位置
作為克隆體啟動時,不斷下落、旋轉
Tips:注意最後加上「如果碰到下邊緣就刪除自己」,相當於釋放內存,不然瀏覽器會悲劇。
人人都是程序員:初識《編程貓》
飛鏢的運動
練習作品
目前我在上面做了一個飛機大戰,踩了幾個坑,不過也算是完成了。已實現的需求:
玩家鍵盤控制飛機的移動、發射子彈;
敵方飛機隨機從上空出現;
擊落敵機,得分+1;
被敵機撞到,生命值-1,獲得3秒無敵狀態回屏幕中央;
生命值將為0,游戲結束。
人人都是程序員:初識《編程貓》
飛機大戰
一些思考
圖形化界面,很容易上手。但是完成這個小作品也是非常有成就感(像程序員一樣創造世界)。
代碼思維:比如「面向對象」的思維(將飛機、子彈、場景都視為對象),比如「清理內存」思維(克隆體一定要有刪除機制),相信這些對小朋友的思維也很有啟發作用。
遇到困難的時候,我是回到公開課去看的,因為「網路」和社區(包括我加入了QQ群)能了解到的信息不多,就像FCC推崇的「Read-Search-Ask「,這部分的內容其實也有待完善。
比如作為新手,我需要的信息包括:編程界面各個功能的使用說明,常見場景(Read);能搜到一些常見錯誤的解答(Search);可以學習和討論其他人的優秀作品(Ask)。這三點做好以後,相信能吸引更多人在這里創作。
其實做為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這里我要推薦c++交流群:「648778840」,不管你是小白還是大牛歡迎入住,大家一起交流成長。小編會在群中不定期分享干貨源碼,包括我精心整理的一份c++零基礎教程。歡迎各位感興趣的的小夥伴。
學習思路:
人人都是程序員:初識《編程貓》
學習資料:
Ⅳ Java的自學過程中怎麼能有個清晰的學習路線
Java是一種平台,也是一種程序設計語言,如何學好程序設計不僅僅適用於Java,對C++等其他程序設計語言也一樣管用。有編程高手認為,Java也好C也好沒什麼分別,拿來就用。為什麼他們能達到如此境界?我想是因為編程語言之間有共通之處,領會了編程的精髓,自然能夠做到一通百通。如何學習程序設計理所當然也有許多共通的地方。
學習路線圖可以看看動力節點的,比較清晰,專業性也比較強。下面說說java具體如何學習。
1.1 培養興趣
興趣是能夠讓你堅持下去的動力。如果只是把寫程序作為謀生的手段的話,你會活的很累,也太對不起自己了。多關心一些行業趣事,多想想蓋茨。不是提倡天天做白日夢,但人要是沒有了夢想,你覺得有味道嗎?可能像許多深圳本地農民一樣,打打麻將,喝喝功夫茶,拜拜財神爺;每個月就有幾萬十幾萬甚至更多的進帳,憑空多出個"食利階層"。你認為,這樣有味道嗎?有空多到一些程序員論壇轉轉,你會發現,他們其實很樂觀幽默,時不時會冒出智慧的火花。
1.2 慎選程序設計語言
男怕入錯行,女怕嫁錯郎。初學者選擇程序設計語言需要謹慎對待。軟體開發不僅僅是掌握一門編程語言了事,它還需要其他很多方面的背景知識。軟體開發也不僅僅局限於某幾個領域,而是已經滲透到了各行各業幾乎每一個角落。
如果你對硬體比較感興趣,你可以學習C語言/匯編語言,進入硬體開發領域。如果你對電信的行業知識及網路比較熟悉,你可以在C/C++等之上多花時間,以期進入電信軟體開發領域。如果你對操作系統比較熟悉,你可以學習C/Linux等等,為Linux內核開發/驅動程序開發/嵌入式開發打基礎。
如果你想介入到應用范圍最廣泛的應用軟體開發(包括電子商務電子政務系統)的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個領域要求的背景知識不一樣。做應用軟體需要對資料庫等很熟悉。總之,你需要根據自己的特點來選擇合適你的編程語言。
1.3 要腳踏實地,快餐式的學習不可取
欲速則不達,浮躁是現代人最普遍的心態,能怪誰?也許是貧窮落後了這么多年的緣故。現在的軟體公司、客戶、政府、學校、培訓機構等等到處彌漫著浮躁之氣。就拿我比較熟悉的大連大工IT職業培訓來說吧,居然打廣告宣稱"20多年的計算機職業教育,遼寧省十佳學校",殊不知中國計算機發展才幾年,軟體發展才幾年,居然去報名的學生不少,簡直是藐視天下程序員。培訓出來的「程序員」大多不知道OO,OP為何物?社會環境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學者C++/Java沒開始學,立馬使用VC/JBuilder,會使用VC/JBuilder開發一個Hello World程序,就忙不迭的向世界宣告,"我會軟體開發了",簡歷上也大言不慚地寫上"精通VC/Java"。結果到軟體公司面試時要麼被三兩下打發走了,要麼被駁的體無完膚,無地自容。到處碰壁之後才知道捧起《C++編程思想》《Java編程思想》仔細鑽研,早知如此何必當初呀。
"你現在講究簡單方便,你以後的路就長了",好象也是佛經中的勸戒。
1.4 多實踐,快實踐
彭端淑的《為學一首示子侄》中有窮和尚與富和尚的故事。
從前,四川邊境有兩個和尚,一個貧窮,一個有錢。一天,窮和尚對富和尚說:"我打算去南海朝聖,你看怎麼樣?"富和尚說:"這里離南海有幾千里遠,你靠什麼去呢?"窮和尚說:"我只要一個水缽,一個飯碗就夠了。"富和尚為難地說:"幾年前我就打算買條船去南海,可至今沒去成,你還是別去吧!" 一年以後,富和尚還在為租賃船隻籌錢,窮和尚卻已經從南海朝聖回來了。
這個故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到准備周全之後,再去幹事情。假如事情准備考慮周全了再上路的話,別人恐怕捷足先登了。軟體開發是一門工程學科,注重的就是實踐,"君子動口不動手"對軟體開發人員來講根本就是錯誤的,他們提倡"動手至上",但別害怕,他們大多溫文爾雅,沒有暴力傾向,雖然有時候蓬頭垢面的一副"比爾蓋茨"樣。有前輩高人認為,學習編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實踐,而且要快實踐。我們在看書的時候,不要等到你完全理解了才動手敲代碼,而是應該在看書的同時敲代碼,程序運行的各種情況可以讓你更快更牢固的掌握知識點。
1.5 多參考程序代碼
程序代碼是軟體開發最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇俠傳》中凄美的愛情故事感動,悲劇的結局更有一種缺憾美。為什麼要以悲劇結尾?據說是因為寫《仙劍奇俠傳》的程序員失戀而安排了這樣的結局,他把自己的感覺融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。
多多參考代碼例子,對Java而言有參考文獻[4.3],有API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開源的軟體或框架。
1.6 加強英文閱讀能力
對學習編程來說,不要求英語, 但不能一點不會,。最起碼像Java API文檔(參考文獻[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開啟一個"金山詞霸"。看多了就會越來越熟練。在學Java的同時學習英文,一箭雙雕多好。另外好多軟體需要到英文網站下載,你要能夠找到它們,這些是最基本的要求。英語好對你學習有很大的幫助。口語好的話更有機會進入管理層,進而可以成為剝削程序員的"周扒皮"。
1.7 萬不得已才請教別人
筆者在Martix與Java論壇的在線輔導系統中解決學生問題時發現,大部分的問題學生稍做思考就可以解決。請教別人之前,你應該先回答如下幾個問題。
你是否在google中搜索了問題的解決辦法?
你是否查看了Java API文檔?
你是否查找過相關書籍?
你是否寫代碼測試過?
如果回答都是"是"的話,而且還沒有找到解決辦法,再問別人不遲。要知道獨立思考的能力對你很重要。要知道程序員的時間是很寶貴的。
1.8 多讀好書
書中自有顏如玉。比爾蓋茨是一個飽讀群書的人。雖然沒有讀完大學,但九歲的時候比爾蓋茨就已經讀完了所有的網路全書,所以他精通天文、歷史、地理等等各類學科,可以說比爾?茨不僅是當今世界上金錢的首富,而且也可以稱得上是知識的巨富。
筆者在給學生上課的時候經常會給他們推薦書籍,到後來學生實在忍無可忍開始抱怨,"天吶,這么多書到什麼時候才能看完了","學軟體開發,感覺上了賊船"。這時候,我的回答一般是,"別著急,什麼時候帶你們去看看我的書房,到現在每月花在技術書籍上的錢400元,這在軟體開發人員之中還只能夠算是中等的",學生當場暈倒。(註:這一部分學生是剛學軟體開發的)
1.9 使用合適的工具
工欲善其事必先利其器。軟體開發包含各種各樣的活動,需求收集分析、建立用例模型、建立分析設計模型、編程實現、調試程序、自動化測試、持續集成等等,沒有工具幫忙可以說是寸步難行。工具可以提高開發效率,使軟體的質量更高BUG更少。組合稱手的武器。到飛花摘葉皆可傷人的境界就很高了,無招勝有招,手中無劍心中有劍這樣的境界幾乎不可企及。
2.軟體開發學習路線
兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。
從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或項目管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或項目管理師的程序員也不是好的程序員。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。
A.基礎理論知識,如操作系統、編譯原理、數據結構與演算法、計算機原理等,它們並非不重要。如不想成為計算機科學家的話,可以採取"用到的時候再來學"的原則。
B.一門編程語言,現在基本上都是面向對象的語言,Java/C++/C#等等。如果做WEB開發的話還要學習HTML/JavaScript等等。
C.一種方法學或者說思想,現在基本都是面向對象思想(OOA/OOD/設計模式)。由此而衍生的基於組件開發CBD/面向方面編程AOP等等。
D.一種關系型資料庫,ORACLE/SqlServer/DB2/MySQL等等
E.一種提高生產率的IDE集成開發環境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。
G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規范化。當然還有其他的一些軟體工程知識。
H.項目管理、體系結構、框架知識。
正確的路線應該是:B→C→E→F→G→H。
還需要補充幾點:
1).對於A與C要補充的是,我們應該在實踐中逐步領悟編程理論與編程思想。新技術雖然不斷涌現,更新速度令人眼花燎亂霧里看花;但萬變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會有撥雲見日之感。面向對象的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。
2).對於資料庫來說是獨立學習的,這個時機就由你來決定吧。
3).編程語言作為學習軟體開發的主線,而其餘的作為輔線。
4).軟體工程師著重於B、C、E、D;軟體設計師著重於B、C、E、D、F;架構設計師著重於C、F、H。
3.如何學習Java?
3.1 Java學習路線
3.1.1 基礎語法及Java原理
基礎語法和Java原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習Java也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有餘。參加SCJP(SUN公司認證的Java程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉Java基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得"真正"的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
3.1.2 OO思想的領悟
掌握了基礎語法和Java程序運行原理後,我們就可以用Java語言實現面向對象的思想了。面向對象,是一種方法學;是獨立於語言之外的編程思想;是CBD基於組件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。
使用面向對象的思想進行開發的基本過程是:
●調查收集需求。
●建立用例模型。
●從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。
●細化分析模型到設計模型。
●用具體的技術去實現。
●測試、部署、總結。
3.1.3 基本API的學習
進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的"不需要重新發明輪子"。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,Java DOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。
基本API指的是實現了一些底層功能的類,通用性較強的API,如字元串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查Java DOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。
3.1.4 特定API的學習
Java介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路游戲開發,你需要深入了解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。
3.1.5 開發工具的用法
在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等集成開發環境,以免過於關注IDE的強大功能而分散對Java技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。
程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟體開發中要用到的幾乎所有工具。
從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。
Java開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。JBuilder在近幾年來一直是Java集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的Java IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for Java等而成就一番偉業。IBM在Visual Age for Java上已經無利可圖之下,乾脆將之貢獻給開源社區,成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。
3.1.6 學習軟體工程
對小型項目而言,你可能認為軟體工程沒太大的必要。隨著項目的復雜性越來越高,軟體工程的必要性才會體現出來。參見"軟體開發學習路線"小節。
3.2學習要點
確立的學習路線之後,我們還需要總結一下Java的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,