-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpreface.tex
88 lines (79 loc) · 4.87 KB
/
preface.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
\chapter{Preface}
This book is about C programming language. In this book I have explained the
syntax of C programming language. But it is not only for learning about
language but how to learn to program using C programming language is also
there. In this book we will follow latest ISO specification of C which is
popularly known as C11. Although, all features of C11 are not implemented
yet, it is not a problem because we will study what compiler supports and as
compiler support grows, revisions will be made to this book.
In this book I draw upon my experience of learning a programming language and
what problems new programmers face. I think that I understand that what is
important for a new programmer to know. I also believe through my experience
that I am able to explain complex concepts in simple manner to new
programmers. The intention behind this book is to be a practical book for new
as well as experienced programmers.
\section*{Who should read this book?}
People interested in learning C should read this. Anybody can read this book
who has little background on Mathematics. I would say high school education is
sufficient for reading it. So this book is for both beginners and experts
alike. For experts advanced concepts have been presented and also a reference
to standard library has been given along with its usage.
\section*{How to read this book?}
Learning programming is like learning a new language and then solving
problems is like Mathematics. So the latter is more important as unless you can
solve the problem on pen and paper, you cannot solve the problems using
C. However, the focus of this book is to explain the features and syntax of C
programming language not on how to solve the problem. To get a good grasp
on the contents of the book one should read the theory first then look at the
examples given and try to understand and run them and in the end attempt
the problems. If you cannot solve the problems then lookup the solution and
try to understand.
\section*{Acknowledgements}
I am in great debt of my family and free software community because both of
these groups have been integral part of my life. Family has prvided direct
support while free software community has provided the freedom and freed me
from the slavery which comes as a package with commercial software. I am
especially grateful to my wife, son and parents because it is their time which
I have borrowed to put in the book. To pay my thanks from free software
community I will take one name and that is Richard Stallman who started all
this and is still fighting this never-ending war. When I was doing the Algebra
book then I realized how difficult it is to put Math on web in HTML format and
why Donald Knuth wrote \TeX{}. Also, \TeX{} was one of the first softwares to
be released as a free software. HTML has not yet matured to represent
mathematical content. MathML is supported by Mozilla. Webskit browsers started
supporting then dropped and I would refrain to comment on commercial browser's
support which do not even comply to starndard because they think they are the
standards tehmselves and others will bend to their will.
Now as this book is being written using \LaTeX{}~ so obviously Leslie Lamport
and all the people involved with it have my thanks along with Donald Knuth. I
use Emacs with Auctex and hope that someday I will use it in a much more
productive way someday.
I have used TikZ as a tool for drawing all the diagrams. It is a wonderful
package and works very nicely. I have great appreciation for its author Till
Tantau.
I would like to thank my parents, wife and son for taking out their fair share
of time and the support which they have extended to me during my bad
times. After that I would like to pay my most sincere gratitude to my teachers
particularly H. N. Singh, Yogendra Yadav, Satyanand Satyarthi, Kumar Shailesh
and Prof. T. K. Basu. Now is the turn of people from software community. I must
thank the entire free software community for all the resources they have
developed to make computing better. However, few names I know and here they
go. Richard Stallman is the first, Donald Knuth, Dennis Ritchie, Ken Thompson,
Bjarne Stroustrup after that.
For syntax highlighting I have used \texttt{minted} \LaTeX{} package which
uses \texttt{pygments} as its backend. You can modify it and make it look
different both at \LaTeX{} and \texttt{pygments} level. Thanks to the
respective package authors.
I am not a native English speaker and this book has just gone through one pair
of eyes therefore chances are high that it will have lots of errors. At the
same time it may contain lots of technical errors. Please feel free to drop me
an email at
\href{mailto:[email protected]}{[email protected]} where I
will try to respond to each mail as
much as possible. Please use your real names in email not something like
coolguy.
\begin{flushright}
Shiv Shankar Dayal\\
Nalanda,\\
India, 2015
\end{flushright}