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

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

Іншими словами, ми отримуємо вираз обличчя досить швидко. Так що хто-то ледь розумів, що інструкції зверху вниз, а тут, з трохи бекону, стає складним питанням для перетравлення. Можливо, це нормально і дає вам більше часу, щоб звикнути до цієї теми.

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

І користувач непередбачуваний. Маючи 3 кнопки на сторінці 3, ми ніколи не впевнені, що користувачі натиснуть на них в тому ж порядку. Ось чому він вводить додатковий рівень складності в розумінні того, що код повинен бути організований таким чином, а не інакше. Але, як ви бачите, він багато додає в сітку.

Чи потрібно вивчати програмування конкретно мені?

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

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

У якийсь момент будуть проблеми з сумісністю. База програміста досить значна, як і існуюча база додатків. У цих людей досить короткий, дворічний, можливо, трирічний, перехід до чогось ще. Існують три основні парадигми програмування: структуроване програмування, об'єктно-орієнтоване програмування та функціональне програмування. Всі ці мови програмування мають особливість - вони строго типізовані. Тобто ви повинні оголошувати змінні, призначати тип даних, і з цього часу ви все одно можете використовувати цю змінну тільки з цим типом даних.

Грег Поллак, засновник навчального сервісу Code School, говорить так:

Той, хто за форматом своєї роботи змушений спілкуватися з розробниками, повинен знати основи програмування.

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

Ви берете участь у стартовій сцені в Румунії? Якщо так, то як?

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

У вас є інші особисті проекти, над якими ви працюєте

Звичайно, на столі завжди щось є - великі і маленькі проекти, проблеми для розслідування, завжди є щось, але нічого іншого не вирішено.

А чи не застарий чи я для цього?

З чого почати

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

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

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

Якщо ви повинні були запустити з 0, ви б обрали весь спектр комп'ютерів, програмування?

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

Я нічого не знаю

У разі, коли досвіду немає взагалі, то краще починати з чогось більш простого для розуміння. Хорошими прикладами можуть бути основи HTML і CSS.

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

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

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

Яке життя в Америці іммігрантів першого покоління?

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

Я хочу робити красиві веб-додатки

У цій справі вам знадобиться знання JavaScript. Саме він дозволяє робити веб-сайти красивіше, ефектніше і функціональніша. Існує кілька популярних (і сумісних) середовищ розробки JavaScript, такі як Ember, Angular і Backbone.

JavaScript живе вже 20 років і не збирається нікуди йти. За фактом, його домінування в сфері лише посилюється. З огляду на своєї популярності, JavaScript є де підучити. Наприклад, згадуваний вище Поллак називає курси цієї мови найпопулярнішими на Code School.

Якщо ви щось робите в Інтернеті, то вам необхідно вчити JavaScript.

Хочу швидко робити прототипи

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

Ruby відрізняється розвиненою екосистемою і одним з найактивніших і чуйних спільнот. Розроблений в далекому 1995 році, мова почала набирати особливу популярність з 2003 року, коли з'явився фреймворк Rails. Завдяки йому процеси створення сайтів і веб-додатків значно спростилися.

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

Для швидкого старту можна порекомендувати Learn Python The Hard Way, або розділ Ruby на Code Academy.

Хочу зробити Android-додаток

Розробка Android-додатків, в основному, здійснюється в Java. Привабливість у тому, що для роботи вам підійде і Windows, і OS X. Обидві Операційні системидають можливість встановлювати середовища розробки для Android. Ще один плюс - можливість бюджетно тестувати свої програми, адже на ринку є купа дешевих смартфонів і планшетів на Android.

Ще один дуже важливий момент: Якщо буквально пару років тому ключовий платформою була iOS, то вже зараз розробники вважають за краще стартувати з Android.

Безкоштовний вступний курс програмування на Java можна знайти на Udacity. Коли основи вивчені, ваш шлях ляже в сторону офіційного сайту розробників під Android. Тут можна навчитися тонкощам створення свого першого Android-проекту.

Хочу зробити iOS-додаток

Розробка під iOS куди більш вимоглива до інструментів. Крім знання Objective-C, вам буде потрібно Mac з OS X версії 10.7 або вище, Xcode - безкоштовний інструмент для створення додатків, а також комплект засобів розробки для iOS.

Програмування поступово підминає під себе одну індустрію за одною: ще не так давно виклик таксі здавався абсолютно офлайнових процесом, а тепер в Uber працює безліч розробників. Дивлячись на це (а також на рівень зарплат фахівців), навіть далекі від програмування люди замислюються: «А чи не спробувати і мені».

Часто від подібної думки відразу відлякує різноманіття мов програмування: доводиться вибирати з безлічі не зовсім зрозумілих варіантів. У чому полягає різниця мови та чому не існує одного найкращого і універсального, за який з них братися в першу чергу і для яких завдань?

Розібратися в цьому допомагають такі курси, як «», де можна визначитися, з якими перспективами ІТ найкраще співвідносяться ваші інтереси ..

Матеріал підготовлений за підтримки.

Твитнуть

У обране

В обраному

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

фронтенд

HTML і CSS - обличчя сайту

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

Однак сайти не обходяться без HTML, тому його базове знання необхідно кожному, хто планує займатися веб-розробкою. І володіння CSS може бути цілком цінних навиком: завдання «правильно розташувати елементи» не завжди виявляється тривіальної.



JavaScript - щоб навчити сайт розуміти вас

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

...

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

Крім цього, існує платформа Node.js, яка дозволила використовувати JavaScript і в бекенд. На відміну від фронтенда, там він не є лідером і конкурує з цілим рядом інших мов.

Веб-розробка: бекенд

Java - надійний, як дідусів сюртук

Хоча назва часом плутають з JavaScript, Java - не просто іншу мову, а майже протилежність JavaScript: це більш консервативний вибір, перевірений роками. Його вважають за краще використовувати в бекенд тих проектів, для яких надійність куди важливіше віянь моди, - наприклад, банківських систем. У рейтингу популярності мов TIOBE Java займає першу строчку, а це значить, що в світі є мільйони робочих місць Java-розробників.



Молоді розробники часто вважають Java нудною і застарілою, а її прихильники відповідають, наприклад, такий GIF про те, що ніякої Node.js не зрівняється з нею по мощі:

Python - прогресивний і популярний

Якщо порівнювати Python з Java, то він буде вигравати в обсязі коду, але програвати в швидкості виконання. Для великого високонавантаженого проекту, де важлива продуктивність, Python буде не кращим вибором. Мова відмінно підійде для стартапу: наприклад, щоб показати інвесторові прототип до того, як закінчаться всі інвестиційні гроші.

У 2016 році мова несподівано отримав ще одну перевагу: на ньому зручно писати ботів для месенджерів.

PHP - популярний і відносно нескладний

Популярність PHP безперечна: його використовують Facebook, «ВКонтакте», «Вікіпедія» та, до речі, сайт. На ньому також заснована система WordPress, під управлінням якої працює близько чверті всіх сайтів.

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

У списку варіантів є і дещо менш популярні альтернативи - від Ruby до набирає обертів Go.

Зрозуміло, список мов не обмежується згаданими: хтось віддає перевагу молодий Kotlin, створений в Петербурзі, а хтось з 1980-х звик до Smalltalk. І коло завдань теж не обмежується перерахованими: є і «низькорівневі», такі як написання драйверів.

Однак все те, що не увійшло в список, зазвичай або вузьке і нішеве (Smalltalk-вакансії в дефіциті), або погано підходить початківцям (низький рівень вимагає серйозної підготовки). Тому в першу чергу варто звернути увагу на перераховані мови, а потім неважко буде розібратися і з іншим.