બધાને શુભેચ્છાઓ - આ અઠવાડિયામાં હું પ્રોગ્રામિંગ પરના કેટલાક પુસ્તકો વાંચવા માટે ખૂબ મનોરંજન કરું છું, સત્ય એ છે કે પ્રોગ્રામ શીખવાની શ્રેષ્ઠ રીત હંમેશાં કોઈ પુસ્તક, કોઈપણ લેખ, ટ્યુટોરિયલ, માર્ગદર્શિકા સાથે હોય છે જે શોધી શકે છે (ખાણ સહિત) ફક્ત બેંચમાર્ક જ્યારે તેમને વિષય પરના વાસ્તવિક પુસ્તક સાથે સરખામણી કરો. હવે, આપણે વ્યાખ્યાયિત કરવી પડશે કે "વાસ્તવિક" પુસ્તક પણ શું છે, કારણ કે બધા પુસ્તકો સામાન્ય રીતે સારા નથી હોતા, અને તેમાંના ઘણાં પણ તે ખરેખર મૂલ્યવાન અને સમય બગાડનારા કરતા વધારે ખર્ચ કરી શકે છે.
આ વર્ષો દરમ્યાન મેં વાંચેલા પુસ્તકોની સૂચિ અને પુસ્તકોની સૂચિ કે જેની હું ભલામણ કરી શકું છું તે થોડુંક ફેરવવામાં આવ્યું છે, પરંતુ અમારી પાસેના કેટલાક મનપસંદોમાં કોઈ શંકા વિના (કોઈ ચોક્કસ ક્રમમાં):
- સીઇએચ સર્ટિફાઇડ એથિકલ હેકર મેટ વ Walકર દ્વારા.
- પ્રારંભિક પાયથોન: મેગ્નસ લી હેટલલેન્ડ દ્વારા શિખાઉ પ્રતિ વ્યવસાયિક.
- હેકિંગ: જોન ઇરીકસન દ્વારા શોષણ કરવાની કળા.
- મેસિમો બziન્ઝી દ્વારા આરડુનો સાથે પ્રારંભ.
- કેમેરોન ન્યુબેમ અને બિલ રોઝેનબ્લાટ દ્વારા બashશ શેલ શીખવી.
- આર્નોલ્ડ રોબિન્સ, એલ્બર્ટ હેન્ના અને લિંડા લેમ્બ દ્વારા વી અને વિમ એડિટરને શીખવું.
- ગ્રેગ ક્રોહ-હાર્ટમેન (પણ જેન્ટુ વિકાસકર્તા) દ્વારા ટૂંકમાં લિનક્સ કર્નલ.
- જેન્સ ગુસ્ટેડ દ્વારા આધુનિક સી
- ક્રિસ leyનલી, જ્હોન હેઝમેન, ફેલિક્સ «એફએક્સ» લિન્ડર અને ગેરાડો રિચાર્ટે દ્વારા શેલકોડરની હેન્ડબુક.
- બ્રાયન ડબલ્યુ. કર્નીઘન અને ડેનિસ એમ. રિચી (સીના નિર્માતાઓ) દ્વારા સી પ્રોગ્રામિંગ ભાષા
- રિચાર્ડ સ્ટાલમેન, રોલેન્ડ પેશ, સ્ટેન શેબ્સ અને એટ અલ દ્વારા જીડીબી સાથે ડીબગિંગ.
- હેકિંગ લિનક્સ એક્સપોઝ: પીટ હર્ઝોગ, માર્ગા બાર્સેલી, રિક ટકર, આન્દ્રે બારીસાની (અન્ય ભૂતપૂર્વ જેન્ટુ ડેવલપર), થોમસ બેડર, સિમોન બિલ્સ, કોલબી ક્લાર્ક, રાઉલ ચિઆસા સહિત આઇએસઇકોમ સંશોધનકારોના વિશાળ જૂથના લિનક્સ સુરક્ષા સિક્રેટ્સ અને સોલ્યુશન્સ. .
- Ratingપરેટિંગ સિસ્ટમ્સ: ધનંજય એમ. ધામધરે દ્વારા કન્સેપ્ટ-આધારિત અભિગમ
- સ્કોટ ચેકોન અને બેન સ્ટ્રોબ દ્વારા પ્રો ગિટ
- નિષ્ણાત સી પ્રોગ્રામિંગ: પીટર વેન ડેર લિન્ડેન દ્વારા Deepંડા રહસ્યો.
હું આ પુસ્તકોમાંથી દરેક વિશે ખૂબ જ બોલી શકું છું, પરંતુ આજે આપણે સૂચિમાં છેલ્લા કોઈના કેટલાક માર્ગો લઈશું, કેમ કે આમાંના ઘણા ઉપદેશોએ મને મોહિત કર્યા છે અને સામાન્ય રીતે સી અને પ્રોગ્રામિંગના કેટલાક જટિલ રહસ્યો સમજવામાં મને મદદ કરી છે. 🙂
યુનિક્સ અને સી
જ્યારે આપણે યુનિએક્સ વિશે વાત કરીએ છીએ, ત્યારે ઇતિહાસ આ સિસ્ટમની ઉત્પત્તિ અને ભાષાના વિકાસ સાથે જોડાયેલું છે કે જે આજ સુધી તેના અને તેના ડેરિવેટિવ્ઝ (લિનક્સ સહિત) ના વિકાસમાં સૌથી વધુ ઉપયોગમાં લેવાય છે. અને જિજ્ .ાસાપૂર્વક, આ બંનેનો જન્મ "ભૂલ" થી થયો છે.
મલ્ટ્રિક્સ તે એક મેગા પ્રોજેક્ટ હતો જે બેલ લેબોરેટરીઝ, જનરલ ઇલેક્ટ્રિક અને એમઆઈટી પોતે એક operatingપરેટિંગ સિસ્ટમ બનાવવા માટે લાવ્યો, જણાવ્યું હતું કે સિસ્ટમમાં ઘણી ભૂલો રજૂ કરી હતી અને એક સૌથી મહત્વપૂર્ણ, કામગીરીમાં નિષ્ફળતા જેણે સિસ્ટમને વ્યવહારિક રીતે બિનઉપયોગી બનાવ્યું હતું. અમે વર્ષ 1969 ની વાત કરી રહ્યા છીએ, તેથી તે સમયનો હાર્ડવેર સિસ્ટમ ચલાવવા માટે જરૂરી સોફ્ટવેરની માત્રાને સમર્થન આપી શક્યું નહીં.
તે 1970 સુધી નહોતું થયું કે બેલ એન્જિનિયરોનાં એક દંપતિએ PDP-7 માટે એક સરળ, ઝડપી અને લાઇટવેઇટ operatingપરેટિંગ સિસ્ટમ પર કામ કરવાનું શરૂ કર્યું. આખી સિસ્ટમ લખી હતી એસેમ્બલર અને બોલાવવામાં આવી હતી યુનિક્સ ની પેરોડી તરીકે મલ્ટ્રિક્સ કારણ કે તે ફક્ત થોડી વસ્તુઓ જ કરવા માંગતો હતો, પરંતુ બીજાને કહેતા જબરદસ્ત વ્યર્થ કાર્યને બદલે તેને સારી રીતે કરવા માંગતો હતો. હવે તમે સમજી શકશો કે શા માટે ઇપોક 1 જાન્યુઆરીથી શરૂ થાય છે, 1970. For મારા માટે એક વિચિત્ર હકીકત. તે સમયે હજી પણ સીની જ વાત નહોતી, પરંતુ એ નવી બી કારણ કે રિચીના વિચારો તે સમયની પહેલેથી વપરાયેલી બી ભાષાના હતા.
વહેલી સી
વર્ષોથી (1972-3) નવી શબ્દ આકાર લેવાનું શરૂ થયું ત્યારથી સી શબ્દનો ઉપયોગ થવાનું શરૂ થયું, અને આ સમયગાળા દરમિયાન બીજી વિચિત્ર હકીકતનો જન્મ થયો, ઘણા પ્રોગ્રામરો અને પ્રોગ્રામર જોક્સ કહે છે:
પ્રોગ્રામરો જાણે છે કે તમે 0 ને બદલે 1 થી ગણતરી શરૂ કરો છો.
ઠીક છે, આ સંપૂર્ણ રીતે સાચું નથી - આ કારણ છે કે આજ સુધી આ રીતે શા માટે માનવામાં આવે છે કારણ કે તેની રચના વખતે, કમ્પાઇલર લેખકો માટે એરેની ગણતરી કરવાનું વધુ સરળ હતું. seફસેટ્સ, આ અંતર સૂચવે છે જે મૂળના બિંદુથી ઇચ્છિત ઉદ્દેશ સુધી અસ્તિત્વ ધરાવે છે, તેથી જ:
array[8]=2;
તે અમને કહે છે કે તત્વ 9 એરે 2 તરીકે વ્યાખ્યાયિત કરવામાં આવી છે, કારણ કે મેમરી જગ્યામાં તત્વ 8 સંગ્રહિત થશે ત્યાં પહોંચવા માટે 2 એકમો ઉમેરવામાં આવે છે. સી પહેલાં, ઘણી ભાષાઓ 1 થી ગણતરી શરૂ કરી હતી, સીનો આભાર, હવે લગભગ તમામ 0 સાથે પ્રારંભ થાય છે. . તેથી તે પ્રોગ્રામર્સનો દોષ નથી, પરંતુ કમ્પાઇલર લેખકોનો દોષ છે કે આ આવું છે.
બોર્ન શેલ
આ એક એવો વિષય છે કે, સી સાથે સીધો સંબંધ ન હોવા છતાં, શેલ પ્રોગ્રામિંગ કેમ આટલું વિચિત્ર છે તે સમજવામાં એક કરતાં વધુને મદદ કરી શકે છે, અને તે જાણવાનું ચોક્કસ જ ઉત્સુક છે. સ્ટીવ બોર્ને તે સિઝનમાં અલ્ગોલ -68 માટે કમ્પાઇલર લખ્યું હતું, આ તે ભાષા છે જેમાં કીઓ ( {}
) શબ્દો દ્વારા બદલવામાં આવે છે, તેથી અમે તેને સીમાં નીચે મુજબ વ્યાખ્યાયિત કરી શકીએ:
#define IF if(
#define THEN ){
#define ELSE }else{
#define FI };
આ અલ્ગોલ શું સમજે છે તેના કેટલાક ઉદાહરણો છે, પરંતુ જો આપણે આજે તેને શેલ પ્રોગ્રામિંગ પર લાગુ કરીએ છીએ, તો તમે સમજી શકશો કે શેલમાં તમારા પ્રોગ્રામ્સને શા માટે જરૂરી છે fi
દરેક માટે if
🙂 ચોક્કસપણે રસપ્રદ.
વાંચન શરૂ કરો
હું તમને પુસ્તકની બધી વિગતો કહી શકતો નથી, ખાસ કરીને કારણ કે આમાંના ઘણા બધા પહેલાથી જ પ્રોગ્રામિંગ વિષયો છે જેને સમજવા માટે પૂર્વ પૃષ્ઠભૂમિની જરૂર છે, પરંતુ મને લાગ્યું કે હું તમને કેટલીક વિચિત્ર ટુચકાઓ શેર કરીશ જે મને મળી નથી. ટૂ-ડૂ સૂચિમાં રહેલા કેટલાક લેખો પર કામ કરવાનો સમય છે કારણ કે આ છેલ્લા પુસ્તકોએ મને સહેલાઇથી પકડ્યો છે અને હું દરરોજ તેનો આનંદ લઈ રહ્યો છું અને બધા ઉપર તેમને પૂર્ણ સમજવાની કોશિશ કરી રહ્યો છું. શુભેચ્છાઓ અને ટૂંક સમયમાં હું તમારી સાથે વધુ વિષયો, શુભેચ્છાઓ શેર કરી શકશે.
તમારો લેખ મારા માટે ખૂબ જ રસપ્રદ રહ્યો છે. તમારો ખુબ ખુબ આભાર.
હંમેશની જેમ ખૂબ જ રસપ્રદ.
ખૂબ જ રસપ્રદ સ્પષ્ટતાઓ સારી છે.
Excelente
રસપ્રદ !!! તમારો ખુબ ખુબ આભાર.
મલ્ટ્રિક્સ? તે મલ્ટિક્સ નહીં હોય (https://en.wikipedia.org/wiki/Multics)
1 થી અનુક્રમણિકાવાળી ભાષાઓ એ શેતાનની શોધ છે ...
રસપ્રદ નોંધ - હું માનું છું કે ઇતિહાસમાં કોઈક સમયે બંને શબ્દોનો ઉપયોગ કરવામાં આવ્યો છે:
https://www.landley.net/history/mirror/collate/unix.htm
અને સ્પષ્ટપણે તે જ પુસ્તક જે 90 ના દાયકાના મધ્યમાં લખાયેલું છે.
સ્પષ્ટતા માટે આભાર શુભેચ્છાઓ
વા, શું વિચિત્ર વાત છે, તમે મને શંકાસ્પદ બનાવી છે, મેં નિષ્ણાત સી પ્રોગ્રામિંગની "ખરીદેલી" ક inપિમાં જોયું છે: ડીપ સિક્રેટ્સ અને ત્યાં મલ્ટિક્સ આવી રહ્યા છે, તે પહેલી વાર છે જ્યારે હું તે મલ્ટ્રિક્સ સાંભળું છું. કેટલું વિચિત્ર છે, તે ટ્રાઇક્સ સસલાની થોડી યાદ અપાવે છે
હાહાહા ચોક્કસપણે વિચિત્ર છે, મેં deepંડા રહસ્યોની મારી અંગ્રેજી ક checkedપિ તપાસી, ત્યાં તે મલ્ટ્રિક્સ પણ કહે છે (કારણ કે તમે પણ મને શંકા કરી હતી) ... કદાચ તે સમયની અભિવ્યક્તિ હતી 😛
સાદર
મહાન યોગદાન
રસપ્રદ, જોકે ચોક્કસ, મલ્ટ્રિક્સ એક ખોટી છાપને કારણે છે, કારણ કે તે operatingપરેટિંગ સિસ્ટમનું મૂળ નામ મલ્ટિક્સ હતું, અને યુનિક્સ મૂળરૂપે યુનિક્સ કહેવાતું હતું, ચોક્કસપણે તે મહાન phપરેટિંગ સિસ્ટમનો ઉલ્લેખ કરતો હતો, આખરે અને ફોનેટિક્સ દ્વારા, યુનિક્સ સે યુનિક્સમાં પરિવર્તિત થઈ, હવે , તમારે ફક્ત યુનિક્સનો લેખક કોણ માનવામાં આવે છે તેનું નામ જણાવવાનું હતું; કેન થોમ્પસન, દંતકથા છે કે થomમ્પસન અને રિચિ બંને બેલ લેબ્સના કેફેટેરિયામાં હતા તેમના પ્રોજેક્ટ્સ પર ટિપ્પણી કરી રહ્યા હતા અને તે હતો કે રિમિએ થ Thમ્પસનને સૂચવ્યું હતું કે તેણે સી યુ પ્રોગ્રામ સાથે તેની યુનિક્સ ફરીથી લખી, જે ભાષા તેણે લખી હતી ... અને બાકી, ઇતિહાસ છે. 😉
માર્ગ દ્વારા, અગાઉ તમામ પ્રોગ્રામ્સ મશીનની સૂચનાઓ સાથે લખાયેલા હતા, જેણે તેમને હાર્ડવેર પર સંપૂર્ણ રીતે નિર્ભર બનાવ્યું હતું, પ્રોગ્રામો લખવાનું સરળ બનાવવા સિવાય સીનો નવીનતા એ હતી કે ભાષાના અમલીકરણના હાર્ડવેરથી સ્વતંત્ર હતી કમ્પાઇલર્સ, એક ફિલસૂફી કે જે ઘણા વર્ષો પછી જાવા લેશે, એ અર્થમાં કે પ્રોગ્રામ્સ operatingપરેટિંગ સિસ્ટમ પર આધારિત નથી, પ્રખ્યાત જાવા વર્ચુઅલ મશીન ઉમેરી રહ્યા છે.
દંતકથાઓ વિશેની ખરાબ બાબત એ છે કે તેઓ ઇતિહાસને વિકૃત કરે છે, એક કરતા વધુ રીતે ... અને તેઓ તમને એવું વિચારી શકે છે કે કંઇક થાય છે જ્યારે તે ન થાય ... થ Thમ્પસન અને રિચી વચ્ચેની હાલની વાતચીતની હકીકત જેવી (જેને મેં કા omી ન હતી ઇચ્છા પર) કારણ કે તે historicalતિહાસિક અને તકનીકી ભૂલો તરફ દોરી જાય છે (સી યુનિક્સ પહેલાં ન હતો) ...
અને બીજા માટે ... બીજી દંતકથા કે જેણે વાસ્તવિકતાને વિકૃત કરી છે, કેમ કે સી પહેલા બી, એ, પાસ્કલ, અડા, અલ્ગોલ-,૦, પીએલ / 60 અને કેટલાક વધુ કે જે યોગ્ય રીતે પ્રોગ્રામિંગ ભાષાઓમાં હતા (એસેમ્બલીથી ખૂબ જ અલગ) અને આર્કિટેક્ચર દ્વારા તેની બોલીઓ કે જે પ્રોસેસરના હાર્ડવેર પર આધારીત છે) તેથી સી આ અર્થમાં "નવીનતા" લેતી ન હતી, તેમણે ફક્ત ઉકેલો અપનાવ્યાં જે પહેલેથી જ અન્ય ભાષાઓમાં અસ્તિત્વમાં છે અને અંતે તે આ કરતાં વધુ ઝડપથી અને વધુ સારી રીતે લોકપ્રિય બની હતી. ... એકમાત્ર ભાગ સત્ય એ છે કે જાવા પાછળથી તેનું વર્ચુઅલ મશીન બનાવવાની પોર્ટેબીલીટીની આ ખ્યાલ પર આધારીત હતી, પરંતુ આના માટે તે ફક્ત સી પર આધાર રાખતો ન હતો, પરંતુ તે અન્ય મોડેલોનું પાલન કરશે, અન્યથા આપણી પાસે objectબ્જેક્ટ- જાવા માં લક્ષી પ્રોગ્રામિંગ દાખલો ...
મને લાગ્યું કે મારે પરિસ્થિતિ સ્પષ્ટ કરવી જોઈએ કારણ કે કોઈ ઓછી જાણકાર વ્યક્તિ તેને સાચું માની શકે છે અને પછી માને છે કે આ એવું બન્યું છે ... શુભેચ્છાઓ 🙂
હંમેશની જેમ, લેખ ખૂબ જ રસપ્રદ છે, યોગદાન બદલ આભાર.