日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一名中級程序員的自述

工程師人生 ? 來源:網(wǎng)絡整理 ? 作者:工程師吳畏 ? 2018-11-16 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我是一名中級程序員。

我有相當不錯的基本技能。我犯了足夠多的錯誤才明白為什么那些被稱為錯誤。我很清楚我還需要了解更多東西。最重要的是,我知道那些東西大概是什么,并且我正在努力而積極地提升自己。

勇敢地承認自己不過是水平一般的程序員,這花了我一些時間。我不再感覺有必要去抓住那些我并不了解的觀點。當人們發(fā)現(xiàn)我對某樣東西不了解時,我也不再感到害怕。

事情并非從來如此。你可能對此不以為然,但是我曾經(jīng)自詡為編程大師。

這種對自己能力的不正確的評估,很大程度歸因于我在一個相對封閉的環(huán)境中學習技能。在過去那些日子里,有電腦就已經(jīng)很特別了;更不用說知道如何使用了。

在我自己看來,我當時是一個知識淵博并且經(jīng)驗豐富的程序員。在我不到20歲的時候我已經(jīng)用C++、Pascal、C#、JavaScript寫過程序。當然我最引以為傲的是,曾經(jīng)徒手用PHP編了一個電子商務平臺。

事實上,我可能只是人們平時談話中提到的“我有個朋友的兒子很會寫網(wǎng)站”。我和別的程序員沒有任何交流,所以我僅有的比較對象是我周圍的人;要么是一些根本不在意電腦的人,要么是那些會用電腦,但是在IE窗口中塞了5個沒用的工具欄的人。那些可能會說“我的網(wǎng)壞了”這種話的人。

接下來這個故事就是講我如何產(chǎn)生自己很厲害的幻覺的。

天才的起源

當我九歲的時候,我的一個朋友家里有衛(wèi)星電視。而在我們家里,我們只能收到四個英國的頻道(你能想象第五頻道出現(xiàn)之前的日子嗎?),我熱切地盼望有一臺普通的電視機。我們所需要的只是那些“衛(wèi)星盤子”,或者我稱為“衛(wèi)星”的東西——那樣我就隨時可以看QVC臺或者Eurosport臺。由于隱約意識到自己的某種天分,我開始搭建自己的衛(wèi)星!我的設計包括了一把打開的傘和一條銅質(zhì)音頻線,一段接在傘的金屬柄上,另一端接在電視機天線上。必須承認我的設計有一些缺陷,并直接導致我沒有得到想要的結(jié)果。但是這個小故事僅僅想表達我童年和青少年時期對技術(shù)的渴望。我認識的人中從沒人想過制造“衛(wèi)星”。

幾年后,當我父親的辦公室得到一個14.4k的貓時,我成為了最早一批網(wǎng)民一員。我能回憶起花了整個星期六下午的時間等待這個火焰漫畫圖標被加載,每個幀的動畫大概要過一分鐘才顯示。我甚至用Netscape搭建了我自己的網(wǎng)站。由于不知道互聯(lián)網(wǎng)的架構(gòu),我把所有的HTML文件存放在本地,并且期待有一天他們會出現(xiàn)在互聯(lián)網(wǎng)上。然而這些細節(jié)并沒有削弱一個事實:我認識的人中沒有一個制作了他們自己的網(wǎng)站。

在我十多歲的時候,我發(fā)現(xiàn)了自己天才中的黑暗面。在裝備了Jolly Rogers的食譜后,我和一群小伙伴們準備動搖整個九十年代英格蘭的技術(shù)和道德根基。破解電話系統(tǒng)是我們的專長。我們用手提式聲音耦合器和公用電話,給我們在ICQ上認識的美國姑娘們打免費國際電話,以及在私人交換機上設立語音信箱。最終學業(yè)和滑板阻止了我們在這條路上越走越遠,如果沒有這些干擾,我們無疑已經(jīng)在制造凝固汽油,黑進政府網(wǎng)站并且徒手殺人了。盡管我們沒有把自己的能力發(fā)揮到極致,但事實是除了我們沒有其他人哪怕?lián)碛新曇赳詈掀鳌?/p>

盡管到那個時候我已經(jīng)經(jīng)歷了一些冒險和失敗,我還是缺少一些東西。我的想法總是要超前我自身能力好幾步-正如在“衛(wèi)星”一節(jié)里體現(xiàn)出來的。我需要一種把我腦海中想法表達出來的方式。我需要一個直接的介于我想象和現(xiàn)實之間的接口。

*** 生成器

真正的轉(zhuǎn)機出現(xiàn)在我十四歲的時候。我購買了一份PC Plus雜志,其中附贈了帶有完整版Borland C++編譯器的CD。我安裝了,并且認真學習了雜志上的“hello world”教程。

就這樣,一個嶄新的世界在我面前打開了。物質(zhì)世界對于我想象力的限制消失了。我的創(chuàng)造力被解放了,我腦海中的大教堂要成為現(xiàn)實了!我該把這個新工具用于怎樣崇高的事業(yè)呢?很顯然,***生成器。

簡單而優(yōu)雅的***生成器是一個命令行程序,也是我即”hello world”之后第一個里程碑。程序開始運行后會提示用戶輸入一個數(shù)字n,然后它會輸出字符串”***”,n次。最后用戶被提示可以重復以上過程或是退出。盡管功能有限,我還是沉醉于我所品嘗到的成就。這是任何程序員都能享受到的一種快感,即看著機器執(zhí)行你的命令,不管這個任務有多簡單。它在運行了,并且你知道為什么它能夠運行。它除了在那里運行不會做任何別的事。

過了些時日,另一期的PC Plus附贈了一個完整版的Borland Delphi。有了這個,我把程序升級為帶有窗口界面并且可以隨機生成彩色的4種不同的臟話。當別的孩子在玩PlayStation的時候,我正在投身于一項更有意義和創(chuàng)造性的事業(yè),我在生成很多***。

到那時,一切都預示著我是注定要成大事的。我要向世人展示我真正可以做的事情。

我的巨著

在90年代晚期,我為一家小型并且擴張迅速的郵件訂購零售商創(chuàng)建了一個網(wǎng)站。一開始,這個站點只包含一些靜態(tài)的頁面——關(guān)于商品的小冊子,一個導航菜單和一個訪問數(shù)量計數(shù)器。

當我們的訪問量越來越大時,我們決定加入電子商務功能。我們遍歷了一些現(xiàn)成的工具包,它們的質(zhì)量從差到極差不等。我印象中第一個版本大部分建立在擺弄cgi腳本以及怪異地把《select》元素用于幾乎所有的用戶交互部分之上。之后的一個版本是充斥著framesets和Javascript的怪物——遠在Javascript成為舉世皆準的構(gòu)建應用功能的方式之前。另一個版本是由微軟的Access數(shù)據(jù)庫驅(qū)動的。

不久后我們意識到,如果我們想要一個真正可用的甚至體面的在線商店,我們需要一個自定義解決方案。我想到了我過去的成功經(jīng)驗:***生成器系列,以及截至那時我所編寫的優(yōu)秀網(wǎng)站,這其中:我的 Manic Street Preachers吉他譜收藏網(wǎng)站非常具有權(quán)威性。我認為是時候看看我能真正做些什么的時候了。我要自己從頭開始干。

從頭開始?即使那個時候開源框架已經(jīng)存在,我也不會知道他們。我有自己的計劃。我買了一本關(guān)于PHP和MySQL的書,一邊學習一邊著手搭建新的網(wǎng)站。

幸運的是,這本書把一個非常簡單的購物網(wǎng)站作為它的核心例子。所有的部分都在那兒:“category.php”會列出一個目錄中的所有物品;“product.php”會顯示商品信息以及把該商品加入購物車的按鈕;以及最重要的“cart.php”,它是所有奇跡發(fā)生的所在。這就是我想要的東西!

我孜孜不倦地學習這個例子,充滿自信地實現(xiàn)所有巧妙的而且毫無疑問也是最新潮的技術(shù)-那些方便的“mysql_”函數(shù);用于建立查詢的字符串連接函數(shù);把不同的函數(shù)放進“functions.php”文件;通過加入“header.php”和“footer.php”來維護整個網(wǎng)站的一致性;為了代碼的快速運行而回避了笨重的面向?qū)ο蟮脑O計方式(管它是什么玩意)。我的技能在飛速成長。

像一個人的王國一樣,我建造了高塔和迷宮般的地道。我每添加一個特性,就好像整個結(jié)構(gòu)在向天空伸展同時也向地下蔓延。顧客帳戶、商品評價、購買歷史、優(yōu)惠點數(shù)、帳單號、特殊優(yōu)惠、日志、 A/B測試、支付信息加密,等等。一個蔓延的迷宮,一整個星系的函數(shù),大的小的,緩緩圍繞一個不變的核心:“cart.php”。

經(jīng)過八個月的激情工作,我終于完成了。

現(xiàn)在,你們這些讀者一定在期待我會詳述當網(wǎng)站正式運行時發(fā)生了怎樣恐怖的事情。恐怕我要讓你們失望了。

它成功運行了。

最糟的方法

盡管我現(xiàn)在把這當作我最糟的設計,但是這個東西確確實是能夠運行。它在每一個糟糕的教程,每一個反php的帖子里都能找到。攪成一團的代碼?是的。不一致的數(shù)據(jù)和方法名稱?是的。介紹和業(yè)務邏輯混在一起?是的。魔幻數(shù)和全局變量?是的。

對我而言,面向?qū)ο蟮脑O計只是一堆不必要的開銷和公式化的代碼,并且有很多片面的理論支持我的觀點。我知道有關(guān)測試的所有,點擊一些你設計的特性,看上去不錯,上傳運行。我不太知道別的架構(gòu),但是據(jù)我所知,我所采用的是最明智的方法。

一些事實能“證明”我所做的都是正確的:我從零開始,白手起家,用智慧創(chuàng)造了一個功能齊全的電子商務站點。更重要的,它運行完好并且還在擴張。

在我的眼里,我和那些寫了亞馬遜的程序員們沒什么太大區(qū)別。當然亞馬遜要大一些,但是我沒有看到任何我的網(wǎng)站不能擴張成那樣的理由--尤其考慮到我采用的高速運行的架構(gòu)。

我認為我的技術(shù)水平已經(jīng)到了巔峰了。并不是說我對學習新技術(shù)不感興趣了,我只是不再對此感到緊迫。畢竟我創(chuàng)造了一些不錯的產(chǎn)品。任何在此之上的東西只是附加獎勵,是蛋糕頂端的櫻桃而已。

回到地表

我很遺憾,我在這種心態(tài)下生活了好幾年。我只是將一小部分時間用在這個網(wǎng)站上,而把主要時間用在完全不同的領(lǐng)域。在之后多年的維護和偶爾添加特性的過程中,我確實意識到了之前做的一些選擇是有問題的。我意識到有時候要花很長時間才能找到我要找的文件。有時候當我做一個改動時,一些看上去毫無關(guān)聯(lián)的地方會出現(xiàn)bug。

我的學習沒有停止,但它確實進展緩慢。我意識到我曾經(jīng)寫的mysql函數(shù)是有風險的,因為后面版本的PHP減少了對它們的支持。在一段時間里,我克服對此的恐懼的方法是堅信我的無懈可擊的設計可以彌補這些風險。畢竟我嘗試了所有形式的我能找到的SQL注入,一切看起來都沒有問題。

去年的一天我接到了一個緊急電話,網(wǎng)站掛了。所有的請求都得到500錯誤。在工程師們重新啟動并且分析了事故原因后,這被證實是一起來自國外的sql注入攻擊,是我從來沒見過的一種。

好吧,我想,這也許是我該轉(zhuǎn)向PDO的時候了。

覺悟

當我坐下來準備重寫所有的數(shù)據(jù)存取方法時,我意識到了一些深層次的問題。我意識到這將會很困難。而且我知道為什么它會這么困難。

因為這些方法散落在所有地方;因為我無法知道是否會不經(jīng)意地破壞一些東西;因為代碼是如此不一致以至于我要小心地研究不同對象的細微差別;因為很多代碼和別的部分緊密相連,這也會導致我會不小心造成破壞。簡單地說,這將會很困難。不僅因為所有這些壞的實現(xiàn)方法,還因為我對它們所將造成的后果缺乏預見。

所有的辯護,借口,逃避都無法繼續(xù)下去了。我錯了。我不是那個幻想中的天賦卓越的程序員。這么多年來,我一直都沒有認清這一點。

我的愚蠢已經(jīng)顯而易見,盡管這對我的自尊心是極大的打擊,但這也是很寶貴的一個教訓。我通過親身經(jīng)歷(而且是非常痛苦的),學到了為什么做一件事的方法有對錯之分。這不僅僅關(guān)系到品味或者時尚。這不是比誰的方法更聰明。正確的方法可以在現(xiàn)實生活中找到,并且能讓你和那些使用你代碼的人的生活更好。錯誤的方法讓人沮喪,浪費時間。我在這里不想說明哪些東西是組成“正確方法”的要素。只要說不是我做的那些就夠了。

真正的錯誤

我實現(xiàn)了PDO。同時開始第一次使用PHPUnit。我決不想嘗試通過單元測試去改造那樣的代碼。

現(xiàn)在我有意識地迫使自己無論何時都盡量去學習。我正在讀一些每個程序員都應該讀的書。我在關(guān)注別人的博客。我在收聽播客。我會看會議視頻。我正在參加一些當?shù)氐纳鐖F并且在其中做演講。我在做副業(yè)并且挑戰(zhàn)自己學習新的技術(shù)。我在學習用正確的方法做事。

對你們所有獻身于這項事業(yè)中的人來說,有一個對我們很重要的有利條件。即編程是這樣一個完全抽象的活動,任何其他領(lǐng)域都會受到的現(xiàn)實世界中的限制在這里不存在。在這里,你的極限是你自己。

我要以一些真正的箴言結(jié)束這個故事。我在開始寫這片博客的時候正好剛看完第二版的《代碼大全》。在書的最后,第825頁的底部,作者準確地描繪了我在寫這篇文章時的想法。可以說他只用了兩句話就表達我在這數(shù)千字里想表達的東西:

“作為一個初學者或者進階者,這并沒有什么錯。當一個有能力的程序員而不是領(lǐng)導者,這也沒有什么錯。真正的錯誤是,當你知道應該如何去提高時仍然選擇做一名初學者?!?/p>

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    956

    瀏覽量

    31023
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    入門神器 | 尚硅谷51單片機視頻教程

    在軟件工程日益復雜的今天,許多程序員習慣于在操作系統(tǒng)搭建的抽象沙箱中工作,通過高級語言與計算機交互。然而,代碼的終極執(zhí)行離不開物理硬件的支持。如果對底層硬件原理無所知,開發(fā)者在面對極端的性能優(yōu)化
    發(fā)表于 05-01 17:34

    如何成為一名高薪嵌入式工程師?

    學嵌入式,也可以輕松入門。 如果你已經(jīng)明確好,想要從事嵌入式開發(fā),想要成為一名高薪的嵌入式工程師,那下面這幾點建議請好好看看: 、夯實技術(shù)基礎 ?編程語言 C語言:嵌入式開發(fā)的核心語言,需
    發(fā)表于 04-09 09:03

    大理的AI野心藏不住了——風花雪月中千程序員探討人工智能

    2025 年12月4日至6日第二屆CCF程序員大會暨大理人工智能與應用國際開發(fā)者大會在大理圓滿落幕。
    的頭像 發(fā)表于 12-24 17:45 ?929次閱讀
    大理的AI野心藏不住了——風花雪月中千<b class='flag-5'>名</b><b class='flag-5'>程序員</b>探討人工智能

    隼眼科技獲得第六屆綜合交通創(chuàng)新創(chuàng)業(yè)大賽總決賽第一名

    由中交集團舉辦的第六屆綜合交通創(chuàng)新創(chuàng)業(yè)大賽總決賽于12月16日落下帷幕,隼眼科技參賽的“基于92-94GHz毫米波雷達的全天候感知系統(tǒng)”獲得了第一名的好成績。
    的頭像 發(fā)表于 12-18 17:07 ?783次閱讀

    程序員最常見謊言

    了。 28我已經(jīng)測試過了,這個功能沒問題,可以上線了。 29別擔心,這個問題很快就能解決。 30代碼快寫完了,已經(jīng)完成 90% 了 。 希望大家對程序員些容忍以及諒解! 各位程序員你們都被我說中了哪些?說說你們的觀點
    發(fā)表于 12-10 08:24

    奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官

    1024程序員日”系列活動至此劃上了個圓滿句號。本屆1024程序員節(jié)以“AI構(gòu)建世界,智能引領(lǐng)未來”為主題,廣邀技術(shù)大咖、產(chǎn)業(yè)領(lǐng)袖、企業(yè)代表與全球開發(fā)者齊聚星城
    的頭像 發(fā)表于 10-27 18:59 ?991次閱讀
    奔赴熱AI,碼力全開!Talkweb House@1024<b class='flag-5'>程序員</b>日系列活動圓滿收官

    開鴻智谷“以賽促學、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會圓滿落幕!

    10月24日,由開鴻智谷聯(lián)合主辦的長沙1024程序員節(jié)暨開源鴻蒙構(gòu)建大會在長沙圓滿落幕。本次活動以“湘聚長沙,共赴熱AI”為主題,通過技術(shù)分享與實戰(zhàn)競賽相結(jié)合的方式,著力培養(yǎng)“開源鴻蒙+AI”領(lǐng)域
    的頭像 發(fā)表于 10-27 17:58 ?893次閱讀
    開鴻智谷“以賽促學、以賽選才”|1024<b class='flag-5'>程序員</b>節(jié)暨開源鴻蒙構(gòu)建大會圓滿落幕!

    億緯鋰能榮膺AQR新能源乘用車電池系統(tǒng)供應商質(zhì)量表現(xiàn)第一名

    2025年9月25日,2025年中國汽車產(chǎn)品質(zhì)量表現(xiàn)研究(AQR)結(jié)果發(fā)布暨頒獎典禮在北京隆重舉行。億緯鋰能憑借卓越的產(chǎn)品質(zhì)量表現(xiàn),榮獲 "新能源乘用車電池系統(tǒng)供應商質(zhì)量表現(xiàn)第一名" 獎項,億緯鋰能質(zhì)量中心副總裁施諾受邀出席典禮并代表公司領(lǐng)獎。
    的頭像 發(fā)表于 10-21 18:00 ?1789次閱讀

    飛凌嵌入式ElfBoard-常用編輯器之Vim編輯器

    在Linux下我們對文本進行編輯,經(jīng)常用到的編輯器就是Vi/Vim, Vi/Vim命令眾多,功能強大,是大多數(shù)Linux程序員選擇使用的編輯器。但是Vi/Vim沒有圖形界面,對于經(jīng)常在windows
    發(fā)表于 10-13 08:47

    東風本田CR-V榮獲2025合資SUV質(zhì)量體驗第一名

    近日,2025年中國汽車產(chǎn)品質(zhì)量表現(xiàn)研究(AQR)結(jié)果發(fā)布暨頒獎典禮圓滿落幕。東風本田CR-V憑借卓越的質(zhì)量表現(xiàn),榮獲“合資SUV質(zhì)量體驗第一名”的桂冠,這權(quán)威獎項不僅是對東風本田CR-V的肯定,更是對品牌在質(zhì)量、品質(zhì)等方面多年堅守“長期主義”的最佳褒獎。
    的頭像 發(fā)表于 10-09 09:56 ?749次閱讀

    作為一名PCB質(zhì)檢工程師,我為什么在用手持式面銅測試儀?

    在PCB行業(yè),銅厚直是決定阻抗、散熱與可靠性的關(guān)鍵指標。過去,工程師把板子搬到實驗室、等待臺式銅厚儀出結(jié)果;作為一名PCB質(zhì)檢工程師,如今,我更愿意把“實驗室”揣進口袋——手持式面銅測試儀正在成為
    發(fā)表于 08-11 11:59

    軟通動力斬獲2024年中國IT服務市場份額第一名

    近日,賽迪顧問發(fā)布《2024-2025年中國信息技術(shù)服務市場研究年度報告》。軟通動力憑借在智能化轉(zhuǎn)型浪潮中的卓越表現(xiàn),以領(lǐng)先的數(shù)智化能力持續(xù)領(lǐng)跑中國IT服務市場,不僅斬獲2024年市場份額第一名,更在IT咨詢、IT運維等核心領(lǐng)域鞏固優(yōu)勢,綜合競爭力持續(xù)提升。
    的頭像 發(fā)表于 08-01 17:53 ?2112次閱讀

    潤和軟件穩(wěn)居數(shù)字業(yè)務類解決方案市場第一名

    ”)憑借自身卓越的技術(shù)實力和創(chuàng)新能力,連續(xù)五年穩(wěn)居數(shù)字業(yè)務類解決方案市場第一名;在細分領(lǐng)域:數(shù)字信貸系統(tǒng)解決方案子市場持續(xù)保持第一名,數(shù)字銀行解決方案子市場躍升至第一名。同時,其在開放銀行、交易銀行、智能營銷、智能風控、數(shù)據(jù)智能
    的頭像 發(fā)表于 07-14 17:36 ?1503次閱讀

    華為榮登GlobalData運營商基礎設施管理服務排名報告Leader象限第一名

    象限第一名。 報告對通信服務商從商業(yè)模式、解決方案、網(wǎng)絡設計與優(yōu)化、網(wǎng)絡轉(zhuǎn)型能力、服務規(guī)模、和業(yè)務敏捷性六個維度進行了全面評估,華為綜合得分第。這印證了華為在對全球運營商客戶提供領(lǐng)先服務解決方案、網(wǎng)絡極致性能和數(shù)智化轉(zhuǎn)型等方面做出了卓越
    的頭像 發(fā)表于 05-22 18:43 ?1231次閱讀
    華為榮登GlobalData運營商基礎設施管理服務排名報告Leader象限第<b class='flag-5'>一名</b>

    程序設計與數(shù)據(jù)結(jié)構(gòu)

    的地址)出發(fā),采用推導的方式,深入淺出的分析了廣大C程序員學習和開發(fā)中遇到的難點。 2. 從方法論的高度對C語言在數(shù)據(jù)結(jié)構(gòu)和算法方面的應用進行了深入講解和闡述。 3. 講解了絕大多數(shù)C程序員開發(fā)
    發(fā)表于 05-13 16:45
    天长市| 黔江区| 怀安县| 庄河市| 台山市| 尼木县| 雷山县| 鹰潭市| 新沂市| 黄梅县| 雅江县| 独山县| 济阳县| 错那县| 肇庆市| 朔州市| 揭阳市| 北辰区| 栖霞市| 双峰县| 灵台县| 句容市| 扎赉特旗| 红安县| 体育| 黑河市| 柳州市| 云南省| 资中县| 板桥市| 麻阳| 阿鲁科尔沁旗| 宜州市| 红河县| 财经| 浦县| 溧阳市| 钟祥市| 福安市| 长阳| 平潭县|