Як краще діяти, якщо ви хочете навчитися програмувати, але не знаєте, як стати на

Маргарита Шадріна, менеджер по роботі c вузами в Освітніх програмах СКБ Контур

Якщо говорити про сам програмуванні, то все стає набагато складніше, занадто сильно різняться завдання, сфери застосування, технології та підходи. Ти не зможеш зрозуміти, що тобі більше подобається, поки не спробуєш сам. Для того, щоб зрозуміти, наскільки велика область розробки програмного забезпечення, треба зануритися в деталі.

Не варто лякатися такого розмаїття, в сучасному світі швидко розвиваються технології, а область IT розвивається в десять разів швидше, ніж все інше: знати і вміти все не просто не обов'язково, це неможливо. Але є основи, які треба знати будь-якому програмісту, щоб хоча б почати свою кар'єру. Перш за все це розуміння, як працює комп'ютер і як йому повідомляти команди, як складати для нього алгоритм дій. Не завадить математика, тому що вона зустрічається в програмуванні дуже часто, і чим більше кваліфікована робота, тим частіше. А далі варто пробувати різні технології, вивчати підходи до вирішення типових задач і цікавитися всім, що відбувається в області. Найголовніше в IT- не зупинятися, не зациклюватися, тому що вона розвивається, можна відстати, а наздоганяти завжди складно.

Що можна почати робити прямо зараз? Ти щасливчик, бо живеш в еру, коли існує величезна кількість спеціальних навчальних матеріалів, які можна брати і користуватися, часто абсолютно безкоштовно. Найпопулярніші освітні портали зараз: khanacademy.org. coursera.org. codecademy.com. edx.org. На них безкоштовно доступні курси від професорів найпрестижніших університетів, в будь-який час дня і ночі, для людей будь-якого рівня. Немислима ще десять років тому розкіш, коли ти можеш отримати безмежні знання, володіючи лише бажанням, інтернетом і знанням англійської мови. Крім того, для розвитку математичної та алгоритмічної інтуїції можна розминати свій мозок завданнями спортивного програмування, які ти можеш знайти на сайтах acm.timus.ru. codeforces.com. projecteuler.net і інших подібних ресурсах. Більш того, цікавим і пізнавальним є рішення подібних задач в змагальному режимі на сайтах topcoder.com і codeforces.com.

Важливим елементом навчання програмуванню є постійний пошук знань і рішень проблем на форумах і агрегаторах питань типу stackoverflow.com. Без постійної практики, без постійного потоку нових завдань неможливо навчитися, тому постійно буде щось не виходити. До цього треба нормально ставитися і вміти шукати рішення.

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

Успіху і успіхів!

Рейтинг корисності відповіді: 42 Підвищити Знизити

Андрій Хромишев, старший програміст-розробник компанії Acronis

Вибір програмування «серцем» і «душею» - це тільки початок довгого шляху до справжнього IT-розробнику. Якщо вас не лякають труднощі, які зустрінуться на шляху, і ви розумієте рівень тієї психологічного навантаження, з якою доведеться зіткнутися, то, я сподіваюся, досвід моїх 12 років дуже щільно наповненою IT роботи буде вам корисний.

Перш за все, забудьте, що є така професія як «програміст». Програмістів вже немає, а їх місце зайняли розробники і IT-інженери. Програмісти писали код, а сучасні розробники і IT-інженери проектують і створюють системи управління ABS для автомобілів, контролери посилення рульового управління і системи активного захисту на танках. Вони обробляють отримані від різних систем і датчиків сигнали і програмують відповіді. Їх працею підвищується щільність ваших резервних копій, а процес передачі даних по мережі стає блискавичним. Вони роблять віртуальні машини швидше і ефективніше, а з акумуляторів ваших ноутбуків вичавлюють додаткові години роботи після чергових оновлень.

Представивши на секунду всю складність описаних робіт, можна зрозуміти, що професійний розробник - це інженер найвищого класу з хорошим знанням цілого ряду інженерних дисциплін і широким кругозором в області технологій. Тому починати обраний «шлях» бажано саме з отримання фундаментального профільної освіти. Адже тільки глибоке розуміння процесів, що відбуваються «під капотом» робить з простого програміста - справжнього IT-інженера.

Тому, якщо «душа» рветься, а характер і голова дозволяють «посидіти, подумати і розкласти на деталі», то сміливо вибирайте денне відділення вузу з профільної кафедри. Днем отримуйте фундаментальну освіту, а ночами - прикладні знання. Вивчайте захопливий світ IT з усіх боків: якщо вас цікавлять фізичні процеси - моделюйте їх, якщо цікаво написання програм на нових мовах - пишіть їх. Робіть те, що вам цікаво, пробуйте нове і намагайтеся знайти себе в IT. До закінчення вузу за вашими плечима буде хороше базову освіту, знання кількох мов програмування і головне - розуміння, що цікаво саме вам. Передайте це в резюме і йдіть junior'ом в велику компанію, а краще відразу до нас в Acronis.

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

Рейтинг корисності відповіді: 42 Підвищити Знизити

Денис Кудінов, провідний ios-розробник Trinity Digital

Для початку я б радив визначитися з областю, якій хочеться займатися. Не можна бути абстрактним програмістом. Існує безліч галузей, де можна себе проявити. Можна займатися обладнанням для різних приладів, верстатів, а можна створювати мобільні додатки (як я). Крім цих прикладів існує ще купа напрямків, в яких потрібні програмісти.

У зв'язку з цим, один з головних порад початківцям розробникам - не йти в той напрямок, який не викликає позитивних емоцій.

Після того, як з'явилася визначеність з напрямком - час шукати відповідне місце.

Самий хороший шлях для новачка - це старт у великій компанії з подальшим розвитком. Як правило у великих компаніях займаються розвитком тих, хто прийшов розробників, тому якщо програміст прийшов отримувати знання і прогресувати, то він з компанією отримає взаємну користь від співпраці.

Звідки взяти достатньо знань для отримання роботи?

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

Ще що-небудь?

Так, ще є спеціальні онлайн курси з мов, алгоритмам. З числа відомих: coursera.org. javarush.ru. Інформацію по алгоритмам і структурам даних можна знайти на e-maxx.ru.

Раджу ознайомитися з принципами проектування додатків, ці знання необхідні, і без них неможливо створювати якісні продукти.

В принципі так. Але варто розуміти, що описані лише основні моменти, а удача на співбесіді залежить не стільки від кількості прочитаного інформації, скільки від кількості засвоєної. А так само не забувайте про практику.

Удачі в освоєнні програмування!

Рейтинг корисності відповіді: 42 Підвищити Знизити

Нагадуємо, що ви можете задати своє питання експертам, а ми зберемо на нього відповіді, якщо він виявиться цікавим. Питання, які вже задавалися, можна знайти в списку випусків рубрики. Якщо ви хочете приєднатися до числа експертів і надіслати відповідь від вашої компанії або особисто від вас, то пишіть на [email protected]. ми розповімо, як це зробити.