
خب این نخستین مقاله من در اینجا هست (درواقع تازه متوجه شدم در کافیته میشه مقاله نوشت و منتشر کرد!). برای نخستین مقاله شاید یک چیز سَبک و دم دستی بهتر باشه.
میدونی، در این روزهایی که اینترنت نیست خیلی بیشتر دارم سعی میکنم یادبگیرم، کتابهای زیادی در رابطه با ریاضیات، الگوریتم، و زبانهای برنامهنویسیی که کار میکنم بخونم.
C Programming
Bash
Python
خب در ادامه فقط میخوام این کتابها را معرفی کنم و بگم در چه سطحی خوب هستن!
The C Programming Language
من بهش میگم دروازه ورود به دنیای برنامهنویسی C. اما چرا؟ چون این کتاب نوشته شده توسط دو افسانه برنامهنویسی هست، یعنی دنیس ریتچی و بریان کرنیقان. این دو این کتاب را زمانی نوشتن که زبان سی منتشر شد(یعنی در حال توسعه و داکیومنت نوشتن یک کتابهم نوشتن که دروازه ورود به زبان باشه).
تجربه من از این کتاب. کتاب بعضی از ابزارهای یونیکس(Unix) را میاد دوباره پیاده سازی میکنه و در نهایت زبان برنامهنویسی را با نوشتن برنامههای متعدد و کاربردی توضیح میده که این بسیار مهم و خوبه. نکته بعدی اینکه این کتاب کلی تمرین داره در آخر هر عنوانی که درس میده، تمرینات به نظرم یکی از بخشهای طلایی این کتاب هستن و مهم هست که تلاش کنی تا انجامشون بدی.
Mastering Algorithms With C
برنامهنویس کیه؟ از دیدگاه من، برنامهنویس تفاوتهایی دارد با توسعهدهنده. برنامهنویس باید ساختماندادهها، الگوریتمها، ریاضیات و ریاضیات گسسته، و حلمسئله بلد باشه که خب این هم از همون موارد قبلی بدست میاد. پس به وضوح این کتاب میخواد راجب همین صحبت کنه، راجب برنامهنویسی. نویسندههم شخص جالبی هست: Kyle Loudon
اما سرفصلهای این کتاب، شروع کتاب با مقدمهای کوتاه بر اشارهگر ها، روابط بازگشتی، و آنالیز الگوریتمها هست. اما در ادامه کتاب عمیقتر و جدیتر میشه. در مرحله دوم میاد کامل کامل در رابطه با ساختماندادهها و پیادهسازی اونها صحبت میکنه. در بخش سوم و آخر هم الگوریتمها را بررسی میکنه و به نوعی همون طراحی الگوریتم هست.
این هست ۳ سرفصل اصلی که اینجا لیست میکنم.
Perliminaries: Introduction(data structure, algorithms, engineering), Pointer Manipulation, Recursion, Analysis Of Algorithms
Data Structures: Linked Lists, Stacks and Queues, Sets, Hash Tables, Trees, Heaps and Priority Queues, Graphs
Algorithms: Sorting and Searching, Numerical Methods, Data Comression, Data Encryption, Graph Algorithms, Geometric Algorithms
Introduction To Bash Scripting
مهارت جدید که من با این کتاب یادگرفتم و واقعا بدرد بخور و باحال هست. مهارت بش اسکریپتینگ یا همون شل اسکریپت نویسی. کتاب خیلی نرم و باحال میاد شروع میکنه یاد میده. توجه کنید که مثل یادگیری یک زبان برنامهنویسی نیست و همین متفاوت بودنش باعث میشه یکم شاد بشی در این روزها. کتاب خیلی اذیت نمیکنه و خوانا هست، خیلی منتظر نمیزاره تا یک مفهوم را بهت بگه، در نهایت هم پایه را که یاد میده، میره سراغ برنامههای کاربردی نوشتن باهاش(در روزهای نبود اینترنت یا همون اینترنت ملی برخی از تمرینات را نمیتونی انجام بدی). نویسنده کتاب هم Bobby Lliev هست و به نظرم در یاد دادن چیزها میتونه شخص محترم و خوبی باشه.
مشخص هم هست که به یک محیط یونیکسی نیاز داری دیگه، حالا داخل ویندوز میتونی با WSL کار را راه بندازی(گمان میکنم با git terminal هم میشه)، اگر هم روی ویندوز نیستی که راحتی دیگه ;)
Effective Python
90specific ways to write better Python
از دیدگاه من میتونه دروازه ورود به دنیای حرفهای تر در پایتون باشه. کتاب سعی نداره بگه چی خیلی حرفهای هست و حرفهای نشون داده میشه، دنبال این نیست که به شما بگه حرفهای به نظر بیاید، داره خیلی عادی سعی میکنه تکنیکهای تاثیر گذار تر و بهتر را برای بهبود عملکرد کد شما ارائه بده. من باهاش حال کردم و هنوزم میخونم و دارم باهاش حال میکنم، دارم یکسری چیزایی را فرا میگیرم که احساس بهبود عملکرد کد را به من میده و بهم اجازه میده تا مقایسه کنم کدومش بهتره. اما نکته مهم اینه که کتاب برای پایتونکارهای ابتدایی نیست، کتاب برای اونایی هست که کمکم پایتون را در سطح متوسط مسلط هستن بهش و میتونن اسکریپتهای خوبی باهاش بنویسند. نویسنده کتاب هم Brett Slatkin هست.
در نهایت کتاب خوب زیاد هست برای معرفی و توضیح دادن، اما دوست داشتم ۴ تا از اونایی که راحت خوانتر هستن را معرفی کنم در اینروز های سیاه :)
ریچی بودم.
ریچی
کتاب
برنامهنویسی
نخستین