Hey gang,
A classmate has been running Linux on his laptop at school and I've been talking to him about it, and I have been watching the TekLinux videos (Thanks @wendell) I want to get an older machine and make it a linux machine sometime later this year. In the mean time I've decided to start learning C "the hard way" and have started up a 64gig Virtual Box running Ubuntu. Aside from learning C the hard way... where should I start?
I'll link you some free and payed books:
- free C books: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#c
- The C programming language (reference manual): http://www.amazon.com/gp/aw/d/0131103628/ref=mp_s_a_1_1?qid=1441315316&sr=8-1&pi=SY200_QL40&keywords=c+programming+language&dpPl=1&dpID=41qX6YdIJ7L&ref=plSrch
- for other books regarding C and Linux, see my posts on this thread: https://forum.teksyndicate.com/t/best-programming-books/84936/4
+1 on K&Rs "The C Programming Language", best programming book, I've ever read. I can't really tell if it is a good book to start on (I read it quite late), but it definitely is awesome, and you should buy it and read it (eventually, if not now) !
As for learning Linux:
- Welcome! :)
- Do projects.
- Learn commands
Projects
In the beginning your project will just be doing daily things, but when you've got your day-to-day down, start new projects. Set up a file server, or a web server, or something else. You choose. Having a project will give you a focus and a reason to keep learning.
Commands
Basic commands
$ man intro
System maintenance: Get familiar with the *ctl commands. To list a bunch of them
$ ls /usr/bin/*ctl
You won't know what half of them are for in the beginning, but keep checking back later when you've learned some more, and you'll be like, "oh, wow, so that's how I do that!" :)
Miscellaneous commands:
- lsof
- ... (memory is bailing on me)
Get familiar with a command line text editor (it'll come in handy)
- nano
- vim
- emacs
- ed
(just kidding about ed)
Learn shell scripting.
…and most importantly: Have fun! :D
You're not going to get very far with application creation if it isn't in the form of a GUI. Install qtcreator and start learning QT. You can easily make GUIs and still run all of the c++ code you're learning.
Also as another general recommendation, after learning the basics pick some library you find interesting and start using it. It's just another learning experience integrating an API into your own code.
Edit: just realized you said C, not c++. At any rate learn both :) You can still use qtcreator for c afaik
K&R's "The C Programming Language" is the best C book you could read.
As for C projects... this bit might be a bit difficult, because C is usually used for low-level applications. You're probably going to need some understanding of hardware and how linux works if you want to get into that.
Github C projects (use advanced search to find the smallest or easiest to start contributing to):
Or here:
http://openhatch.org/
I'm working with Learn C the hard way Which supplements your C learning WITH Linux explaining/learning and provides things to get things moving. The C programming book seems like the way to go -- thanks, gang! Hopefully be back within the month to have good reports... ;)
I'm learning the C languages (skipping Objective) from C, to C++, to C# as I work through my introductory two year degree, prior to my more demanding 4yr CS degree... so hopefully I'll be into C++ around the 8mo mark! I'll probably revisit the programming section then and will definitely BM this page. Cheers!
For C++ books take a look at my post here: https://forum.teksyndicate.com/t/best-programming-books/84936/9