How do I read BIND source code?

Assuming that BIND is the DNS server software that was from UCB/Vixie and now from ISC;

Do not do that. There is only a handful reasons that might require you to read and understand BIND and modify it in order to make it work in a way which is not already implemented within the software. Also you probably would need to work in an ISP to implement such modifications in RL conditions.

In order to elaborate;
I was working in a given year at a given ISP. That ISP was in need of a (legitimate mind you) modification in resolver responses for a well defined and dynamically changing subset of its users. I have managed that project and wrote BIND part of it. Project was three part, user database and RADIUS, a L7 switching system and a dedicated BIND server. After spending some months and completing project, by modifying the source code to do what I wanted, I have realised that by using an obscure and not well documented (almost not documented at all) subset of configuration parameters for root servers it was possible to perform what was needed, so we released a V2 for that project, with its own root(s).

Long story short;
If you know what you need, you can do it with Bind just in the configuration.

If above paragraph is not meaningful for you, reading the code would not help much. BIND is a very specific, and special purpose server, it is not (for example) like Apache, which is also very specific in what it does but general purpose in deployment.

If you want to modify DNS traffic in and around your network, well, do not..

Why do developers always exaggerate their skills in CV?

“Always” is a dangerous word in CS, do not you think?

For CVs, if I see an impossible/implausible/cooked scenario; Several different types of languages in a short and/or simple career, incompatible areas of expertise, more buzzwords than necessary, any mention of “fullstack development”, and such, that CV flies to the garbage bin, if I have time, in plane form, if not just as a basketball.

Most people forget that CVs read two times at minimum, three if you are lucky. HR (first reader) and upper manager (last reader) does not know anything about the actual content, not just for programming, any engineering position or even sales or accounting. It is possible to fool HR screening with buzzwords and garbage about PL-1 and JS development you did last year. Actual manager OTOH, would just hate you for wasting time, less if s/he can catch your BS in reading, more if it become obvious in the second interview.

How secure are Github’s private repositories?

Although I do not like this word, this is the place to use it: GitHub services are not “Enterprise” level. There is a gigantic git repositories collection against a huge user space. If you switch to a paid account, you can mark some of your repositories “private” and limit access to them for a subset of users exists in the system. There is no user level security, no network protection, no extra service continuity options and/or an actual SLA. You need to trust implicitly to your users, and you need to know some good prayers against network and system problems.

Edit in 2021 to this 2016 summary:
Github is developing and improving its service quality and tools on offer for a better environment. In the time between my original writing and this update there have been improvements and changes. Maybe not the most important but definitely most dramatic one of those is the acquisition of Github by Microsoft. Given the current stance of Microsoft, I personally view this development as a positive one. Also it seems that, most of improvements in the service occurred after this ownership change. All these being said, I still do not see Github services as enterprise level. So the the answer to the first question (that is about private repos…) stay the same. For any FOSS and similarly “need to be out there in the open” project however, Github became an excellent platform.

Why do most professional programmers prefer Macs?

Frankly Windows became increasingly unreliable in my experience in recent years. It is probably we just do not want to wait, biting our nails, to see if our code is still there after an unpredictable crash. Or again in my experience we might be hating to see a notebook fail to return to life from a suspended (or hibernated) session. Again the same suspense during reboot “O Lord, please my code would be there intact and error free…” Normally there are lots of very good and running exclusively on Windows (although this trend seems to be something of past) tools, which should be a positive motivator for using Windows but it is not good enough…

Linux is another and sadder story. I love Linux and all my servers are still Linux, not Solaris (do they still produce it?) not BSDi, nor freeBSD nor Open BSD. But on the desktop side, Linux is becoming  suckier every passing day. Window managers became memory monsters, the usually default browser Firefox is dead (for me at the least, I use it only just to see if its interpretation of my pages is correct or not), Thunderbird was my choice of mail interface, while it is not as bad as Firefox, it is not going well either. So while Eclipse is running very good on Linux, I need a good desktop to carry out my daily life as well. Also, at least for my coding, everything I wrote and that works on Mac, works on Linux too…