I guess you had lots of quasi or not fanboi replies about your lack of talent, intelligence and aptitude etc. already. So I will leave that part to those people. What you are mentioning in your question details was, now hidden very successfully by Quora bot, Desktop stability problems and comparison with Windows. Windows is a desktop GUI carried by a kernel built on VMS architecture (which was more suitable to desktop than Unix even decades ago) and some not so advertised unix-like structures. Linux is, unfortunately and despite all the efforts by people who really know what they are doing, not suitable as a desktop platform for regular people (who we like to call as “User”, you can check several references for “User” designation in a.s.r archives, Jargon file, and naturally Tron sub-culture. I especially recommend some reading about L.A.R.T.) . There are exceptions to this case; Especially, Chrome OS, Debian and Mint. If you are a regular user, I recommend these options, all the rest are for computer pros with slightly masochistic tendencies.
Github is a FOSS environment. So if a coder have not participated in open source projects, there is no reason for him/her to have a github account. Also, in relation:
- If a coder does not know git, that is a serious problem.
- If a coder is using github for private projects, that is a more serious problem. Only exception might be s/he was forced by the organisation s/he was working for…
Also in relation as well:
- Some people are pushing that a programmer should participate in FOSS in order to develop his/her career. No they should not, FOSS is not a playground for people to develop their skills.
Addendum: I have realised that some people are missing a point in my above reply. I do not mean a “project” as a program which consists of 4–5000 lines and three source files. A program that a recruiter can evaluate for hiring a programmer can be a 4–5000 lines code. An actual project for me is something like a minimum of 20–40 files and minimum of 50.000–60.000 lines. If a recruiter is claiming to read and evaluate such a code for hiring a candidate, stay away from there in any case.
A difficult question indeed. There is no such thing as a completely fake programmer. Anybody who took a programming course in high school can write a “Hello World !”, or a bubble sort and s/he is a programmer. However being a professional programmer requires more. There are some indicators of a programmer who is at “Hello world!” level but claiming to be a professional programmer:
- They are laud about their success
- They talk about algorithms, not implementation.
- They love buzzwords. These days especially full stack development and non-relational databases are in fashion.
- They can reply quickly if you ask about their best program and its performance.
- You are able to recognise questions from newbies, given that only a small percentage of such people explicitly declare themselves as “newbie”, it is obvious that they have a common question format/style that is specific to said humanoid group.
- No tool is reliable if it has “penetration” somewhere in its name/definition, especially if you are inexperienced with such tools and somehow willing to admit that on a “very” public platform.
- This field, if you are benevolent enough to call it so, is not “a prestigious” one. This field is the IT equivalent of shovelling shit left by other, more inept than yourself, -so called- professionals. Also this field is the most susceptible discipline of IT that requires, more frequent than others, close contact with law enforcement agencies (hi guys BTW). So members are not trying to limit new entrances, on the contrary, there is always need to fresh meat for menial duties. What is usually not wanted in the field is lower than regular IT guys’ level of IQ, which is higher than national averages to begin with.
- Common courtesy does not involve to help a hapless one to waste a serious amount of time in a hopeless pursuit, trying to join a profession that is sour at best.
- Asking questions is not a problem, not reading already existing excellent answers is. It shows the lack of research abilities, which in turn shows lack of talent in the field.
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..