-
Notifications
You must be signed in to change notification settings - Fork 0
/
preface.tex
72 lines (61 loc) · 3.64 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
\cleardoublepage
\phantomsection
\chapter*{Preface}
\addcontentsline{toc}{chapter}{\numberline{}Preface}
\begin{quote}
\textit{The only way to learn a new programming language is by writing programs in it}
--- The C Programming Language, Kernighan \& Ritchie
\end{quote}
If you are searching for a straightforward and robust programming language
suitable for a variety of applications, Go is an excellent option to consider.
Go is an open-source language developed by Google with significant contributions
from the community. The project originated in 2007 through the efforts of Robert
Griesemer, Rob Pike, and Ken Thompson. It was subsequently released as
open-source software by Google in November 2009. Go has gained popularity among
numerous organizations across diverse problem domains. Please note that the
preferred term for the Go programming language when searching for information is
Golang.
This book serves as an introduction to the fundamentals of Go programming.
Whether you are a novice programmer or someone seeking a refresher, I hope this
book proves to be valuable. This book is specifically designed for practice
rather than just reading. Note-taking is an important skill that can help you
learn more effectively, remember information better, and stay organized. I
recommend taking notes while reading and engaging in the exercises to enhance
your learning experience.
If you are entirely new to programming, I recommend exploring the Scratch
programming language website at \url{https://scratch.mit.edu}. It provides
helpful resources for those who have not yet delved deeply into programming.
Once you have grasped the fundamental programming concepts, you can return to
this book.
My journey with programming began around 2003 when I started working with
Python. Over the course of a decade, I gained extensive experience in Python
programming. In 2013, a former colleague introduced me to Go, and it proved to
be a refreshing experience. Although there are notable differences between
Python and Go, I was particularly impressed by Go's simplicity in the early
stages. Compared to other languages I had explored, the learning curve for Go
was remarkably smooth.
Upon developing an interest in Go, one of my initial aspirations was to write a
book about it. Writing has long been my passion, with my first foray being a
blog on LiveJournal in 2004. In 2007, I authored my first book on Zope component
architecture. Writing can be an enjoyable activity, although at times it can
become demanding. Since this book is self-published, I had the freedom to take
my time and ensure its quality.
Throughout the years, I have conducted numerous Go workshops in various parts of
India. During these workshops, I always desired to offer something more to the
participants, and I believe this book will fulfill that aspiration.
Software development encompasses more than just programming languages. It
involves acquiring additional skills such as proficiently using text
editors/IDEs, version control systems, and your preferred operating system.
Furthermore, it is beneficial to continually expand your knowledge by exploring
different languages and technologies throughout your career. While Go leans
toward an object-oriented programming style, you may also find it worthwhile to
explore functional programming languages like Scheme and Haskell.
Apart from technical skills, business domain knowledge and soft skills play a
pivotal role in your career growth. However, discussing these aspects in detail
falls beyond the scope of this context. With that said, I conclude by wishing
you a successful career.
\thispagestyle{plain}
\vspace*{.2in}
Baiju Muthukadan\\
Kozhikode, Kerala, India\\
May 2023