從神經多樣性視角看待我在 C 語言上的開源之旅
我了解到,如果你能找到適合你的方法,不管老師和其他學生怎麼說,你都可以學到任何你感興趣的開源技能。
我生於 1982 年,以人類的年歲計算,這隻過去了 40 年(在寫這篇文章的時候)。然而就計算機發展而言,那已經是很久以前了。十歲的時候,我得到了我的第一台電腦,一台 Commodare 64 計算機。後來,我買了一台 Amiga,到了13歲的時候,我買了一台 「IBM 兼容」 機(那時,大家都這麼稱呼它)。
高中的時候,我用圖形計算器做了很多基本的編程。高二的時候,我學習了基本的 C 語言編程,然後到了高三,我開始做更高級的 C 語言編程,開始應用庫、指針和圖形界面。
我從編程學生成為老師的旅程
在我的大學時代,我學習了 Java,所以 Java 成為了我的主要語言。我還為一種叫做個人數據助理(PDA)的設備編寫了一些 C# 語言的程序,這是現代智能手機的前身。因為 Java 語言是面向對象的、跨平台的,並且使得 GUI 編程變得容易,我想以後我的大部分編程工作都會用 Java 來完成。
在大學裡,我也發現自己有教學的天賦,所以我幫助別人編程,而當我選修計算機科學時,他們也幫助我學習數學。在大學後期,我選修了一些 C 語言編程的課程,目的是學習基本的嵌入式編程和測量儀器的控制。
30 歲之後,我用 C 語言作為教學工具,教高中生學慣用 C 語言編程。我還用 Fritzing 教高中生如何編寫 Arduino 程序。我對 C 語言編程的興趣在去年再次被喚醒,當時我找到了一份工作,幫助大學生學習計算機科目中的差異。
我如何接觸 C 語言和其他語言進行編程
每個人學習的方式都不一樣。作為一個患有 阿斯伯格綜合症 和多動症(ADHD)的 神經多樣性 人士,我的學習過程有時與其他人很不一樣。當然,每個人都有不同的學習風格,儘管神經多樣性人士可能比其他人更喜歡某種學習風格。
我傾向於用圖片和文字來思考。就我個人而言,我需要一步一步地解碼事物,一步一步地理解它們。這使得 C 語言適合我的學習風格。當我學習代碼的時候,我通過學習觀察一行行的代碼,比如我面前的 # include <stdio.h>
,逐漸將代碼合併到我的大腦中。根據我在互聯網上獲取的對其他神經多樣性人群的描述,他們中的一些人似乎也有這種學習風格。我們「內化代碼」。
有些自閉症人士在記憶大段代碼方面比我強得多,但過程似乎是一樣的。在理解諸如結構、指針、指針的指針、矩陣和向量之類的概念時,用圖片來思考是很有幫助的,比如在編程教程和書籍中可以找到的那些。
我喜歡使用 C 語言來理解工作是如何在較低的級別上完成的,例如 文件輸入和輸出(I/O)、網路編程等等。這並不意味著我不喜歡處理字元串操作或創建數組等任務的庫。我也喜歡用 Java 語言創建數組和向量的簡單性。然而,對於創建用戶界面,儘管我已經在 C 語言中看過這樣的代碼,但是我更喜歡使用圖形化編輯器,比如 Netbeans 和類似的編輯器。
我理想中用於創建應用程序的 C 語言 GUI 開源工具
如果我想像一個理想的用 C 語言創建 GUI 的開源工具,它將類似於 Netbeans,例如,通過拖放來創建 GTK 介面。還可以在按鈕上綁定 C 語言函數,等等,來使它們執行操作。也許有這樣一個工具。我承認我沒怎麼仔細查找過。
為什麼我鼓勵年輕的神經多樣性的人學習 C語言
遊戲行業 是一個很大的產業。一些研究表明,神經多樣性的孩子可能比其他孩子更專註於遊戲。我會告訴一個神經多樣性的高中生或大學生,如果你學習 C 語言,你可能會學到一些基礎知識,例如,為顯卡編寫高效的驅動程序,或者編寫高效的文件 I/O 常式來優化他們最喜歡的遊戲。我還要誠實地說,學習需要時間和精力,但是值得付出努力。一旦你學會了它,你就可以更好地控制硬體一類的東西。
對於學習 C 語言,我建議一個神經多樣性的孩子安裝一個初學者友好的 Linux 發行版,然後在網上找到一些教程。我還建議一步一步地分解事物,並給它們繪製圖表,例如,指針。我這樣做是為了更好地理解這個概念,這對我很有效。
最後,這就是它的意義所在: 不管老師和其他學生怎麼說,找到一種適合你的學習方法,用它來學習你感興趣的開源技能。這是可以做到的,任何人都可以做到。
(題圖:DA/f0d98968-4c13-4395-8414-3690bc20b0ae)
via: https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective
作者:Rikard Grossman-Nielsen 選題:lkxed 譯者:CanYellow 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive