1. 程式人生 > >寫給想成為程式設計師

寫給想成為程式設計師

   對計算機好奇,對計算機痴迷,你自然就會自己學會寫程式。

     很多人都想學計算機軟體,卻很少思考學了做什麼,為了賺錢麼?如果你僅僅把學習作為生存的工具。那麼我認為學習軟體開發不是最好的選擇。

     如果不是興趣,軟體開發是一個很辛苦的事情,需要長期的堅持,絕對不是賺錢的最好方法。

     我雖然沒有在大公司做過軟體開發,也沒有參加過什麼有名的系統開發,但是我一直在學習計算機相關方面的知識,一學就是十幾年,變成了一種習慣,也變成了一種愛好。我對計算機硬體和軟體的執行原理非常好奇,總是自己摸索去弄明白其中的道理,因此我學習的進度是很慢的,但是我卻發現了軟體知識之外的很多道理。

     一個科學家,肯定是一個哲學家,一個人如果想有所成就,那麼就必須自己思考,思考關於事物之間的聯絡,關於事物之間的通性。軟體技術中最有價值的部分就是對事物的共性的抽象,因為軟體要解決的就是智慧和共享。一個程式設計師,如果僅僅追求對軟體程式設計技巧的研究,那麼再怎麼樣也不會有多大的成就。

     你如果想編寫好一個軟體,你必須非常清楚編寫軟體的意義,很多程式設計師並不思考軟體使用者的行為,而僅僅是以最靈活的方式最低的成本完成某個功能,我見過太多的軟體系統本身bug並不多,功能也很豐富,但是使用的時候你會發現非常不順暢。

    我見過很多程式設計師會自己開發自己的架構,包括我自己。更有很多公司開發一些定製型的產品。但是往往是系統經過多次的改版後,系統要麼面目全非,要麼變得無法維護。程式設計師有很多的陋習,在軟體開發中他們自己並不覺得,因此他們開發的產品也自然包含這些陋習。

   程式設計師的修煉:

  1)從基本的程式語言學起,但是不拘泥於某個語言。因為程式語言的目的是完成一個軟體功能。

  2)有時間就學習計算機硬體基礎,從計算機組成原理開始,學學微控制器,然後理解計算機體系結構。

  3)更深一步瞭解電子電路的原理,從閘電路原理到晶片製造原理,從而理解微控制器的內部構成以及外圍電路的設計。

  4)更深一步瞭解電路設計原理,學學類比電路的設計,對電效能的理解,知道電路板的構成,直覺性地知道能源與資訊的流動。

  5)學習組合語言,理解編譯原理,瞭解程式編譯、連結、載入的過程,從而發現你編寫的軟體僅僅是作業系統程式碼的延伸。

  6)有了對微控制器和計算機體系結構的理解,就可以深入作業系統實際構建的分析,當然最好的方式就是Linux,因為有原始碼,有很多資料。

  7)通過硬體、軟體兩條線路的學習,然後通過作業系統將它們結合到一起,你發現計算機系統涉及的知識如此龐大,發現憑自己個人之力是如此渺小。

  8)現在你發現可以自己設計電路板、自己設計計算機系統,並自己寫程式驅動硬體或者修改作業系統滿足自己的需要,你發現原來無論大型伺服器還是手機,原理並不高深,而難的是以最低的成本開發出高效能而且穩定的產品。    

  9)當你瞭解了這些基礎知識後,你發現原來理論最終還是決定高度的知識,你發現原來看來很空洞的資料結構、演算法、作業系統原理、資訊學這些原來都那麼高深,如果你開始就看這些純理論的東西,會完全失去信心。

   網易公開課中的“電和磁”、“電子電路”、“程式設計正規化”、“演算法”、“資訊學” 等課程相當經典。

我閱讀的書籍很多,關於電路、軟體、微控制器、作業系統、企業管理、財務會計、哲學、心理學。年齡大了,你會發現所有的這些知識都有如此多的關聯,例如你要寫一個企業管理的軟體,你就會跟客戶交流,你需要理解客戶的管理模式、他們的物流、財務模式,你必須清楚客戶心理怎麼想,你還要將這些要實現的軟體功能抽象成計算機可以實現的資料處理模式。如果你對計算機的原理不清楚,那麼你不會找到最好的方法來完成軟體功能。

相關推薦

成為程式設計師

   對計算機好奇,對計算機痴迷,你自然就會自己學會寫程式。      很多人都想學計算機軟體,卻很少思考學了做什麼,為了賺錢麼?如果你僅僅把學習作為生存的工具。那麼我認為學習軟體開發不是最好的選擇。      如果不是興趣,軟體開發是一個很辛苦的事情,需要長期的堅持,

程式設計師的朋友

(一) 文章由來及個人經歷 我是一名計算機專業的本科畢業生,畢業已經1年多了。畢業後從事的是軟體程式設計工作,經常有其他專業的朋友想從事軟體程式設計工作,向我請教如何,因為我自覺涉行不深,不敢信口開河,無奈朋友信任,我不得不鄭重考慮一下這個問題了,來幫助朋友選擇和回報朋

這個成為程式設計師的你

想成為程式設計師的小馮: 2018年12月23日結束了人生中的一件大事情(不用說你都可以想到是什麼事情了),雖然這近一年時間的辛苦努力未必會換來肥碩的果實,但這一路上的經驗無疑是最珍貴的。 雖然自己大學主修的是通訊類的專業,但是程式設計師這個行業貌似離我們也很近,記著剛上大學的時候,我們的第

成為前端工程師的同學們

本文轉載自:https://www.h5jun.com/post/to-be-a-good-frontend-engineer.html前端工程師是做什麼的?前端工程師是網際網路時代軟體產品研發中不可缺少的一種專業研發角色。從狹義上講,前端工程師使用 HTML、CSS、Jav

自己和程式設計師的一些話(12年末-13年初總結)

       好久沒更新部落格了,不知道大家是否還記得有一個老朋友呢(得瑟下,- -)。沒寫部落格的原因主要有二:           1、技術方面沒有找到可以值得動筆的地方:要麼是網上已經存在的,要麼是我的理解還不到位,怕誤導了    大家;          2、自己有點

浮躁的程式設計師

中國有很多小朋友,他們18,9歲或21,2歲,通過自學也寫了不少程式碼,他們有的程式碼寫的很漂亮,一些技術細節相當出眾,也很有鑽研精神,但是他們被一些錯誤的認識和觀點左右,缺乏對系統,對程式的整體理解能力,這些人,一個網上的朋友說得很好,他們實際fans,壓根沒有資格稱為

成為程式設計師,學不會程式設計是自己笨嗎?

學程式設計為什麼我會覺得這麼難? 無論是學習線上課程,參與IRL,還是同事和朋友教我程式設計概念,這樣的場景對於我而言並不罕見。最後總是以愚蠢,沮喪和惱怒的感覺告終,浪費了他們寶貴的時間來幫助我這根“不可雕的朽木”。 大多數會話都會在我鼓睛暴眼不能自抑地想要脫口而出說“我

程式設計師的大學生的一些建議

導讀:本文是從《Advice to a college sophomore programmer》這篇文章翻譯而來。本文作者Peter在Groupon公司的一項新職務是為公司招募優秀的開發人員。同時,作為開發團隊的代言 人,他還負責釋出招聘資訊、回答問題等。在過去的一週,他對兩個詢問夏季實習工作的學生進行了

轉行的程式設計師

轉行是一件很痛苦的事情,首先你需要有足夠的資金養活自己半年,同時還要承受心裡上的壓力,這個是很多人難以避免的,在轉行的過程中,你身邊的朋友可能可以幫你度過這段艱難的時間,這段時間你自己要儘可能抽時間出來學習,增加自己的知

正確學習JavaScript(非JavaScript程式設計師和程式設計新手)

學習時長:6~8周 學習前提:中學水平,無需程式設計經驗 更新(2014-1-7) 目錄 上面的課程大綱提供了一個結構化和富有啟發性的學習線路,從初學者到有所建樹,把JavaScript學對學透。 既然你找到這篇文章來,說明你是真心想學好JavaScript的。你沒有想

準備了兩個月的阿里面經,初中級Java程式設計師 的BAT 面試寶典

1. 簡介 筆者普通院校畢業,沒有光鮮亮麗的職業背景,憑著自己的激情和兩個月的準備最終拿到京東和阿里巴巴 Offer。下面就是作

從事大資料的Java程式設計師

回想自己做開發的這麼多年,我獲得了很多,技術能力、培訓、出國、大公司的,還記得剛剛出來第一年那段時間,太多東西不懂的,我都是一切聽從老大的安排,敲敲程式碼,看看資料庫,測試自己和別人的程式碼;這樣渾渾噩噩幹了一年。 第二年的時候我就在想,自己還要這樣嗎? 當然是否定的,

Python成為程式設計師擁有的語言!這就是Python的魔力

根據 PYPL 釋出的 7 月程式語言指數榜,Python 保持上漲趨勢,8月流行指數再次上漲 5.5%,以 23.59% 的份額甩開 Java 排名第一,並逐漸與 Java 拉開差距。 PYPL 這一流行度指標是基於 Google 上搜索相應程式語言教程的頻率

天天業務程式碼的程式設計師,怎麼成為技術大牛,開始技術程式碼?

粗略的掃了一下前面的答案,有幾個典型的答案我覺得有必要反駁一下: 1)拜大牛為師 – 你想得美 看起來很美好,實際上想拜大牛為師的多了去了,大牛憑什麼看中你呀;而且一個公司或者部門的大牛本來就不多,你正好和大牛在一個組的機率是很小的;如果都不在同一個組,

天天業務程式碼的程式設計師,怎麼成為技術大牛

作者:程式之心丁儀 來源:https://chengxuzhixin.com/blog/post/zen_me_cheng_wei_ji_shu_da_niu.html 天天寫業務程式碼,感覺沒長進,技術深度止步不前,感覺很煩躁。很多人都在問,怎麼樣才能成為技術大牛?機會總是留給有準備的人,還是有一些方法

剛從阿里面試回來,程式設計師們談談(進阿里的必看)

       最近面試了多家網際網路公司,最終收到了阿里offer,面試前在網上也蒐集了面試題目, 但有些不是過時的,就是題目雜亂,歸納不繫統。 這次面試過後,我把面試上阿里的面試過程整理了一下,當做是一個總結,後來有朋友問我要面試記錄,索性發布出來,跟大家一起分享

10月24日,成為程式設計師的節日

節日文化   選擇256(=2^8)這個數字因為它能表示程式設計師所熟知的,一個位元組是由8位二進位制數構成的意義。256也是2的冪中最接近但不超過365的數。   十六進位制中第256個數為0xFF,因此,在這個節日中,程式設計師穿24位RGB顏色程式碼為0xFFF

你為什麼程式設計師

程式設計師,自古以來都是最遭黑的群體。常常和“苦逼,賺的多,不修邊幅,宅”聯絡在一起。似乎總是與“高帥、男神”絕緣?呵呵,王小波笑了!王小波(中國第一代程式設計師)迴應:程式設計師簡直天生驕傲!王小波說實話,關於 為什麼成為程式設計師 這件事,Abby和很多轉型成為程式設計師

為什麼會有那麼多人程式設計師,卻又那麼多人放棄?

這兩年網際網路行業發展特別快,特別是14年阿里巴巴上市,最高點接近3000億美元的市值讓很多平時不關注網際網路的人都對網際網路有了興趣。 另外就是14年李總理提出的網際網路+戰略進一步激發了大家對於網際網路行業的嚮往,網際網路創業公司如雨後春筍地遍地生花,同時

學計算機專業,但是不程式設計師,還能做什麼呢?

我本科學得是通訊,畢業以後,家裡供我到國外讀計算機專業,父母都是工薪階層,加上新疆的工資又不高,不僅要支付學費還要負擔我的生活費,所以我很能體諒父母的艱辛。 第一學期,我學得很用功,開學第一個月的程式設計量就超過了我大學四年的程式設計量,我本以為按照這個節奏,我就要“逆天