談談自己學習半年編程的體會
在校大三非科班大學生,從零開始接觸編程,一路打怪升級,分享半年過來后的感悟
回顧這半年多,其實一路走來留下的還是一次次AC問題后的回憶......
1、究竟什么才是打開的最好方式?
??
相信當多數人談及編程的時候,腦力里都會想到黑客飛速敲擊的情景,這也是我之前的認知,編程就像是一個魔力者的游戲,跟平常生活完全搭不上邊,如果僅僅是如此,編程或許就和我無緣了吧,
大一的時候,學校開了C語言課,本著一種對程式本質的好奇,即使不是科班,也依然想探究寫程式究竟是怎樣的一種快感,然而好景不長,課堂上那種近似填鴨的教學方式,再加上我對計算機的體系結構毫無所知,甚至連cpu、記憶體、IO、硬碟這些最基本的計算機組成概念都沒有,很快我就失望了,也許跟很多人一樣,接觸了C,挨到了編程的門,最后卻摔門而去,覺得自己不是這塊料,
要是事后真的自己多琢磨,也許學習的路徑真的不止這一條,這也是我為何要寫這篇文章的原因,每個人都有適合自己的學習方式,沒有最好的,只有最適合自己的,
談談自己最早的接觸計算機的經歷,早在小學的時候就接觸到計算機,記得那時候還是洛克很火的時候,經常家里多給的零花錢就攢起來,放學了就拉著小伙伴偷偷上網,那也是最早的使用計算機的記憶了,大學之后,也是開始正式學習計算機,
最先接觸的是office三件套,其實用起來還是比較上手,現在看來,我覺得真正啟蒙我的不是大一學C,而是學office? ?,在學office的時候,自己首先接觸到的是一些設計的概念,也曾萌生了想從事UI方面的作業,還記得當時把《寫給大家看的設計書》認認真真的翻閱了一遍,不過這里重點要提及的是excel,里面的函式的概念真正為我理解編程打下了良好的基礎,還有里面的一些自動化的一些操作,更像是一種對實際應用的一種建模,有點腳本的味道,以及要求對特定資料格式輸出等等,很多其實在某種程度上就已經為我理解編程注入了靈魂,
這也是之后學習才體會到的,所以在之后學習各種資料格式:xml、json以及各種組態檔上手都很快,但這僅僅只是開始,后續的路將會更加漫長,可能是自己對美學確實有些絕緣,做設計似乎已經和我無緣了??,
大概19-20年在人人喊python的時候,我也在猶豫到底要不要學,因為我覺得或許走資料分析這條路也比較適合自己,為此自己還鉆門找了很多資料,準備大干一場,似乎自己的編程終于要開始了,無一例外,這次又失約了??,但也應該是最后一次了......
經過層層篩選后,最后選中了java后端這條路,轉眼半年了,一步步走到現在,從java基礎語法->用java的gui寫貪吃蛇->學習javaweb->前端三劍客html/css/js,再到后面的一些框架和微服務部署,容器化的思想,企業級開發......,其實學完javaweb用已經能寫簡單的單體應用的網站了,在學習技術的同時,并行穿插也對計算機體系也有了初步的理解,知道了一些計算機組成概念,如何協調作業的思想,對計算機網路的原理,作業系統的體系有了簡單的認知,之后再看那四本大部頭書:《資料結構》、《計算機組成原理》、《作業系統》、《計算機網路》,就感覺輕松許多,事后證明也卻是如此,因為自己之前嘗試攻讀過,完全是兩種感覺,
如果我一來直接抱起專業書就啃,我覺得一定是一頭霧水,畢竟自己沒那個一看就懂的資質,
學完java之后,再去看c,感覺真的完全不一樣了,可能我學習的順序有點反過來了??,但也是走過來了,再去學c的時候,除了c的指標和分配記憶體的一些概念可能需要一些記憶體方面的知識,其他學習起來也并無大礙了,畢竟不同語言之間思想是相通的,而且java算是對c/c++的一種簡化,而且這種面向物件的思想撰寫代碼也更加友好,
不同的語言就像不同的工具,都有自己的優缺點,但是如何配合,發揮最大的效益是取決于使用者本身的,而像c這種更像是瑞士軍刀,用好了靈活性很強,我想這也是為何大多數學校把c作為首選的原因了,
其實選哪一門語言不那么重要,最重要的是能通過這門語言打開編程的窗,java和網路編程這一塊打交道比較多,這也是我的興趣點之一,當然每個人對編程的態度是不同的,所以出發點都不定相同,但興趣是最好的老師,如果肯在自己喜歡的某一方面鉆研,相信也能如有所獲,
這里總結一下吧,談談我的理解:
1?? 編程更偏重于應用性,所以很多東西都要動手實踐,才能加深理解,無論是刷演算法,做開發,玩玩爬蟲,都要動手實踐,可能一開始并不理解,之前我刷PAT也是這樣,有時候根本不理解為什么要這么寫,之后結合資料結構演算法,多寫多感悟之后,直到一天才大徹大悟,很多東西真不是一日之功,特別是編程這種十分抽象的東西,
2?? 入門之后,需要定制自己的主技術堆疊,我選擇的是java后端,在主分支上建立自己的主路線,偶爾可能會有一些細分支,學習一些額外的,比如玩玩爬蟲,寫寫腳本,如果愿意的話還可以學一點機器學習演算法,研究大資料等等,這也是我入坑編程的重要原因,因為可以探索的東西太多了,而學校傳授的東西是有限的,很多東西都需要我們自己去完成,
3?? 我覺得學習最重要的順序應該是: 先學習思想,了解前因后果->快速上手,實踐中驗證理論->更加復雜環境下應用->之后可能就是結合自己的想法,進而再創造了
?? 最難的其實就是就是開頭和最后的再創造了,開始融入可能需要很久,很多基礎概念的大廈都還未在腦海中形成,往往學起來連不成一塊,最后熟練之后,都會沉浸在熟練之中,很難脫身于技術本身了,所以心中無劍的境界恐怕也只有少數人才能企及,
這是自己的第一篇文章,文筆簡陋,只希望給迷惘的人一些方向,如果真正熱愛這個領域,認真去默默踐行,那么編程就不僅僅是編程本身了,如果它能承載一些自己的初心和夢想,那也是好的,
2、分享一些工具和技巧
1、編輯器:
- typora ->簡潔美觀的markdown編輯器,可搭配pingo+碼云倉庫實作自己搭建博客的圖片儲存
- notepad++
- sublime
2、遠程連接
- xshell
- xftp
3、開發工具
- vscode->推薦主題美化插件 Ayu
- IDEA
4、代碼對比
- diffmerge->找bug位置
5、其他
- navicat->資料庫連接
- everything->搜索
- 天若文字識別
- ......
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285674.html
標籤:其他
