1. 8涓紼嬪簭鍛樺穿婧冪灛闂達紝鎴戠牬闃蹭簡
楂樻噦榪8涓猚璇璦闂棰橈紝浣犱篃鑳借繘澶у巶
1銆佺敤棰勫勭悊鎸囦護#define澹版槑涓涓甯告暟錛岀敤浠ヨ〃鏄1騫翠腑鏈夊氬皯縐掞紙蹇界暐闂板勾闂棰)銆
#define SEC_YEAR (365*24*60*60)UL鑰冨療鐐癸細1.#define璇娉曠殑鍩烘湰鐭ヨ瘑錛堜緥濡傦細涓嶈兘浠ュ垎鍙風粨鏉燂紝鎷鍙風殑浣跨敤錛岀瓑絳)銆2.鎳傚緱棰勫勭悊鍣ㄥ皢涓轟綘璁$畻甯告暟琛ㄨ揪寮忕殑鍊礆紝鍥犳わ紝鐩存帴鍐欏嚭浣犳槸濡備綍璁$畻涓騫翠腑鏈夊氬皯縐掕屼笉鏄璁$畻鍑哄疄闄呯殑鍊礆紝鏄鏇存竻鏅拌屾病鏈変唬浠風殑銆
3.鎰忚瘑鍒拌繖涓琛ㄨ揪寮忓皢浣誇竴涓16浣嶆満鐨勬暣鍨嬫暟婧㈠嚭-鍥犳よ佺敤鍒伴暱鏁村瀷絎﹀彿L,鍛婅瘔緙栬瘧鍣ㄨ繖涓甯告暟鏄鐨勯暱鏁村瀷鏁般4.濡傛灉浣犲湪浣犵殑琛ㄨ揪寮忎腑鐢ㄥ埌U鍎匡紙琛ㄧず鏃犵﹀彿闀挎暣鍨嬶級錛岄偅涔堜綘鏈変簡涓涓濂界殑璧風偣銆傝頒綇錛岀涓鍗拌薄寰堥噸瑕併
2銆佸啓涓涓鈥滄爣鍑"瀹廙N,榪欎釜瀹忚緭鍏ヤ袱涓鍙傛暟騫惰繑鍥炶緝灝忕殑涓涓銆
#define MIN(a,b)((a)<=(b)?(a):(b))鑰冨療鐐癸細1.鏍囪瘑#define鍦ㄥ畯涓搴旂敤鐨勫熀鏈鐭ヨ瘑銆傝繖鏄寰堥噸瑕佺殑銆傚洜涓哄湪宓屽叆(inline)鎿嶄綔絎﹀彉涓烘爣鍑咰鐨勪竴閮ㄥ垎涔嬪墠錛屽畯鏄鏂逛究浜х敓宓屽叆浠g爜鐨勫敮涓鏂規硶錛屽瑰共宓屽叆寮忕郴緇熸潵璇達紝涓轟簡鑳借揪鍒拌佹眰鐨勬ц兘錛屽祵鍏ヤ唬鐮佺粡甯告槸蹇呴』鐨勬柟娉曘2.鎳傚緱鍦ㄥ畯涓灝忓績鍦版妸鍙傛暟鐢ㄦ嫭鍙鋒嫭璧鋒潵銆3.鎴戜篃鐢ㄨ繖涓闂棰樺紑濮嬭ㄨ哄畯鐨勫壇浣滅敤銆
3銆侀勫勭悊鍣ㄦ爣璇#error鐨勭洰鐨勬槸浠涔堬紵
緙栬瘧紼嬪簭鏃訛紝鍙瑕侀亣鍒#rror灝變細璺沖嚭涓涓緙栬瘧閿欒錛屾棦鐒舵槸緙栬瘧閿欒錛岃佸畠騫插槢鍛錛熷叾鐩鐨勫氨鏄淇濊瘉紼嬪簭鏄鎸夌収浣犳墍璁炬兂鐨勯偅鏍瘋繘琛岀紪璇戠殑銆#ifdef XXX...#else...#endif
褰撶▼搴忔瘮杈冨ぇ鏃訛紝寰寰鏈変簺瀹忓畾涔夋槸鍦ㄥ栭儴鎸囧畾鐨勶紙濡俶akefile),鎴栨槸鍦ㄧ郴緇熷ご鏂囦歡涓鎸囧畾鐨勶紝褰撲綘涓嶅お紜瀹氬綋鍓嶆槸鍚﹀畾涔変簡XXX鏃訛紝灝卞彲浠ユ敼鎴愬備笅榪欐牱榪涜岀紪璇戱細#ifdef XXX#error "XXX has been defined"#else#endif榪欐牱錛屽傛灉緙栬瘧鏃跺嚭鐜伴敊璇錛岃緭鍑轟簡XXX has beendefined,琛ㄦ槑瀹廥XX宸茬粡琚瀹氫箟浜嗐
4銆佸祵鍏ュ紡緋葷粺涓緇忓父瑕佺敤鍒版棤闄愬驚鐜錛屼綘鎬庝箞鏍風敤C緙栧啓姝誨驚鐜鍛錛
while(1)錛宖or(;;)錛宭oop:.鈥︼紝goto loop銆
5銆佺敤鍙橀噺a緇欏嚭涓嬮潰鐨勫畾涔夈
路a)-涓鏁村瀷鏁(An integer)銆
路b)涓涓鎸囧悜鏁村瀷鏁扮殑鎸囬拡錛圓 pointer to aninteger錛夈
路c)涓涓鎸囧悜鎸囬拡鐨勭殑鎸囬拡錛屽畠鎸囧悜鐨勬寚閽堟槸鎸囧悜涓涓鏁村瀷鏁(A pointer to a pointer to intege)銆
路d)涓涓鏈10涓鏁村瀷鏁扮殑鏁扮粍(An array of10integers錛夈
路e)涓涓鏈10涓鎸囬拡鐨勬暟緇勶紝璇ユ寚閽堟槸鎸囧悜涓涓鏁村瀷鏁扮殑銆(An array of 10pointers to integers)銆
路f)涓涓鎸囧悜鏈10涓鏁村瀷鏁版暟緇勭殑鎸囬拡錛圓 pointerto an array of 10 integers)銆
6銆佸叧閿瀛梥tatic鐨勪綔鐢ㄦ槸浠涔堬紵
鍦–璇璦涓錛屽叧閿瀛梥tatic鏈変笁涓鏄庢樉鐨勪綔鐢錛氱涓銆佸湪淇楗板彉閲忕殑鏃跺欙紝static淇楗扮殑闈欐佸矓閮ㄥ彉閲忓彧鎵ц屼竴嬈★紝鑰屼笖寤墮暱浜嗗矓閮ㄥ彉閲忕殑鐢熷懡鍛ㄦ湡錛岀洿鍒扮▼搴忚繍琛岀粨鏉熶互鍚庢墠閲婃斁銆
絎浜屻乻tatic淇楗板叏灞鍙橀噺鐨勬椂鍊欙紝榪欎釜鍏ㄥ矓鍙橀噺鍙鑳藉湪鏈鏂囦歡涓璁塊棶錛屼笉鑳藉湪鍏跺畠鏂囦歡涓璁塊棶錛屽嵆渚挎槸extern澶栭儴澹版槑涔熶笉鍙浠ャ
絎涓夈乻tatic淇楗頒竴涓鍑芥暟錛屽垯榪欎釜鍑芥暟鐨勫彧鑳藉湪鏈鏂囦歡涓璋冪敤錛屼笉鑳借鍏朵粬鏂囦歡璋冪敤銆係tatic淇楗扮殑灞閮ㄥ彉閲忓瓨鏀懼湪鍏ㄥ矓鏁版嵁鍖虹殑闈欐佸彉閲忓尯銆傚垵濮嬪寲鐨勬椂鍊欒嚜鍔ㄥ垵濮嬪寲涓0銆
7銆佸叧閿瀛梒onst鏈変粈涔堝惈鎰忥紵
鍙瑕佷竴涓鍙橀噺鍓嶇敤const鏉ヤ慨楗幫紝灝辨剰鍛崇潃璇ュ彉閲忛噷鐨勬暟鎹鍙鑳借璁塊棶錛岃屼笉鑳借淇鏀癸紝涔熷氨鏄鎰忓懗鐫cost鈥滃彧璇燴(readonly)瑙勫垯錛歝onst紱昏皝榪戱紝璋佸氨涓嶈兘琚淇鏀癸紱cost淇楗頒竴涓鍙橀噺鏃訛紝涓瀹氳佺粰榪欎釜鍙橀噺鍒濆嬪寲錛岃嫢涓嶅垵濮嬪寲錛屽湪鍚庨潰涔熶笉鑳藉垵濮嬪寲銆
8銆佸叧閿瀛梫olatile鏈変粈涔堝惈鎰忥紵騫剁粰鍑轟笁涓涓嶅悓鐨勪緥瀛愩
涓涓瀹氫箟涓簐olatile鐨勫彉閲忔槸璇磋繖鍙橀噺鍙鑳戒細琚鎰忔兂涓嶅埌鍦版敼鍙橈紝榪欐牱錛岀紪璇戝櫒灝變笉浼氬幓鍋囪捐繖涓鍙橀噺鐨勫間簡銆傜簿紜鍦拌村氨鏄錛屼紭鍖栧櫒鍦ㄧ敤鍒拌繖涓鍙橀噺鏃跺繀欏繪瘡嬈¢兘灝忓績鍦伴噸鏂拌誨彇榪欎釜鍙橀噺鐨勫礆紝鑰屼笉鏄浣跨敤淇濆瓨鍦ㄥ瘎瀛樺櫒閲岀殑澶囦喚銆備笅闈㈡槸volatile鍙橀噺鐨勫嚑涓渚嬪瓙錛
1:騫惰岃懼囩殑紜浠跺瘎瀛樺櫒錛堝傦細鐘舵佸瘎瀛樺櫒)銆
2:涓涓涓鏂鏈嶅姟瀛愮▼搴忎腑浼氳塊棶鍒扮殑闈炶嚜鍔ㄥ彉閲(Non-automatic variables)
3:澶氱嚎紼嬪簲鐢ㄤ腑琚鍑犱釜浠誨姟鍏變韓鐨勫彉閲忋
2. 程序員的工作環境是怎樣的
每個人職場人都希望在一個輕松、開心、干凈、舒適的環境裡面工作,這樣心情好工作起來自然效率高,但是這畢竟是理想狀態下的工作環境,當然現在絕大多數企業工作環境雖然達不到百分百,但至少有百分之六七十以上吧。
那麼對於程序員這種有點特殊的工種工作環境又是怎麼樣的呢?
程序員又被人們稱之為碼農,也有人調侃戲稱「程序猿」,程序員對工作環境往往需要有一張大的辦公桌,他們不僅用一台電腦在工作,有時候需要幾台電腦同時操作,而且遇到一些bug或者瓶頸的時候需要和同事協同工作,當然在硬體方面除了辦公桌要大外,還需要配置比較高的電腦,畢竟這是程序員最基本的工作工具,試想如果剛有靈感,結果電腦卡頓或者死機了,那有可能靈感頓時就消失了,所以他們大多數工作環境都擁有足夠大的辦公桌和高配置的電腦。
前面就提到了程序員是有點特殊的工種,因為他們往往加班到很晚,時常會通宵,這就和我們正常上班的時間上錯開了,他們往往白天睡覺,晚上工作,有時候為了打起精神工作,他們提神的方式各自不同,有抽煙的、有喝咖啡的、有聽歌的等等,大家可以想像這是什麼樣的工作環境嗎?但是程序員工作的時候,大多數情況下都需要安靜的環境,畢竟安靜能讓人更好的思考問題。
每個人對工作環境要求都不一樣,讓自己覺得舒服的環境是自己願意留在公司的原因之一吧,程序員也是一樣的。
大公司的程序員,工作環境基本上就是一個電腦版的「衡水中學」,每天就是開會寫代碼改代碼查代碼開會繼續循環往復,跟中學里每天就是拚命讀書刷題刷題讀書吃飯無味上廁所要跑一個樣。
硬體配置無需你考慮,肯定是夠你用。跟人的成本比起來,硬體就是個渣。
大公司的程序員工作比較穩定,每個人的分工是比較明確的,職業路徑也很明晰,越往上的職位對智商的要求越高,這點和靠情商往上升的工作還真有點不一樣。在程序員這個隊伍里拍馬屁搞關系基本沒啥用,你寫的代碼都無需用戶檢驗,自己一跑就知道成不成。這也是IT公司通常人際關系和氛圍都比較輕松且簡單直接的根本原因,特別適合那些不喜歡搞關系的同學去擼起袖子加油干。
如果你想在這個行業長期發展,智商一定要夠用,真的。有沒有基礎倒在其次,如果數學好更佳。有些業內大咖本身是學數學或物理這些靠智商吃飯的學科的。
小公司的程序員,尤其是那些非IT類小公司里的程序員工作壓力更大。面對不懂程序的銷售和老闆,還有極度貪心又不願多付費的客戶,需求三天兩頭變,界面是個人就可以提意見改,時間永遠是「明天就要」。他們覺得程序員比悟空辦法多,所以什麼要求都提得出來。能在小公司做出成績的程序員,真心讓人敬佩不已。
小公司的程序員是掌握公司核心機密最多的人,比老闆都掌握得多,所以通常他們的待遇也還過得去。另外他們一來二去把公司業務摸透了,出來自己乾的也不少,當然能不能幹成是另一回事。
其實程序員的工作環境真沒什麼要求,只要沒什麼干擾就行。學霸們在這里會找到十分熟悉的感覺,所以程序員之間以「同學」相稱的極多。
我是2015年本科畢業的,但是2014年就開始工作了,從程序員+運營的工作開始實習(其實也是看最後哪一個更合適就走哪一個方向)。
對於實習階段,因為當時待的是小公司,所以大家的配置都很一般。幾個主力程序員加上我這個實習的,工作用的都是windows筆記本,聯想的,除了我自己配的固態硬碟之外,很多都是機械硬碟在跑,沒有特別明確的代碼庫規范、沒有知識系統,交流全靠跑,有的是後端和前端一起干、前端和客服一起干,所以我兼職運營也是如此……平時要是不忙的話,那還沒什麼事兒,大家會閑聊扯淡,也算是其樂融融;但是要是忙起來,可能會突然加班到很晚——當然這種情況還是比較罕見的。
工作到了中型公司,跟以前的小公司就不在一個量級上了。這個時候主要的工作是後端開發,配置的電腦是聯想的ThinkPad,但不是最高配那種,仍然沒有固態硬碟,慢的要死。第一梯隊的程序員配置有雙顯示器、機械鍵盤、mac。我的話配置的是外接顯示器,座椅很一般,坐久了比較累。公司分工明確,辦公室跨越兩座樓,各個團隊都有自己的辦公室。有自己的wiki、定期站會、嚴格的代碼規范、安全規范。一般情況下主要是在解決各種bug,或者開發新系統。偶爾流量高峰的時候,會加班到一兩點,平常並不是特別忙,工作還是比較有序的。
其實想要招妹子進團隊的,因為我們團隊唯一的測試工程師長得真的一般,而且性格也很差……一個性格好長得好看的運營妹子真的能調動整個團隊的氣氛。
所以什麼機械鍵盤、Mac、外接多少顯示器、加多大固態硬碟、多好的人體工學座椅……這些都是假的,開發的團隊裡面有好看的妹子才真的是「好的開發環境」。
可以穿拖鞋?可以戴著耳機聽著歌?配備兩個顯示器?身邊總是圍繞這MM端茶遞水果?還是以上都不是,而是詩和遠方?
程序員,一個高薪卻嚴重亞 健康 的群體 。他們有著極客精神,瘋狂coding的時候可以廢寢忘食,但他們也追求精神自由,喜歡自由自在。對於這樣一個群體,良好而又恰到好處的工作環境顯得尤為重要。
1. 彈性上班制
常規企業的朝九晚五上班制度,說實話並不適合程序員一族,因為這種制度一定程度上扼殺了這個最需要差異性的群體的差異性,把程序員的Coding靈感等同於工廠流水線上機械手臂,希望按鈕一按下,靈感發動,按鈕再一按下,靈感結束。這是一種一廂情願的想法。
所以對於高層次的程序員群體,請不要在作息時間上嚴格限制他們,因為他們不是裝配工,有著獨一無二的個體差異性,有著不同的思維G點,他們需要差異性的時間作息來調整自己的最佳狀態,從而迸發激情和靈感。
2. 寬松的工作氛圍
程序員群體討厭管理,任何自上而下的所謂管理都容易引起程序員們的心理抵觸,特別是那種死板的、指令式的管理模式,尤其讓程序員們作嘔。
程序員們希望自己做的事情是出於內心的意願,那樣他們就會干勁十足,而不是來自於經理計劃文檔中那條冷冰冰的文字,哪怕是他們心裡意願的和經理的計劃本是同一件事。所以對於程序員群體的管理需要技巧,要化管理於無形,讓他們感覺不到管理的痕跡,讓他們感覺著做這些事情就是出自於他們自己的意願。
總結來說就是讓他們作為自己的管理者,而團隊的管理者所要做就是培養他們這種自管理的能力。
適度的壓力可以產生做事的動力,但長時間的持續的壓力卻是扼殺激情和創造力的罪魁禍首。壓力會讓程序員焦慮,同時也會造成低劣的設計和代碼實現,因為交付的壓力會讓程序員對匆忙設計出來的方案妥協,而不會持續的優化找到最優方案。而一系列看似微不足道的缺陷設計集合到一起,就會形成讓人意想不到的、不可控制的亂象。
所以,「快」不見得是好事,「慢」也不見得是壞事。
3. 鼓勵參與開源項目
開源項目社區的欣欣向榮,是一朵盛開的奇葩,無論怎麼贊譽都不為過。
一些著名的開源項目,例如Linux,Apahce, openssl等等,數不勝數的優秀設計,給我們帶來了多少的驚喜,同時也催生了多少的商業公司。
參與到開源項目中,是一個程序員從初級走向高級、完善技術的最有效途徑之一。一些著名的開源項目,架構設計和Coding技巧上都屬上乘之作, 浸淫其中,受益匪淺。
其實以上三點不僅是對程序員群體,對任何一個職業的人來說都是適用的。再看下知乎上程序員們理想中的工作環境是怎樣的。
@蕭井陌:我讀書的時候就有一個執念,一定要找一家可以穿拖鞋背心大褲衩上班的公司(當然我不穿大褲衩),如果我找不到這樣的公司,說明我學得不好,所以我一直以來努力的目標似乎只是為了進一個能穿拖鞋的公司?哈哈哈哈。。。
@知乎用戶:我只想要2個顯示器
@知乎用戶:1.安靜,沒有人隨便喊你或者在你耳邊說話;2.絕對的自由,程序員都有一定的怪癖,比如我喜歡聽著搖滾樂寫代碼。這些都要被允許。3.溫度,氣味舒適的環境。
4.有個養眼的MM同事,大概是這樣的
嘿,箭頭方向那個哥們才是真正的程序員吧
5.獨立10M光釺線
@Indream Luo,軟體工程師:1.女多男少,人均年齡不到27;2.身處白雲山上,與廣東外語外貿大學一牆之隔;3.無邊界文化,有問題可以找任何人溝通,包括高層,如果你見得到;4. 健康 文化,加班有補休,提倡8小時,自建食堂和農場,買下巴馬泉眼特供礦泉水
@石磊
硬體:
1. 頂配的 MacBook Pro。
2. 上廁所不需要排隊。
與人相關:
1. 不會在開發到一半時被通知要重新討論功能,然後把以前做的東西全部推翻。
2. 沒有不必要的會議,必要的會議速戰速決。
3. 行政人事什麼的做事清爽高效,這樣不用在各種日常手續上浪費時間,只管寫代碼就好。
4. 同事們效率高、工作態度嚴肅、善於溝通、活潑有趣。
@張英鋒:最理想的工作環境應該是能幫助團隊沉下心來,開發出最好產品的環境。
1.上級對程序員工作的認可和尊重;
2.對所作的工作有自主權和決定權;
3.營造能讓程序員專注於工作的設施,比如大家都提到的安靜、以及各種提高生產率的硬體條件;
4.最後是公司是盈利的,最好是暴利,能持續提供更多福利。
@庄生:其實最重要的工作環境,還是有一幫靠譜的同事,真心的。可以術業有專攻,但是該你負責的你負責到底,保質保量,不要麻煩別人。
那你呢?你希望你的工作環境是怎樣的?
上聯:一個項目兩部電腦三餐盒飯只為四千工資搞得五臟俱損六神無主仍然七點起床八點開會處理九個漏洞十分辛苦 ;
下聯:十年編碼九年加班八面無光忙的七竅生煙到頭六親不認五體投地依舊四肢酸軟三更加班只為二個臭錢一生孤苦;
橫批:苦逼程序員。
程序員飄過
作為一名程序員的我可以很負責任的說:是的,工作環境就像問主圖片那樣,可能會稍微好點,我們公司都是中央空調,不用電風扇!
我在程序員的崗位上也有好幾年了,也待過幾家公司,其實就工作環境來說,程序員的工作環境還是不錯的,不用風吹日曬雨淋,而且是冬暖夏涼!和人們眼中的白領工作人員的工作環境是差不多的。
工作氛圍其實也是很好的,程序員在穿著方面大部分公司是沒有什麼太大要求,可以穿著自己喜歡的風格(腦補一下大褲衩配涼拖的程序員正在擼代碼),同事之間的交流也是很活躍的,所以程序員的苦逼之處不在工作環境,而是工作內容和壓力。
程序員分工:
1.純軟體工程師,就是只靠電腦吃飯的,設計包括但不僅限於---網頁、架構、UI、數據、運維、系統等等,整天與代碼打交道;
2.Firmware(分位)工程師,半軟半硬的工種,要焊板,要搭建環境,還要寫代碼維護代碼,演算法可能沒有純軟體工程師牛,但動手能力絕對強,涉及的知識面可能更廣。
本人就是後者,來看下我的桌面:
各個公司對於辦公環境都不一樣,國外都注重個人隱私,很多都是一個人一個封閉的房間。國內大部分就像圖中所示那樣,半隔開。也有 科技 公司,鼓勵大家敏捷開發,多溝通,開方式辦公
請忽略那些包含「安靜,優美,閑逸的辦公環境」的答案吧!
圖中的環境,只是正常普通公司的工作環境。
不一定是程序員的。
程序員的工作環境,因工作內容,導致需要很多屏幕。
而且電腦配置也需要很高。
每個人因面對的公司、自身能力等因素,都會導致工作環境的不一樣。
所以就有了工作環境好壞的區分。
如果你曾對著大海構思過某個介面,
在櫻花飄落的院落里調試過代碼,
那麼你還覺得在寫字間喝著咖啡對著三屏顯示器敲鍵盤是理想的環境嗎?
工作環境,還是得靠自己改變。
在程序者的不斷追求下,編程是可以和寫作一樣成為藝術創造過程,
那麼任何一個能夠激發出你靈感的時刻和環境都應該可以成為你的辦公環境。
資深碼農應邀回答這個問題。籠統來說,程序員的工作環境與圖中展現的差別不大。但根據工作屬性和所屬行業來講,還是有一些區別。
甲方和乙方的區別
我在剛畢業時進入了一家軟體外包公司,幾乎所有的工作都是在甲方所在地完成的。
因為甲方員工是公司的穩定員工,所以工位來講就要精緻一些,配備也要完善一些。一般都會是隔間,有抽屜、插座、文件架、座機、台式電腦,甚至還有床等等。
而我們作為乙方因為流動性大,人數也不固定,甲方公司不太可能為我們准備這些精緻的辦公位,一般只是拉幾張桌子拼湊起來,然後再接幾個線板,有時候靠椅都沒有,還得坐獨凳。
技術驅動和業務驅動的區別
現在任何一個互聯網公司,技術部門是必不可少的。但是有的公司會以業務為驅動,有的公司會以技術驅動業務。
以業務為驅動的公司就會優先考慮業務的發展,然後技術來輔助實現。我現在所在的就是這樣一家公司,這樣的公司技術部門就會非常的小,人員也會很少。這樣的公司程序員的工位大體上和整個公司的風格沒有太大的區別,因為人少,一般只有5-6個人,做技術的也喜歡安靜,所以一般位置會選擇靠近辦公室的角落。
以技術為驅動的公司會依靠自身技術實力結合行業發展,碰撞出一些具有競爭力的業務品種,並與業務部門配合來實現並推廣產品。這樣的公司技術人員起碼佔到50%以上,這樣的公司更有可能為程序員規劃一個單獨的大辦公室,與外界隔離。一方面是為技術人員提供安靜、舒適的辦公環境,另一方面也是盡量避免閑雜人等進出公司技術核心所在地。
以技術為驅動的公司往往技術實力比較突出,所以他們會為自己的技術團隊配備「駕駛艙」、小機房等設施。
就問題中的格子間來講,不管是什麼性質的公司,只要場地不是特別的擁擠,都會設計成格子間,這樣既保護了員工隱私也充分利用了辦公場地的空間。這並不是程序員特有的風格。
3. 編寫一個程序,讀取5個整數並確定和列印其中的最大值,以下是我寫的代碼,錯了,誰能幫我改改
系統看成是各種對象的集合,這更接近人的思維。
2)軟體需求的變動往往是功能的變動,而功能的執行者--對象一般不會有太大的變化。這使得按照對象設計出來的系統結構比較穩定。
3)對象包括屬性和方法,對象把屬性和方法的具體實現方式一起封裝起來,這使得方法與之相關的屬性不再分離,提高每個子系統的相對獨立性,從而提高了軟體的可維護性。
4)支持封裝、繼承、多態和抽象,提高了軟體的可重用性、可維護性和可擴展性。
2.把一個類放在包里有什麼作用?(包的作用)
1)能夠區分名字相同的類。
2)有助於實施訪問許可權控制。
3)有助於劃分和組織java應用中的各個類。
3.說出一些常用的類,包,介面,請各舉出5個。
Runable,ActionListener,Conllection,Map,Set,List介面
1)java.lang包----包括線程類(Thread)、異常類(Exception)、系統類(System)、整數類(Integer)和字元串類(String) 等, 這些類是java程序中經常用到的。
2)java.awt包----抽象窗口工具箱包,awt是(Abstract Window Toolkit) 的縮寫。這個包中包含了用於構建GUI界面的類及繪圖類。
3)java.io包----輸入/輸出包,包含各種輸入流類和輸出流類,如文件輸入流類(FileInputStream類)及文件輸出流類(FileOutputStream)等。
4)java.util包----提供一些實用類,如日期類(Data)和集合類(Collection)等。
5)java.net包----支持TCP/IP網路協議,包括Socket類及和URL相關的類,這些類都用於網路編程。
除了上面提到的基本包,JDK中還有很多其他包,比如用於資料庫編程的java.sql包,用於編寫網路程序的java.rmi包(rmi是「Remote Method Invocation」的縮寫)。另外,javax.*包是對基本包的擴展,包括用於編寫GUI的javax.Swing包,以及用於編寫聲音程序的javax.sound包等。
4. 描述一下你最常用的編程風格。
1)注意編碼規則,符合編碼要求。
2)變數,類等起名要有意義。
3)經常格式化代碼,注意格式。
4)代碼中加入測試方法或測試類,盡量提早發現錯誤。
5)代碼中要加入注釋,為別人和自己將來理解代碼帶來方便。
5. 說一說標識符的命名規則,以及java的編程規范。
Java標識符的命名規則:
1) 標識符由字母、數字、下劃線「_」、美元符號「$」或者人民幣符號「¥」組成,並且首字母不能是數字。
2) 不能把關鍵字和保留字作為標識符。
3) 標識符沒有長度限制。
4) 標識符對大小寫敏感。
Java編程規范:
1)類名和介面名:首字母大寫,其餘字母小寫。如SamDoc
2)方法名和變數名:首字母小寫,其餘的字母大寫。
如bothEyesOfDoll。
3)包名:字母全部小寫。如,com.abc.dollapp。
4)常量名:採用大寫形式,單詞之間以下劃線「_」隔開。
如DEFAULT_COLOR_DOL。
…………………………
31、介紹JAVA中的Collection FrameWork(包括如何寫自己的數據結構)?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)
Map提供key到value的映射
32、抽象類與介面?
答:抽象類與介面都用於抽象,但是抽象類(JAVA中)可以有自己的部分實現,而介面則完全是一個標識(同時有多重繼承的功能)。
JAVA類實現序例化的方法是實現java.io.Serializable介面
Collection框架中實現比較要實現Comparable 介面和 Comparator 介面
33、STRING與STRINGBUFFER的區別。
答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字元串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法
34、談談final, finally, finalize的區別
答:final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally?再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的
35、面向對象的特徵有哪些方面
答:主要有以下四方面:
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2.繼承:
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。
4. 多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
36、String是最基本的數據類型嗎
答:基本數據類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類
37、int 和 Integer 有什麼區別
答:Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。原始類型封裝類booleanBoolean,charCharacter,byteByte,shortShort,intInteger,
longLong,floatFloat,doubleDouble
引用類型和原始類型的行為完全不同,並且它們具有不同的語義。引用類型和原始類型具有不同的特徵和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的預設值。對象引用實例變數的預設值為 null,而原始類型實例變數的預設值與它們的類型有關
38、運行時異常與一般異常有何異同
答:異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。
39、說出ArrayList,Vector, LinkedList的存儲性能和特性
答:ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,
Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。
40、HashMap和Hashtable的區別
答:HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。
41、heap和stack有什麼區別
答:棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照後進先出的方式進行處理。堆是棧的一個組成元素
42、Java的介面和C++的虛類的相同和不同處
答:由於Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象裡面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,介面有更高的靈活性,因為介面中沒有任何實現代碼。當一個類實現了介面以後,該類要實現介面裡面所有的方法和屬性,並且介面裡面的屬性在默認狀態下面都是public static,所有方法默認情況下是public.一個類可以實現多個介面。
43、Java中的異常處理機制的簡單原理和應用
答:當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。
43、垃圾回收的優點和原理。並考慮2種回收機制
答:Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內存管理。由於有個垃圾回收機制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預知的情況下對內存堆中已經死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或所有對象進行垃圾回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。
44、你所知道的集合類都有哪些?主要方法?
答:最常用的集合類是 List 和 Map。 List 的具體實現包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構建、存儲和操作任何類型對象的元素列表。 List 適用於按數值索引訪問元素的情形。
Map 提供了一個更通用的元素存儲方法。 Map 集合類用於存儲元素對(稱作"鍵"和"值"),其中每個鍵映射到一個值。
45、描述一下JVM載入class文件的原理機制?
答:JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類。
46、排序都有哪幾種方法?請列舉
答: 排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸並排序,分配排序(箱排序、基數排序)
快速排序的偽代碼。
/ /使用快速排序方法對a[ 0 :n- 1 ]排序
從a[ 0 :n- 1 ]中選擇一個元素作為middle,該元素為支點
把餘下的元素分割為兩段left 和right,使得left中的元素都小於等於支點,而right 中的元素都大於等於支點
遞歸地使用快速排序方法對left 進行排序
遞歸地使用快速排序方法對right 進行排序
所得結果為left + middle + right
47、JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什麼意義?在try塊中可以拋出異常嗎?="3">答:Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的介面。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並進行處理。Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最後(finally)由預設處理器來處理。
用try來指定一塊預防所有"異常"的程序。緊跟在try程序後面,應包含一個catch子句來指定你想要捕捉的"異常"的類型。
throw語句用來明確地拋出一個"異常"。
throws用來標明一個成員函數可能拋出的各種"異常"。
Finally為確保一段代碼不管發生什麼"異常"都被執行一段代碼。
可以在一個成員函數調用的外面寫一個try語句,在這個成員函數內部寫另一個try語句保護其他代碼。每當遇到一個try語句,"異常"的框架就放到堆棧上面,直到所有的try語句都完成。如果下一級的try語句沒有對某種"異常"進行處理,堆棧就會展開,直到遇到有處理這種"異常"的try語句。
48、一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制?
答:可以。必須只有一個類名與文件名相同。
49、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
答:位元組流,字元流。位元組流繼承於InputStream OutputStream,字元流繼承於InputStreamReader OutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。
50、java中會存在內存泄漏嗎,請簡單描述。
答:會。自己實現堆載的數據結構時有可能會出現內存泄露,可參看effective java.
4. 你見過最水的程序員是什麼樣的
本來是好好的程序員,硬生生讓自己成為了“網管”。
1、公司電腦哪裡出問題了,他就會在那裡。他是工科大學畢業的程序員,編程玩得賊溜,甚至在剛到公司的時候,還曾經在公司的伺服器後台放了一些自己開發的編程小游戲,點擊就能夠運行。那時候我有伺服器許可權,還曾經玩過他做的編程游戲,不管是從界面UI、運行流暢程度來講,他做得都挺好的。
但是就是這樣一個程序員,到了公司之後,卻成為了一個“網管型”的員工:公司里行政辦公人員大概有百來人,幾乎每個人都有配置電腦,不過由於這些電腦都是“久經考驗”的,所以時不時就會發生問題。而這個時候,不管是關機重啟就能解決的問題,還是需要更換內存條、更換cpu之類的硬體問題,大家都會喊他來解決。
一開始的時候,他還會不適應,我一個寫程序的,怎麼讓我來做這種事情呢。不過公司也沒有太多需要編程的任務,所以他只能都接著,都去看看……
其實一個人畢業之後,多數都是難以從事自己之前所學專業的工作。甚至哪怕從事“相關”的工作,也可能與自己原先所學的不符。所以,是否能在先就業再擇業之中做出一個好的決定,能夠保持自己長期的發展潛力,而不被繁瑣、機械的工作所限制,這是我們每個人都要思考的。
5. 有一個呆逼程序員男友是一種什麼體驗
如果說到程序員,我想大家腦子里一定會出現這樣一個印象:不個邊幅、不苟言笑、無趣、情商低等等等。事實真的是這樣嗎?
1:程序員一般都很上進,只要有空,就會鑽研技術方面的知識、整理讀書筆記。同時程序員經常加班,給旁邊的人的感覺總是每天忙,可以當你有事要找他的時候,他一定會及時的出現在你的身邊。
2:和人交談你會發現,很難溝通,有事沒事總叨叨技術上的專有名詞,狠不得所有的事情都和他的專業拉上關系。
3:給大部分的感覺也都是情商低,智商高。如果要爭執起問題來,你會發現壓根就沒有說話的餘地。所以,更多的時候其實是他不願意和其它人爭。
4:對待任何人都顯得非常有耐心,這可能和平常的工作有很多的關系。有時為了要解決一個錯誤,反反復復來來回回處理了多遍。也就自然的對待其它事情顯得有耐心了起來。
5:電腦高手,接觸久了你會發現,你電腦上的任何問題他幾下都能搞清楚。有時候找一個app的功能半天不會操作,他一上手,幾下就搞好了。需要找什麼軟體,需要在網上找任何問題,這些你放心的交給他就好了,保證高效的做到。
6:放心,程序員每天對著的就是電腦,平常的私生活頂多就是玩玩游戲而已。你不用擔心他去外面和朋友喝酒或ktv什麼的。
7:愛好電子方面的東西,這類東西都比較花錢,這點要把控好。
8:經濟不會太拮據,程序員行業工資相對還是不錯的。一家人過過平常的日子還是可以很好的滿足的。
其實還有很多優點,還需要大家去發現。
6. 你的代碼出bug了,程序員聽到這個時的表現太真實了
這個大撒比寫出這么個爛代碼,幸虧有哥這樣神一樣的存在才發現,哥真是救世主。
這個程序運行很久了是不是真有bug啊,是不是你弄錯了啊,可以重現么,什麼?可以重現,有尼瑪問題也不大,要不用戶早投訴了,瞧你那驚慌失措的樣子,真想吐你一臉狗屎。
這個bug隱藏的很深啊,還好哥犀利犀利,沒有被領導發現,今晚加個菜。
這個程序剛上線還處於調試階段,有bug很正常,誰的程序沒bug,連操作系統都有bug。
哥就是犀利,自己開發自己測試,看測試那幫撒比什麼也不會干,這么明顯的bug都測不出來,真是一群廢物。
1、「是刪除它還是修改它呢?好糾結 !」
2、網上一定有解決辦法。
3、是誰動了我的代碼?
4、完全不知道這些代碼是神馬東東。
5、哦,為什麼我都沒寫注釋呢?
6、算了,廢了他,我還是從頭開始吧!
程序員自身可以在程序生成的每個階段做這些工作: 仔細的設計、編寫代碼時、單元測試(重要)、功能測試。
7. 你見過哪些員工因為作死被開除的事情
1、阿里安全部員工狂拽黑客技術刷了公司66盒月餅
(2016年)
阿里內部在搞一個中秋槍月餅活動,某程序員想秒殺一盒月餅,無奈發現剛開始手動操作,一點開界面月餅就被搶光了。
他發現有人用程序刷月餅,於是他對同事說「我也得寫個腳本,要不然就搶不到了」。於是他寫了一段腳本,內容大概是:定時自動搶,如果按鈕變成了秒殺就狂點(和12306搶票插件類似)。
然而,他以為阿里中秋搶月餅的頁面和一般秒殺頁面一樣,搶到後即刻跳轉到支付頁面。當天16:00自動秒殺,結果一看傻眼了,發現秒殺頁面可以一直搶、並且不跳轉,一連搶到10幾個都沒有付款,便趕緊給行政打電話要退。
後來,16:30被約談,17:30解約合同備好,18:00走人。
2、某哥們在知乎深度剖析暴雪面試全過程
(2015年)
楊笛笛拿到暴雪(上海)的offer,職位是數據分析師。他立刻在知乎來分析面試全過程,洋洋灑灑,圖文並茂。
由於在知乎的更新得到了300多贊被頂到日報上,然後不幸被暴雪上海分部的工作人員看到,暴雪對這篇分享感到很不高興,直接取消了offer。
事後他立即刪除這篇回答,也發了郵件道歉,不過於事無補。
再後來,他又恢復了那篇知乎回答,已經累計得到26K點贊,還會實時更新自己的工作動態。(楊笛笛的知乎回答:如何得到暴雪娛樂公司的工作機會?)
3、Facebook員工帶遊客到公司蹭飯
(2015年)
Facebook的餐點出了名的好吃,而且面向員工免費。不僅如此,員工還可以帶家人和朋友來這里免費用餐。
於是,Facebook一名員工(華裔)通過一個旅遊中介網站找到想來Facebook體驗高大上食堂的遊客,以每人20美元的價格帶遊客進Facebook吃飯,並可以深度旅遊拍照。
結果,他一天帶了10個人去食堂吃飯,被發現後就開除了。
4.去年公司就有2名女員工在食堂吵架,並打起來了,公司老總勸架都被罵了,第二天,兩個人直接被辭退了。
事件發生在一天中午吃飯的時候,我突然聽到一頓吵雜的聲音,發現兩名女員工相互對罵,周圍的員工都被這突然的吵架聲嚇住了!一片安靜。只聽到其中一個女的說另外一個女的是渣女,勾引男人,不要臉之類的話。另外一個女的話不多,直接揪著對方的頭發,相互打了起來!這個時候公司的老總正好帶著客戶來到了食堂就餐,老總讓她們先鬆手,有什麼事先去保安室說明一下。
其中一個女突然說了一句:「上樑不正下樑歪,這個女的就是你們公司的好員工,勾引別人家的男人!」。老總面不改色地說:「有什麼事也不要在公共場合吵鬧打架。」。這個時候保安趕到了,把這兩名女員工帶走了。
後來聽到流傳的小道消息,這兩個女的,都是為了一個男的,其中一個女的是前妻,另外一個是現任女友。三個人都在集團的不同分公司,前妻在一個分公司A,那個男的和另外一個女的在一個分公司B。發生沖突的當天,是這個男的前妻正好去分公司B開會,中午在食堂排隊吃飯時,發現了這個女的,兩個女的見面,格外眼紅,直接就火氣上來了!就發生了開頭的一幕。
公司第二天就根據員工手冊,將兩位女員工都辭退了。在公司公共場合吵架以及打架,對公司的形象產生了非常不好的影響!甚至會讓公司的合作方感覺到公司員工素質差,不值得合作。
這件事讓這兩名女員工即丟了人又丟了工作,沒過一個月那個男的也離職了。
8. 為什麼老闆總想著程序員把軟體開發成萬能傻瓜式,以後沒有技術人員也能做項目
一般我們中國把程序開發設計人員及程序維護測試人員都歸為程序員;
可以,高數只是數學方面的知識,很多沒有上大學的程序員開發程序做軟體能力很強,高數和軟體開發維護沒有必然的聯系,當然你連一些基本常用的數學知識也沒有就不行啦。
程序員的要求如下:
1:團隊精神和協作能力
2:文檔習慣
3:規范化的代碼編寫習慣
4:需求理解能力
5:模塊化思維能力
6:測試習慣
7:學習和總結的能力
我就是要問你 工作內容怎麼不一樣了
答:
首先軟體工程師與程序員工作上最大的不同,可以打一個比喻:把一款軟體比做一座大橋,那麼軟體工程師相當於施工總指揮,而一般的開發人員也就是程序員相當於建築工人!
所以很多人就說自己是IT民工就是這么來的;
軟體工程師的工作不同於程序員但是一個軟體工程師必定是一個優秀的程序員!
為什麼工程師要懂?
答:
前面也已經說了,高數和軟體開發沒有必然的關系,工程師也不一定要懂高數;要講一點高數是可以提升你的邏輯思維,但是軟體開發技術范圍很廣,這之間沒有必然的關聯,學了高數軟體開發就很厲害或者不學高數軟體開發就不行都是偽命題。
軟體的開發工具、開發技術在不斷地發展。在校學生所能學到的東西很難跟得上發展的需要但是也不能說那些東西完全沒有用,只有在完全理解了相應的基本技能之後你才能很輕松地掌握新的技能,軟體技術都是一個循序漸進的過程。所以高數只是你在大學裡面學習的東西,是很重要的但不是必要的;
軟體工程師要理解和領會軟體工程,軟體工程只是一個理論一個指導思想,搞軟體開發的都必須了解這些基本理論並在平時的工作中認真地去貫徹執行,做軟體工程師更是如此。
寫思路用懂的高數嗎?
答:
同上,寫思路的關鍵是要懂軟體技術,具體的實現不需過多的考慮,當然有時候設計的時候動數學建模也有幫助,不過不是必需的。
加一句,大學里學的知識上了社會很多都沒有什麼用處,社會是最好的大學,當然學好高數對開發什麼的也有幫助,但是關鍵是你要一直不斷地提升自己,高數再好軟體技術不好你也成為不了IT精英,成為高手沒有捷徑,不可能速成!天道酬勤,作為學生你應該知道眼前需要做什麼。那就是打基礎,多動手做程序,首先爭取成為一個優秀的程序員,技術達到一定高度再轉軟體管理方面的工作,比如:軟體工程師,項目經理,IT主管,IT經理,企業CIO。