學了一點 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++入手

,學習面向對象編程思想


推薦閱讀:

怎樣衡量一個機器學習工程師對演算法的掌握程度?
如何對遊戲伺服器全服玩家進行排名?
為什麼大多數人寫程序都是調用標準庫或者自帶函數,而無法寫出像標準庫那樣的函數?
求十億內所有質數的和,怎麼做最快?
求效率的演算法?

TAG:演算法 | 編程 | C編程語言 |