談談一個程式設計師本該具備的素質

追風少年10發表於2018-12-15
line-height: inherit;
margin: 0px;
display: inline-block;
font-weight: normal;
background: rgb(239, 112, 96);
color: rgb(255, 255, 255);
padding: 3px 10px 1px;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
margin-right: 3px;
“>前言 color: inherit;
line-height: inherit;
padding: 0px;
margin: 1.7em 0px;
“>  去年的這個時候,我正值大四上學期末,忙於找工作,10月份11月份就開始在某些招聘網站上投簡歷,但是面試了幾家,都直接回絕了,原因很簡單,很多直接說不要沒有經驗的應屆生,但是筆者在投的時候其實是篩選過的,基本投的都是沒有經驗要求以及實習生崗位,基本上一輪pass了,但是也讓我看清了現實,就是社招如果沒有經驗,除非特別優秀,不然公司是不會花時間去培養的。後面去了校招,校招就太多經驗要求了,基本上就是純技術的競爭了,說實話,那個時候技術競爭我是毫無優勢的,論計算機基礎,我的功底非常薄弱,論java基礎,熟悉的也就是常用的API,但是涉及到原始碼,實現原理,JVM等部分就不能應對了,還有多執行緒以及網路程式設計這一塊也不夠深入。幸運的是,校招看中的第一家公司錄用了自己,現在想想也是緣分啊,投了六家,還有一家人事也通知我過去上班了,我權衡了一下,回絕了,選擇了第一家更大的公司。

line-height: inherit;
margin: 0px;
display: inline-block;
font-weight: normal;
background: rgb(239, 112, 96);
color: rgb(255, 255, 255);
padding: 3px 10px 1px;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
margin-right: 3px;
“>面試總結 color: inherit;
line-height: inherit;
padding: 0px;
margin: 1.7em 0px;
“>  實習前到畢業那段時間,大概面試了十多家公司。筆者現在僅能憑記憶總結一下當初面試問過的問題以及一些筆試題。有些問題比較深刻,很多記不清了。簡單羅列一下。

color: inherit;
line-height: inherit;
margin: 0px;
padding: 0px;
“>面試
    color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    margin-bottom: 0.5em;
    “> color: inherit;
    line-height: inherit;
    margin: 0px;
    padding: 0px;
    “>筆試
      color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> color: inherit;
      line-height: inherit;
      margin: 0px;
      padding: 0px;
      margin-bottom: 0.5em;
      “> line-height: inherit;
      margin: 0px;
      display: inline-block;
      font-weight: normal;
      background: rgb(239, 112, 96);
      color: rgb(255, 255, 255);
      padding: 3px 10px 1px;
      border-top-right-radius: 3px;
      border-top-left-radius: 3px;
      margin-right: 3px;
      “>一個程式設計師本該具備的素質 color: inherit;
      line-height: inherit;
      padding: 0px;
      margin: 1.7em 0px;
      “>  接下來才是我要說的重點,就是一個程式設計師本該具備的素質。說實話,對於我這種非科班又是自學的人來說,走了不少彎路。抓不住重點學,就會非常迷茫。彎路唯一的價值就是不斷買教訓,不斷重新認識領悟。
      計算機與科學技術這個專業中,有幾門課程是非常重要的:
        color: inherit;
        line-height: inherit;
        margin: 0px;
        padding: 0px;
        margin-bottom: 0.5em;
        “>

        color: inherit;
        line-height: inherit;
        margin: 0px;
        padding: 0px;
        margin-bottom: 0.5em;
        “>

        color: inherit;
        line-height: inherit;
        margin: 0px;
        padding: 0px;
        margin-bottom: 0.5em;
        “>

        color: inherit;
        line-height: inherit;
        margin: 0px;
        padding: 0px;
        margin-bottom: 0.5em;
        “>

        color: inherit;
        line-height: inherit;
        margin: 0px;
        padding: 0px;
        margin-bottom: 0.5em;
        “>

        color: inherit;
        line-height: inherit;
        margin: 0px;
        padding: 0px;
        margin-bottom: 0.5em;
        “>

        color: inherit;
        line-height: inherit;
        padding: 0px;
        margin: 1.7em 0px;
        “>  個人認為前面四項是重點。然後掌握一門程式語言,這就是一個程式設計師的本該具備的素質。
          萬丈高樓平地起,再好的技術實現都逃不過這些底層的東西。以前經常吐槽大學教的東西是沒有用的,別的專業我不敢說,但是對於IT這一行來說,計算機課程是非常有用的。可是這種重要性我們在大學裡是體會不到的,為什麼呢?第一,大學教的純理論,真正實踐的機會很少,當然沒有真切的體會。第二,這些課程非常枯燥,能夠沉下心來學好的人不多。第三,大學老師大部分教學一套PPT用幾年,教學模式固定化,也不能結合實踐講出太多趣味性的東西。當然啦,教學只是輔助,學好必須得靠自己。
          即便是科班的學生,真正學好這些課程的人其實並不多,所以一個程式設計師本應該具備的素質許多人也不能達到。筆者自己更是不具備這種素質。當然啦,這並不影響我們完成基本的開發任務,並不影響完成增刪改查。那為什麼我還要強調這些素質呢?
          靠技術吃飯的人,多多少少都會有危機意識,技術更新那麼快,如何讓自己多年後依舊屹立不倒,那就是這些底層的東西,如果不利用業餘時間彌補底層的東西,可能過不了兩三年就會遇到瓶頸。當然,學習是有時間成本的,你只能慢慢去彌補這些知識領域,保持學習,量變終究會質變。那個時候,你會站在另一個新的高度。

        line-height: inherit;
        margin: 0px;
        display: inline-block;
        font-weight: normal;
        background: rgb(239, 112, 96);
        color: rgb(255, 255, 255);
        padding: 3px 10px 1px;
        border-top-right-radius: 3px;
        border-top-left-radius: 3px;
        margin-right: 3px;
        “>我的書籍推薦 color: inherit;
        line-height: inherit;
        padding: 0px;
        margin: 1.7em 0px;
        “>  除了上面的課程對應書籍外,我下面推薦主要是java程式設計師的看的書籍:
          color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “> color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          margin-bottom: 0.5em;
          “>《MySQL技術內幕》
            
            其實,官方文件以及原始碼也是很好的教材。另外,其實看視訊也是很好的學習方式,可以下載一些分散式微服務架構的課程來看,筆者自己買了幾套視訊,知識付費時代,想學點真東西還是得出錢啊,當然啦,現在很多公眾號會很良心的免費提供一些資源。市面上公開的資源大多是基礎的課程,如果想深入,那就得去買一些中高階的課程。

          line-height: inherit;
          margin: 0px;
          display: inline-block;
          font-weight: normal;
          background: rgb(239, 112, 96);
          color: rgb(255, 255, 255);
          padding: 3px 10px 1px;
          border-top-right-radius: 3px;
          border-top-left-radius: 3px;
          margin-right: 3px;
          “>我常去的網站社群 color: inherit;
          line-height: inherit;
          margin: 0px;
          padding: 0px;
          padding-left: 32px;
          list-style-type: disc;
          “>
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>GitHub(全球最大的同性交流網站,這是程式設計師必須上的網站,裡面開源專案特別多)
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>CSDN
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>知乎
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>部落格園
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>SegmentFault
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>慕課網
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>掘金
        • color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>伯樂線上

          display: block;
          padding: 15px 15px 15px 1rem;
          font-size: 0.9em;
          margin: 1em 0px;
          color: rgb(0, 0, 0);
          border-left: 5px solid rgb(239, 112, 96);
          background: rgb(239, 235, 233);
          overflow: auto;
          overflow-wrap: normal;
          word-break: normal;
          “>

          color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>  讓我意外的是這篇文章獲得了一千多的閱讀量,而且發表不久就登上了後端熱門欄目,真的是有點驚喜。

          line-height: inherit;
          margin: 0px;
          display: inline-block;
          font-weight: normal;
          background: rgb(239, 112, 96);
          color: rgb(255, 255, 255);
          padding: 3px 10px 1px;
          border-top-right-radius: 3px;
          border-top-left-radius: 3px;
          margin-right: 3px;
          “>這一年,我學到了什麼? color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>  工作一年,我在公司學到了什麼呢?
            實習的時候,進入了研發部門,專案經理剛開始並沒有安排專案,只是讓我們研究一下單點登陸系統以及許可權系統,那個時候其實是最頭疼的,一個工程那麼多程式碼,不知道從何看起,也不知道怎麼跟其他系統進行對接。後面,終於可以開始參與一個專案,設計表結構的時候還用了外來鍵約束,其實外來鍵會影響資料庫效能,最好在程式中自行維護表的關聯關係。那個時候,複雜的子查詢不會寫,不懂新增索引,maven不太會用,SVN不熟悉,寫的程式碼不規範,Linux命令不熟悉,不會部署應用,這些東西其實都是在專案中才真正熟悉起來的。說實話,我的程式碼水平可能更多的是在課外提高的,但是對於業務流程以及開發的各種開發工具是在專案中提高上來的。寫小程式服務介面的時候,經常要測試介面,才學會了Postman這個工具。包括與前端對接的時候由於寫的介面文件不清晰,經常把時間浪費在討論介面的欄位含義上。
            大四下學期中期,我被調到了別的專案組,參與政府部門的專案。由於之前寫的是後端程式碼,來到這個專案組卻寫了前端,就覺得自己是不是偏離軌道了。還好剛開始專案組的技術負責人並沒有安排什麼任務給我,只是讓我熟悉一下這個專案組的專案,然後學學angularjs,說是學,但是由於沒什麼任務,上班效率並不是太高,本身自己JavaScript就不太好,也沒怎麼深入去學過,angularjs更是不懂,只是跟著網上的教程看看,敲一些簡單的程式碼。後面新需求來了,沒辦法了,安排我做一個模組,只能硬著頭皮做了,還好有之前一些樣例可以參考,那就一頓複製黏貼,根據需求改一改程式碼,然後不斷測試除錯程式碼,雖然不知道怎麼來的,但終歸實現了功能,就這樣,在不斷的複製黏貼修改程式碼中,我慢慢了解的angularjs,也大概懂得怎麼去用。這期間,我學會了前端程式碼的除錯,對JavaScript也熟悉了不少,寫sql的能力也有了一定的進步,因為有些時候需要些一些複雜的sql,特殊情況,需要寫資料庫的儲存過程和函式實現。
            當然,對於後端的學習,只能工作之餘學了。

          line-height: inherit;
          margin: 0px;
          display: inline-block;
          font-weight: normal;
          background: rgb(239, 112, 96);
          color: rgb(255, 255, 255);
          padding: 3px 10px 1px;
          border-top-right-radius: 3px;
          border-top-left-radius: 3px;
          margin-right: 3px;
          “>最後 color: inherit;
          line-height: inherit;
          padding: 0px;
          margin: 1.7em 0px;
          “>  筆者當初誤打誤撞走進了IT,只希望熱愛工作,熱愛學習,做好自己手頭的每一件事,內心裡不樂意加班(慶幸現在沒怎麼加班,希望以後即使加班都在自己能接受的範圍),希望保留一份生活的空間。感謝大家的支援!!
        • 相關文章