Відповіді на всі випадки життя прямо на цьому сайті

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

Кроки

  • 38720 1.jpg 1 Пройдіть вступний курс з однієї або всіх наступних дисциплін:
    • Логіка
    • Дискретна математика
  • 2 Вивчіть основні концепції баз даних, як таблиці, запити і процедури. Почати роботу з ними можна на таких простих і доступних програм для роботи з базами даних, як:
    • MS Access
    • DB V
    • Fox Pro
    • Paradox
    • MySQL - хороша база даних, яка безкоштовна, часто використовується, та й тему SQL-запитів добре розкриває.
  • 3 Визначтеся, яким програмістом ви хочете стати. Програмісти бувають різні, ви хіба не знали?
    • Веб-розробник
    • Десктоп-програміст
      • Пишучий програми для якоїсь однієї операційної системи
      • Пишучий мультиплатформенні програми
    • Розробник, займається програмуванням прикладних розподілених систем
    • Розробник бібліотек/фреймворків
    • Системний програміст
      • Розробник ядра
      • Розробник драйверів
      • Розробник компіляторів
    • Програміст-спеціаліст з комп'ютерних наук
  • 38720 4.jpg 4 Вивчіть технології та мови програмування, що відносяться до обраної вами сфері діяльності. Нижче ми розповімо, що саме і для чого саме варто вивчити.
  • Метод 1 з 6: Веб-розробка

  • 38720 5.jpg 1 Знайте, що входить в поняття веб-розробки. Веб-програми - це програми, створені для роботи в верхній області архітектури інтернету. Інакше кажучи, ці програми запускаються з браузера, причому для цього зовсім не обов'язково саме наявність доступу в мережу. В основі веб-додатків лежать такі технології, як:
    • HTTP
    • FTP
    • POP3
    • SMTP
    • TCP
    • IP протоколи
    • HTML
    • XML
    • Coldfusion
    • ASP
    • JSP
    • PHP
    • ASP.NET
  • 2 Вивчіть якомога більше різних сайтів, щоб зрозуміти, як вони працюють (правий клік -> View Source або F12). Важлива не якість сайтів, а їх тип та вміст. В цілому, вам потрібно відвідати як мінімум один із:
    • Корпоративний сайт (сайти комерційних, некомерційних, державних та інших утворень)
    • Веб-каталог (пошуковики, метапоисковики, каталоги)
    • Сайт для дата-майнінгу
    • Особистий сайт
    • Сайт-енциклопедія (вікі, інформаційні портали)
    • Соціальна мережа (соціальні портали, сайти для створення заміток)
    • Сайти, створювані спільно (вікі-сайти, блоги)
  • 3 Опануйте мінімум одним методом брейнстормінгу і програмою для проведення брейнстормінгу. Наприклад: брейнсторм-діаграми MS Visio.
  • 38720 8.jpg 4 Ознайомтеся зі структурою вебсайтів. Це - про створення концептуальних веб-діаграм, карт сайтів і навігації.
  • 38720 9.jpg 5 Пройдіть курс-ознайомлення з комп'ютерною графікою. Навчитися поводитися з яким-небудь графічним редактором - це, звичайно, не обов'язково, але дуже бажано.
  • 6 Вивчіть основи інтернет-інфраструктури. Інакше кажучи, ви повинні мати певне уявлення про те, що таке:
    • Основні веб-протоколів (HTTP, FTP, SMTP, POP3, IMAP4)
    • Програми для веб-сервера (бажано зупинитися на вивченні якоїсь однієї платформи)
    • Браузери
    • Поштові сервери та клієнтські програми
  • 7 Вивчіть HTML і CSS. Для редагування HTML можна користуватися редакторами типу WYSIWYG (що бачиш, те й отримаєш).
  • 38720 12.jpg 8 Вивчіть XML і пов'язані з ним технології - XSL і XPath (бажано).
  • 38720 13.jpg 9 Коли будете знати HTML більш-менш впевнено, створіть простий статичний сайт.
  • 38720 14.jpg 10 Вивчіть клієнтський мову сценаріїв. Скажімо, JS або VBScript, Perl або DHTML.
  • 11 Вивчіть вибраний клієнтський сценарій ще краще. Постарайтеся оволодіти всім потенціалом цієї мови. До наступного кроку переходьте тільки, коли впораєтеся з цим.
  • 12 Вивчіть як мінімум один серверна мова програмування. Якщо ви вирішили обмежитися екосистемами одного серверного програмного забезпечення, то вивчіть один з підтримуваних мов програмування. Якщо ви вирішили не обмежуватися, то вивчіть як мінімум з однієї мови на кожне серверне.
  • 13 Створіть свій пілотний проект. Зрозуміло, лише після того, як розберетеся з серверними мовами.
  • 14 Зробіть свій сайт. Почніть експериментувати з отриманими знаннями.
  • Метод 2 з 6: Десктоп-розробка

  • 38720 19.jpg 1 Пам'ятайте, що ви будете працювати з десктоп-додатками. Більшість таких програм пишеться для потреб бізнесу, тому непогано буде вивчити ще і питання того, що ж потрібно бізнесу.
  • 38720 20.jpg 2 Дізнайтеся більше про різні види архітектури. Комусь вистачає вступних курсів в комп'ютерну архітектуру і цифрові схеми, хтось шукає для себе більш глибоких знань. Втім, до цього кроку завжди можна повернутися потім.
  • 3 Вивчите мову програмування для новачків (дитячий). Не треба соромитися цього лише тому, що дитиною вас вже не назвати! Ці мови створені спеціально для того, щоб вам було простіше переходити на більш серйозні мови. Втім, цей пункт не обов'язковий. Їм можна навіть взятися до вивчення комп'ютерної архітектури.
  • 4 Дізнайтеся більше про процедурні, об'єкт-орієнтовані та функціональні мови програмування.
  • 5 Пройдіть вступний курс з процедурних мов програмування. Не важливо, на чому ви будете писати потім - процедурне програмування вам все одно знадобиться. Крім того, багато програмістів вважають, що процедурне програмування - самий легкий вхід в професію.
  • 6 Вивчіть мінімум одну просунуту техніку моделювання (UML або OML).
  • 38720 25.jpg 7 Почніть писати невеликі консольні додатки. Знадобляться вправи з підручників програмування. Для цього, щоправда, потрібно редактор коду, що підходить для обраної вами мови.
  • 38720 26.jpg 8 Вивчіть вибраний вами мову програмування більш ретельно. Ви повинні не просто розуміти всі нижчеперелічені концепти, але і без особливого праці застосовувати їх на практиці:
    • Введення й виведення даних.
    • Послідовність виконання програм у процедурних мовах.
    • Оголошення, закріплення і порівняння змінних.
    • Оператори розгалуження.
    • Цикли.
    • Синтаксис мови, створення процедур і функцій.
    • Типи даних та управління ними.
    • Користувальницькі типи даних і управління ними.
    • Перевантаження функції, якщо вибрана мова програмування підтримує.
    • Управління пам'яттю.
    • Перевантаження операторів, якщо вибрана мова програмування підтримує.
    • Покажчики функції, якщо вибрана мова програмування підтримує.
  • 9 Застосуйте на практиці вивчені вами просунуті техніки програмування.
    • Об'єктно-орієнтована парадигма.
  • 38720 28.jpg 10 Пройдіть вступний курс з, як мінімум, однієї мови програмування, що використовує іншу парадигму програмування. Рекомендується вивчити з мови для кожної з парадигм, але ви поки що можете почати з однієї мови, попрацювати з ним, закріпити знання, потім перейти до іншого. Що ж до парадигм, то вони бувають ще й такими:
    • Парадигма логічного програмування
    • Парадигма функціонального програмування
  • 38720 29.jpg 11 Спробуйте порівняти між собою два вивчених вами мови програмування. Визначте їх сильні і слабкі сторони, для чого:
    • Візьміть ваші ранні роботи на 1-му мовою програмування і перепишіть їх на 2-м.
    • Створіть новий проект і спробуйте створити його за допомогою обох мов. У ряді випадку виявиться так, що на одній з мов проект не реалізується!
    • Зробіть таблицю порівняння схожих і унікальних структур 1-го і 2-го мов.
    • Спробуйте реалізувати засобами однієї мови унікальні функції іншої мови.
  • 12 Вивчіть концепти візуального програмування. Практично у всіх мов програмування є версії та бібліотеки, що підтримують візуальне програмування, так само як і ті, які підтримують консолі. Як це можна зробити? Так:
    • Пройдіть вступний курс з подієво-керованого програмування. Якоюсь мірою всі візуальне програмування спирається на події та управління ними.
    • Працюйте з якомога більшою кількістю десктопних додатків, щоб зрозуміти, як воно працює. Багато компаній надають користувачам можливість протестувати бета-версії тих чи інших програм, так що не губіться.
    • Читайте статті та керівництва по темі GUI.
  • 38720 31.jpg 13 Почніть застосовувати знання на практиці. Невеликі і нескладні програми для цього цілком згодяться. Намагайтеся при цьому вирішувати ті проблеми, з якими ви стикаєтеся щодня. Наприклад, напишіть програму, яка буде перейменовувати по декілька файлів за раз, копіювати їх назви в окремий файл і т. д. І нехай спочатку все буде простим і не складним.
  • 38720 32.jpg 14 Створіть віртуальний випускний проект. Обов'язково завершіть його і застосуйте в ньому все те, чому встигли навчитися.
  • 15 Розширте свої знання - вивчайте новий фреймворки, технології, мови, читайте статті, проходьте більш просунуті курси і так далі.
  • 38720 34.jpg 16 Освоюйте нові бібліотеки і фреймворки для обраної вами мови програмування.
  • 17 Пройдіть курс по графіку (не з графічного дизайну). Це буде корисно для кожного, хто хоче малювати пристойні користувальницькі інтерфейси.
  • 18 Займіться, за бажанням, розробкою ігор. Це, загалом-то, саме десктопні програми в більшості своїй. Якщо розробка ігор міла вашому серцю, то доведеться вивчити ще й цю тему, а також глибше заритися в графіку і вивчити мову програмування типу Prolog або Lisp.
  • Метод 3 з 6: Прикладні розподілені системи

  • 38720 37.jpg 1 Вивчіть особливості програмування розподілених систем. Врахуйте, це - одна з найскладніших галузей програмування.
  • 2 Швидко пройдіться по темі систем телефонії та її апаратного забезпечення. Це, звичайно, за бажанням, але для розуміння мережевих топологій - корисно.
  • 38720 39.jpg 3 Дізнайтеся більше про мережеву апаратну архітектуру і пристрої типу хабів, світчів і роутерів.
  • 4 Пройдіть курс з мережевим протоколам. Вам потрібно добре розуміти модель OSI, Ethernet, IP, TCP, UDP і HTTP, перш ніж можна буде перейти безпосередньо до розробки.
  • 38720 41.jpg 5 Вивчіть XML. Добре вивчіть!
  • 6 Розберіться з мовою інтерпретатора командного рядка. Для програмування під Windows це буде будь-скриптова мова, який працює з Windows Scripting Host. Для програмування під Linux, у свою чергу, це Bash і Perl. javascript, у свою чергу, вкрай рекомендується для обох платформ, так як:
    • Він підтримується практично скрізь.
    • Його легко вивчити.
    • Його синтаксис схожий з такими мовами, як C, C , C# і Java.
    • javascript часто використовується у веб-розробці!
  • 38720 43.jpg 7 Займайтеся лише процедурним програмуванням. З часом, звичайно, можна буде і на більш просунуті парадигми перейти, але лише з часом.
  • 38720 44.jpg 8 З допомогою досліджуваного вами скриптової мови напишіть скрипти, які здійснюють загальне між комп'ютерами. Вивчіть все, що для цього потрібно. Досить навіть простий комунікації.
  • 38720 45.jpg 9 Перейдіть на десктопний мову. Бажано, на Python, в якому поєднуються одразу декілька парадигм. Вивчіть його особливості, згодиться. Але багато програмісти вибирають Java, хоча і C# набирає популярність. Java і C# добре з наступних причин:
    • Це ООП мови, що полегшує роботу в великих командах програмістів.
    • У них є підтримка подієво-керованого програмування, а також, певною мірою, ОО та процедурного програмування.
    • Фреймворк, на якому побудований Java, сам по собі прикладної і розподілений.
    • Існує багато бібліотек та фреймворків для цих мов, що істотно полегшує роботу.
  • 38720 46.jpg 10 Зосередьтеся на тих базових особливості мови, які стосуються підтримки мереж. На GUI можна звертати менше уваги, ми дозволяємо.
  • 11 Пройдіть курс розробки розподілених систем і додатків. Книги, онлайн-курси та академічну освіту вам в допомогу. Необхідно розуміти основні принципи архітектури розподілених додатків.
  • 12 Дізнайтеся більше про те, як створювати додатки на обрану мову програмування.
  • 38720 49.jpg 13 Вивчіть одну з таких технологій. Бажано, щоб ви мали як мінімум загальне уявлення про них. Багато програмістів, які займаються розробкою розподілених систем, не зупиняються на 1-2 мовами, що й зрозуміло - чим більше вони знають, тим універсальніше і поширеніший їх застосування.
    • Common Object Request Broker Architecture (CORBA)
    • Simple Object Access Protocol (SOAP)
    • Asynchronous javascript and XML (AJAX)
    • Distributed Component Object Model (DCOM)
    • .NET Remoting
    • XML Web Services
  • Метод 4 з 6: Програмування і бібліотеки/платформи/фреймворки/ядра

  • 1 Знайте, чим займається розробник бібліотек. Власне, розробник бібліотек - це дещо більш досвідчений програміст, який пішов від розробки програм до розробки модулів мови, які потім будуть використовуватися іншими програмістами для розробки програм.
  • 38720 51.jpg 2 Якщо ви ще це не зробили, вивчіть мову програмування, що підтримує бібліотеки/повторно використовувані компоненти.
  • 38720 52.jpg 3 Пройдіть більш глибокий курс по UML та OML. Більшість розробників бібліотек користується ними.
  • 4 Пройдіть курс по технології програмування.
  • 5 Вивчіть модульні, компонентні, об'єктно-орієнтовані і подійно-керованих концепти і парадигми програмування. Чим більше ви знаєте, тим краще пишіть бібліотеки - все просто!
  • 38720 55.jpg 6 Дізнайтеся більше про операційні системи і підтримувані ними фреймворки.
  • 7 Зосередьтеся на мультиплатформових фреймворках, технології та мови програмування.
  • 38720 57.jpg 8 Якщо в обраній вами мові програмування є стандартні версії ANSI/ISO/IEEE/W3C, вивчіть їх. Намагайтеся по можливості дотримуватися стандарти.
  • 9 Спробуйте зробити щось подібне копії простий бібліотеки, бажано - опенсорсной. На ранніх стадіях освоєння професії це буде вкрай корисний досвід. Почніть з перекладів одиниць вимірювань і нескладних обчислень по формулах.
  • 10 Знайдіть і вивчіть опенсорсные бібліотеки для вашої області програмування. Спочатку завантажте бінарники і виконувані файли. Потім попрацюйте з ними, вивчіть їх сильні і слабкі сторони. Потім відкрийте їх і подивіться, як вони були зроблені. Потім спробуйте відтворити ці бібліотеки, частково або повністю. Потім постарайтеся поліпшити свої копії бібліотек.
  • 38720 60.jpg 11 Вивчіть різні підходи до роботи з бібліотеками.
    • Найчастіше, розробники бібліотек розглядають проблеми, з якими стикаються, рекурсивними та/або ітераційними методами. Спробуйте уявити кожну проблему як сукупність міні-проблем чи як повторюваний процес розділення проблеми на менші і їх подальше рішення.
    • Поширена серед розробників бібліотек і тяга до узагальнення, генералізації. Інакше кажучи, зіткнувшись з цією проблемою, вони намагаються уявити таку загальну проблему, вирішення якої допомогло б їм впоратися і з початковою проблемою.
  • Метод 5 з 6: Системне програмування

  • 1 Дізнайтеся, що входить в системне програмування. Системні програмісти працюють з програмуванням як з наукою, а не як з окремими завданнями. Не прив'язуйтесь до якоїсь конкретної платформи.
  • 2 Виконайте три перших етапи, описаних в пункті про десктоп-розробку.
  • 38720 63.jpg 3 Пройдіть вступний курс в лінійну алгебру.
  • 38720 64.jpg 4 Пройдіть курс математичного аналізу.
  • 38720 65.jpg 5 Пройдіть курс логіки та/або дискретної математики.
  • 38720 66.jpg 6 Вивчіть різні операційні системи. Це можна зробити так:
    • Дізнавшись, як встановлюються операційні системи.
    • Дізнавшись, як можна встановити кілька операційних систем на один комп'ютер.
    • Встановивши більше однієї операційної системи без будь-яких додаткових пакетів.
  • 7 Пройдіть курс апаратної архітектури ПК.
  • 8 Докладніше вивчіть різні апаратні платформи.
  • 9 Пройдіть вступний курс асемблера для апаратної платформи/операційної системи на вибір. Пізніше ви вивчите мову асемблера для інших платформ і систем.
  • 10 Вивчіть мови ANSI C і C , а також концепції процедурного програмування.
  • 38720 71.jpg 11 Вивчіть стандартні бібліотеки C/C для обраної платформи. Особливу увагу приділіть STL і ATL.
  • 12 Шукайте онлайн-ресурси, книги і курси, щоб глибше поринути в особливості взаємодії обраної платформи і C.
  • 13 Пишіть просунуті програми на C та C .
  • 38720 74.jpg 14 Глибше вивчайте ассмеблер.
  • 15 Пройдіть курс розробки операційних систем.
  • 38720 76.jpg 16 Знайдіть і ознайомтеся з документацією по вибраній вами платформі. У разі Unix-систем ця задача буде простіше. Як можна краще зрозуміти, як саме працює та чи інша платформа.
  • 17 Відпрацьовуйте отримані навички. Для початку створіть невелику системну утиліту. Наприклад:
    • Спробуйте відтворити невеликі утиліти, які вже є у вашій системі.
    • Спробуйте перенести утиліти однієї операційної системи на вашу.
  • 38720 78.jpg 18 Вчіть мови правильним чином. Тут це важливо. Спершу вивчіть ANSI C. Не С , не С#, JAVA не і не D. Після ANSI C вчіть C .
    • Обмежувати себе мовою З треба, так як системне програмування вимагає, щоб програміст був добре знайомий з:
      • справжньої і повної компіляцією вихідного коду;
      • низькорівневим висновком в файл;
      • линкованными бинарниками;
      • низькорівневим програмування на асемблері. А з допомогою З вивчити асемблер, як запевняють деякі, простіше.
  • Метод 6 з 6: Комп'ютерні науки

  • 1 Знайте, чим займається спеціаліст з комп'ютерних наук. Це дуже сильні програмісти, які пишуть не програми, а розробляють цілі технології шифрування, нові мови програмування, алгоритми датамайнинга і т. д. Мало коли на цей рівень можна вийти, не зіткнувшись зі студентською лавою.
  • 2 Пройдіть чотирирічний курс комп'ютерних наук або аналогічний обсяг годин по темі. Це можна зробити наступними способами:
    • Вступити на відповідну спеціальність.
    • Записати на онлайн-курси і займатися самостійно. Цей варіант теорії не менш ефективний, ніж перший, але все ж перший надійніше.
  • 38720 81.jpg 3 Визначитеся зі спеціальністю. І чим конкретніше і точніше - тим краще. Тут вже - до чого душа лежить. Нижче - список основних напрямів:
    • Розробка алгоритмів (пошук, шифрування, дешифрування і т. д.)
    • Розробка мов програмування
    • Штучний інтелект (нейронні мережі, обробка природної мови, розпізнавання шаблонів, розпізнавання мови)
    • Робототехніка
    • Наукове програмування
    • Супервычисления
    • Системи CAD/CAM
    • Віртуальна реальність
    • Комп'ютерна графіка (не дизайн, а саме керування графікою в комп'ютерних системах)
  • 38720 82.jpg 4 Отримаєте наукову ступінь. Чим вище - тим краще.
  • 5 Вивчайте технології, пов'язані з вибраними напрямком.
  • Поради

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

    Джерела і посилання



    Додати коментар
    Ваше ім'я:  
    Напівжирний Нахилений текст Підкреслений текст Перекреслений текст | Вирівнювання по лівому краю По центру Вирівнювання по правому краю | Вставка смайликів Вибір кольору | Прихований текст Вставка цитати Перетворити вибраний текст з транслітерації в кирилицю Вставка спойлера

    2+2*2=?