Вища освіта

Р



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


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

Університет навчає в першу чергу фундаментальні знання, які не стануть застарілими протягом декількох років до закінчення навчання. Американський біолог Національного інституту охорони здоров’я написав мені, «Час змін, але основи не змінюються». Саме тому краще вибрати загальні області навчання і спробувати взяти максимальну кількість електричних курсів, тому в американських університетах є так багато «необхідних» курсів, таких як біологія, хімія або література, замість спеціалізованих. Карл Саган, який навчався астроному, згадує у своїй книзі, яка мала лабораторну роботу на генетичних дослідженнях та експериментах для тестування гіпотези абіогенезу. Не кажучи вже про те, що в Сполучених Штатах ви можете отримати кілька додаткових спеціальностей (мінор) крім основного (майора). Таким чином, при виборі теорії еволюції та Java програмування, вибирайте колишній, можливо, якийсь день ці знання будуть корисними у вашій кар'єрі або житті. Ви все одно дізнаєтеся мову, і ви навряд чи будете зацікавлені в історії нашої планети. Завжди легше звужувати ваші горизонти, ніж розширити його.

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

Щоб ілюструвати важливість проблеми, я перейде до аналогії. Уявіть, якщо ви попросили когось, що їхня професія, і вони сказали вам, що вони були будівельниками. Чи можна ви розповісти мені, що він робить? Він може бути архітектором з художньою освітою, інженером, одеманом, кваліфікованим працівником або будівельним очищувачем. Не кажучи вже про те, що в багатьох цих областях є спеціалізація. І він ще буде називатися будівельником, але, очевидно, вони різні будівельники. Для побудови собаки не потрібно спеціальної освіти, але не можна будувати хмарочос. Тим не менш, хто з першого, зазвичай не вважається будівельниками. Тепер програмісти називають будь-яким. Математика, яка працює на алгоритмах; розробник навігаційних програм на НАСО; експерт з індуктора, який вивчає віруси; школяр, який будує HTML-сторінки – всі програми. Тож перед тим, як відповісти на питання: чи потрібна освіта програміста, необхідно уточнити – що треба. Можливо, у Вашому конкретному випадку освіта не потрібна.

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

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

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

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

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

Як для гуманітарних та інших необоротних курсів, їх значення підкреслюється не тільки тим, що бажано для будь-якої людини бути культурним і освіченим, але і тим, що людський розум є надзвичайно непередбачуваним і іноді малює натхнення від різних джерел. Моя російська вчителька розповіла мені історію радянських часів, коли авіаційний університет вирішив зберегти гроші і припинив читання курсів літератури. Що ви думаєте? Знизився рівень інженерів. Література повинна бути повернена. Так потрібні ці курси. На жаль, вони часто крихітно навчаються, які не додають до своєї популярності; але ми говоримо про ідею, правильно?

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

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

Навчання в університеті є також можливість практикувати в компаніях і організаціях, які в іншому випадку не дадуть вам. Це можливість зробити науку, писати статті та брати участь у конференціях, які є передумовою для роботи в дослідницьких лабораторіях багатьох компаній, таких як Samsung. Майже всі серйозні технології були розроблені в університетах, а деякі, зокрема, відомі ЛЛВМ, виросли з студентських проектів. Відомі компанії були засновані науковцями та випускниками у стінах університетів: Кремнієва графіка, Sun Microsystems, Yahoo, Adobe та багато інших.

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

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

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

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

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

Гарантія та реальне життя
Звісно, це не означає, що присутність освіти або знань математики перетвориться на всі програми світового класу. Кожен знає, що більшість випускників не працюють у своїй галузі. І я знаю багато математиків, які записують страшні програми. Після того, як ви не можете мати можливість програми. Я проти використання спрощених критеріїв. Все важливо в житті: освіта, знання, оцінка, наукова робота, практика та бажання.

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

Що про них? Білл Гейтс, Марк Закерберг, Ларрі Еллісон. Читання історії успіху відомих людей, багато незрілих думок: “Якщо вони могли, то я можу я.” Але вважайтеся, що успіх – це багатомовна концепція: це одне, щоб стати успішним маркетологом і зовсім іншим, щоб стати видатним програмістом. Тим не менш, це не секрет, що деякі всесвітньо відомі програми неосвічені, але як ви намагаєтеся жити, пам'ятайте, що вони є рідкісними щасливими винятками серед багатьох втрат. Так як хтось стрибнув з вікна і вижити не означає, що ви не повинні використовувати сходи. Як правило, немає необхідності (звичайна помилка) до конфускації паперу з освітою: так само, що вони не закінчували навчання не означає, що вони не навчаються взагалі. Практично всі вони навчаються на декількох семестрах, взяли участь у перших курсах і отримали деякі знання, і, наприклад, Стів Возняк повернув багато років і завершили навчання. Не менш важливим є їх інтелектуальні здібності і характер: як правило, вони є всі яскраві, інтелектуальні, талановиті і в деяких спосіб геніальні особистості, знаючи від самого початку, що вони потребують, цілеспрямовані, зайняті виключно тим, що вони люблять, і володіють феноменальними виступами. Вони не попросили чужої думки і не нав'язували себе. Я, як і Джон Кармак, чуй, що вони думали, що вони були найрозумнішими і не дізналися нічого.

Якщо ви любите їх, я щиро бажаю вам успіху, інакше краще використовувати перевірені способи?

Джерело: habrahabr.ru/post/225623/