Як стати програмістом

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

Навчання або насильницький аскетизм

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

Йде вчитися, розуміючи, що йому належить страждати і жити поза волею;
Кладе на все, продовжуючи жити як раніше, але при цьому усвідомлюючи, або не усвідомлюючи свою немічність.
У підлітковому віці, зазвичай за все наші важливі вчинки відповідають батьки, тому доводиться ступати по першому шляху. Але коли особистість досягає прийнятного віку для прийняття самостійних рішень, і раптово виникає бажання приборкати ту чи іншу спеціальність, ми схиляємося до другого варіанта. І покликання «Програміст», також потрапляє під це дивний збіг обставин.

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

Багато хто не раз випробовували яскравий сплеск емоційної активності. І той, хто читає цю статтю, ймовірно, знаходитися в схожому стані, яке в 90% випадків скоро пройде. Виникає питання: «Як тривалий час залишатися в цьому стані захоплення?», Відповідь на який в значній мірі важливий для того щоб процес навчання проходив без відчуття поневірянь, а навпаки — приносив радість.

Для вирішення вище стоїть проблеми, самим об’єктивним процесом буде звернутися до елементарної психології. Відомо, що це скороминуще стан захоплення виникає не просто так, а ми як би самі чіпляємося на гачок випадку. У разі програмування це може бути прочитання статей про IT, історія або ролик про хакерів, бажання «творити» і т.п. Так ось, людина суть механізм, але механізм здатний на самообман і самонавіювання. І було б нерозумно, в досягнення своїх цілей не скористатися цією перевагою. Дивіться надихаючі фільми, читайте книги, які своїм впливом будуть втягувати вас у «світ коду», обзаведіться оточенням, яке має відповідні інтереси, або самі створіть його! Існує безліч приватних варіантів підтримки інтересу, головне усвідомити, що в наших силах перетворити «виключення» в «правило». Легка зміна клімату, з’явиться знаком потрібного шляху. Це може проявлятися в розбіжностях зі старими знайомими, бажанні говорити тільки на одну цікаву для вас тему, зміні старих звичок і т.д. Але сам факт посадки плодів, нехай навіть і на такий чорноземної землі, не дає права їх збирати. Плануєте довгий шлях!

Здібності і обдарованість

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

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

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

Кожен чув про людей, для яких рішення задач особливо незвичайним, елегантним способом, є не як в більшості випадків винятком, а швидше правилом. Вважається, що саме з них виростають «світлі голови» або навіть генії. Ось тут-то прийнято говорити про вроджені здібності, обдарованості. Остання, приписується всім без винятку людям, що досяг позахмарних вершин в одній або декількох областях пізнання. Купується геніальність чи ні, лише належить з’ясувати вченим, чия діяльність зачіпає цей феномен. Але хто б, що не говорив, всіх геніальних людей, від Піфагора до Хокінга, об’єднує той стан захвату, про який ми говорили рані. Воно тягне їх в світ пізнання і відкриттів, шлях до якого може бути як неймовірно тяжким (Джордано Бруно, наприклад, був спалений за свої єретичні погляди, а Кантор мало не збожеволів), так і необтяжливим (в стародавній Греції мудрець високо шанувався), що втім, не так важливо.

вибираємо снасті

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

Під терміном «Веб-програмування» зазвичай мається на увазі робота з Інтернет-ресурсами, відображеними в браузері. Початківець веб-програміст знайомиться з HTML (мова гіпертекстової розмітки) і CSS (каскадні таблиці стилів). Це можна назвати необхідним присвятою в коло розробників цього напрямку. Далі починається куди більш складний, але, тим не менше, цікавий період в житті веб-розробника. Мови веб-програмування (ЯВП) діляться на два типи: клієнтські і серверні. Основна відмінність в тому, що перші виконуються на стороні користувача (в його браузері), так як для роботи друге необхідний сервер, який приймає і обробляє запити. Слушна веб-програміст вивчає як мінімум один клієнтський ЯВП (наприклад, JavaScript, AJAX, JQuery, VBScript, ActionScript) і один серверний (PHP, ASP, С #, Perl, SSI, Ruby). Для використання серверного мови потрібно розуміти, як працює СУБД (система управління базами даних). З них найбільш популярними є: Microsoft SQL Server, Microsoft SQL Server Express, MySQL, Oracle, PostgreSQL, SQLite. Досить популярна зв’язка PHP — MySQL.

Головною характеристикою прикладного програмування є створення додатків спрямованих безпосередньо на взаємодію з користувачем. Додатки можуть бути як мережевими (Skype, Opera, μTorrent), так і чисто персональними (CCleaner, Paint, Photoshop). Багато мови програмування досить універсальні, що сприяє написання програм різної спрямованості. Але вибираючи, ми в першу чергу звернемо увагу на затребуваність ЯП, інакше, уподібнимося гітаристу, який купує іржаві струни, сподіваючись що корозії з часом не залишиться. У цій категорії мов програмування популярними є:

Java
C
C ++
Python
Visual Basic
Delphi
Pascal
На ринку затребувані програмісти, що володіють знанням написання коду на Java і C ++. Звичайно ситуація може помінятися, але саме ці мови триматися в лідерах досить довгий час.

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

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

Чи є на кого рівнятися

Майже дві сотні років пройшло з тих пір, як не стало першого програміста. Незважаючи на те, що в 1843 році графиня Ада Августа Лавлейс написала програму, вирішальну рівняння Бернуллі, перша ЕОМ, що володіє всіма властивостями сучасного комп’ютера, була випущена лише через сотню років. Можливо, це спостереження дасть стимул починаючому програмісту, звеличивши фахівця цієї професії над об’єктом його старань. Залишивши без уваги те, що перший програміст — дівчина, хотілося б вказати на термін, який обумовлює «Еру комп’ютерів і програмістів». На відміну від більшості популярних професій, що розглядається нами, цілком компактно вміщується в 1 століття, що дає нам можливість більш повно розглянути таланти, що зародився в ній! Пропоную розглянути таблицю порівняння талановитих програмістів.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *