Мова програмування не вивчити за місяць

17.08.2015

Мова програмування не вивчити за місяць

7 вересня 2010 р.

Вивчити один з основних мов програмування за місяць неможливо. Досвідчений програміст вирішить поставлену задачу з допомогою незнайомої мови в короткі терміни, якщо завдання типова, а кардинально незвичних конструкцій немає. Грубо кажучи, будь-хто може за день на будь-якій мові написати «Hello, World!» на улюбленому мовою, але не слід плутати це зі знанням. У вузі можна деякий час вчитися для галочки за методом «зазубрил, здав, забув», а в резюме при вступі на першу роботу вказати «Володію C, C++, Python, Java, Javascript, ASM, PHP, Ruby, SQL» (витратив дев’ять місяців і став універсалом), чим потішити приймаючу сторону. У життя після вузу вимоги до рівня знань спеціаліста інші. Тому вас може спантеличити питання як вивчити мову програмування.

Мова програмування не вивчити за місяць
Так після чого можна сказати, що вивчив?

Стандарт або RTFISO

Як не дивно, але багато програмістів мовою X ні разу не заглядало в опис стандарту мови X. Так, це сухі, жорсткі тексти, їх побіжно прочитати, над деякими абзацами сидиш годину, ганяючи тести на різних інтерпретаторів і компіляторах, але ніяка книга (втім, деякі книги самі по собі варіант стандарту, K&R Страуструп тому приклади) чи стаття не замінить стандарт. Чи потрібна тут кома? Чи можна скоротити цю конструкцію? Чим замінити цю функцію? Яка з RDBMS підтримує це ключове слово? Чому цей код веде себе по-різному в різних середовищах? Який з п’яти компіляторів більш правильний? Нарешті, звідки всі ці до мозолів на пальцях сперечаються на форумах люди черпають приводи для суперечок? Відповідь одна: Read The F ISO / JLS / ECMA / W3C / RFC .

Інструменти I

Очевидно, текст програми треба чимось обробити, а результат у чому-небудь запустити. Сучасні мови поставляються зі стопкою різноманітних «рідних» інструментів. Одні компілюють, інші виконують, треті декомпилируют, четверті дарують світлу радість налагодження, інші просто допомагають жити. Іноді програміст не може навіть перерахувати ці інструменти, а також описати хоч корисні ключі запуску. Чому у розробника працює так, а у вас так? Скільки пам’яті треба виділити віртуальній машині? Який рівень оптимізації включити компілятор? Під яку версію мови компілювати? Як зібрати документацію до бібліотеки? Як виконати дамп бази? А якщо дамп на руках, в якому він форматі і чим його заливати? Як активувати логування? А вимкнути? Все це треба знати.

Бібліотеки I

Мова без бібліотек марний. Програміст без знання бібліотек марний рівно так само. Впевнений, якщо буде статистика витрат часу на вивчення мови X, виявиться, що не менш 3/4 часу йде не на мову, а на те, які функції / функції / пакети з ним поставляються, і що вони дозволяють робити. Навіть в свіжому Go вже понад сто «рідних» пакетів. При цьому програміст повинен досягти розуміння того, як і чому працює те, що він використовує. Яка реалізація I/O швидше? Чому цю HTTP бібліотеку краще не використовувати? При якій кількості елементів почне пробуксовувати цей варіант списку? В якій версії змінили реалізацію RFC 1149 і чому почали губитися пакети? І це треба знати.

Теорія

Деякі мови є наслідком роботи теоретиків. Для гідного розуміння предмета слід знати і те, що за ним стоїть. Навчитися писати прості запити до RDBMS можна за день-два. Нас оточують бази, скрізь запити, безліч підручників, основи SQL знає ледь не кожен другий, але SQL — це і реляційна модель даних з реляційною алгеброю, а скільки програмістів не знають навіть про нормалізацію і не вміють наводити модель до нормальних форм!

Інструменти II

Також програміст повинен освоїти і ті інструменти, що створювалися співтовариством, але не увійшли в комплект мови. Від утиліт збірки до IDE, від простих code formatter’ів до потужних серверів додатків. Що толку від програміста, який знає, що на мові X скласти числа можна таким-то способом, але не може правильно і прийнятим у культурі X способом організувати код, автоматично перевірити, а потім зібрати його належним чином? Замало.

Бібліотеки II

Крім «рідних» бібліотек існують і важливі сторонні. Не вміє ними користуватися приречений на створення ідентичних (нерідко гірше якістю) велосипедів. Як маленьких, так і великих. На слуху framework’і для web-розробки. Java — Spring, Python — Django, Ruby — Ruby on Rails, Javascript — jQuery. Слід врахувати, що це аж ніяк не маленькі пакетики з парою класів або функцій, аж ніяк. Сотні, якщо не тисячі, класів і методів, десятки стандартів, тисячі сторінок документації, безліч нових понять і рішень. Немає нічого поганого в написанні власного коду, якщо ця потреба обґрунтована. Але найчастіше у всіх сенсах дешевше вибрати вже готове рішення, ось тут-то метод «мову за місяць» дасть збій, оскільки за цей час програміст банально не встигне навіть ознайомитися з усім асортиментом доступних бібліотек.

Читання

Інструменти та бібліотеки вкладають у руки програміста щось. Стандарт дає знання про те, що щось в руках називається молотком. Теорія знайомить з причинами появи молотків, з можливими застосуваннями, а також з тим, з чого вони складаються і за якими принципами створені. Підручники мови — те, що підводить програміста до ряду цвяхів, бере за руку з молотком і методично лупить по капелюшках. Звичайно, можна навчитися самому. Так з’являються програмісти, які здійснюють дивні і незрозумілі з боку ритуали. Але корисніше спочатку пізнати прийнятий метод, а вже потім винаходити свої. Так от, підручники теж треба читати, це входить до вивчення мови.

Почуття прекрасного

Навколо основних мов утворилася певна культура. Якщо відділити філософію з історією, в залишку вміння писати мовою X доречно. Повторюючи стару жарт: писати не на FORTRAN’е, але мовою X. Це вміння (поряд з розумінням причин) приходить з часом. Треба читати форуми, читати блоги визнаних практиків, книги, журнали, спілкуватися з колегами, вивчати чужий вихідний код. І через кілька місяців або років програміст почне відчувати причини, за якими його код був названий негарним. Адже стабільно працює, а чому-то негарний. Чому? Ніхто не зміг обґрунтувати, так і як обгрунтувати красу, витонченість, гармонію зв’язки мова + дотепне або класичне рішення + стиль. За місяць почуття не приходить. Здається, воно ж перетворює ремесло на мистецтво. Сотні забивають цвяхи примітивно, але один заб’є так, що хоч зараз на полотно. В цьому і є різниця.

Висновок

Отже, день складається з 24 годин. Якщо на сон та інше приділяти 8 годин, для вивчення залишиться 16 годин. Множимо на 30, отримуємо 480 годин. З них слід відняти неминуче нерозуміння, зіткнення з багами, пошук і вибір інформації, проби і помилки, повторне перечитування документації… Ви все ще вважаєте, що мову можна вивчити за місяць і на капелюшку цвяха не буде написи «Hello, World» ?

Короткий опис статті: мова програмування c Якщо ви не знаєте як вивчити мову програмування, то пропоную вам почати з відеокурсів. Програмувати не так складно, як ви думаєте. як вивчити мову програмування ,Програмування

Джерело: Мова програмування не вивчити за місяць

Також ви можете прочитати