學了一點 C 語言,下一步應該學什麼?
演算法?資料庫?還是什麼?
update: 2015-10-09
更新在github發起的 "程序員之路" 項目.項目地址: hhstore/v2coder · GitHub最近有時間,對這個項目,起了頭.歡迎感興趣的朋友一起來填坑.
===============================================
我在想,是不是可以在github上發起一個項目:「自學編程的路線圖」。
按不同方向,提供學習路線圖。都來share一下學習編程的經驗和教訓。
share一下書單。share一下各種編程基本技能,IDE配置,使用,debug技巧。嗯,先把想法記錄在這,有時間搞搞。
看知乎此類提問太多了。
update:
事情太多,起了個頭,不是很完善.友情推薦幾個別人的github項目:
justjavac/free-programming-books-zh_CN · GitHub這個項目,有整理很多免費的技術書籍.JacksonTian/fks · GitHub
這個項目,整理了前端,後端開發需要掌握的技能.跟我的想法,部分重疊.後面就不準備再整理這些項目已有的內容.
下一步要學會在知乎上問問題!!!
這種問題幾年來都有人問了幾百遍了。提問之前先搜索,知乎搜索戰五渣可以用 g 嗶~~e ,上不了 g嗶~~e 就先去學學怎麼嗶~~。不會嗶~~?好吧,我給你第一級嗶~~如何自行架設 VPN 服務? - VPS沒錢買 嗶~~?將就用這個G嗶~~e Alias Search我們工程師,就是用技術給別人解決問題的人,所以要先學會解決自己的問題。
這個答案曾建議被修改,知乎 oo0oo 。
你確定你學會c語言了?
附上一張網易雲課堂的計算機學習路線圖 供題主參考
地址計算機專業課程匯總另外推薦下這篇文章
學習C語言基本思路與參考書籍 - 林建入的軟體設計之路 - 知乎專欄這篇文章可以讓題主更加深入的了解C語言的學習----------------------------------------分割線-------------------------------------------------------------------------------
網上有好多很好的資源 可以好好利用
以下是我收藏的覺得不錯的網站首先就是谷歌的不用翻牆的快速訪問地址
谷歌快速訪問地址雲盤搜索 搜東西還是蠻方便的雲盤搜索神器_網盤搜索練習打字的小眾網站(打字速度快起來 打碼的感覺真的不一樣了)Learn typing at the speed of thought! Typing lessons that work.
知乎的關於編程的好的答案有哪些學習演算法的網站推薦? - 編程數據結構和演算法動態可視化學習http://zh.visualgo.net/果殼的MOOC學院 相當於MOOC課程導航MOOC學院 果殼網旗下慕課學習社區一些與編程相關的MOOC網址Online video tutorials training慕課網-國內最大的IT技能學習平台雲課堂 - 網易旗下大型在線學習平台
w3school 在線教程我是一個知識的搬運工 希望大家都能夠共同進步!
---------------------------------------------------------分割線------------------------------------------------------------------------
突然發覺上面發的那個谷歌快速訪問地址不能用了不過我們還可以通過改hosts來上google【FAQ】谷歌登陸不上等常見問題看過來,別被刪帖了才在哭鼻子哦~_chrome吧這個貼會長期更新的 如果發現上不了google 可以重新來更新下hosts開始學習開源框架
- 值得推薦的C/C++框架和庫
- 10個你能參與並學習的Java開源項目
- 分散式內存對象緩存系統memcached/memcached · GitHub
- 高性能鍵值對存儲系統antirez/redis · GitHub
- Google的鍵/值對(Key/Value Pair)嵌入式資料庫google/leveldb · GitHub
- 高性能web伺服器nginx: download
- 輕量級web伺服器,用c語言寫的thttpd
- C語言寫的事件驅動框架libevent/libevent · GitHub
學會了?來來來,手擼一個學c語言後已經寫爛了的學生成績管理系統。
用C寫演算法,寫編譯器
學會了語法,那就用它寫個看得見的程序(應用程序,不是啥一加二等於什麼的題目,比如寫個記事本notepad之類的程序)。這個時候你會發覺自己哪裡不足~然後再學下數據結構。。。。學完之後,徒手把常用的數據結構寫一遍,,然後告訴別人什麼是什麼數據結構~~~~然後再學一下linux。。。然後你就知道你接下來要做什麼了~~~
勿求多,但求精,務要通,一通百通。學了語言,接下來一定要多編程序。
C語言是很好的入門,當然記住不要隨意說學會了,會被群嘈的喲。1. 熟悉C++, 熟悉stl,各種vector,list,priority queue, map等等,應用熟練。2. 下一步熟悉演算法,基本的排序,到樹和圖,到動態規劃,跟著演算法導論學,自己做例題。(1、2 兩步可以一起來,學演算法的同時也就知道了很多stl中應用的原理)(1.5 如果覺得一直只是輸入輸出沒意思的話,這當中可以開始自學java,C++入門了的話,java入門不難,可以熟悉java swing,這個時候就可以自己編一些小程序了。)(最後,讓我再說一句,hash table。。。學好它。。。不要問我為什麼。。。學好它QAQ)接下來就要看你想幹什麼了,想做前端?還是想研究演算法?還是想搞操作系統?機器學習?資料庫?人工智慧?圖像處理?接下來就想學哪個方向就認真學哪個方向啊!!!加油!!!
樓上居然直接給出方案了!!??
不應該問下題主啥專業么??就默認是程序員了??現在大部分工科不都得學C語言么??知乎的大神們這是要讓 機電、自動化、電氣、電子等等的學生也去玩python?github是什麼鬼?我看了題主資料WilliamHZ,專業貌似是電子工程吧?對不?
電子工程在知乎似乎很尷尬呀!
電子工程專業本身來說,不用去搞啥C++、python、java、js,;當然你是想多學點或者轉CS也沒關係。
就電子工程專業,C語言學會後,可以做很多東西。喜歡硬體的,去玩51單片機或者Arduino單片機,學會自己編程式控制制電路系統工作,做個電子時鐘吧;喜歡數學的,進一步學習MATLAB;如果題主資料是亂寫的,專業不是EE,當我以上啥都沒說。下一步應該是學會搜索╮(╯▽╰)╭
看到題主前半句 做為程序猿的我 覺得你好厲害 但是看到後半句 又覺得你…… 好吧 恭喜你學會了c
先買個os x。然後買個hhkb,買個m950t,再買個人體工程學的電腦椅。還有搞張visa,在境外買個vps。然後再買個域名
語言是工具,為了學工具而學工具,然後學下一種工具,這挺奇怪的
正常的難道不是去幹活養活自己嘛?
在工作中還是能學習到很多
C的話一般會接觸網路編程,UNIX API,甚至LINUX內核
當然還要學別的工具的話就是其他路線學了linux後才發現,原來會C就能幹這麼多事
如果你還在用windows ,趕緊拋棄了吧
不知道作者的一點是指到什麼程度了。私以為C語言應該至少掌握到鏈表的內容才算比較完整(是否深入再在次不談)。
在C語言完整學習以後,基本的語法可以熟練掌握,初步具有編程概念之後我的建議是學習C++。從語法和概念性的學習轉變到對編程思想的學習,有助於形成整個編程的觀念。
在另外一個問題中的回答也可以作為這個問題的例子
大一上接受的是號稱最煩的C語言的洗禮,大一下沒有對象的我學習了面向對象程序設計也就是C++這一門課程。
我們學校的軟體工程從C語言入門,教會你基礎語法和嚴謹,但是我是從C++開始才慢慢懂得什麼叫做編程思想,而很多學長學姐也告訴我們「大部分的語法在C語言的學習過程中都已經掌握了,而C++需要真正掌握的就是面向對象」。我在高中畢業的時候開始學習html和CSS,在學習C語言的過程中也同時還在進行這些的學習,當時的感覺就是這是兩門完全不相干的語言。而當我開始建站的時候(已經學過C++)再回過頭來看這些語言,發現比以前理解得更好更透徹(比如類的思想,各種封裝,內存分配等等),當然直接的作用效果就是你的代碼風格越來越好,寫東西越來越輕鬆,從那一刻開始我發現了「面向對象」這一思想對我的影響至深:從根本上扭轉了我的編程思維。以上講的是學習C++給我帶來的收穫,可以作為參考。在時間充裕的情況下不妨一步一個腳印慢慢來。希望有幫助。如果要想真正的學編程從C++入手,學習面向對象編程思想
推薦閱讀:
※怎樣衡量一個機器學習工程師對演算法的掌握程度?
※如何對遊戲伺服器全服玩家進行排名?
※為什麼大多數人寫程序都是調用標準庫或者自帶函數,而無法寫出像標準庫那樣的函數?
※求十億內所有質數的和,怎麼做最快?
※求效率的演算法?