天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

在美做開發(fā)多年,寫給國內(nèi)iPhone開發(fā)新手

  從這個論壇開始辦這個板塊就幾乎沒正面回復(fù)過什么,但平心而論,看的最多的板塊也是這個。但從沒有發(fā)表過自己的看法,因為任何一個人在今時今日都可以成為一個程序員。而在看了很多國內(nèi)的程序大小論壇后,養(yǎng)成了一個習(xí)慣,不敢在論壇里做正面的回復(fù),甚至不回復(fù),乃至連文章也不寫。為什么今天破例了?因為被很多新人的那種態(tài)度所打動,因為他們真的很誠懇的在學(xué)。

  羅哩叭嗦的前言到此為止。我說一下我個人經(jīng)歷在先,我做過PPC的項目經(jīng)理(可能現(xiàn)在改名叫WM),也在塞班智能系統(tǒng)剛開發(fā)之初做過一些商業(yè)項目等等等等都和嵌入式有關(guān)。但我一直認(rèn)為那個時候的我的開發(fā)都是不成熟的開發(fā)。為什么?因為和很多新手一樣,陷入一些誤區(qū)。就是到底什么是開發(fā)程序?這個錯誤大家常犯,為什么開發(fā)程序,是一大堆數(shù)據(jù)處理,從第一個程序誕生到今天,程序就是一大堆的數(shù)據(jù)處理。而其實很少的國內(nèi)開發(fā)人員考慮過這一點,因為他們大多考慮的是自己的飯碗和升職。所以他們忽略了最基本的東西。而多數(shù)國內(nèi)論壇也把這些東西認(rèn)為是無需討論的。而那個時候的我也是。

  為什么我在文章的一開始就提到了一大堆數(shù)據(jù)處理,那是因為數(shù)學(xué)??赡芸吹竭@里大多數(shù)學(xué)生朋友都會笑了,數(shù)學(xué)我很強(qiáng)。如果這樣想,這樣你和我以前的我一樣又進(jìn)入了一個誤區(qū)。這里我還是以我自己說一個例子,我在美國上calculus,在上之前,我本來不想上的,因為高數(shù)什么的我都很輕松拿到了高分了,這calculus算什么,對于中國人來說,簡直就是智商的侮辱,而且第一次Quiz和Midterm也證明了我的想法,多數(shù)的外國人的均分就60多,而中國人幾乎都是85以上。而在這成績背后我卻發(fā)現(xiàn)了一個問題,就是題目我們都會解,但老師為什么一定要反復(fù)的證明趨向于一個數(shù)字,他寫了滿滿一個黑板的2.0,1.999,1.998,1997 趨向于0,然后他又寫了從-.2.0,-1.999趨向于0。其實那時的我認(rèn)為老師很傻,有必要嗎?你做這些不會改變定律,也不會改變?nèi)魏谓Y(jié)論。而且定律大家都已經(jīng)知道了。后來我在上完后,找到了老師,問她為什么你要這樣寫?她開始笑了,然后對我說,其實過程比結(jié)果更重要,而她個人也認(rèn)為在這些過程中,說不定哪天她會看到一個,那個就是一個很tiny的一個數(shù)字,他的趨向可能會不同。其實她說完這些我還是沒理解,而且我還是認(rèn)為她很stupid更多的是古板。但當(dāng)我完成所有的理科科目后,我終于有了很微妙的轉(zhuǎn)變,那就是哪怕是一個簡單的結(jié)論都需要去自己證明出來,因為說不定哪一天我也可以去推翻這個定律,因為我發(fā)現(xiàn)了一個很tiny的錯誤。 我想了半天,我決定用這個例子,因為這代表了美國和中國文化的差異,沒有那一方是對的,或者錯的。只是個人如何去看待這個問題。

  而這也是為什么要學(xué)習(xí)離散數(shù)學(xué)和線性代數(shù)和高等數(shù)學(xué)甚至物理,如果你實實在在的從根本上了解了他們,你的開發(fā)程序技能已經(jīng)是有一定水準(zhǔn)了,哪怕你就是不會C。而這個例子的證明,在國內(nèi)很多,比如很多清華的數(shù)學(xué)系和物理系的學(xué)生,在phd或者master轉(zhuǎn)入了CS(計算機(jī)技術(shù))專業(yè),他們會有很大的發(fā)展空間,而往往都是這類人比從一開始讀CS的人取的成就要高。

  可能看完上面你已經(jīng)灰心了,因為你的數(shù)學(xué)不好。數(shù)學(xué)是一個捷徑,如果我們沒有這個捷徑,我們還有創(chuàng)意。這說起來好簡單??纯磭鴥?nèi)軟件行業(yè)就明白,沒一個有創(chuàng)意的軟件,在說遠(yuǎn)一點,你用百度去搜索一個技術(shù)參考,可能有1000到2000個結(jié)果,但可以很負(fù)責(zé)的說這1000到2000個結(jié)果都是重復(fù)的。如果你把這個keyword打入Google美國服務(wù)器,我也可以很明顯的告訴你,他的重復(fù)率低的讓你難以想象。為什么搜索結(jié)果和創(chuàng)意聯(lián)系起來。因為抄襲首先扼殺了創(chuàng)意,而什么是創(chuàng)意,那個不是高深的理念,更不是什么多符合數(shù)學(xué)或者物理邏輯的東西,那個是一個純粹的想法。

  而多數(shù)的程序員在有了好的想法之后,就開始束縛起來,要加密,要如何創(chuàng)業(yè)快速賺錢。呵呵,很符合中國特色。其實一旦當(dāng)你在最初階段就把你的創(chuàng)意捆綁上這些附加的東西之后,他就開始隕落了,除非你有很強(qiáng)大的公司做支持,比如Google或者M(jìn)S,或者Apple。所以,有了好的想法后,不惜代價,勇往直前才是一個程序員的信念,哪怕市場就是不好,先把它完成,在一段時間后,說不定就會被注意,in other words. 哪怕就是不成功,沒人注意,對程序員本身而言,這也是一種經(jīng)驗的累計,因為只要你去寫代碼,你就會發(fā)現(xiàn)你需要的知識很多。 那怕就是一個小的semicolon(;) 擺的位置發(fā)生變化,在程序上,也有可能發(fā)生質(zhì)的變化。therefore, Just do it if you got good idea.

  說了2個大前提,讓我們開始進(jìn)入一些開發(fā)細(xì)節(jié)。我看了多數(shù)人喜歡問這個一個問題,我要具備哪些語言才能開發(fā)apple的程序或者Java的程序。

  in fact, my answer is nothing. 做Java開發(fā)也好,做objectC開發(fā),乃至php什么都好,C不是必須的基礎(chǔ). in other words, 你會C和不會都一樣。而為什么有很多人強(qiáng)調(diào)無論學(xué)什么你都要會C,這個論調(diào)在國內(nèi)很多,他們說沒錯,因為可能他們老師是這么說的,或者他的學(xué)長或者學(xué)姐也是這么說的。但其實,國內(nèi)多數(shù)人都沒給出一個為什么要學(xué)C的理由,其實看多英文書后,你就知道了,C是一種Thinking, 我并沒有去翻譯這字,因為Thinking代表很多,不單單是解釋他是一個想法。thinking包括你的文化,包括你的個人經(jīng)歷,甚至你對其他專業(yè)的理解。而我個人的理解對C就是,他是一個做大型程序的基石,而對于你只是完成一個普通程序,可要可不要。因為現(xiàn)在的計算機(jī)英文開發(fā)教材都是屬于解釋性的,什么叫解釋性,就是作者把那些枯燥的東西用他們自己的經(jīng)驗和實力通過最簡單的語言給你解釋了一下。所以你不需要任何其他基礎(chǔ), 只需要和twitter一樣,去follow以一個你喜歡的作家,但找到這個你喜歡的作家要花很多時間。

  而開發(fā)語言,真的無太多話可以說,你只要去記住那些就可以了,OOP就那么點東西,說來說去就是繼承,多態(tài),封裝這些。最難的也就是C++,因為他只是一個不全面的OOP,或者不完善的OOP,所以他難,因為沒完全遵循OOP的規(guī)則或者原理。 而相對Java就容易很多,因為就是一個純OOP。而了解OOP的人,或者你真的掌握了她的精髓后,你會發(fā)現(xiàn)她是一個合理的東西,而不存在難與不難,就等于Thiniking in Java里作者反復(fù)說的一些句子,萬物皆對象。而這個對象就是我們在現(xiàn)實生活中天天遇到的,再打個比方,你對你的另一半有些基礎(chǔ)的要求,比如是男性是必須,然后要20歲以上,太小不行,則就是你的field. 而有了field就是需要一些function, 比如這個男的需要有錢,所以他能賺錢這個function是必須的,當(dāng)然能實行人道這個function也是必須的。就這么簡單,OOP基礎(chǔ)就這些,在深入一些,也有很多,花個2到3天時間就掌握了,所以不要一開始就問難不難。請記住,在中國這么艱難的環(huán)境里,你都能生存下來,還有什么可以算得上是難的。

  而如果你有C的基礎(chǔ),其實還是要看一下ObjectC, 因為很多定義還是有一定差別,就等于你會C++,可能也用了C++多年,但你剛接觸Java的時候,你也要難免有點不適應(yīng),比如繼承里,你不能繼承多個base class, 而且要使用interface, 而更具體的,邏輯方面的東西更現(xiàn)實化,比如instanceof(), 例子有很多,但說白了就是更方便你快速開發(fā)。既然這里說到了快速開發(fā),我在這里就展開這個話題,作為一個新手,不要考慮太多,用現(xiàn)有的你的資源去把你的想法去實現(xiàn),那怕就是VB也好,不要太在意我今天學(xué)的這個Java是不是過時了,或者ObjectC是不是太不可移植了。請在你腦海中一定要放棄這個概念,任何東西都會過時,但Thinking是不會變化太大的。而我們要master或者要handle的是Thinking.

  多討論,這個是我在美國學(xué)到的另一個東西。其實任何人都可以討論,我的另一半是學(xué)生物的,對計算機(jī)編程是完全不懂,但我很喜歡問他,你認(rèn)為這個如何?他經(jīng)常的回答很讓我生氣,比如他自己的項目有時候,其他人是用Java寫的,他的瀏覽器沒裝可以打開Java程序的東西,他就會很憤怒,為什么你們這些做程序的不把問題簡單化。我當(dāng)時也很氣憤,人家用Java寫有什么不對,但我靜下心來想想,他就是一個最終端的用戶,雖然他的要求不符合計算機(jī)原理,但最起碼他對這個程序是感到厭煩了,而那個用Java寫的人,完全可以用ajax加php做改進(jìn),這樣就把這個問題讓非程序員更容易理解。最起碼容易打開。所以和任何人去討論,去聊天,你會得到很多東西。而那些東西是你一輩子在書上學(xué)不到的,但肯定會讓你的程序更貼近用戶。如果你和可以和你奶奶(前提你奶奶會電腦)多聊一會,他們也會給你他們需要什么樣的程序,而不一定要到處找靈感,因為靈感就在你身邊。

  最后一點就是討論后的認(rèn)同,國人很不喜歡認(rèn)同別人,總是會認(rèn)為自己比別人有本事。但在來美后,我也開始逐步的去承認(rèn)別人,這在以后的team work中很重要,國內(nèi)的team work不多,所以很難體會到,一個組員,一個手下,他們都會有他們的想法,而一個好的leader甚至manager, 是需要過人的包容力,而這個包容力的基礎(chǔ)就是去認(rèn)同別人,因為他們會在任何的一個時間點上說出一些你不知道,或者你沒想的提示,而這個提示可能就是你的軟件項目的轉(zhuǎn)折點。

  本篇完結(jié),我的結(jié)語就是:雖然社會很讓你無奈,但作為一個“人”,做任何事情,都要先尊重和了解身邊的一切,這樣你才能成為一個人,最少也是一個對別人有幫助的人,而程序員就是用程序去幫助人,而不是停留在自我滿足的層面。

it知識庫在美做開發(fā)多年,寫給國內(nèi)iPhone開發(fā)新手,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲国产在线视频中文字 | 亚洲久热无码中文字幕 | 97人妻碰视频在线观看 | 国产欧美一区二区精品仙草咪 | 久久久久久久免费 | 国产高清视频免费在线观看 | 久久精品黄AA片一区二区三区 | 午夜国产精品视频在线 | 日本一二三区在线视频 | 裸妇厨房风流在线观看 | 亚洲午夜久久久久中文字幕 | 欧美最猛性xxxxx亚洲精品 | 榴莲推广APP网站入口官网 | 成人高清网站 | 国产午夜高潮熟女精品AV | 国产色精品VR一区二区 | 男女XX00上下抽搐动态图 | 被黑人做的白浆直流 | 国产主播福利一区二区 | 国产99RE在线观看69热 | 国产午夜精品久久久久九九 | 视频一区二区三区蜜桃麻豆 | 成人精品视频在线观看播放 | 免费精品国产人妻国语 | 在公交车上被JB草坏了被轮J了 | 久久水蜜桃亚洲AV无码精品偷窥 | 精品国产成人系列 | 一区二区视频在线观看高清视频在线 | mm625亚洲人成电影网 | 俄罗斯美女啪啪 | 暖暖视频中国在线观看免费韩国 | 在线A亚洲老鸭窝天堂AV高清 | 亚洲AV无码乱码国产麻豆P | 亚洲国产精品嫩草影院永久 | 免费在线观看黄色网址 | 国产欧美日韩中文视频在线 | 日本特交大片免费观看 | 涩涩爱涩涩片影院 | 男人边吃奶边摸边做刺激情话 | 亚洲精品自在在线观看 | 韩国女人高潮嗷嗷叫视频 |