четвер, 29 грудня 2011 р.

Як навчитись програмувати і з якої мови почати

Такі питання часто задають початківці і відповідей на дану тему чимало. Хто радить з Паскалю, хто з С++, хто С#, а хто ще з чогось. Дехто пропонує навіть з Асемблера. Кожен відповідає по власному досвіді. Тож і я вирішив викласти свою думку:).

Я свого часу починав із звичайно Бейсіку. Як для учнів середніх класів годиться. Також годиться і Паскаль. Нічого поганого, щоб почати з даних мов немає, для навчання основ програмування годиться. Але якщо ви справді хочете бути програмістом, то краще починати уже з повноцінної мови, хоча б з Visual Basic або Delphi. А краще починати з тієї по якій найбільше книг в даний час, тобто C++, С#, Java або з мов Веб-програмування (PHP та Perl). Можна навіть і з Асемблеру під персональний комп'ютер, мені наприклад він видався доволі простим для засвоєння і після вивчення його багато речей стали зрозумілими, які я не розумів при вивченні С++ і які збивали з толку, тобто сама зв'язка машини і програми, як усе працює.  Хоча Асемблер все ж важче вивчити самостійно і це потребує значно більше клопіткої праці в плані написання програми, адже текст програми буде в 10-ки раз більший ніж на високій мові програмування. За нього краще братися, якщо ви хочете працювати з апаратним забезпеченням, хоча існують версії асемблера, які дозволяють створювати повноцінні графічні прикладні програми. Проте, якщо ви взагалі не знайомі з програмування, то з нього краще не розпочинати.

Звичайно, що якщо ви вчитесь у ВИШІ і у вас йде курс, наприклад, С++. То не варто кидатись на іншу мову, засвойте всі особливості С++ понад те, що Вам дають у ВУЗІ. Взагалі навчання під керівництвом викладача найлегший спосіб, проте для студентів ставляться переважно занижені вимоги. Після такого курсу ви здебільшого будете знати основи програмування, але це не зробить Вас професіоналом. Щоб ним стати, потрібна самостійне вивчення усіх нюансів мови і саме головне практика. У ВУЗІ лабораторні для того і існують. Як і зі звичайними мовами спілкування, без практики ви нічого не засвоїте. Тож якщо ви вибрали книжку і вчите самі, то після кожного розділу з новим матеріалом, поставте собі задачу і запрограмуйте. Або хоча б попробуйте позмінювати наведені приклади в книжці. Бажано також вкінці намітити великий проект, який би ви запрограмували. Це може бути навіть ваш особистий текстовий редактор і т.п. Оскільки лише при виконанні великих проектів Ви отримаєте найбільше досвіду. На даром у ВУЗАх вивченння курсу по програмуванню закінчується курсовою роботою.

Особисто я радив би з самого початку намітити, що б ви хотіли запрограмувати і з цього орієнтуватися на вибір мови і книги. Якщо ви хочете навчитися створювати веб-сторінки, то краще зразу почати, наприклад з основ HTML, а згодом перейти уже власне до програмування на PHP. При цьому, якщо ви вирішили що кінцевим результатом буде Веб-магазин, так зразу продумуйте під час читання, що вам згодиться і починайте його реалізовувати поступово. Прочитали щось, внесли зміни. Звичайно вкінці Вам можливо прийдеться докорінно переписати код, але це набагато цікавіше ніж виконувати дрібні навчальні приклади.

Тож якщо ж ви вирішили створити настільну програму, так беріться за C++, С# або Java і гризіть мову до найбільших дрібниць, поки не реалізуєте задумане. Насправді у всіх сучасних мовах є схожі елементи і перейти на іншу можна і за тиждень, якщо ви уже навчились навичкам програмування і особливостям різним технологій, як то програмування для комп'ютерних мереж і т.п. Щоправда постійно з'являється щось нове, тому навчатися прийдеться і пізніше, але це сучасний стиль життя. На заході навіть термін придумали відповідний Lifelong Learning - навчання впродовж життя.

Окремо слід згадати про вибір підручника. Зараз мови програмування розвиваються доволі динамічно, кожних 5-10 років з'являються нововведення. Тому підручник бажано брати якомога новіший. Найновіші звичайно в англомовному варіанті, тому якщо ви не володієте англійською то підтягуйте її паралельно, оскільки не можливо стати професійним програмістом без неї. Якщо ж ви берете перекладену книгу то беріть також якомога новішу. Бажано почитати, які книги радять читати інші програмісти. Загалом, якщо книга витримала кілька видань, то переважно вона уже доволі непогана.

Працювати над вивченням потрібно постійно. Інколи - це може видатися доволі нудним, особливо коли натрапити на важку тему, а інколи навпаки може затягувати, адже програмування - це як рішення кросворду. Тому треба набратися терпіння. Тут можна порадити, якщо ви вчите самі без репетитора чи викладача, знайти когось хто б ще хотів вивчити програмування, або цю мову. Це може бути навіть людина з якою ви спілкуєтесь по інтернету. Разом буде цікавіше. Наприклад, Ви домовляєтесь що читаєте таку тему, а потім обговорюєте її і пробуєте писати програму кожен на свому компі. Далі беретесь за наступний розділ. Таким чином Ви один одного підганятимете. Можна також знайти когось на форумах програмістів, хто б допомагав Вам розібрати певну програму, яка в Вас не виходить. З україномовних форумів можна порадити форум Гуртом.

При програмуванні приділіть час вивченню середовища розробки, особливу увагу зверніть на засоби зневадження (debugging) програм. Вміння використовувати можливості середовища розробки значно скоротить Ваш час при роботі над великими проектами.



28.01.2013
Зараз у вільному доступі на Youtube і на різних блогах є чимало відеоматеріалів по програмуванню. Книжку вони не замінять, оскільки матеріал, що можна таким чином пояснити все ж обмежений,  проте, як додаток до освоєння окремих розділів, відеоуроки будуть доволі корисні, особливо для початківців.