如何學習程序設計

2021-02-14 Python研究生
如何學習程序設計一、選擇學習什麼程序設計語言

選擇的依據很簡單。什麼容易學什麼,遺憾,貌似都不容易;那麼什麼學起來代價最小,就學什麼,那就是導師用什麼、同門用什麼的問題。是否要根據課題需要進行選擇呢,是的,但那也許是以後的事情。我們先開始用手指,起舞。

二、然後,找個示範

找個前輩,幫著裝上軟體搭個環境,做個簡單又不是很簡單的例子,示範一下。這個前輩,最好是能給你講點八卦的,關於如何學習和如何克服困難的八卦。當然,網絡上、聊天群、公開課,都可以留一下,這是獲得常識的途徑。常識,往往是書上少有的。

三、把最基本的東西學一學練一練

背書是沒有用的,拷貝可以有;複雜的東西不用多學,最簡單的要動手多動手再動手。什麼是簡單的,也許不到2%的量,就是:數據結構、控制流程、模塊化組織方式。具體說,有什麼數據類型,基本的和可以自定義的;條件與循環是哪幾個詞;函數與對象長得如何。這些內容,可以很玄乎,尤其是走到所謂設計模式和軟體工程那樣的一些層次後。最簡單的辦法,不求甚解,多做例子多改改多看看,體驗一下,敢於去猜去試。

四、程序設計資源

一個程序設計語言強大的,往往不是上面這些基本的東西,而是它提供的資源,稱為庫、包、工具箱,之類的。比如矩陣運算、遺傳算法、機器學習,都有很成熟的庫。那麼,拿來就用吧,從拿來主義開始不失為良策。這些,遺憾,可能學不完,也不用學完。這些往往和特定專業的需求有關。那麼看看你的課題,有什麼學什麼,用什麼學什麼。

五、看書與動手

需要看書嗎?讀書總是很好的習慣,但是編程序可不是看書能學會的,他只會讓你忘記和厭倦。通常自帶的幫助文件和搜尋引擎,是最重要的學習資料。所以,先看看結構,把玩把玩,碰到問題好問他。多動手是第一位的。多抄,抄過來跑一跑,看看什麼樣的代碼什麼樣的結果;然後,一定要改一改,小改,改一句,看下結果;然後,往你要做的課題上拉一拉,根據你的想法做個小小的函數之類的。

六、邏輯與計算

計算是先做什麼在做什麼, what,本身是將過程通過邏輯組織起來。邏輯確定的是who, where, what, which, why。所以,如果what很簡單,那麼邏輯就不能差。一般的企業應用開發,what並不是多複雜,那麼邏輯就很重要。有點小聰明可以做程序,局部邏輯;有大聰明可以做架構師,整體邏輯。如果你是幹這個,不妨看看身邊,如果不是這樣,也許你有新的機會。那麼what就很關鍵,尤其在這個人工智慧肆虐了的荒野。把what做好並不容易,需要深入的洞察,需要根底與積澱。否則,你不過是搬來用用,套用而已,當然,這也很不錯了。再說,誰也沒有那麼多可以深入的坑。

七、用戶界面與算法

UI,User Interface。相比而言,算法更顯得玄妙。程序設計語言一般使用function, procedure表示函數。算法實現為一個函數。但是,Algorithm的核心是模型,而不是邏輯,當然邏輯居其次。從理論基礎來看,UI的基礎也許更高大上和豐富,比如,心理學、社會學、美學、哲學,等等,因為這個I是人機之間的Interface。人成為系統的一部分時,糾結的複雜性就難以分解了。因此,當你遊戲時,一定要考慮這個I是否能夠成為你的朋友,friendly是UI設計的基本要求,沒有底。

八、程序設計與計算機專業

程序設計<<<計算機專業。程序設計->算法設計:程序設計 ≠ 算法設計。程序設計是計算機專業知識結構的縮影。程序設計與快速聯繫特定領域知識結構的工具。程序設計逐步成為各類專業學習與研究的工具。各種專業工具都開始支持通過程序設計進行專業性的設計與研發。

九、成就感與成就

寫程序這種愉快之旅,對不少人來說是欲罷不能,對更多人來說是遙不可及,一場夢魘。為什麼欲罷不能?基本的誘惑是這裡提供了一種廉價的方式,似乎能夠比較容易達成所願。算法、想法、觀點、理念,似乎可以比較容易的呈現出來,所見即所得,其中複雜的邏輯能夠躲在後面愈加讓人滿足。這種渲染到處可見,也確實如此。

十、編點程序與做點研究

對於一般的研究生而言,例如對管理、以及一般的理工科學生而言,運用程序設計,通常要做的是某個層次的算法,或者說更多是對解決問題的方案的一個實現。算法本身的複雜性與優化往往不是第一位的。是可以簡單的看,簡單的去學習的。程序設計是個工具,遊刃有餘能促進對工具的操縱。沒有程序設計,數學建模難做、小論文難做、複雜點的圖表也難做,有點想法都好漂浮。

主題

優化問題、模型與算法

旅行商問題(Traveling Salesman Problem)求解算法

機器學習

機器學習: 鳶尾花數據集

機器學習: Scikit-learn Getting Started

機器學習: An introduction to machine learning with scikit-learn

機器學習: 手寫數字識別

機器學習: 人臉補全

ALNS自適應大規模鄰域搜索

ALNS自適應大規模鄰域搜索: 套裁問題

ALNS自適應大規模鄰域搜索: 旅行商問題

SCIP數學規劃

SCIP數學規劃求解器: PySCIPOpt

SCIP: 奇數還是偶數

SCIP: 邏輯約束

SCIP: 四個ATSP模型

SCIP: 1D裝箱問題的算法與模型

SCIP: 多商品經濟批量訂貨模型(MEOQ)線性化

SCIP: 選址問題(k-median)

SCIP: 容量約束下多分配選址問題

SCIP: 圖著色問題(限定色數)

SCIP: 批量(lot-sizing)優化問題與割平面

SCIP: 最大穩定集問題

SCIP: permutation flow shop

SCIP: 多商品經濟批量訂貨模型(MEOQ)線性化

SCIP: 資源約束調度問題RCSP

SCIP: 魯棒生產模型(SOCP)

SCIP 05: 整數規劃例子

SCIP: 圖著色的三個模型

SCIP: Weber問題的二階錐模型

SCIP: 設施選址問題的分解模型

SCIP: 數獨(sudoku)整數規劃模型

SCIP: 割平面求解TSP的算法

Python進化計算

Python進化計算Geatpy要點

單目標單連續變量函數二進位編碼進化算法

單目標多連續變量帶約束實數編碼進化算法

帶約束的單目標旅行商問題進化算法

句子匹配單目標進化算法

混合編碼單目標進化算法

離散變量雙目標進化算法

連續變量雙目標進化算法

多目標背包進化算法

混合編碼多目標背包進化算法

Python優化

Python無約束非線性優化

Python差分進化算法

Python線性規劃

Python 數學規劃

Python數學規劃案例:單分配多樞紐站選址

Python數學規劃案例:單源設施選址

Python數學規劃案例:路徑優化CVRP

Python數學規劃案例:一維裝箱

Python數學規劃案例四:資源約束的最短路徑

Python數學規劃案例三:最短路徑

Python數學規劃案例二

Python數學規劃之Cplex之旅

Python數學規劃案例一

Python數學規劃案例一模型

Python: 數學規劃

Python數據結構

Python數據結構

Python圖

Python二叉樹

Python排序

Python查找算法

Python遞歸

Python鍊表

Python棧

Python圖(csgraph)

Python數據

Python: 資料庫之SQLite

Python: Pandas

Python資料庫

Python機器學習

Python普通最小二乘法

Python Web

幾分鐘做個Web應用

Python信息系統實驗:倉庫管理

Python基礎

Python基礎:沒有更簡單

Python利器

相關焦點

  • 學習PMC程序你必須知道的幾點
    對於這樣的評論我只想說以下幾點:1、作為一個免費發布技術文章的平臺,並不是越高深的技術都是大家喜歡的,假如我天天發一些如何如何通過Picture軟體開發界面,發一些使用foucs2 開發工具機連機軟體,寫一些刀庫控制中數據如何轉換的,有觀眾來看麼?2、沒有自己需要內容得人可以取消關注,沒有人強迫你關注,你關注了也不可能給我帶一分錢的收入。
  • 《不用電腦學程序設計》全書限時免費下載|文末還有福利
    前言本書使用淺顯易懂的文字介紹程序設計、 資料結構和演算法的概念。為了避免因介紹特定的程序語言而讓初學者不易理解,本書著重在所有程序語言都會共同用到的觀念。 因此不論你正努力學什麼語言,這本書都應該能幫到你。 本書主要是寫給沒有程序背景和害怕寫程序的人,而我會使用類比的方式去解釋這些觀念。
  • 程式設計師如何像寫程序一樣寫作?
    第二,Markdown符合「數據與呈現樣式、用戶界面分離」程序設計思維。第三,Markdown的純文本特性使我們可以想管理程式設計師原始碼一樣管理自己的文字作品。總結一下,就是Markdown可以讓人們「像寫程序一樣寫作」,這讓我意識到寫這樣一本專欄的意義已經不僅僅是介紹一門輕量級的標記語言,而是在推廣一種強調自由、開放、合作的價值觀和方法論了。
  • 一個資深C語言工程師說如何學習C語言
    一個資深C語言工程師說如何學習C語言談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是「讓我歡喜讓我憂。」
  • 如何挑選 UI/UX 設計課程
    判斷條件初學者想當 UI/UX 設計師,想報名課程加快學習腳步沒什麼不好,但你想報的課程,是 UI 課,還是「視覺設計課」?教 UI 的課有沒有教互動?UI/UX 設計師要懂的「互動」不是 jQuery 之類的程序代碼,而是講「使用者的行為」,輸入、輸出,操作流程、頁面狀態等等。說教 UI ,結果拿網頁技術充當「互動」、不提使用者的,要想清楚再報名啊。前端技術UI 和前端業界大多拆成 2 個職務,UI 會的前端技術精不到哪去、也不需要太精,甚至完全不會也沒關係。
  • 如何為你設計的Logo報價?
    在谷歌上搜索「如何為logo設計方案報價」就像我關掉電視,拿走遙控器後與我那93歲高齡,沉迷於肥皂劇的老祖母打交道一樣困難。這種事屬於「不可在家中」嘗試的那種。我的意思是,儘管你可能搜到許多與此相關的帖子,但多數帖子都是關於如何設計logo,而不是如何為logo報價的。我寫這篇文章的原因是,我相信你至少應該花幾分鐘時間了解一下這個問題。
  • 在法國學習網頁設計然後成為UX/UI設計師是怎樣的體驗?
    今天來給大家分享畢業於法國高等設計學院(ECV)的Anaëlle Ho Thanh的專訪,她現在就是一位UX / UI設計師。一起看看她的學習和工作的經歷吧!所以在選擇大學的時候,我自然而然把目標定在了設計類的專業學校上。最終,我選擇的是法國高等設計學院裡爾校區(ECV Lille),我去參加過學校的開放日活動,我覺得這是一所很棒的學校!當時我看到了在學校就讀大學一年級的學生的平時作品,他們出色的繪畫水平給我留下了深刻的印象。當時的我雖然喜歡繪畫和設計,但總是胡亂地東畫西畫,但從來沒有系統學習過。
  • 今日學習分享→PPT封面設計技巧
    今天,小鎖學習了一些PPT封面設計技巧,所以分享給大家!大神勿噴!當今我們看PPT封面,背景效果被弱化、扁平化設計和自定義動畫異彩紛呈!PPT封面的設計不僅要契合演示內容的主題,也更需要起到引導整個演示文稿設計的作用。這才是真正的PPT封面設計!所以今天小鎖要分享的就是如何簡單而有內涵地製作出優質的PPT封面,喜歡大家喜歡!
  • C語言學習記錄(20)
    利用函數,不僅可以實現程序的模塊化,程序設計得簡單和直觀,提高了程序的易讀性和可維護性,而且還可以把程序中普通用到的一些計算或操作編成通用的函數,以供隨時調用,這樣可以大大地減輕程式設計師的代碼工作量。投資的原理很簡單,大家都知道,最困難的是如何克服貪婪和恐懼。2020年,回望股市,這兩年確實賺了幾十萬,但錢的用途是什麼呢?難道就是為了享受?也許還有更好的用途。等到我錢富餘的時候,首先要在縣城開一間公益的書屋,讓我的家鄉能夠有更多的書可以分享!
  • 【入門指南】如何開始自學設計
    ‍‍‍‍如何開始自學設計文/塞塔‍‍‍‍我是一個前端設計師,但我到現在只接觸過純粹的代碼層的設計,對圖形、平面設計尚未涉足,這次有個機會和我的一個好朋友一起開始。第一步,學習設計的思想上大學老師直接開始教授 PhotoShop 是一種錯誤的模式,首先你得知道什麼是設計、怎麼樣算是好的設計,當然各人的審美有所差異,不過對美好事物的判斷能力是你首先需要擁有的。就像你學會談鋼琴不意味著你可以彈出蕭邦那樣的旋律,這種對美好事物的判斷力是像靈魂般地存在於你的作品中。
  • C語言學習基礎必會
    但是我想會給你學習C語言一些啟迪。首先我想說的是在大一學習C語言可能是你從高中的第一門技術性學科。你可能和我們當初一樣手足無措,我在這裡只會回顧自己學習的經歷。並對你的疑惑做出解答。在鞏固我的學習知識的時候同時希望可以給你一些幫助。
  • 這個咖啡海報設計,值得學習一下
    其實版式設計也是一樣的,歸根到底,版式要素就是由文字與圖形或者圖片組成的,因此文字的編排、圖形或圖片的運用以及色彩的搭配將成為我們學習的重點。文案信息 >本期帶來的是關於咖啡海報,我們來看一下在設計的過程中需要注意那些問題,應該如何梳理思路。
  • 程序開發中匪夷所思的事情 No.121
    關於團隊的互相學習成長我們經常都會說,要進入到一個高手比較多的地方去學習。即使面對來自自然地,難以接受的反面證據,人們也往往會認定自己的程序完全正確。程序開發的社會效應關於程序開發的社會性。很多時候我們都以為我們的程序運行都是靠我們完美的產品設計,穩定的系統流程,全鏈路能 Cover 住。很遺憾不是這樣的,我們處在的是人類社會,是人類在使用這些東西。只要有人類介入,那絕對存在一些很迷的東西。
  • 從Web中學習PPT設計
    朋友告訴我:設計源於靈感,靈感源於借鑑。我想PPT設計也是同理吧,本身不會網頁設計,不過看的多了總結了一些經驗與大家分享。1、讓用戶集中注意力無論是靜態網站還是動態網站,如果正文文字或者句子標示為粗體或者藝術字體會比純的文字是更具吸引力。 視頻廣告是最分散用戶注意力的,但卻是最完美的是從營銷手段。
  • 寫程序還是做策劃
    如果你理解的策劃是上班打開Mac順便來杯不加糖的Coffee,打開設計軟體,構思遊戲創意。順便把團隊成員聚在一起來個頭腦風暴。如果你是這麼理解策劃的話,我建議最好從編程入手。 如果你認為策劃就是個工具人,工作內容大部分都是在做表格和文檔。或者在抄其它遊戲的數值和系統。
  • 零基礎如何學習編程?
    雖然和英語無關,但卻和學習有關。和多人熱衷於問「我該如何開始XXX?」之類的問題,對這類問題,我無法回答。我認為當你真正開始著手做一件事情之前,你不應該也沒有資格提出任何問題。因為這時候你往往只能提出大而無當的問題,毫無價值可言。另外,當你開始做的時候,問題的答案其實自然而然就已經暴露在你面前了。
  • 學習FANUC PMC技術可以做這些事情,你都知道哪些?
    對於PMC來說,對數控工具機電氣設計人員以及數控維修人員氣的作用比較大。對電氣設計人員來說主要是編程,實現一些工具機的功能,對於維修人員來說主要是應用PMC解決實際的問題。對於編程人人員來說,是從無到有的過程,對於維修人員來說,是根據現成的程序去排查故障的過程。
  • NLP 神經語言程序學專業執行師
    NLP是Neuro-Linguistic Programming 的縮寫,譯為神經語言程序學或身心語法程序學。簡單來說,NLP是運用我們的頭腦、語言、行為,來達成所欲的目標的科學。NLP就像一種新的學習方式,開發我們在學習與改變的無限潛能的教育過程。提供我們如何有效的、有方法的,運用我們的頭腦。
  • 玩遊戲竟然能破解捆綁你一輩子的木馬程序?
    亞洲首套「為自己的人生提前打通關」的桌遊——【人類木馬程序】是根據著名文案天后李欣頻的著作《人類木馬程序》這本書設計的,通過遊戲,可以站在一個高維的角度來反觀自己
  • 此處是平面設計中「幾何圖案」的天下!
    幾何形狀不僅在視覺上很有吸引力,而且易於使用,無論您是從事視覺品牌、網頁設計、插圖等工作,都為您的創意項目增添了一層視覺趣味。下面和小師妹一起領略幾何圖形的魅力吧!  正文閱讀約5分鐘 在設計中使用幾何圖案的一個最明顯的方法是用於任何品牌項目。