新聞中心
我在十三、四歲的時(shí)候***次真正進(jìn)入編程這個(gè)領(lǐng)域。從十一歲開(kāi)始我就一直對(duì)計(jì)算機(jī)非常感興趣,但在十三歲之前并沒(méi)有太多地涉足編程。那大約是五年前。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括會(huì)昌網(wǎng)站建設(shè)、會(huì)昌網(wǎng)站制作、會(huì)昌網(wǎng)頁(yè)制作以及會(huì)昌網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,會(huì)昌網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到會(huì)昌省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
我記得在中學(xué)玩過(guò)一個(gè)游戲:Runescape。很多時(shí)候游戲都會(huì)崩潰,并且會(huì)看到一個(gè)奇怪的包含外國(guó)文字的文本文件。***,我有了大約十幾個(gè)文件,于是決定去調(diào)查究竟是怎么回事。在稍微谷歌了一會(huì)之后,我閱讀鏈接到關(guān)于Java和線程的內(nèi)容。它讓我覺(jué)得摸不著頭腦,但同時(shí)所有這一切又那么令人著迷。一段時(shí)間之后,我就將它棄之腦后了,我不知道下一步該怎么做。這樣的情況一直持續(xù)到上7年級(jí)。
在7年級(jí)的時(shí)候,我們班上的每個(gè)人都需要做一個(gè)科學(xué)展覽會(huì)的項(xiàng)目。老師帶我們進(jìn)入計(jì)算機(jī)實(shí)驗(yàn)室,并給了我們一個(gè)包含項(xiàng)目點(diǎn)子的網(wǎng)站URL。***個(gè)抓住我眼球的項(xiàng)目標(biāo)題是:“使用JavaScript構(gòu)建計(jì)算器”。閱讀了之后,我覺(jué)得這個(gè)相當(dāng)酷,并決定進(jìn)入編程。
幾個(gè)星期后,我和我的一個(gè)朋友談?wù)撈鹆宋业男屡?。他的父親做IT方面的工作,他提到了一個(gè)被稱為Batch的語(yǔ)言。他告訴我如何用這種語(yǔ)言做一個(gè)測(cè)驗(yàn),我發(fā)現(xiàn)它很簡(jiǎn)單,并且樂(lè)趣十足。我花了幾個(gè)月的時(shí)間主要用于吃透基本的JavaScript,Batch和VBScript。這很有趣,但我并沒(méi)有做任何酷的東西。老實(shí)說(shuō),我真的很想制作游戲,正如許多年輕“程序員”會(huì)有的想法。
幾個(gè)月后,我開(kāi)始在C++上胡搞一通。我記得介紹Batch給我的那個(gè)朋友告訴過(guò)我,你不去學(xué)校就不能學(xué)到C ++。我想證明他錯(cuò)了。好吧,在“coding bootcamps”之前這的確是個(gè)問(wèn)題。我主要從谷歌“C ++教程”或“如何用C + +(此處插入任務(wù))”學(xué)習(xí)語(yǔ)言。我很容易地就掌握了基礎(chǔ)內(nèi)容。結(jié)構(gòu),語(yǔ)法,所有一切都很容易。我用了一段時(shí)間去(有點(diǎn))理解OOP和指針,然后,我開(kāi)始對(duì)一切都感到無(wú)聊。我想制作游戲。所有我找到的C ++游戲框架,都需要大量的樣板代碼并且/或相對(duì)比較復(fù)雜,既然我真的無(wú)法涉足其他任何地方,于是我決定繼續(xù)前進(jìn)。
在大概7年級(jí)結(jié)束和8年級(jí)開(kāi)始的時(shí)候,我開(kāi)始尋尋覓覓新的語(yǔ)言。我看過(guò)Python,Ruby,PHP,但都不感興趣,抓住我眼球的下一個(gè)語(yǔ)言是C#。和C ++一樣,我學(xué)習(xí)了基本的語(yǔ)法,但從來(lái)沒(méi)有真正學(xué)到任何深入的東西。事實(shí)證明,游戲開(kāi)發(fā)不僅僅是編程,所以我又繼續(xù)往前?,F(xiàn)在我想開(kāi)發(fā)桌面軟件。沒(méi)過(guò)多久,我漸漸離C#越來(lái)越遠(yuǎn),在高中的***年我恍然發(fā)現(xiàn)自己使用的是Java。
此時(shí),我學(xué)到的Java比任何其他語(yǔ)言都多?;叵肫饋?lái),這可能是我唯一一次可以說(shuō)我真的了解了一種編程語(yǔ)言的時(shí)候。這一年我又碰到了新鮮玩意。到了9年級(jí),我***次遇到對(duì)編程同樣感興趣的其他人。
他和幾年前的我一樣,打算進(jìn)軍游戲開(kāi)發(fā)。在他試圖學(xué)習(xí)C ++的時(shí)候,我正沉浸在Java中。然后一年后,他進(jìn)入了Web前端開(kāi)發(fā)。我們之前都寫(xiě)過(guò)一些HTML / CSS代碼,但我們都從來(lái)沒(méi)有真正做出過(guò)成果。我們終于有機(jī)會(huì)一起工作了,因?yàn)槲覀儧Q定做一個(gè)網(wǎng)站去參加其中一個(gè)班級(jí)的決賽。當(dāng)時(shí),他高三,而我高二。因?yàn)槲胰匀幌胧褂肑ava,于是決定我來(lái)為我們的網(wǎng)站做后端。在接下來(lái)的幾個(gè)星期時(shí)間里,我們?cè)O(shè)計(jì)出了一個(gè)可怕又丟臉的玩意。好吧,為了證明我的言符其實(shí),讓你見(jiàn)證它的糟糕程度,下面摘錄一些我寫(xiě)的JSP:
- <%
- try {
- File userFile = new File(request.getParameter(“usr”) + “.csv”);
- FileInputStream fstream = new FileInputStream(userFile);
- DataInputStream reader = new DataInputStream(fstream);
- String login = reader.readUTF();
- StringTokenizer splitter = new StringTokenizer(login, “,”);
- String user = splitter.nextToken();
- String pass = splitter.nextToken();
- if(request.getParameter(“passwd”).equals(pass)) {
- out.println(“Authorization Success”);
- UserSession current = new UserSession(user);
- session.setAttribute(“User”, user);
- } else {
- out.println(“Bad Password”);
- }
- reader.close();
- } catch(FileNotFoundException fnf) {
- out.println(“Bad Username and/or Password”);
- }
- %>
是啊,我太懶了,居然沒(méi)有設(shè)置數(shù)據(jù)庫(kù),所以我將用戶存儲(chǔ)在個(gè)人CSV文件中。
雖然代碼是如此黑暗,但從中我們學(xué)到了很多有趣的東西,并且第二年(我高三的時(shí)候),在我們學(xué)校的幫助下,我們開(kāi)始做自由web開(kāi)發(fā)。小小的我們從沒(méi)有經(jīng)歷任何真正的成功,我不喜歡做靜態(tài)網(wǎng)站或Wordpress管理(而這正是我們大多數(shù)SMB客戶所想要的)。我依然是搞后端。我們還找了一些知道HTML、CSS和JS的新手來(lái)幫助我們,附帶一句,管理團(tuán)隊(duì)蠻有趣的。但是,問(wèn)題是,我總是似乎做了所有的工作。
我終于還是拋棄了Java,因?yàn)槲覠o(wú)法決定是學(xué)習(xí)Spring還是Play Framework,我陷入了Node.js和fullstack JavaScript的誘惑。我現(xiàn)在***的遺憾是決定成為一個(gè)Javascript開(kāi)發(fā)人員。雖然,我從來(lái)沒(méi)有真正地制作過(guò)任何酷的web app,但我在一些客戶端網(wǎng)站上涉足了很多Express和jQuery方面的東西。
然后我到了高中四年級(jí)(美國(guó)中學(xué)為四年制)。與我一起搞自由職業(yè)的朋友已經(jīng)畢業(yè)了,去了大學(xué),而其他團(tuán)隊(duì)成員總是一副忙忙碌碌的樣子。我需要團(tuán)隊(duì)中的人能夠真正實(shí)際上做事情來(lái)幫助我(在一些客戶端工作上我已經(jīng)落后了)。幸運(yùn)的是,我發(fā)現(xiàn)了一個(gè)三年級(jí)的正在學(xué)習(xí)Node的PHP開(kāi)發(fā)人員。他很棒,幫助我讓一些客戶端工作回到了軌道。在一起完成了一些成功的工作后,我們決定離開(kāi)web開(kāi)發(fā)一段時(shí)間,去試著做一個(gè)移動(dòng)app以參加一個(gè)競(jìng)賽。因?yàn)樗幸粋€(gè)mac,而我沒(méi)有,于是我說(shuō)服他學(xué)習(xí)Swift,而我試著在Android上重新溫習(xí)Java。***,在決定使用我們兩個(gè)都不熟悉的技術(shù)維護(hù)兩個(gè)代碼庫(kù)之后,他決定將app切換到Ionic應(yīng)用。
讓我印象深刻的是,有幾天時(shí)間我完全無(wú)法提供力量(這是另一個(gè)故事了),當(dāng)我回來(lái)的時(shí)候,他已經(jīng)為我們的app完成了一個(gè)可工作的MVP。我們兩個(gè)都沒(méi)有任何Angular經(jīng)驗(yàn),所以代碼可能幾乎和我從前的那個(gè)JSP一樣糟糕,但app看起來(lái)很漂亮(有部分要感謝我們的“設(shè)計(jì)師”,我的另一個(gè)了不起的朋友)。
無(wú)論如何,之后我畢業(yè)了,那么這篇文章究竟說(shuō)明了什么呢。
為什么我是一個(gè)壞程序員
我從來(lái)沒(méi)有真正學(xué)到任何東西。我犯了不斷從這個(gè)技術(shù)和語(yǔ)言跳到那個(gè)技術(shù)和語(yǔ)言的愚蠢錯(cuò)誤。因此,雖然我了解許多語(yǔ)言和框架的基礎(chǔ),但在沒(méi)有更深入的研究之前,我并不能真正應(yīng)用它們到任何地方。
我從來(lái)沒(méi)有學(xué)習(xí)算法,并且沒(méi)有上大學(xué)的意愿。上過(guò)大學(xué)的你,或許會(huì)說(shuō)所有那些東西都不是很重要,但在現(xiàn)實(shí)中真的并非如此。當(dāng)我開(kāi)發(fā)一個(gè)產(chǎn)品的時(shí)候,我可能不需要任何知識(shí)。但等等,面試該怎么辦呢。在大多數(shù)情況下,你需要通過(guò)面試來(lái)獲得作為開(kāi)發(fā)人員的工作,而從我打聽(tīng)到的來(lái)看,面試通常包括要求你解決一個(gè)傳統(tǒng)的“算法問(wèn)題”。
我記得我以前閱讀過(guò)有人在面試中被問(wèn)及如何反轉(zhuǎn)鏈表的問(wèn)題。坦率地說(shuō),如果我在面試中被問(wèn)到的話,我的回答會(huì)是:
- java.util.Collection.reverse(someLinkedList);
有一個(gè)API方法我可以用來(lái)做到這一點(diǎn)。如果這不是一個(gè)可以接受的答案,那么我唯一的選擇是與面試官爭(zhēng)辯。我不確定在沒(méi)有準(zhǔn)備的時(shí)候我能否做到這一點(diǎn),但如果碰到被提問(wèn)的情況,我會(huì)查閱文檔和/或谷歌來(lái)搞清楚。
不管怎樣,我不覺(jué)得學(xué)習(xí)算法或上大學(xué)會(huì)更好。
我從來(lái)沒(méi)有應(yīng)用過(guò)我擁有的知識(shí)。人們說(shuō)***的學(xué)習(xí)方法是付諸于實(shí)踐。我的問(wèn)題是我不知道該做什么。我不喜歡克隆流行的app,因?yàn)樗鼈儾磺袑?shí)際。我喜歡采納其他人的點(diǎn)子,為他們來(lái)構(gòu)建那些在某段時(shí)間內(nèi)我沒(méi)有機(jī)會(huì)去做的東西。我的Github充滿了許許多多廢棄的項(xiàng)目。
為SMB做網(wǎng)站。這是我唯一的經(jīng)驗(yàn),其他沒(méi)什么可展示的。我們開(kāi)發(fā)的大多數(shù)網(wǎng)站由于某種原因不再活躍。事實(shí)證明,大多數(shù)SMB不需要網(wǎng)站,因?yàn)榫W(wǎng)站相對(duì)于Facebook頁(yè)面+谷歌業(yè)務(wù)(點(diǎn)擊這里查看更多信息)可為他們提供的很少。
JavaScript。我討厭這門語(yǔ)言及其社區(qū)。原因有很多,甚至可以寫(xiě)成一篇新的文章。然而,不幸的是,它最終迎來(lái)了它的輝煌,如果你開(kāi)發(fā)一個(gè)Web應(yīng)用程序而沒(méi)有使用像React這樣的支持框架(即如果我使用像ASP.Net MVC + Razor這樣的東西來(lái)編寫(xiě)應(yīng)用程序的話),那么你就會(huì)被一個(gè)軍隊(duì)的“衛(wèi)道士”釘死在十字架上:不斷地告訴你你是如何的愚蠢居然不臣服于救世主React。
結(jié)論d
我最近才注意到我是真的很窮。 畢業(yè)后,我不曾工作于任何東西,因此我的技能已經(jīng)退化甚至更糟。我***一次工作于這個(gè)領(lǐng)域已經(jīng)大約是在7個(gè)月以前的事情了。我知道我應(yīng)該回到這個(gè)領(lǐng)域,雖然我不知道我想做什么。 我想也許應(yīng)該是:
Android(Java,Kotlin,等)
或者
C#和ASP.Net(Core很酷,但MVC更實(shí)用)
不管是什么,這一次我已經(jīng)打定了主意。學(xué)習(xí)語(yǔ)言以及相關(guān)的框架,不再跳來(lái)跳去。 我決心這次一定要實(shí)際擅長(zhǎng)于某件事情。
也許有人在讀這篇文章的時(shí)候發(fā)現(xiàn)可以從我的錯(cuò)誤中學(xué)習(xí)。好的,希望如此。如果這篇文章你覺(jué)得我寫(xiě)得有點(diǎn)亂,那么我向各位致歉,因?yàn)檫@是我在Medium上發(fā)布的***篇文章。***,與君共勉。
當(dāng)前名稱:我作為程序員辣么窮的黑歷史
文章URL:http://fisionsoft.com.cn/article/ccesecp.html


咨詢
建站咨詢
